@zerodev/sdk 5.4.9 → 5.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js +38 -1
  2. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js.map +1 -1
  3. package/_cjs/accounts/kernel/createKernelAccount.js +26 -1
  4. package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
  5. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js +18 -0
  6. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js.map +1 -0
  7. package/_cjs/accounts/utils/toKernelPluginManager.js +1 -0
  8. package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
  9. package/_cjs/actions/public/index.js +3 -1
  10. package/_cjs/actions/public/index.js.map +1 -1
  11. package/_cjs/actions/public/isPluginInstalled.js +23 -0
  12. package/_cjs/actions/public/isPluginInstalled.js.map +1 -0
  13. package/_cjs/constants.js +9 -1
  14. package/_cjs/constants.js.map +1 -1
  15. package/_cjs/types/index.js.map +1 -1
  16. package/_cjs/types/kernel.js.map +1 -1
  17. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js +37 -0
  18. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js.map +1 -1
  19. package/_esm/accounts/kernel/createKernelAccount.js +33 -2
  20. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  21. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js +14 -0
  22. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js.map +1 -0
  23. package/_esm/accounts/utils/toKernelPluginManager.js +1 -0
  24. package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
  25. package/_esm/actions/public/index.js +1 -0
  26. package/_esm/actions/public/index.js.map +1 -1
  27. package/_esm/actions/public/isPluginInstalled.js +44 -0
  28. package/_esm/actions/public/isPluginInstalled.js.map +1 -0
  29. package/_esm/constants.js +8 -0
  30. package/_esm/constants.js.map +1 -1
  31. package/_esm/types/index.js.map +1 -1
  32. package/_esm/types/kernel.js.map +1 -1
  33. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.d.ts +41 -0
  34. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.d.ts.map +1 -1
  35. package/_types/accounts/kernel/createKernelAccount.d.ts +3 -2
  36. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  37. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.d.ts +5 -0
  38. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.d.ts.map +1 -0
  39. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  40. package/_types/actions/public/index.d.ts +1 -0
  41. package/_types/actions/public/index.d.ts.map +1 -1
  42. package/_types/actions/public/isPluginInstalled.d.ts +37 -0
  43. package/_types/actions/public/isPluginInstalled.d.ts.map +1 -0
  44. package/_types/constants.d.ts +8 -0
  45. package/_types/constants.d.ts.map +1 -1
  46. package/_types/types/index.d.ts +1 -1
  47. package/_types/types/index.d.ts.map +1 -1
  48. package/_types/types/kernel.d.ts +8 -1
  49. package/_types/types/kernel.d.ts.map +1 -1
  50. package/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.ts +39 -0
  51. package/accounts/kernel/createKernelAccount.ts +64 -3
  52. package/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.ts +19 -0
  53. package/accounts/utils/toKernelPluginManager.ts +1 -0
  54. package/actions/public/index.ts +1 -0
  55. package/actions/public/isPluginInstalled.ts +62 -0
  56. package/constants.ts +9 -0
  57. package/package.json +1 -1
  58. package/types/index.ts +2 -1
  59. package/types/kernel.ts +10 -1
