UNPKG

@biconomy/abstractjs

Version:

SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.

82 lines 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOnChainQuote = void 0; const batchInstructions_1 = require("../../../account/utils/batchInstructions.js"); const resolveInstructions_1 = require("../../../account/utils/resolveInstructions.js"); const getFusionQuote_1 = require("./getFusionQuote.js"); const getQuote_1 = require("./getQuote.js"); const getOnChainQuote = async (client, parameters) => { const { account: account_ = client.account, trigger, cleanUps, instructions, batch = true, gasLimit, ...rest } = parameters; const meeVersions = client.account.deployments.map(({ version, chain }) => ({ chainId: chain.id, version })); const resolvedInstructions = await (0, resolveInstructions_1.resolveInstructions)(instructions); if (trigger.call) { const batchedInstructions = await (0, batchInstructions_1.batchInstructions)({ accountAddress: account_.signer.address, meeVersions, instructions: resolvedInstructions }); const quote = await (0, getQuote_1.getQuote)(client, { path: "quote", eoa: account_.signer.address, batch, instructions: batchedInstructions, gasLimit: gasLimit || getQuote_1.DEFAULT_GAS_LIMIT, ...(cleanUps ? { cleanUps } : {}), ...rest }, "onchain"); return { quote, trigger }; } const owner = account_.signer.address; const spender = account_.addressOn(trigger.chainId, true); const recipient = trigger.recipientAddress || spender; const { triggerGasLimit, triggerAmount, batchedInstructions } = await (0, getFusionQuote_1.prepareInstructions)(client, { resolvedInstructions, trigger, owner, spender, recipient, account: account_, batch }); const triggerInfo = { tokenAddress: trigger.tokenAddress, chainId: trigger.chainId, gasLimit: triggerGasLimit, amount: triggerAmount, ...(trigger.approvalAmount ? { approvalAmount: trigger.approvalAmount } : {}), ...(trigger.recipientAddress ? { recipientAddress: trigger.recipientAddress } : {}) }; const quote = await (0, getQuote_1.getQuote)(client, { path: "quote-permit", eoa: account_.signer.address, instructions: batchedInstructions, batch, gasLimit: gasLimit || triggerGasLimit, ...(cleanUps ? { cleanUps } : {}), ...rest }, "onchain", triggerInfo); let fees = trigger.useMaxAvailableFunds ? 0n : BigInt(quote.paymentInfo.tokenWeiAmount); if (rest.sponsorship) { fees = 0n; } triggerInfo.amount += fees; return { quote, trigger: triggerInfo }; }; exports.getOnChainQuote = getOnChainQuote; exports.default = exports.getOnChainQuote; //# sourceMappingURL=getOnChainQuote.js.map