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