UNPKG

@getclave/lifi-sdk

Version:

LI.FI Any-to-Any Cross-Chain-Swap SDK

30 lines (29 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.waitForBatchTransactionReceipt = void 0; const actions_1 = require("viem/actions"); const utils_1 = require("viem/utils"); const constants_1 = require("../../errors/constants"); const errors_1 = require("../../errors/errors"); const waitForBatchTransactionReceipt = async (client, batchHash) => { const { receipts, status, statusCode } = await (0, utils_1.getAction)(client, actions_1.waitForCallsStatus, 'waitForCallsStatus')({ id: batchHash, timeout: 3_600_000 * 24, }); if (status === 'success' || // @ts-expect-error: for backwards compatibility status === 'CONFIRMED') { if (!receipts?.length || !receipts.every((receipt) => receipt.transactionHash) || receipts.some((receipt) => receipt.status === 'reverted')) { throw new errors_1.TransactionError(constants_1.LiFiErrorCode.TransactionFailed, 'Transaction was reverted.'); } const transactionReceipt = receipts.at(-1); return transactionReceipt; } if (statusCode >= 400 && statusCode < 500) { throw new errors_1.TransactionError(constants_1.LiFiErrorCode.TransactionCanceled, 'Transaction was canceled.'); } throw new errors_1.TransactionError(constants_1.LiFiErrorCode.TransactionFailed, 'Transaction failed.'); }; exports.waitForBatchTransactionReceipt = waitForBatchTransactionReceipt;