@zerodev/sdk
Version:
A utility library for working with ERC-4337
123 lines • 5.84 kB
JavaScript
import { zeroAddress } from "viem";
import { entryPoint06Address, entryPoint07Address } from "viem/account-abstraction";
export const DUMMY_ECDSA_SIG = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
export const MAGIC_VALUE_SIG_REPLAYABLE = "0x0555ad2729e8da1777a4e5020806f8bf7601c3db6bfe402f410a34958363a95a";
// export const KernelImplToVersionMap: { [key: Address]: string } = {
// "0x8dD4DBB54d8A8Cf0DE6F9CCC4609470A30EfF18C": "0.2.2",
// "0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5": "0.2.2",
// "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab": "0.2.3",
// "0x5FC0236D6c88a65beD32EECDC5D60a5CAb377717": "0.2.3",
// "0xd3082872F8B06073A021b4602e022d5A070d7cfC": "0.2.4",
// "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27": "0.3.0"
// }
export const FACTORY_ADDRESS_V0_6 = "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3";
export const FACTORY_ADDRESS_V0_6_INIT_CODE_HASH = "0xee9d8350bd899dd261db689aafd87eb8a30f085adbaff48152399438ff4eed73";
export const KernelVersionToAddressesMap = {
"0.0.2": {
accountImplementationAddress: zeroAddress,
factoryAddress: "0xaee9762ce625e0a8f7b184670fb57c37bfe1d0f1"
},
"0.2.2": {
accountImplementationAddress: "0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5",
factoryAddress: FACTORY_ADDRESS_V0_6,
initCodeHash: FACTORY_ADDRESS_V0_6_INIT_CODE_HASH
},
"0.2.3": {
accountImplementationAddress: "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab",
factoryAddress: FACTORY_ADDRESS_V0_6,
initCodeHash: FACTORY_ADDRESS_V0_6_INIT_CODE_HASH
},
"0.2.4": {
accountImplementationAddress: "0xd3082872F8B06073A021b4602e022d5A070d7cfC",
factoryAddress: FACTORY_ADDRESS_V0_6,
initCodeHash: FACTORY_ADDRESS_V0_6_INIT_CODE_HASH
},
"0.3.0": {
accountImplementationAddress: "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27",
factoryAddress: "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f",
metaFactoryAddress: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
initCodeHash: "0x6fe6e6ea30eddce942b9618033ab8429f9ddac594053bec8a6744fffc71976e2"
},
"0.3.1": {
accountImplementationAddress: "0xBAC849bB641841b44E965fB01A4Bf5F074f84b4D",
factoryAddress: "0xaac5D4240AF87249B3f71BC8E4A2cae074A3E419",
metaFactoryAddress: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
initCodeHash: "0x85d96aa1c9a65886d094915d76ccae85f14027a02c1647dde659f869460f03e6"
},
"0.3.2": {
accountImplementationAddress: "0xD830D15D3dc0C269F3dBAa0F3e8626d33CFdaBe1",
factoryAddress: "0x7a1dBAB750f12a90EB1B60D2Ae3aD17D4D81EfFe",
metaFactoryAddress: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
initCodeHash: "0xc7c48c9dd12de68b8a4689b6f8c8c07b61d4d6fa4ddecdd86a6980d045fa67eb"
},
"0.3.3": {
accountImplementationAddress: "0xd6CEDDe84be40893d153Be9d467CD6aD37875b28",
factoryAddress: "0x2577507b78c2008Ff367261CB6285d44ba5eF2E9",
metaFactoryAddress: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
initCodeHash: "0xc452397f1e7518f8cea0566ac057e243bb1643f6298aba8eec8cdee78ee3b3dd"
//"0x1fefe62c5b9c14c4661af2e04e4a2fa10205066cae5f629d304d483f5fa9e5fc"
}
};
export const KERNEL_V0_2 = "0.0.2";
export const KERNEL_V2_2 = "0.2.2";
export const KERNEL_V2_3 = "0.2.3";
export const KERNEL_V2_4 = "0.2.4";
export const KERNEL_V3_0 = "0.3.0";
export const KERNEL_V3_1 = "0.3.1";
export const KERNEL_V3_2 = "0.3.2";
export const KERNEL_V3_3_BETA = "0.3.3";
export const KERNEL_V3_3 = "0.3.3";
export const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
export const ONLY_ENTRYPOINT_HOOK_ADDRESS = "0xb230f0A1C7C95fa11001647383c8C7a8F316b900";
export const KERNEL_NAME = "Kernel";
export const VALIDATOR_TYPE = {
SUDO: "0x00",
SECONDARY: "0x01",
PERMISSION: "0x02",
EIP7702: "0x00"
};
export var VALIDATOR_MODE;
(function (VALIDATOR_MODE) {
VALIDATOR_MODE["DEFAULT"] = "0x00";
VALIDATOR_MODE["ENABLE"] = "0x01";
})(VALIDATOR_MODE || (VALIDATOR_MODE = {}));
export var CALL_TYPE;
(function (CALL_TYPE) {
CALL_TYPE["SINGLE"] = "0x00";
CALL_TYPE["BATCH"] = "0x01";
CALL_TYPE["DELEGATE_CALL"] = "0xFF";
})(CALL_TYPE || (CALL_TYPE = {}));
export var EXEC_TYPE;
(function (EXEC_TYPE) {
EXEC_TYPE["DEFAULT"] = "0x00";
EXEC_TYPE["TRY_EXEC"] = "0x01";
})(EXEC_TYPE || (EXEC_TYPE = {}));
export const PLUGIN_TYPE = {
VALIDATOR: 1,
EXECUTOR: 2,
FALLBACK: 3,
HOOK: 4,
POLICY: 5,
SIGNER: 6
};
// Safe's library for create and create2: https://github.com/safe-global/safe-contracts/blob/0acdd35a203299585438f53885df630f9d486a86/contracts/libraries/CreateCall.sol
// Address was found here: https://github.com/safe-global/safe-deployments/blob/926ec6bbe2ebcac3aa2c2c6c0aff74aa590cbc6a/src/assets/v1.4.1/create_call.json
export const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
export const KernelFactoryToInitCodeHashMap = {
"0x5de4839a76cf55d0c90e2061ef4386d962E15ae3": "0xee9d8350bd899dd261db689aafd87eb8a30f085adbaff48152399438ff4eed73",
"0x6723b44Abeec4E71eBE3232BD5B455805baDD22f": "0x6fe6e6ea30eddce942b9618033ab8429f9ddac594053bec8a6744fffc71976e2"
};
export const KERNEL_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
export const getEntryPoint = (entryPointVersion) => {
if (entryPointVersion === "0.6")
return {
address: entryPoint06Address,
version: entryPointVersion
};
return {
address: entryPoint07Address,
version: entryPointVersion
};
};
export const KERNEL_7702_DELEGATION_ADDRESS = "0xd6CEDDe84be40893d153Be9d467CD6aD37875b28";
//# sourceMappingURL=constants.js.map