@biconomy/abstractjs
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
57 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildApprove = void 0;
const viem_1 = require("viem");
const composabilityCalls_1 = require("../../../modules/utils/composabilityCalls.js");
const runtimeAbiEncoding_1 = require("../../../modules/utils/runtimeAbiEncoding.js");
const buildComposable_1 = require("./buildComposable.js");
const buildApprove = async (baseParams, parameters, forceComposableEncoding = false, efficientMode = true) => {
const { currentInstructions = [] } = baseParams;
const { chainId, tokenAddress, amount, gasLimit, spender } = parameters;
const abi = viem_1.erc20Abi;
const functionSig = "approve";
const args = [
spender,
amount
];
const functionContext = (0, runtimeAbiEncoding_1.getFunctionContextFromAbi)(functionSig, abi);
const isComposableCall = forceComposableEncoding
? true
: (0, composabilityCalls_1.isComposableCallRequired)(functionContext, args);
let triggerCalls;
if (isComposableCall) {
const composableCallParams = {
to: tokenAddress,
functionName: functionSig,
args: args,
abi,
chainId,
...(gasLimit ? { gasLimit } : {})
};
triggerCalls = await (0, buildComposable_1.buildComposableCall)(baseParams, composableCallParams, efficientMode);
}
else {
triggerCalls = [
{
to: tokenAddress,
data: (0, viem_1.encodeFunctionData)({
abi,
functionName: functionSig,
args: args
}),
...(gasLimit ? { gasLimit } : {})
}
];
}
return [
...currentInstructions,
{
calls: triggerCalls,
chainId,
isComposable: isComposableCall
}
];
};
exports.buildApprove = buildApprove;
exports.default = exports.buildApprove;
//# sourceMappingURL=buildApprove.js.map