@biconomy/abstractjs
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
74 lines • 3.03 kB
JavaScript
;
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