@biconomy/abstractjs
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
56 lines • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildRawComposable = void 0;
const composabilityCalls_1 = require("../../../modules/utils/composabilityCalls.js");
const conditions_1 = require("../../../modules/utils/conditions.js");
const buildComposable_1 = require("./buildComposable.js");
const buildRawComposable = async (baseParams, parameters, composabilityParameters) => {
const { currentInstructions = [] } = baseParams;
const { to, calldata, gasLimit, value, chainId, conditions, metadata, lowerBoundTimestamp, upperBoundTimestamp, executionSimulationRetryDelay, simulationOverrides } = parameters;
const { composabilityVersion } = composabilityParameters;
if (!composabilityVersion) {
throw new Error(`Composability version is required to build a composable call.
This error may be caused by using a non-composable .build decorator with a composable call.
Please use buildComposable instead.`);
}
if (calldata.length < 10 || !calldata.startsWith("0x")) {
throw new Error("Invalid calldata");
}
const functionSig = calldata.slice(0, 10);
const callDataEncodedArgs = `0x${calldata.slice(10)}`;
let versionAgnosticComposableParams = [];
if (callDataEncodedArgs.length !== 0) {
versionAgnosticComposableParams =
(0, composabilityCalls_1.prepareRawComposableParams)(callDataEncodedArgs);
}
const allInputParams = conditions?.length
? [
...versionAgnosticComposableParams,
...conditions.map(conditions_1.createConditionInputParam)
]
: versionAgnosticComposableParams;
const composableCall = (0, buildComposable_1.formatComposableCallWithVersion)(composabilityVersion, false, allInputParams, functionSig, to, value, gasLimit);
const defaultMetadata = [
{
type: "CUSTOM",
description: "Custom composable on-chain action",
chainId
}
];
return [
...currentInstructions,
{
calls: [composableCall],
chainId,
isComposable: true,
metadata: metadata || defaultMetadata,
lowerBoundTimestamp,
upperBoundTimestamp,
executionSimulationRetryDelay,
simulationOverrides
}
];
};
exports.buildRawComposable = buildRawComposable;
exports.default = exports.buildRawComposable;
//# sourceMappingURL=buildRawComposable.js.map