UNPKG

@biconomy/abstractjs

Version:

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

103 lines 4.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getInitDataNoRegistry = exports.getInitDataWithRegistry = exports.getInitData = exports.getFactoryData = exports.getK1FactoryData = void 0; const viem_1 = require("viem"); const __1 = require("../index.js"); const NexusBootstrapAbi_1 = require("../../constants/abi/NexusBootstrapAbi.js"); const NexusLegacyBootstrapAbi_1 = require("../../constants/abi/NexusLegacyBootstrapAbi.js"); const getK1FactoryData = ({ signerAddress, index, attesters, attesterThreshold }) => (0, viem_1.encodeFunctionData)({ abi: (0, viem_1.parseAbi)([ "function createAccount(address eoaOwner, uint256 index, address[] attesters, uint8 threshold) external returns (address)" ]), functionName: "createAccount", args: [signerAddress, index, attesters, attesterThreshold] }); exports.getK1FactoryData = getK1FactoryData; 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 getInitData = (parameters) => { const { registryAddress, attesters, attesterThreshold, defaultValidator, prevalidationHooks, validators, executors, hook, fallbacks, bootStrapAddress, nexusVersion = "1.2.0" } = parameters; return registryAddress && attesters && attesterThreshold ? (0, exports.getInitDataWithRegistry)({ bootStrapAddress, validators, registryAddress, attesters, attesterThreshold, nexusVersion }) : (0, exports.getInitDataNoRegistry)({ defaultValidator, prevalidationHooks, validators, executors, hook, fallbacks, bootStrapAddress }); }; exports.getInitData = getInitData; const getInitDataWithRegistry = (params) => { const bootstrapData = (0, __1.isVersionOlder)(params.nexusVersion, "1.2.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