Dapp-Development
如何通過生成事件的事務的雜湊過濾事件?
我在Andreas Olofsson 的 回答中讀到以下內容:
事件也可以通過生成事件的事務的雜湊來過濾
有人可以發布一個如何使用
oo7-parity.js
,web3.js
或ethjs
…我在文件中沒有找到任何特別有用的範例
因此,這可以通過監視合約事件來完成,可選地來自指定的發送者,然後通過交易雜湊過濾結果。這是一個使用範例
web3.js
:const Web3 = require('web3'); const web3 = new Web3(); web3.setProvider(new web3.providers.HttpProvider('http://127.0.0.1:8545')); const multiSigWalletFactoryAddress = '0xF935...c5B9F1f'; const MultiSigWalletFactoryABI = [{"constant":true,"...","type":"event"}]; const MultiSigWalletFactory = web3.eth.contract(MultiSigWalletFactoryABI); const multiSigWalletFactoryInstance = MultiSigWalletFactory.at(multiSigWalletFactoryAddress); const event = multiSigWalletFactoryInstance.ContractInstantiation({sender: '0x72D0...ef412F'}); event.watch(function(error, result) { if (error) { console.log('error', error); } else { // here the transaction hash can be checked and filtered on console.log('result.transactionHash', result.transactionHash); // here the arguments from the Event can be read console.log('result.args', result.args); } });
為了幫助其他可能遇到同樣問題的人,我努力讓它工作的一個原因是因為我正在測試https://kovan.infura.io/並且沒有意識到eth_newfilter不是他們支持的 json之一RPC 方法