UNPKG

@biconomy/abstractjs

Version:

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

43 lines 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildRawComposable = void 0; const viem_1 = require("viem"); const composabilityCalls_1 = require("../../../modules/utils/composabilityCalls.js"); const buildRawComposable = async (baseParams, parameters) => { const { currentInstructions = [] } = baseParams; const { account } = baseParams; const { to, calldata, gasLimit, value, chainId } = parameters; if (!(0, viem_1.isAddress)(to)) { throw new Error("Invalid target contract address"); } const smartAccountAddress = account.addressOn(chainId, true); if (!(0, viem_1.isAddress)(smartAccountAddress)) { throw new Error("Invalid smart account address"); } if (calldata.length < 10 || !calldata.startsWith("0x")) { throw new Error("Invalid calldata"); } const functionSig = calldata.slice(0, 10); const composableParams = (0, composabilityCalls_1.prepareRawComposableParams)(`0x${calldata.slice(10)}`); const composableCalls = []; const composableCall = { to, value: value ?? BigInt(0), functionSig, inputParams: composableParams, outputParams: [], ...(gasLimit ? { gasLimit } : {}) }; composableCalls.push(composableCall); return [ ...currentInstructions, { calls: composableCalls, chainId, isComposable: true } ]; }; exports.buildRawComposable = buildRawComposable; exports.default = exports.buildRawComposable; //# sourceMappingURL=buildRawComposable.js.map