@biconomy/sdk
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
37 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.signFusionQuote = exports.FUSION_NATIVE_TRANSFER_PREFIX = void 0;
const viem_1 = require("viem");
const signQuote_1 = require("./signQuote.js");
exports.FUSION_NATIVE_TRANSFER_PREFIX = "0x150b7a02";
const signFusionQuote = async (client, params) => {
const { account: account_ = client.account, quote, executionMode = "fusion-with-onchain-tx", trigger: { call: call_, chain } } = params;
const call = {
...call_,
data: (0, viem_1.concatHex)([
call_.data ?? exports.FUSION_NATIVE_TRANSFER_PREFIX,
signQuote_1.PREFIX[executionMode],
quote.hash
])
};
const signer = account_.signer;
const masterClient = (0, viem_1.createWalletClient)({
account: signer,
chain,
transport: (0, viem_1.http)()
}).extend(viem_1.publicActions);
const hash = await masterClient.sendTransaction(call);
const receipt = await masterClient.waitForTransactionReceipt({ hash });
const signature = (0, viem_1.concatHex)([
signQuote_1.PREFIX[executionMode],
(0, viem_1.encodeAbiParameters)([{ type: "bytes32" }, { type: "uint256" }], [hash, BigInt(chain.id)])
]);
return {
receipt,
...quote,
signature
};
};
exports.signFusionQuote = signFusionQuote;
exports.default = exports.signFusionQuote;
//# sourceMappingURL=signFusionQuote.js.map