UNPKG

@biconomy/abstractjs

Version:

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

74 lines 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getInitDataNoRegistry = exports.getInitDataWithRegistry = exports.getFactoryData = void 0; const viem_1 = require("viem"); const __1 = require("../index.js"); const constants_1 = require("../../constants/index.js"); const NexusBootstrapAbi_1 = require("../../constants/abi/NexusBootstrapAbi.js"); const NexusLegacyBootstrapAbi_1 = require("../../constants/abi/NexusLegacyBootstrapAbi.js"); const getFactoryData = (parameters) => { const { index, initData } = parameters; const salt = (0, viem_1.pad)((0, viem_1.toHex)(index), { size: 32 }); return (0, viem_1.encodeFunctionData)({ abi: (0, viem_1.parseAbi)([ "function createAccount(bytes initData, bytes32 salt) external returns (address)" ]), functionName: "createAccount", args: [initData, salt] }); }; exports.getFactoryData = getFactoryData; const getInitDataWithRegistry = (params) => { const bootstrapData = (0, __1.isVersionOlder)(params.meeVersion, constants_1.MEEVersion.V2_0_0) ? (0, viem_1.encodeFunctionData)({ abi: NexusLegacyBootstrapAbi_1.NexusLegacyBootstrapAbi, functionName: "initNexusWithSingleValidator", args: [ params.validators[0].module, params.validators[0].data, params.registryAddress, params.attesters, params.attesterThreshold ] }) : (0, viem_1.encodeFunctionData)({ abi: NexusBootstrapAbi_1.NexusBootstrapAbi, functionName: "initNexusWithSingleValidator", args: [ params.validators[0].module, params.validators[0].data, { registry: params.registryAddress, attesters: params.attesters, threshold: params.attesterThreshold } ] }); return (0, viem_1.encodeAbiParameters)([ { name: "bootstrap", type: "address" }, { name: "bootstrapData", type: "bytes" } ], [params.bootStrapAddress, bootstrapData]); }; exports.getInitDataWithRegistry = getInitDataWithRegistry; const getInitDataNoRegistry = (params) => { return (0, viem_1.encodeAbiParameters)([ { name: "bootstrap", type: "address" }, { name: "bootstrapData", type: "bytes" } ], [ params.bootStrapAddress, (0, viem_1.encodeFunctionData)({ abi: NexusBootstrapAbi_1.NexusBootstrapAbi, functionName: "initNexusWithDefaultValidatorAndOtherModulesNoRegistry", args: [ params.defaultValidator.data, params.validators, params.executors, params.hook, params.fallbacks, params.prevalidationHooks ] }) ]); }; exports.getInitDataNoRegistry = getInitDataNoRegistry; //# sourceMappingURL=getFactoryData.js.map