[英]web3j's StaticArray is abstract
我在 macOS 上使用最新的 solc 和 web3j(通過 brew)。
我已經編譯了智能合約並生成了 java 代碼以在我的項目中使用,但是生成的代碼使用的是抽象的靜態數組: error: StaticArray is abstract; cannot be instantiated Arrays.<Type>asList(new org.web3j.abi.datatypes.StaticArray<org.web3j.abi.datatypes.DynamicBytes>(
error: StaticArray is abstract; cannot be instantiated Arrays.<Type>asList(new org.web3j.abi.datatypes.StaticArray<org.web3j.abi.datatypes.DynamicBytes>(
My constructor in Solidity looks as follows: constructor(string[] memory foo1, bytes[keyByteSize] memory foo2, bytes[keyByteSize] memory foo3, bytes[keyByteSize] memory foo4)
部署 function 生成為:
String encodedConstructor = FunctionEncoder.encodeConstructor(Arrays.<Type>asList(new org.web3j.abi.datatypes.DynamicArray<org.web3j.abi.datatypes.Utf8String>(
org.web3j.abi.datatypes.Utf8String.class,
org.web3j.abi.Utils.typeMap(foo1, org.web3j.abi.datatypes.Utf8String.class)),
new org.web3j.abi.datatypes.StaticArray<org.web3j.abi.datatypes.DynamicBytes>(
org.web3j.abi.datatypes.DynamicBytes.class,
org.web3j.abi.Utils.typeMap(foo2, org.web3j.abi.datatypes.DynamicBytes.class)),
new org.web3j.abi.datatypes.StaticArray<org.web3j.abi.datatypes.DynamicBytes>(
org.web3j.abi.datatypes.DynamicBytes.class,
org.web3j.abi.Utils.typeMap(foo3, org.web3j.abi.datatypes.DynamicBytes.class)),
new org.web3j.abi.datatypes.StaticArray<org.web3j.abi.datatypes.DynamicBytes>(
org.web3j.abi.datatypes.DynamicBytes.class,
org.web3j.abi.Utils.typeMap(foo4, org.web3j.abi.datatypes.DynamicBytes.class))));
return deployRemoteCall(Foo.class, web3j, credentials, contractGasProvider, BINARY, encodedConstructor);
}
這是一個錯誤,還是我做錯了什么?
原來 web3j 不支持實驗性 ABI
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.