@reservoir0x/relay-sdk
Version:
Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.
31 lines • 1.27 kB
JavaScript
export function canBatchTransactions(steps) {
const firstStep = steps[0];
const secondStep = steps[1];
const hasIncompleteApproval = firstStep?.items?.some((item) => item.status === 'incomplete');
const hasIncompleteDeposit = secondStep?.items?.some((item) => item.status === 'incomplete');
return (firstStep?.id === 'approve' &&
(secondStep?.id === 'deposit' || secondStep?.id === 'swap') &&
hasIncompleteApproval &&
hasIncompleteDeposit);
}
export function prepareBatchTransaction(steps) {
const secondStepId = steps[1]?.id; // deposit or swap
const batchedStep = {
id: `approve-and-${secondStepId}`,
action: 'Confirm transaction in your wallet',
description: `Batching approval and ${secondStepId} transactions`,
kind: 'transaction',
items: [
...(steps[0].items || []),
...(steps[1].items || []).map((item) => {
// mark the second step as complete
item.status = 'complete';
item.progressState = 'complete';
return item;
})
],
requestId: steps[1].requestId ?? steps[0].requestId
};
return batchedStep;
}
//# sourceMappingURL=prepareBatchTransaction.js.map