合同功能定义为:
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进行编码正确是什么? (这似乎对字符串数组很好用)
答案 0 :(得分:0)
通过以下方法解决此问题(尽管实际上是在寻找更具动态性的尺寸解决方案)
new StaticArray2(Bytes32.class,Utils.typeMap(elements,Bytes32.class));