Ich habe folgenden Code:
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));
}
}
und wenn ich den Code ausführe, bekomme ich:
Found block undefined
[]
Ich hätte erwartet, eine Zahl für logs.blockNumber
und ein Objekt als Rückgabewert zu bekommen ( Quelle: https://github.com/ethereum/wiki/wiki/JavaScript-API#watch-callback-return-value )
Frage: Warum erhalte ich möglicherweise nicht das erwartete Ergebnis?
Möglicherweise liegt das Problem daran, dass filter.get()
Protokolldaten nur zurückgegeben werden, wenn sie web3.eth.filter
initialisiert werden, bevor die gesuchten Transaktionen angezeigt werden.
Mehr Infos in dieser Ausgabe .
Ich denke, das liegt daran, dass die an den Rückruf übergebenen Ergebnisse filter.get
ein Array von Einträgen sind. Ich kann keine Codebeispiele finden, von denen ich dies zuvor getan habe, aber ich bin mir ziemlich sicher, dass logs
Ihr Callback ein Array von Blöcken oder Protokollen ist, nicht nur ein einzelnes. Versuchen Sie einfach , console.log.bind(console)
zu übergehen filter.get
, um zu sehen, was die Rohwerte sind?
console.log.bind(console)
?filter.get(function...)
tunfilter.get(console.log.bind(console))
Webeng
toBlock: 'latest'
erhaltetoBlock: 4076956
ich das gleiche Ergebnis.Viktor Baranow
web3.eth.filter
Webeng
filter.watch
zum Zuhören sei, währendfilter.get
es dazu diente, aus Blöcken zu kommen. Hier: ethereum.stackexchange.com/questions/21694/…