@biconomy/abstractjs
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
67 lines • 2.91 kB
JavaScript
;
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