Solidity
建構子中呼叫的事件
當從合約的建構子內部觸發事件時,如何在 web3.js 中觀看事件?例如:
contract A{ event Invoked(string); function A(){ Invoked("constructor invoked!"); } }
在 web3.js 層中寫什麼來獲取控制台中事件的輸出。
根據這裡的文件https://github.com/ethereum/wiki/wiki/JavaScript-API#parameters-29
fromBlock
是"latest"
預設的。所以在建構子中發送事件的情況下,"latest"
可能會錯過你的事件。嘗試設置
fromBlock
為較早的數值。在最壞的情況下,嘗試0
.
查看文件中的程式碼段:
var abi = /* abi as generated by the compiler */; var ClientReceipt = web3.eth.contract(abi); var clientReceipt = ClientReceipt.at(0x123 /* address */); var event = clientReceipt.Deposit(); // watch for changes event.watch(function(error, result){ // result will contain various information // including the argumets given to the Deposit // call. if (!error) console.log(result); }); // Or pass a callback to start watching immediately var event = clientReceipt.Deposit(function(error, result) { if (!error) console.log(result); });
使用其中一個偵聽器並更改事件名稱和功能。