@@ -0,0 +1,44 @@
1
+ import { readContract } from "viem/actions";
2
+ import { getAction } from "viem/utils";
3
+ import { KernelModuleIsModuleInstalledAbi } from "../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js";
4
+ /**
5
+ * Returns whether a plugin is installed on the account.
6
+ *
7
+ * @param client - Client to use
8
+ * @param args - {@link IsPluginInstalledParams} address and plugin details
9
+ * @returns boolean indicating if plugin is installed
10
+ *
11
+ * @example
12
+ * import { createPublicClient } from "viem"
13
+ * import { isPluginInstalled } from "@zerodev/sdk"
14
+ *
15
+ * const client = createPublicClient({
16
+ * chain: mainnet,
17
+ * transport: http()
18
+ * })
19
+ *
20
+ * const isInstalled = await isPluginInstalled(client, {
21
+ * address: accountAddress,
22
+ * plugin: {
23
+ * type: PLUGIN_TYPE.VALIDATOR,
24
+ * address: validatorAddress,
25
+ * data: "0x"
26
+ * }
27
+ * })
28
+ */
29
+ export const isPluginInstalled = async (client, args) => {
30
+ const { address, plugin } = args;
31
+ const { type, address: pluginAddress, data = "0x" } = plugin;
32
+ try {
33
+ return await getAction(client, readContract, "readContract")({
34
+ address,
35
+ abi: KernelModuleIsModuleInstalledAbi,
36
+ functionName: "isModuleInstalled",
37
+ args: [BigInt(type), pluginAddress, data]
38
+ });
39
+ }
40
+ catch (error) {
41
+ return false;
42
+ }
43
+ };
44
+ //# sourceMappingURL=isPluginInstalled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPluginInstalled.js","sourceRoot":"","sources":["../../../actions/public/isPluginInstalled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,6DAA6D,CAAA;AAY9G;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAClC,MAAc,EACd,IAA6B,EACb,EAAE;IAClB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAChC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAE5D,IAAI,CAAC;QACD,OAAO,MAAM,SAAS,CAClB,MAAM,EACN,YAAY,EACZ,cAAc,CACjB,CAAC;YACE,OAAO;YACP,GAAG,EAAE,gCAAgC;YACrC,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC;SAC5C,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA"}
package/_esm/constants.js CHANGED
@@ -82,6 +82,14 @@ export var EXEC_TYPE;
82
82
  EXEC_TYPE["DEFAULT"] = "0x00";
83
83
  EXEC_TYPE["TRY_EXEC"] = "0x01";
84
84
  })(EXEC_TYPE || (EXEC_TYPE = {}));
85
+ export const PLUGIN_TYPE = {
86
+ VALIDATOR: 1,
87
+ EXECUTOR: 2,
88
+ FALLBACK: 3,
89
+ HOOK: 4,
90
+ POLICY: 5,
91
+ SIGNER: 6
92
+ };
85
93
  // Safe's library for create and create2: https://github.com/safe-global/safe-contracts/blob/0acdd35a203299585438f53885df630f9d486a86/contracts/libraries/CreateCall.sol
86
94
  // Address was found here: https://github.com/safe-global/safe-deployments/blob/926ec6bbe2ebcac3aa2c2c6c0aff74aa590cbc6a/src/assets/v1.4.1/create_call.json
87
95
  export const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAyNA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AA4NA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
@@ -13,4 +13,45 @@ export declare const KernelModuleIsInitializedAbi: readonly [{
13
13
  }];
14
14
  readonly stateMutability: "view";
15
15
  }];
16
+ export declare const KernelModuleInstallAbi: readonly [{
17
+ readonly inputs: readonly [{
18
+ readonly internalType: "uint256";
19
+ readonly name: "moduleType";
20
+ readonly type: "uint256";
21
+ }, {
22
+ readonly internalType: "address";
23
+ readonly name: "module";
24
+ readonly type: "address";
25
+ }, {
26
+ readonly internalType: "bytes";
27
+ readonly name: "initData";
28
+ readonly type: "bytes";
29
+ }];
30
+ readonly stateMutability: "payable";
31
+ readonly type: "function";
32
+ readonly name: "installModule";
33
+ }];
34
+ export declare const KernelModuleIsModuleInstalledAbi: readonly [{
35
+ readonly inputs: readonly [{
36
+ readonly internalType: "uint256";
37
+ readonly name: "moduleType";
38
+ readonly type: "uint256";
39
+ }, {
40
+ readonly internalType: "address";
41
+ readonly name: "module";
42
+ readonly type: "address";
43
+ }, {
44
+ readonly internalType: "bytes";
45
+ readonly name: "additionalContext";
46
+ readonly type: "bytes";
47
+ }];
48
+ readonly stateMutability: "view";
49
+ readonly type: "function";
50
+ readonly name: "isModuleInstalled";
51
+ readonly outputs: readonly [{
52
+ readonly internalType: "bool";
53
+ readonly name: "";
54
+ readonly type: "bool";
55
+ }];
56
+ }];
16
57
  //# sourceMappingURL=KernelModuleAbi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KernelModuleAbi.d.ts","sourceRoot":"","sources":["../../../../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;EAU/B,CAAA"}
