Go-Ethereum

過濾器:logs.blockNumber = undefined

  • January 16, 2022

我有以下程式碼:

var filter = web3.eth.filter({
   fromBlock:4076955, 
   toBlock:"latest",
   address:"0x0123456789012345678901234567890123456789"
});

filter.get(function(error,logs){
 if (!error) {
   console.log("Found block " + logs.blockNumber);
   console.log(JSON.stringify(logs,null,2));
 }
}

當我執行程式碼時,我得到:

Found block undefined
[]

我本來希望得到一個數字logs.blockNumber和一個對像作為返回值(來源: https ://github.com/ethereum/wiki/wiki/JavaScript-API#watch-callback-return-value )

**問題:**為什麼我沒有得到預期的結果?

也許,問題是因為filter.get()返回日誌數據,只有web3.eth.filter在您正在查看的事務出現之前初始化。

更多資訊在這個問題

我認為這是因為傳遞給回調的結果filter.get是一個條目數組。我找不到任何我之前做過的程式碼範例,但我很確定logs在你的回調中是一組塊或日誌,而不僅僅是一個。嘗試只是傳遞console.log.bind(console)filter.get,看看原始值是什麼?

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