Web3js
按合約地址和發送者地址過濾事件
我需要通過兩個參數來觀察事件:代幣合約地址和發送者地址。我找到瞭如何查看合約地址,但不確定如何通過發件人地址查看?我應該為這樣的主題指定地址嗎?:
var eventFilter = web3.eth.filter({ fromBlock:0, toBlock: 'latest', address: '0xefcc9f9a5cb3d6062c18eeffdf90a29bb771fccc', 'topics':[web3.sha3('Transfer(address,address,uint256,uint256)'), web3.sha3('0xdd7b798cbfe06af77fdc4b64e48f71672595adcf')]}); eventFilter.watch(function(error, result) { if(error) throw error; console.log(result); });
或者也許有不同的方式?
FilterChange 中的地址是發出合約的地址。
您需要在事件定義中包含發件人地址才能進入 FiltecChange。只有當您索引地址時,它才會顯示在主題中,以便您可以過濾它。
event CalledTrigger (address indexed from, uint256 value1, uint256 value2); function triggerEvent() public { uint256 myVal1 = 9999; uint256 myVal2 = 9999; emit CalledTrigger2(msg.sender, myVal1, myVal2); }
但你的問題可能是你的話題
$$ 1 $$是地址的 sha3,而不是我想您要過濾的地址。