簡體   English   中英

Web3j Android Java Solidity包裝器錯誤

[英]Web3j Android java solidity wrapper errors

嘗試使用web3j調用合同中的某些功能。 我遵循了穩定性指南並獲得了該合同的.abi和.bin- https: //etherscan.io/address/0x9dda40dabd849bbb087dcbcf0c5223ec5ffa0ad7#code。 然后使用web3j命令行進行.java文件包裝,輸出到正確的目錄。

一切正常,但以下幾行:

public static final Event FUNDSWITHDRAWN_EVENT = new Event("FundsWithdrawn",
        Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}, new TypeReference<Uint256>() {}));
;

public static final Event FUNDSDEPOSITED_EVENT = new Event("FundsDeposited",
        Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}, new TypeReference<Uint256>() {}));
;

public static final Event SERVERADDED_EVENT = new Event("ServerAdded",
        Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
;

public static final Event SERVERREMOVED_EVENT = new Event("ServerRemoved",
        Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
;

public static final Event GAMESTARTED_EVENT = new Event("GameStarted",
        Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}, new TypeReference<DynamicArray<Address>>() {}));
;

public static final Event GAMEENDED_EVENT = new Event("GameEnded",
        Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}, new TypeReference<Address>() {}, new TypeReference<Address>() {}, new TypeReference<Address>() {}));
;

拋出錯誤:

Event() in Event cannot be applied to:
Expected Parameters:
Actual Arguments:

name:
String
"ServerAdded"  
indexedParameters:
List<TypeReference<?>>
Arrays...new TypeReference<Uint256>() {})  
nonIndexedParameters:
List<TypeReference<?>>

而這兩行:

    public static final Event OWNERSHIPRENOUNCED_EVENT = new Event("OwnershipRenounced",
        Arrays.<TypeReference<?>>asList(new TypeReference<Address>(true) {}));
;

public static final Event OWNERSHIPTRANSFERRED_EVENT = new Event("OwnershipTransferred",
        Arrays.<TypeReference<?>>asList(new TypeReference<Address>(true) {}, new TypeReference<Address>(true) {}));
;

輸入錯誤:TypeReference中的TypeReference()無法應用於(boolean)

我不是合同的創建者,但是它確實可以在其web3js和metamask實現中正常工作。 由於這些事件是針對服務器端的,我在想一件事,我是否甚至需要包含它們? (盡管您稍后會看到它們的引用),但我只是想知道是否使用.bin文件會強迫您不進行更改? 無論如何還是新手,感謝任何幫助或指示。

在我看來,版本似乎有問題,因為Java類的生成存在語法錯誤。

您所能做的就是嘗試手動解決此問題:刪除true,然后稍微更改代碼。

public static final Event OWNERSHIPRENOUNCED_EVENT = new Event("OwnershipRenounced",
        Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}),
        Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}));
;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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