UNPKG

@openocean.finance/widget-sdk

Version:

OpenOcean Any-to-Any Cross-Chain-Swap SDK

26 lines 1.29 kB
import { waitForCallsStatus } from 'viem/experimental'; import { getAction } from 'viem/utils'; import { OpenOceanErrorCode } from '../../errors/constants.js'; import { TransactionError } from '../../errors/errors.js'; export const waitForBatchTransactionReceipt = async (client, batchHash) => { const { receipts, status, statusCode } = await getAction(client, waitForCallsStatus, 'waitForCallsStatus')({ id: batchHash, timeout: 300_000, }); 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 TransactionError(OpenOceanErrorCode.TransactionFailed, 'Transaction was reverted.'); } const transactionReceipt = receipts.at(-1); return transactionReceipt; } if (statusCode >= 400 && statusCode < 500) { throw new TransactionError(OpenOceanErrorCode.TransactionCanceled, 'Transaction was canceled.'); } throw new TransactionError(OpenOceanErrorCode.TransactionFailed, 'Transaction failed.'); }; //# sourceMappingURL=waitForBatchTransactionReceipt.js.map