Web3js
過濾器對像不適用於 web3.eth.contract getPastEvents() 方法
我已經提到了Web3 Events,但是過濾器對像對我不起作用,我在應用過濾器對象之前和之後得到了相同的事件結果。
這是程式碼:
instance.getPastEvents( "Transfer", {filter: {value: [117,50]}}, { fromBlock: 0 , toBlock: "latest" }, (errors, events) => { if (!errors) { console.log(events); } } );
該過濾器對象的真正含義是什麼,根據文件和參考資料,它是自定義欄位,但它必須是對象參數。
需要更正過濾器使用的建議。
過濾器僅在參數被索引時才起作用。例如,ERC20.Tranfer 事件被定義為
Transfer(address indexed from, address indexed to, uint tokens)
, 所以只有from
並且to
可以在過濾器中使用。編輯:我剛剛注意到,您將過濾器作為單獨的對象送出。正確的格式是這樣的:
instance.getPastEvents( "Transfer", { filter: {value: [117,50]}, fromBlock: 0 , toBlock: "latest" }, (errors, events) => { if (!errors) { console.log(events); } } );
使用 web3 1.2.2,我觀察到如果您使用精確的標識符,例如transactionHash ,那麼與**fromBlock和toBlock結合使用時將不起作用。
返回的精確結果:
filter: { transactionHash: txObj.transactionHash, },
所有結果:
{ filter: { transactionHash: txObj.transactionHash, }, fromBlock: 0, toBlock: 'latest' }