0

合约函数定义为:

  function createAggregate (string memory key, bytes32[2] memory part_array) public returns (bytes32)

并收到一个零件列表,定义为...

    List<Bytes32> elements

所以试图使用:

    List<Type> items = new ArrayList<Type>();
    items.add(...);                    // user reference
    items.add(new DynamicArray<>(elements));

    final Function function = new Function("createAggregate", 
             items, 
             Arrays.asList(new TypeReference<Bytes32>() {})
            );
    ...

但这不起作用,似乎是一个编码问题 - 编码 Bytes32 的正确方法是什么?(这似乎适用于字符串数组)

4

1 回答 1

0

用以下方法解决了这个问题(虽然真的在寻找更动态的尺寸解决方案)

new StaticArray2(Bytes32.class, Utils.typeMap(elements, Bytes32.class));

于 2019-07-02T09:51:12.090 回答