Solidity
App.js 中發出事件的值
實際上,在我的 App.js 中,我已經像這樣呼叫了我的合約函式:
[ this.state.swapcontract.methods.sendFunds(address).send({ from: this.state.account , value:amount}) ]
該函式被完美地呼叫並且可以正常工作,但它也會發出一個事件。
如何在我的 app.js 中訪問該事件?
另外,如果某個函式返回了一些東西,那麼如何訪問它呢?
這也不是非同步呼叫,許多網站建議的回調函式什麼都不做。
函式
send
返回一個Promise
對象,該對像在解析後返回交易收據。交易收據包含您的合約函式 ( ) 發出的所有事件
sendFunds
。因此,首先,保存該
Promise
對象:const promise = this.state.swapcontract.methods.sendFunds(address).send(...);
然後,解決它以獲得收據。
async
您可以通過從函式呼叫它來做到這一點:const receipt = await promise; console.log(JSON.stringify(receipt, null, 4));
或者從任何地方呼叫它:
promise.then(function(receipt) { console.log(JSON.stringify(receipt, null, 4)); });
最後,閱讀列印輸出以準確了解事件在收據中的儲存位置。