UNPKG

@biconomy/abstractjs

Version:

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

67 lines 2.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signFusionQuote = void 0; const getQuoteType_1 = require("./getQuoteType.js"); const signMmDtkQuote_1 = require("./signMmDtkQuote.js"); const signOnChainQuote_1 = require("./signOnChainQuote.js"); const signPermitQuote_1 = require("./signPermitQuote.js"); const signQuote_1 = require("./signQuote.js"); const signSafeQuote_1 = require("./signSafeQuote.js"); const signFusionQuote = async (client, parameters) => { const startIndex = parameters.fusionQuote.quote.paymentInfo.sponsored ? 1 : 0; const meeVersions = (0, signQuote_1.getMeeVersionsForQuote)(client.account, parameters.fusionQuote.quote.userOps.slice(startIndex)); if ("delegatorSmartAccount" in parameters) { return { ...(await (0, signMmDtkQuote_1.signMMDtkQuote)(client, parameters)), meeVersions, isEIP712TrustedSponsorshipSupported: true }; } if ("safeAccount" in parameters && "safeWalletClient" in parameters) { return { ...(await (0, signSafeQuote_1.signSafeQuote)(client, parameters)), meeVersions, isEIP712TrustedSponsorshipSupported: true }; } const signatureType = parameters.fusionQuote.quote.quoteType || (await (0, getQuoteType_1.getQuoteType)(client, parameters.fusionQuote)); switch (signatureType) { case "permit": { const { trigger } = parameters.fusionQuote; const deployment = client.account.deploymentOn(trigger.chainId, true); const { fallbackToOnchainMode, signedPermitQuotePayload } = await (0, signPermitQuote_1.signPermitQuote)({ fusionQuote: parameters.fusionQuote, account: { owner: client.account.signer.address, spender: deployment.address, walletClient: deployment.walletClient, meeVersions } }); if (fallbackToOnchainMode) { return { ...(await (0, signOnChainQuote_1.default)(client, parameters)), meeVersions, isEIP712TrustedSponsorshipSupported: true }; } return { ...signedPermitQuotePayload, meeVersions, isEIP712TrustedSponsorshipSupported: true }; } case "onchain": return { ...(await (0, signOnChainQuote_1.default)(client, parameters)), meeVersions, isEIP712TrustedSponsorshipSupported: true }; default: throw new Error("Invalid quote type for fusion quote"); } }; exports.signFusionQuote = signFusionQuote; exports.default = exports.signFusionQuote; //# sourceMappingURL=signFusionQuote.js.map