Manejar los eventos
En el mundo de la programación, los eventos juegan un papel fundamental. Representan acciones significativas o cambios en el estado de un sistema, y su correcta gestión es esencial para lograr una interacción fluida y una experiencia de usuario excepcional.
Veremos como manejar los eventos web3 del sdk para que puedas crear aplicaciones que reaccionen a los cambios en el estado de la blockchain.
Todos los eventos tratados a continuacion representan los cambios locales o de los servicios de Alfa en el estado de la blockchain. No son eventos de la blockchain en si misma.
Los eventos disponibles se ven en la seccion Lista de eventos disponibles
Event bus
Para manejar los eventos, Alfa provee un bus de eventos que permite suscribirse a los eventos que se deseen. El bus de eventos es un objeto que se puede obtener a traves de la propiedad events
del sdk.
Para mas informacion sobre el bus de eventos, ver la seccion Event bus
Suscribirse a un evento
Para suscribirse a un evento, se debe llamar al metodo registerHandler
del bus de eventos, pasando como parametro el nombre del evento al que se desea suscribirse y una funcion que se ejecutara cada vez que se emita el evento. Veamos como podemos suscribirnos al evento MintAssetEvent
:
const eventBus = sdk.events;
eventBus.registerHandler<MintAssetEvent>(MintAssetEvent.eventName, async (event) => {
console.log(`New asset minted: ${event.payload.asset.assetId}`);
});
No es eficaz recargar la lista de assets de una wallet al momento de enviar una transaccion de minado, de transferencia o de borrado porque al ser asincronas, la transaccion puede tardar en ser minada y confirmada. Por lo tanto, es mejor suscribirse a los eventos de minado, transferencia y borrado de assets para actualizar la lista de assets de la wallet cuando se emitan estos eventos.
Recuerda desuscribirte de los eventos cuando ya no los necesites. Ver mas informacion en la seccion Event bus