4

我正在尝试调用如下所示的solidity 函数:

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());

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

谢谢。

4

1 回答 1

1

您可以用方括号括起参数。

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

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

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

我可以这样调用bar函数web3.js

contract.methods.foo([123, "123", "0xABC...."]).send({ from: '0x...' })
于 2019-11-13T05:14:07.773 回答