Solidity
Web3 - 訪問事件的返回值
我想獲得我的智能合約在 javascript 中返回的值。
這是契約。(版本 0.4.25 - web3 版本 1.2)
pragma solidity ^0.4.25; contract SimpleStorage { uint public storedData; event numberSaved(uint number); constructor(uint initVal) public { storedData = initVal; } function set(uint x) public{ storedData = x; emit numberSaved(storedData); } function get() view public returns (uint retVal) { return storedData; } }
現在如何獲取事件返回的值?
我試過:
mySmartContract.events.numberSaved();
mysmartContract.once('numberSaved', function(error, event){ console.log(event); });
這個返回 null
我究竟做錯了什麼?
我認為這會起作用:
result.events.numberSaved.returnValues['number']
試試這個
mysmartContract.getPastEvents('numberSaved', { fromBlock: 0, toBlock: 'latest' }, function(error, events){ console.log(events); }) .then(function(events){ console.log(events) // same results as the optional callback above });
實際上,我以Web3 docs為例。