UNPKG

@biconomy/abstractjs

Version:

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

44 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sponsorSupertransaction = void 0; const viem_1 = require("viem"); const mee_1 = require("../../clients/decorators/mee/index.js"); const modules_1 = require("../../modules/index.js"); const sponsorSupertransaction = async (mcNexus, params) => { const { chainId, quote } = params; const { signer } = mcNexus.deploymentOn(chainId, true); const leafHashes = quote.userOps.map((userOp) => { return userOp.shortEncoding ? userOp.userOpHash : userOp.meeUserOpHash; }); const merkleTree = (0, modules_1.createMerkleTree)(leafHashes); if (merkleTree.root !== quote.hash) { throw new Error("Invalid merkle tree rebuilt from the quote. Cant approve sponsorship."); } const rawSignature = await signer.signMessage({ message: { raw: quote.hash } }); const proof = merkleTree.getProof(0); const sponsorshipSignedQuote = quote; sponsorshipSignedQuote.userOps[0].userOp.signature = (0, viem_1.concatHex)([ mee_1.DEFAULT_PREFIX, (0, viem_1.encodeAbiParameters)([ { type: "bytes32" }, { type: "uint48" }, { type: "uint48" }, { type: "bytes32[]" }, { type: "bytes" } ], [ sponsorshipSignedQuote.hash, Number(sponsorshipSignedQuote.userOps[0].lowerBoundTimestamp), Number(sponsorshipSignedQuote.userOps[0].upperBoundTimestamp), proof, rawSignature ]) ]); return sponsorshipSignedQuote; }; exports.sponsorSupertransaction = sponsorSupertransaction; exports.default = exports.sponsorSupertransaction; //# sourceMappingURL=sponsorSupertransaction.js.map