Saltar al contenido principal

TransactionObserver

Es una clase que permite el manejo sencillo de los estados de una transaccion usando el observable original emitido por el sdk y haciendo uso de tuberias para vincular funciones a los diferentes estados de la transaccion.

Aqui tienes un ejemplo de su uso:

const erc20Api = sdk.transactions.erc20Api
const transaction = erc20Api.transfer(payload, caller); // No usamos el await

const observer = sdk.transactions.adapterTx(transaction);

observer
.on(TransactionStatus.Pending, (tx) => {
console.log(`Transaction ${tx.id} is pending`);
})
.on(TransactionStatus.Success, (tx) => {
console.log(`Transaction ${tx.id} is successful`);
})
.on(TransactionStatus.Fail, (tx) => {
console.log(`Transaction ${tx.id} is failed`);
})
.listen();
info

Recuerda siempre ejecutar listen al final para activar la subscripcion.

On

La funcion on te permite vincular una funcion a un determinado estado de transaccion.

observer.on(TransactionStatus.Pending, (tx) => {
console.log(`Transaction ${tx.id} is pending`);
})

Map

La funcion map te permite enviar una funcion para transformar los datos de salida.

const observer = sdk.transactions.adapterTx(transaction); // Aqui emite ITransaction

const mappedId = observer.map(tx => ({ mappedId: tx.id })); // Aqui solo emitimos un objeto con el id.

mappedId.on(TransactionStatus.Success, ({ mappedId }) => {
console.log(`Transaction ${mappedId} is successful`);
})

Observable

La propiedad observable te permite acceder al observable original emitido por el sdk y hacer uso de sus funciones.

const observer = sdk.transactions.adapterTx(transaction);

const originalObservable = observer.observable; // Observable<ITransaction>

originalObservable.subscribe((tx) => {
console.log(`Transaction ${tx.id} is ${tx.status}`);
})