@biconomy/abstractjs
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
41 lines • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCondition = exports.createConditionInputParam = exports.ConditionType = void 0;
const viem_1 = require("viem");
const composabilityCalls_1 = require("./composabilityCalls.js");
var ConditionType;
(function (ConditionType) {
ConditionType["GTE"] = "gte";
ConditionType["LTE"] = "lte";
ConditionType["EQ"] = "eq";
})(ConditionType || (exports.ConditionType = ConditionType = {}));
const createConditionInputParam = (condition) => {
const encodedParam = (0, viem_1.encodeAbiParameters)([{ type: "address" }, { type: "bytes" }], [
condition.targetContract,
(0, viem_1.encodeFunctionData)({
abi: condition.functionAbi,
functionName: condition.functionName,
args: condition.args
})
]);
const constraintsToAdd = (0, composabilityCalls_1.validateAndProcessConstraints)([condition.constraint]);
return (0, composabilityCalls_1.prepareInputParam)(composabilityCalls_1.InputParamFetcherType.STATIC_CALL, encodedParam, constraintsToAdd);
};
exports.createConditionInputParam = createConditionInputParam;
const createCondition = (params) => {
const constraintMap = {
[ConditionType.GTE]: composabilityCalls_1.greaterThanOrEqualTo,
[ConditionType.LTE]: composabilityCalls_1.lessThanOrEqualTo,
[ConditionType.EQ]: composabilityCalls_1.equalTo
};
return {
targetContract: params.targetContract,
functionAbi: params.functionAbi,
functionName: params.functionName,
args: params.args,
constraint: constraintMap[params.type](params.value),
description: params.description
};
};
exports.createCondition = createCondition;
//# sourceMappingURL=conditions.js.map