当前位置: 首页 > 知识库问答 >
问题:

如何使用web3j将元组编码为函数的输入参数

孟璞
2023-03-14

我试图调用一个类似如下的实度函数:

function fillOrder(
    Order memory order,
    uint256 takerAssetFillAmount,
    bytes memory signature
)

使用web3j,我将创建与下面类似的函数,但是我不太确定如何表示以Solidity表示的结构的顺序。

List<Type> inputParams = Arrays.asList(???, new 
Uint256(takerAssetFillAmount), new Bytes32(signture));
new Function("fillOrder", inputParams, Collections.emptyList());

关于我应该如何表示结构的任何指示?

谢了。

共有1个答案

云新知
2023-03-14

可以用方括号包装参数。

例如,假设我有一个合同:

contract Test {
    struct Foo {
        uint a;
        string b;
        address c;
    }

    function bar (Foo memory foo) public {
        c = foo.c;
    }
}

我可以用web3.js调用bar函数,如下所示:

contract.methods.foo([123, "123", "0xABC...."]).send({ from: '0x...' })
 类似资料:
  • 如何从用户输入一个数字,拆分它的数字,并分别使用每个数字 例如,如果用户输入“4568”,则代码应将4568拆分为4,5,6,8

  • 接受一个可变参数函数并返回一个闭包,该闭包接受一个参数数组映射到该函数的输入。 使用闭包和展开运算符 (...) 将参数数组映射到函数的输入。 const spreadOver = fn => argsArr => fn(...argsArr); const arrayMax = spreadOver(Math.max); arrayMax([1, 2, 3]); // 3

  • 问题内容: 我有一个类似下面的表单,该表单发布到contacts.php,用户可以使用jquery动态添加更多表单。 如果我用下面的代码在php中回显它们 我会得到这样的东西: 名称1名称2名称3电子邮件1电子邮件2电子邮件3 我怎样才能把这些数组变成下面的代码 所以我的输出是这样的: 名称为 name1 ,电子邮件为 email1 ,谢谢 。名称为 name2 ,电子邮件为 email2 ,谢谢

  • 如何在邮递员中传递此表单数据? 我试过这种方法,但不起作用

  • 有人能告诉我如何使用将数组参数传递给postgresql函数吗?我尝试了下面的方法,但是得到了错误: 例外 psqlException:无法推断用于[ljava.lang.Integer;]实例的SQL类型。使用带有显式Types值的setObject()来指定要使用的类型。 谢谢

  • 问题内容: 我对PHP非常陌生,但是现在我必须帮助我的朋友解决PHP问题。 他购买了一个基于PHP的网站,将其上传到主机后,发现错误: 代码很简单: 它发送一个json到客户端。 我知道是在php 5.2之后添加的,但是他的主机的PHP版本是PHP 5.1.2,所以这就是它报告错误的原因。 但是我们无权升级主机的PHP版本,因此我必须修改代码。如何让它不带JSON返回客户端? 客户端浏览器中的网页