簡體   English   中英

web3j 的 StaticArray 是抽象的

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM