@reservoir0x/relay-sdk
Version:
Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.
35 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepareBatchTransaction = exports.canBatchTransactions = void 0;
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);
}
exports.canBatchTransactions = canBatchTransactions;
function prepareBatchTransaction(steps) {
const secondStepId = steps[1]?.id;
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) => {
item.status = 'complete';
item.progressState = 'complete';
return item;
})
],
requestId: steps[1].requestId ?? steps[0].requestId
};
return batchedStep;
}
exports.prepareBatchTransaction = prepareBatchTransaction;
//# sourceMappingURL=prepareBatchTransaction.js.map