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