Web3j

獲取函式在 Web3j 中返回 2 個值

  • March 4, 2019

我將 remix 中生成的智能合約包裝到 Java 項目中。我試圖獲得返回這個函式的兩個值。

function getValues(address _a) external returns(bool, uint32) {
   uint32 n= data[_a].number;
   return (true, n);
}

問題是返回的值是一個 TransactionReceipt。我怎樣才能恢復兩者的價值;布爾值和 uint?

問題是返回值是交易收據。如何恢復這兩個值?

添加view到函式聲明中,返回值將是一個元組(bool, uint32)

否則(如果您沒有告訴我們有關函式的某些內容,無法為其聲明view),您將需要emit一個帶有返回值的事件,並從交易收據中獲取它。

可以製作該功能view,然後您可以call從web3使用。這不會進行交易,而只會在您連接的節點上執行該功能。結果將是您期望的值。

希望這可以幫助

引用自:https://ethereum.stackexchange.com/questions/67889