Ich versuche, alle Ereignisse für einen Vertrag zu erhalten:
let events = token.allEvents({fromBlock: creationBlock, toBlock: 'latest'}, (err, res) => {
try {
let result = events.get();
console.log(result);
} catch (error) {
console.error(error);
}
});
Aus irgendeinem Grund wird der Rückrufcode jedes Mal aufgerufen, wenn ein Ereignis gefunden wird. Damit könnte ich leben, aber wenn es keine Events gibt, wird der Callback nie aufgerufen. Ich versuche, alle Ereignisse für einen Vertrag aufzulisten (nicht daran interessiert, nach Ereignissen zu suchen).
Wenn ich versuche, es synchron zu verwenden, events.get()
wird ein Fehler ausgegeben, der besagt, dass synchrone Methoden nicht unterstützt werden.
Es stellte sich heraus, dass ich in diesem Fall den Rückruf nicht hätte verwenden sollen. Hier ist der Arbeitscode:
let events = token.allEvents({fromBlock: creationBlock, toBlock: 'latest'});
events.get((error, events) => {
if (error)
console.log('Error getting events: ' + error);
else
return res.json(events);
});
get
erneut angerufen haben, anstatt nur das Ereignis zu protokollieren.)allEvents
wäre praktisch für einen Frontend-Code, der Ereignisse in Echtzeit anzeigt.get
statt watch
. Der an gelieferte Callback allEvents
ist äquivalent zu watch
.
Benutzer19510
ulu