@effectai/sdk
Version:
Effect Network Javscript/Typescript SDK (for [https://effect.network](https://effect.network))
37 lines • 1.37 kB
JavaScript
export var TxState;
(function (TxState) {
TxState["EXECUTED"] = "EXECUTED";
TxState["SOFT_FAIL"] = "soft_fail";
TxState["HARD_FAIL"] = "hard_fail";
TxState["EXPIRED"] = "EXPIRED";
TxState["IRREVERSIBLE"] = "IRREVERSIBLE";
TxState["IN_BLOCK"] = "IN_BLOCK";
})(TxState || (TxState = {}));
export function waitForTransaction(transactionId, context, state = TxState.IRREVERSIBLE, maxRetries = 3) {
return new Promise((resolve, reject) => {
let attempt = 0;
const interval = setInterval(async () => {
try {
attempt++;
const response = await context.get_transaction_status(transactionId);
if (response.state === TxState.SOFT_FAIL ||
response.state === TxState.HARD_FAIL ||
response.state === TxState.EXPIRED) {
clearInterval(interval);
reject(response);
}
if (response?.state === state) {
clearInterval(interval);
resolve(response);
}
}
catch (error) {
if (attempt > maxRetries) {
clearInterval(interval);
reject(error);
}
}
}, 3000);
});
}
//# sourceMappingURL=transaction.js.map