Estoy tratando de obtener todos los eventos para un contrato:
let events = token.allEvents({fromBlock: creationBlock, toBlock: 'latest'}, (err, res) => {
try {
let result = events.get();
console.log(result);
} catch (error) {
console.error(error);
}
});
Por alguna razón, el código de devolución de llamada se llama cada vez que se encuentra un evento. Podría vivir con eso, pero si no hay eventos, la devolución de llamada nunca se llama. Estoy tratando de enumerar todos los eventos para un contrato (no estoy interesado en ver eventos).
Cuando trato de usarlo de forma sincrónica, events.get()
arroja un error que dice que los métodos sincrónicos no son compatibles.
Resultó que no debería haber usado la devolución de llamada en este caso. Aquí está el código de trabajo:
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
nuevamente en lugar de simplemente registrar el evento).allEvents
sería útil para un código de interfaz que muestra eventos en tiempo real.get
en lugar de watch
. La devolución de llamada proporcionada a allEvents
es equivalente a watch
.
usuario19510
ulú