@getclave/lifi-sdk
Version:
LI.FI Any-to-Any Cross-Chain-Swap SDK
30 lines (29 loc) • 1.47 kB
JavaScript
;
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;