如何使用Web3j将元组编码为输入参数以起作用

时间:2018-10-03 06:22:25

标签: ethereum solidity web3-java

我正在尝试调用一个类似于以下内容的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());

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

谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
    textview.setCompoundDrawablesWithIntrinsicBounds(null, null, AppCompatResources.getDrawable(this, R.drawable.movie), null);
} else {
    textview.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.movie, 0);
}

我可以像这样用contract Test { struct Foo { uint a; string b; address c; } function bar (Foo memory foo) public { c = foo.c; } } 调用bar函数:

web3.js