UNPKG

@lifi/sdk

Version:

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

27 lines 1.3 kB
import { waitForCallsStatus } from 'viem/actions'; import { getAction } from 'viem/utils'; import { LiFiErrorCode } from '../../errors/constants.js'; import { TransactionError } from '../../errors/errors.js'; export const waitForBatchTransactionReceipt = async (client, batchHash, onFailed) => { const result = await getAction(client, waitForCallsStatus, 'waitForCallsStatus')({ id: batchHash, timeout: 3_600_000 * 24, }); if (result.status === 'success') { if (!result.receipts?.length || !result.receipts.every((receipt) => receipt.transactionHash) || result.receipts.some((receipt) => receipt.status === 'reverted')) { onFailed?.(result); throw new TransactionError(LiFiErrorCode.TransactionFailed, 'Transaction was reverted.'); } const transactionReceipt = result.receipts.at(-1); return transactionReceipt; } if (result.statusCode >= 400 && result.statusCode < 500) { onFailed?.(result); throw new TransactionError(LiFiErrorCode.TransactionCanceled, 'Transaction was canceled.'); } onFailed?.(result); throw new TransactionError(LiFiErrorCode.TransactionFailed, 'Transaction failed.'); }; //# sourceMappingURL=waitForBatchTransactionReceipt.js.map