Dapp-Development

如何通過生成事件的事務的雜湊過濾事件?

  • May 17, 2017

我在Andreas Olofsson 的 回答中讀到以下內容:

事件也可以通過生成事件的事務的雜湊來過濾

有人可以發布一個如何使用oo7-parity.js,web3.jsethjs

我在文件中沒有找到任何特別有用的範例

因此,這可以通過監視合約事件來完成,可選地來自指定的發送者,然後通過交易雜湊過濾結果。這是一個使用範例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);
 }
});

文件:web3.eth.filter契約事件

為了幫助其他可能遇到同樣問題的人,我努力讓它工作的一個原因是因為我正在測試https://kovan.infura.io/並且沒有意識到eth_newfilter不是他們支持的 json之一RPC 方法

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