1
+ {"version":3,"file":"KernelModuleAbi.d.ts","sourceRoot":"","sources":["../../../../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;EAU/B,CAAA;AAEV,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;EAezB,CAAA;AAEV,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;EAoBnC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { type Address, type Assign, type Client, type EncodeDeployDataParameters, type Hex, type SignableMessage } from "viem";
2
2
  import { type EntryPointVersion, type SmartAccount, type SmartAccountImplementation } from "viem/account-abstraction";
3
- import type { CallType, EntryPointType, GetEntryPointAbi, GetKernelVersion, KernelPluginManager, KernelPluginManagerParams } from "../../types/kernel.js";
3
+ import type { CallType, EntryPointType, GetEntryPointAbi, GetKernelVersion, KernelPluginManager, KernelPluginManagerParams, PluginMigrationData } from "../../types/kernel.js";
4
4
  type SignMessageParameters = {
5
5
  message: SignableMessage;
6
6
  useReplayableSignature?: boolean;
@@ -28,6 +28,7 @@ export type CreateKernelAccountParameters<entryPointVersion extends EntryPointVe
28
28
  kernelVersion: GetKernelVersion<entryPointVersion>;
29
29
  initConfig?: KernelVerion extends "0.3.1" ? Hex[] : never;
30
30
  useMetaFactory?: boolean;
31
+ pluginMigrations?: PluginMigrationData[];
31
32
  };
32
33
  /**
33
34
  * Default addresses for kernel smart account
@@ -50,6 +51,6 @@ export declare const KERNEL_ADDRESSES: {
50
51
  * @param ecdsaValidatorAddress
51
52
  * @param address
52
53
  */
53
- export declare function createKernelAccount<entryPointVersion extends EntryPointVersion, KernelVersion extends GetKernelVersion<entryPointVersion>>(client: Client, { plugins, entryPoint, index, factoryAddress: _factoryAddress, accountImplementationAddress: _accountImplementationAddress, metaFactoryAddress: _metaFactoryAddress, address, kernelVersion, initConfig, useMetaFactory }: CreateKernelAccountParameters<entryPointVersion, KernelVersion>): Promise<CreateKernelAccountReturnType<entryPointVersion>>;
54
+ export declare function createKernelAccount<entryPointVersion extends EntryPointVersion, KernelVersion extends GetKernelVersion<entryPointVersion>>(client: Client, { plugins, entryPoint, index, factoryAddress: _factoryAddress, accountImplementationAddress: _accountImplementationAddress, metaFactoryAddress: _metaFactoryAddress, address, kernelVersion, initConfig, useMetaFactory, pluginMigrations }: CreateKernelAccountParameters<entryPointVersion, KernelVersion>): Promise<CreateKernelAccountReturnType<entryPointVersion>>;
54
55
  export {};
55
56
  //# sourceMappingURL=createKernelAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type Address } from "viem";
2
+ import type { PluginMigrationData } from "../../../../../types/kernel.js";
3
+ import type { CallArgs } from "../../types.js";
4
+ export declare const getPluginInstallCallData: (accountAddress: Address, plugin: PluginMigrationData) => CallArgs;
5
+ //# sourceMappingURL=getPluginInstallCallData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPluginInstallCallData.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,MAAM,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,eAAO,MAAM,wBAAwB,mBACjB,OAAO,UACf,mBAAmB,KAC5B,QAUF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,MAAM,EASd,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAQjE,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAU9B,wBAAgB,qBAAqB,CACjC,iBAAiB,SAAS,iBAAiB,EAG3C,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAElD;AAED,wBAAsB,qBAAqB,CACvC,iBAAiB,SAAS,iBAAiB,EAE3C,MAAM,EAAE,MAAM,EACd,EACI,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,UAAc,EACd,UAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACV,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,GAChD,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CA4VjD"}
1
+ {"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,MAAM,EASd,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAQjE,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAU9B,wBAAgB,qBAAqB,CACjC,iBAAiB,SAAS,iBAAiB,EAG3C,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAElD;AAED,wBAAsB,qBAAqB,CACvC,iBAAiB,SAAS,iBAAiB,EAE3C,MAAM,EAAE,MAAM,EACd,EACI,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,UAAc,EACd,UAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACV,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,GAChD,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CA6VjD"}
@@ -2,4 +2,5 @@ export { type GetAccountNonceParams, getAccountNonce } from "./getAccountNonce.j
2
2
  export { type GetSenderAddressParams, type InvalidEntryPointError, getSenderAddress } from "./getSenderAddress.js";
3
3
  export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js";
4
4
  export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js";
5
+ export { isPluginInstalled } from "./isPluginInstalled.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,37 @@
1
+ import type { Address, Client, Hex } from "viem";
2
+ import type { PLUGIN_TYPE } from "../../constants.js";
3
+ export type IsPluginInstalledParams = {
4
+ address: Address;
5
+ plugin: {
6
+ type: (typeof PLUGIN_TYPE)[keyof typeof PLUGIN_TYPE];
7
+ address: Address;
8
+ data?: Hex;
9
+ };
10
+ };
11
+ /**
12
+ * Returns whether a plugin is installed on the account.
13
+ *
14
+ * @param client - Client to use
15
+ * @param args - {@link IsPluginInstalledParams} address and plugin details
16
+ * @returns boolean indicating if plugin is installed
17
+ *
18
+ * @example
19
+ * import { createPublicClient } from "viem"
20
+ * import { isPluginInstalled } from "@zerodev/sdk"
21
+ *
22
+ * const client = createPublicClient({
23
+ * chain: mainnet,
24
+ * transport: http()
25
+ * })
26
+ *
27
+ * const isInstalled = await isPluginInstalled(client, {
28
+ * address: accountAddress,
29
+ * plugin: {
30
+ * type: PLUGIN_TYPE.VALIDATOR,
31
+ * address: validatorAddress,
32
+ * data: "0x"
33
+ * }
34
+ * })
35
+ */
36
+ export declare const isPluginInstalled: (client: Client, args: IsPluginInstalledParams) => Promise<boolean>;
37
+ //# sourceMappingURL=isPluginInstalled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPluginInstalled.d.ts","sourceRoot":"","sources":["../../../actions/public/isPluginInstalled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,MAAM,uBAAuB,GAAG;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE;QACJ,IAAI,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAA;QACpD,OAAO,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,GAAG,CAAA;KACb,CAAA;CACJ,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,iBAAiB,WAClB,MAAM,QACR,uBAAuB,KAC9B,QAAQ,OAAO,CAkBjB,CAAA"}
@@ -41,6 +41,14 @@ export declare enum EXEC_TYPE {
41
41
  DEFAULT = "0x00",
42
42
  TRY_EXEC = "0x01"
43
43
  }
44
+ export declare const PLUGIN_TYPE: {
45
+ VALIDATOR: number;
46
+ EXECUTOR: number;
47
+ FALLBACK: number;
48
+ HOOK: number;
49
+ POLICY: number;
50
+ SIGNER: number;
51
+ };
44
52
  export declare const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
45
53
  export declare const KernelFactoryToInitCodeHashMap: {
46
54
  [key: Address]: Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAA;AAC1D,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EACR,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAWxE,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mCAAmC,uEACwB,CAAA;AAExE,eAAO,MAAM,2BAA2B,EAAE;KACrC,GAAG,IAAI,mBAAmB,GAAG;QAC1B,4BAA4B,EAAE,OAAO,CAAA;QACrC,cAAc,EAAE,OAAO,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,SAAS,sBAAsB,GACjD,OAAO,GACP,KAAK,CAAA;QACX,YAAY,CAAC,EAAE,GAAG,CAAA;KACrB;CAgDJ,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAE1D,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,4BAA4B,+CACO,CAAA;AAChD,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAA;CAKjE,CAAA;AAED,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAExE,eAAO,MAAM,aAAa,6HAYzB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAA;AAC1D,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EACR,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAWxE,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mCAAmC,uEACwB,CAAA;AAExE,eAAO,MAAM,2BAA2B,EAAE;KACrC,GAAG,IAAI,mBAAmB,GAAG;QAC1B,4BAA4B,EAAE,OAAO,CAAA;QACrC,cAAc,EAAE,OAAO,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,SAAS,sBAAsB,GACjD,OAAO,GACP,KAAK,CAAA;QACX,YAAY,CAAC,EAAE,GAAG,CAAA;KACrB;CAgDJ,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAE1D,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,4BAA4B,+CACO,CAAA;AAChD,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAED,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAA;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAA;CAKjE,CAAA;AAED,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAExE,eAAO,MAAM,aAAa,6HAYzB,CAAA"}
@@ -1,4 +1,4 @@
1
- export type { KernelValidator, ZeroDevPaymasterRpcSchema, Action, KernelPluginManager, ValidatorInitData, CallType, KernelEncodeCallDataArgs, PluginValidityData, ZeroDevAccountClientRpcSchema, ZeroDevUserOperationGasPriceWithBigIntAsHex, KERNEL_V2_VERSION_TYPE, KERNEL_V3_VERSION_TYPE, KERNEL_VERSION_TYPE, GetKernelVersion, GetEntryPointAbi, EntryPointType } from "./kernel.js";
1
+ export type { KernelValidator, ZeroDevPaymasterRpcSchema, Action, KernelPluginManager, ValidatorInitData, CallType, KernelEncodeCallDataArgs, PluginValidityData, ZeroDevAccountClientRpcSchema, ZeroDevUserOperationGasPriceWithBigIntAsHex, KERNEL_V2_VERSION_TYPE, KERNEL_V3_VERSION_TYPE, KERNEL_VERSION_TYPE, GetKernelVersion, GetEntryPointAbi, EntryPointType, PluginMigrationData } from "./kernel.js";
2
2
  export { ValidatorMode } from "./kernel.js";
3
3
  export type { Signer } from "./utils.js";
4
4
  export type WithRequired<T, K extends keyof T> = Required<Pick<T, K>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,eAAe,EACf,yBAAyB,EACzB,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,2CAA2C,EAC3C,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAErE,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,eAAe,EACf,yBAAyB,EACzB,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,2CAA2C,EAC3C,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAErE,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { Address, CustomSource, Hex, LocalAccount, PartialBy } from "viem";
2
2
  import type { EntryPointVersion, UserOperation, entryPoint06Abi, entryPoint07Abi } from "viem/account-abstraction";
3
- import type { VALIDATOR_TYPE } from "../constants.js";
3
+ import type { PLUGIN_TYPE, VALIDATOR_TYPE } from "../constants.js";
4
4
  export type ZeroDevPaymasterRpcSchema<entryPointVersion extends EntryPointVersion> = [
5
5
  {
6
6
  Method: "zd_sponsorUserOperation";
@@ -111,9 +111,11 @@ export type ValidatorInitData = {
111
111
  identifier: Hex;
112
112
  initConfig?: Hex[];
113
113
  };
114
+ export type ActiveValidatorMode = "sudo" | "regular";
114
115
  export type KernelPluginManager<entryPointVersion extends EntryPointVersion> = KernelValidator & {
115
116
  sudoValidator?: KernelValidator;
116
117
  regularValidator?: KernelValidator;
118
+ activeValidatorMode: ActiveValidatorMode;
117
119
  hook?: KernelValidatorHook;
118
120
  getPluginEnableSignature(accountAddress: Address): Promise<Hex>;
119
121
  getValidatorInitData(): Promise<ValidatorInitData>;
@@ -160,6 +162,11 @@ export declare enum ValidatorMode {
160
162
  plugin = "0x00000001",
161
163
  enable = "0x00000002"
162
164
  }
165
+ export type PluginMigrationData = {
166
+ type: (typeof PLUGIN_TYPE)[keyof typeof PLUGIN_TYPE];
167
+ address: Address;
168
+ data: Hex;
169
+ };
163
170
  export type CallType = "call" | "delegatecall";
164
171
  export type KernelEncodeCallDataArgs = {
165
172
  to: Address;
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"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"}
@@ -9,3 +9,42 @@ export const KernelModuleIsInitializedAbi = [
9
9
  stateMutability: "view"
10
10
  }
11
11
  ] as const
12
+
13
+ export const KernelModuleInstallAbi = [
14
+ {
15
+ inputs: [
16
+ {
17
+ internalType: "uint256",
18
+ name: "moduleType",
19
+ type: "uint256"
20
+ },
21
+ { internalType: "address", name: "module", type: "address" },
22
+ { internalType: "bytes", name: "initData", type: "bytes" }
23
+ ],
24
+ stateMutability: "payable",
25
+ type: "function",
26
+ name: "installModule"
27
+ }
28
+ ] as const
29
+
30
+ export const KernelModuleIsModuleInstalledAbi = [
31
+ {
32
+ inputs: [
33
+ {
34
+ internalType: "uint256",
35
+ name: "moduleType",
36
+ type: "uint256"
37
+ },
38
+ { internalType: "address", name: "module", type: "address" },
39
+ {
40
+ internalType: "bytes",
41
+ name: "additionalContext",
42
+ type: "bytes"
43
+ }
44
+ ],
45
+ stateMutability: "view",
46
+ type: "function",
47
+ name: "isModuleInstalled",
48
+ outputs: [{ internalType: "bool", name: "", type: "bool" }]
49
+ }
50
+ ] as const
@@ -30,7 +30,8 @@ import { getChainId } from "viem/actions"
30
30
  import { getAction } from "viem/utils"
31
31
  import {
32
32
  getAccountNonce,
33
- getSenderAddress
33
+ getSenderAddress,
34
+ isPluginInstalled
34
35
  } from "../../actions/public/index.js"
35
36
  import {
36
37
  KernelVersionToAddressesMap,
@@ -42,7 +43,8 @@ import type {
42
43
  GetEntryPointAbi,
43
44
  GetKernelVersion,
44
45
  KernelPluginManager,
45
- KernelPluginManagerParams
46
+ KernelPluginManagerParams,
47
+ PluginMigrationData
46
48
  } from "../../types/kernel.js"
47
49
  import { KERNEL_FEATURES, hasKernelFeature } from "../../utils.js"
48
50
  import { validateKernelVersionWithEntryPoint } from "../../utils.js"
@@ -61,6 +63,7 @@ import { encodeCallData as encodeCallDataEpV07 } from "./utils/account/ep0_7/enc
61
63
  import { encodeDeployCallData as encodeDeployCallDataV07 } from "./utils/account/ep0_7/encodeDeployCallData.js"
62
64
  import { accountMetadata } from "./utils/common/accountMetadata.js"
63
65
  import { eip712WrapHash } from "./utils/common/eip712WrapHash.js"
66
+ import { getPluginInstallCallData } from "./utils/plugins/ep0_7/getPluginInstallCallData.js"
64
67
 
65
68
  type SignMessageParameters = {
66
69
  message: SignableMessage
@@ -117,6 +120,7 @@ export type CreateKernelAccountParameters<
117
120
  kernelVersion: GetKernelVersion<entryPointVersion>
118
121
  initConfig?: KernelVerion extends "0.3.1" ? Hex[] : never
119
122
  useMetaFactory?: boolean
123
+ pluginMigrations?: PluginMigrationData[]
120
124
  }
121
125
 
122
126
  /**
@@ -329,6 +333,11 @@ const getDefaultAddresses = <entryPointVersion extends EntryPointVersion>(
329
333
  }
330
334
  }
331
335
 
336
+ type PluginInstallationCache = {
337
+ pendingPlugins: PluginMigrationData[]
338
+ allInstalled: boolean
339
+ }
340
+
332
341
  /**
333
342
  * Build a kernel smart account from a private key, that use the ECDSA signer behind the scene
334
343
  * @param client
@@ -355,7 +364,8 @@ export async function createKernelAccount<
355
364
  address,
356
365
  kernelVersion,
357
366
  initConfig,
358
- useMetaFactory = true
367
+ useMetaFactory = true,
368
+ pluginMigrations
359
369
  }: CreateKernelAccountParameters<entryPointVersion, KernelVersion>
360
370
  ): Promise<CreateKernelAccountReturnType<entryPointVersion>> {
361
371
  const { accountImplementationAddress, factoryAddress, metaFactoryAddress } =
@@ -449,6 +459,38 @@ export async function createKernelAccount<
449
459
  version: entryPoint?.version ?? "0.7"
450
460
  } as const
451
461
 
462
+ // Cache for plugin installation status
463
+ const pluginCache: PluginInstallationCache = {
464
+ pendingPlugins: pluginMigrations || [],
465
+ allInstalled: false
466
+ }
467
+
468
+ const checkPluginInstallationStatus = async () => {
469
+ // Skip if no plugins or all are installed
470
+ if (!pluginCache.pendingPlugins.length || pluginCache.allInstalled) {
471
+ pluginCache.allInstalled = true
472
+ return
473
+ }
474
+
475
+ // Check all pending plugins in parallel
476
+ const installationResults = await Promise.all(
477
+ pluginCache.pendingPlugins.map((plugin) =>
478
+ isPluginInstalled(client, {
479
+ address: accountAddress,
480
+ plugin
481
+ })
482
+ )
483
+ )
484
+
485
+ // Filter out installed plugins
486
+ pluginCache.pendingPlugins = pluginCache.pendingPlugins.filter(
487
+ (_, index) => !installationResults[index]
488
+ )
489
+ pluginCache.allInstalled = pluginCache.pendingPlugins.length === 0
490
+ }
491
+
492
+ await checkPluginInstallationStatus()
493
+
452
494
  return toSmartAccount<KernelSmartAccountImplementation<entryPointVersion>>({
453
495
  kernelVersion,
454
496
  kernelPluginManager,
@@ -487,6 +529,25 @@ export async function createKernelAccount<
487
529
  return encodeDeployCallDataV07(_tx)
488
530
  },
489
531
  async encodeCalls(calls, callType) {
532
+ // Check plugin status only if we have pending plugins
533
+ await checkPluginInstallationStatus()
534
+
535
+ // Add plugin installation calls if needed
536
+ if (
537
+ pluginCache.pendingPlugins.length > 0 &&
538
+ entryPoint.version === "0.7" &&
539
+ kernelPluginManager.activeValidatorMode === "sudo"
540
+ ) {
541
+ const pluginInstallCalls = pluginCache.pendingPlugins.map(
542
+ (plugin) => getPluginInstallCallData(accountAddress, plugin)
543
+ )
544
+ return encodeCallDataEpV07(
545
+ [...calls, ...pluginInstallCalls],
546
+ callType,
547
+ plugins.hook ? true : undefined
548
+ )
549
+ }
550
+
490
551
  if (
491
552
  calls.length === 1 &&
492
553
  (!callType || callType === "call") &&
@@ -0,0 +1,19 @@
1
+ import { type Address, encodeFunctionData } from "viem"
2
+ import type { PluginMigrationData } from "../../../../../types/kernel.js"
3
+ import { KernelModuleInstallAbi } from "../../../abi/kernel_v_3_0_0/KernelModuleAbi.js"
4
+ import type { CallArgs } from "../../types.js"
5
+
6
+ export const getPluginInstallCallData = (
7
+ accountAddress: Address,
8
+ plugin: PluginMigrationData
9
+ ): CallArgs => {
10
+ const data = encodeFunctionData({
11
+ abi: KernelModuleInstallAbi,
12
+ functionName: "installModule",
13
+ args: [plugin.type, plugin.address, plugin.data]
14
+ })
15
+ return {
16
+ to: accountAddress,
17
+ data
18
+ }
19
+ }
@@ -264,6 +264,7 @@ export async function toKernelPluginManager<
264
264
  return {
265
265
  sudoValidator: sudo,
266
266
  regularValidator: regular,
267
+ activeValidatorMode: sudo && !regular ? "sudo" : "regular",
267
268
  ...activeValidator,
268
269
  hook,
269
270
  getIdentifier,
@@ -9,3 +9,4 @@ export {
9
9
  } from "./getSenderAddress.js"
10
10
  export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js"
11
11
  export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js"
12
+ export { isPluginInstalled } from "./isPluginInstalled.js"
@@ -0,0 +1,62 @@
1
+ import type { Address, Client, Hex } from "viem"
2
+ import { readContract } from "viem/actions"
3
+ import { getAction } from "viem/utils"
4
+ import { KernelModuleIsModuleInstalledAbi } from "../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js"
5
+ import type { PLUGIN_TYPE } from "../../constants.js"
6
+
7
+ export type IsPluginInstalledParams = {
8
+ address: Address
9
+ plugin: {
10
+ type: (typeof PLUGIN_TYPE)[keyof typeof PLUGIN_TYPE]
11
+ address: Address
12
+ data?: Hex
13
+ }
14
+ }
15
+
16
+ /**
17
+ * Returns whether a plugin is installed on the account.
18
+ *
19
+ * @param client - Client to use
20
+ * @param args - {@link IsPluginInstalledParams} address and plugin details
21
+ * @returns boolean indicating if plugin is installed
22
+ *
23
+ * @example
24
+ * import { createPublicClient } from "viem"
25
+ * import { isPluginInstalled } from "@zerodev/sdk"
26
+ *
27
+ * const client = createPublicClient({
28
+ * chain: mainnet,
29
+ * transport: http()
30
+ * })
31
+ *
32
+ * const isInstalled = await isPluginInstalled(client, {
33
+ * address: accountAddress,
34
+ * plugin: {
35
+ * type: PLUGIN_TYPE.VALIDATOR,
36
+ * address: validatorAddress,
37
+ * data: "0x"
38
+ * }
39
+ * })
40
+ */
41
+ export const isPluginInstalled = async (
42
+ client: Client,
43
+ args: IsPluginInstalledParams
44
+ ): Promise<boolean> => {
45
+ const { address, plugin } = args
46
+ const { type, address: pluginAddress, data = "0x" } = plugin
47
+
48
+ try {
49
+ return await getAction(
50
+ client,
51
+ readContract,
52
+ "readContract"
53
+ )({
54
+ address,
55
+ abi: KernelModuleIsModuleInstalledAbi,
56
+ functionName: "isModuleInstalled",
57
+ args: [BigInt(type), pluginAddress, data]
58
+ })
59
+ } catch (error) {
60
+ return false
61
+ }
62
+ }
package/constants.ts CHANGED
@@ -120,6 +120,15 @@ export enum EXEC_TYPE {
120
120
  TRY_EXEC = "0x01"
121
121
  }
122
122
 
123
+ export const PLUGIN_TYPE = {
124
+ VALIDATOR: 1,
125
+ EXECUTOR: 2,
126
+ FALLBACK: 3,
127
+ HOOK: 4,
128
+ POLICY: 5,
129
+ SIGNER: 6
130
+ }
131
+
123
132
  // Safe's library for create and create2: https://github.com/safe-global/safe-contracts/blob/0acdd35a203299585438f53885df630f9d486a86/contracts/libraries/CreateCall.sol
124
133
  // Address was found here: https://github.com/safe-global/safe-deployments/blob/926ec6bbe2ebcac3aa2c2c6c0aff74aa590cbc6a/src/assets/v1.4.1/create_call.json
125
134
  export const safeCreateCallAddress =