@zerodev/sdk 5.2.0-alpha-3 → 5.2.1-alpha-0

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 (85) hide show
  1. package/_cjs/accounts/kernel/createKernelAccount.js +6 -10
  2. package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
  3. package/_cjs/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js +22 -0
  4. package/_cjs/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js.map +1 -0
  5. package/_cjs/accounts/kernel/utils/common/getActionSelector.js +19 -0
  6. package/_cjs/accounts/kernel/utils/common/getActionSelector.js.map +1 -0
  7. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js +22 -0
  8. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -0
  9. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js +39 -0
  10. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -0
  11. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js +19 -0
  12. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js.map +1 -0
  13. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js +44 -0
  14. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -0
  15. package/_cjs/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js +20 -0
  16. package/_cjs/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js.map +1 -0
  17. package/_cjs/accounts/kernel/v1/createKernelV1Account.js +1 -0
  18. package/_cjs/accounts/kernel/v1/createKernelV1Account.js.map +1 -1
  19. package/_cjs/accounts/kernel/v2/createKernelV2Account.js +2 -1
  20. package/_cjs/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  21. package/_cjs/accounts/utils/toKernelPluginManager.js +88 -177
  22. package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
  23. package/_cjs/types/kernel.js.map +1 -1
  24. package/_esm/accounts/kernel/createKernelAccount.js +6 -10
  25. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  26. package/_esm/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js +18 -0
  27. package/_esm/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js.map +1 -0
  28. package/_esm/accounts/kernel/utils/common/getActionSelector.js +15 -0
  29. package/_esm/accounts/kernel/utils/common/getActionSelector.js.map +1 -0
  30. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js +18 -0
  31. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -0
  32. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js +35 -0
  33. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -0
  34. package/_esm/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js +15 -0
  35. package/_esm/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js.map +1 -0
  36. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js +40 -0
  37. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -0
  38. package/_esm/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js +16 -0
  39. package/_esm/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js.map +1 -0
  40. package/_esm/accounts/kernel/v1/createKernelV1Account.js +1 -0
  41. package/_esm/accounts/kernel/v1/createKernelV1Account.js.map +1 -1
  42. package/_esm/accounts/kernel/v2/createKernelV2Account.js +2 -1
  43. package/_esm/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  44. package/_esm/accounts/utils/toKernelPluginManager.js +92 -181
  45. package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
  46. package/_esm/types/kernel.js.map +1 -1
  47. package/_types/accounts/kernel/createKernelAccount.d.ts +1 -0
  48. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  49. package/_types/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.d.ts +3 -0
  50. package/_types/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.d.ts.map +1 -0
  51. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts +4 -0
  52. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts.map +1 -0
  53. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts +9 -0
  54. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts.map +1 -0
  55. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts +13 -0
  56. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts.map +1 -0
  57. package/_types/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.d.ts +9 -0
  58. package/_types/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.d.ts.map +1 -0
  59. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts +10 -0
  60. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts.map +1 -0
  61. package/_types/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.d.ts +3 -0
  62. package/_types/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.d.ts.map +1 -0
  63. package/_types/accounts/kernel/v1/createKernelV1Account.d.ts.map +1 -1
  64. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts +1 -0
  65. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts.map +1 -1
  66. package/_types/accounts/utils/toKernelPluginManager.d.ts +1 -1
  67. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  68. package/_types/types/index.d.ts +1 -1
  69. package/_types/types/index.d.ts.map +1 -1
  70. package/_types/types/kernel.d.ts +10 -16
  71. package/_types/types/kernel.d.ts.map +1 -1
  72. package/accounts/kernel/createKernelAccount.ts +7 -10
  73. package/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.ts +24 -0
  74. package/accounts/kernel/utils/common/getActionSelector.ts +20 -0
  75. package/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.ts +39 -0
  76. package/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts +76 -0
  77. package/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.ts +44 -0
  78. package/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts +61 -0
  79. package/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.ts +23 -0
  80. package/accounts/kernel/v1/createKernelV1Account.ts +1 -0
  81. package/accounts/kernel/v2/createKernelV2Account.ts +3 -1
  82. package/accounts/utils/toKernelPluginManager.ts +99 -213
  83. package/package.json +4 -4
  84. package/types/index.ts +1 -1
  85. package/types/kernel.ts +26 -38
@@ -0,0 +1,3 @@
1
+ import type { Address, Client } from "viem";
2
+ export declare const getKernelV3Nonce: (client: Client, accountAddress: Address) => Promise<number>;
3
+ //# sourceMappingURL=getKernelV3Nonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getKernelV3Nonce.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAI3C,eAAO,MAAM,gBAAgB,WACjB,MAAM,kBACE,OAAO,KACxB,QAAQ,MAAM,CAehB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { EntryPointVersion } from "permissionless/types/entrypoint";
2
+ import { type Hex } from "viem";
3
+ export declare const getActionSelector: (entryPointVersion: EntryPointVersion) => Hex;
4
+ //# sourceMappingURL=getActionSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getActionSelector.d.ts","sourceRoot":"","sources":["../../../../../accounts/kernel/utils/common/getActionSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,KAAK,GAAG,EAAkC,MAAM,MAAM,CAAA;AAI/D,eAAO,MAAM,iBAAiB,sBACP,iBAAiB,KACrC,GAYF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { EntryPoint } from "permissionless/types/entrypoint";
2
+ import { type Address, type Hex } from "viem";
3
+ import { type PluginValidityData } from "../../../../../types/index.js";
4
+ import type { Kernel2_0_plugins } from "./getPluginsEnableTypedData.js";
5
+ export declare const getEncodedPluginsData: <entryPoint extends EntryPoint = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789">({ accountAddress, enableSignature, action, validator, validUntil, validAfter }: {
6
+ accountAddress: Address;
7
+ enableSignature: Hex;
8
+ } & Kernel2_0_plugins<entryPoint> & PluginValidityData) => Promise<`0x${string}`>;
9
+ //# sourceMappingURL=getEncodedPluginsData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEncodedPluginsData.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAsB,MAAM,MAAM,CAAA;AACjE,OAAO,EACH,KAAK,kBAAkB,EAE1B,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,eAAO,MAAM,qBAAqB;oBAUd,OAAO;qBACN,GAAG;iFAgBvB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { EntryPoint } from "permissionless/types/entrypoint";
2
+ import { type Address, type CustomSource } from "viem";
3
+ import type { Action, KernelValidator, PluginValidityData } from "../../../../../types/index.js";
4
+ export type Kernel2_0_plugins<entryPoint extends EntryPoint> = {
5
+ validator: KernelValidator<entryPoint>;
6
+ action: Action;
7
+ };
8
+ export declare const getPluginsEnableTypedData: <entryPoint extends EntryPoint = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789">({ accountAddress, chainId, kernelVersion, action, validator, validUntil, validAfter }: {
9
+ accountAddress: Address;
10
+ chainId: number;
11
+ kernelVersion: string;
12
+ } & Kernel2_0_plugins<entryPoint> & PluginValidityData) => Promise<Parameters<CustomSource["signTypedData"]>[0]>;
13
+ //# sourceMappingURL=getPluginsEnableTypedData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPluginsEnableTypedData.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,YAAY,EAKpB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EACR,MAAM,EACN,eAAe,EACf,kBAAkB,EACrB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,UAAU,IAAI;IAC3D,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,eAAO,MAAM,yBAAyB;oBAWlB,OAAO;aACd,MAAM;mBACA,MAAM;2DAGA,QACrB,WAAW,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAoC/C,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { EntryPoint } from "permissionless/types/entrypoint";
2
+ import { type Address, type Hex } from "viem";
3
+ import type { Kernel2_0_plugins } from "../ep0_6/getPluginsEnableTypedData.js";
4
+ export declare const getEncodedPluginsData: <entryPoint extends EntryPoint = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789">({ accountAddress, enableSignature, userOpSignature, action, validator }: {
5
+ accountAddress: Address;
6
+ enableSignature: Hex;
7
+ userOpSignature: Hex;
8
+ } & Kernel2_0_plugins<entryPoint>) => Promise<`0x${string}`>;
9
+ //# sourceMappingURL=getEncodedPluginsData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEncodedPluginsData.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,GAAG,EAKX,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE9E,eAAO,MAAM,qBAAqB;oBASd,OAAO;qBACN,GAAG;qBACH,GAAG;4DAkBvB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { EntryPoint } from "permissionless/types/entrypoint";
2
+ import { type Address, type CustomSource } from "viem";
3
+ import type { Kernel2_0_plugins } from "../ep0_6/getPluginsEnableTypedData.js";
4
+ export declare const getPluginsEnableTypedData: <entryPoint extends EntryPoint = "0x0000000071727De22E5E9d8BAf0edAc6f37da032">({ accountAddress, chainId, kernelVersion, action, validator, validatorNonce }: {
5
+ accountAddress: Address;
6
+ chainId: number;
7
+ kernelVersion: string;
8
+ validatorNonce: number;
9
+ } & Kernel2_0_plugins<entryPoint>) => Promise<Parameters<CustomSource["signTypedData"]>[0]>;
10
+ //# sourceMappingURL=getPluginsEnableTypedData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPluginsEnableTypedData.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,MAAM,CAAA;AAE3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE9E,eAAO,MAAM,yBAAyB;oBAUlB,OAAO;aACd,MAAM;mBACA,MAAM;oBACL,MAAM;sCACU,QAChC,WAAW,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAqC/C,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Address, Client } from "viem";
2
+ export declare const isPluginInitialized: (client: Client, accountAddress: Address, pluginAddress: Address) => Promise<boolean>;
3
+ //# sourceMappingURL=isPluginInitialized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPluginInitialized.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAI3C,eAAO,MAAM,mBAAmB,WACpB,MAAM,kBACE,OAAO,iBACR,OAAO,qBAczB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelV1Account.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/v1/createKernelV1Account.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,kBAAkB,EAC1B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAIX,KAAK,SAAS,EAKjB,MAAM,MAAM,CAAA;AAWb,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,MAAM,oBAAoB,CAC5B,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACnD,IAAI,CACJ,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,EAChD,qBAAqB,CACxB,CAAA;AA4CD,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,QAAQ,SAAS,OAAO,GAAG,OAAO,EAElC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,MAAM,EACN,UAAU,EAAE,iBAAwD,EACpE,KAAU,EACb,EAAE;IACC,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7C,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,GACF,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAgN/D"}
1
+ {"version":3,"file":"createKernelV1Account.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/v1/createKernelV1Account.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,kBAAkB,EAC1B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAIX,KAAK,SAAS,EAKjB,MAAM,MAAM,CAAA;AAWb,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,MAAM,oBAAoB,CAC5B,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACnD,IAAI,CACJ,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,EAChD,qBAAqB,CACxB,CAAA;AA4CD,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,QAAQ,SAAS,OAAO,GAAG,OAAO,EAElC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,MAAM,EACN,UAAU,EAAE,iBAAwD,EACpE,KAAU,EACb,EAAE;IACC,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7C,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,GACF,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAiN/D"}
@@ -4,6 +4,7 @@ import { type Address, type Chain, type Client, type Hex, type Transport } from
4
4
  import type { KernelEncodeCallDataArgs, KernelPluginManager, KernelPluginManagerParams } from "../../../types/kernel.js";
5
5
  export type KernelSmartAccount<entryPoint extends EntryPoint, transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined> = SmartAccount<entryPoint, "kernelSmartAccount", transport, chain> & {
6
6
  kernelPluginManager: KernelPluginManager<entryPoint>;
7
+ generateInitCode: () => Promise<Hex>;
7
8
  encodeCallData: (args: KernelEncodeCallDataArgs) => Promise<Hex>;
8
9
  };
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelV2Account.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/v2/createKernelV2Account.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,YAAY,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAER,UAAU,EACb,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAGX,KAAK,GAAG,EACR,KAAK,SAAS,EAUjB,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EACR,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,0BAA0B,CAAA;AAejC,MAAM,MAAM,kBAAkB,CAC1B,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACnD,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG;IACnE,mBAAmB,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACpD,cAAc,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACnE,CAAA;AAWD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CAI3B,CAAA;AA2DD;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,OAAO,EACP,UAAU,EAAE,iBAAwD,EACpE,KAAU,EACV,cAAiD,EACjD,sBAAsB,EACzB,EAAE;IACC,OAAO,EACD,yBAAyB,CAAC,UAAU,CAAC,GACrC,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACnC,GACF,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CA+O7D"}
1
+ {"version":3,"file":"createKernelV2Account.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/v2/createKernelV2Account.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,YAAY,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAER,UAAU,EACb,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAGX,KAAK,GAAG,EACR,KAAK,SAAS,EAUjB,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EACR,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,0BAA0B,CAAA;AAejC,MAAM,MAAM,kBAAkB,CAC1B,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACnD,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG;IACnE,mBAAmB,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACpD,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,cAAc,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACnE,CAAA;AAWD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CAI3B,CAAA;AA2DD;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,OAAO,EACP,UAAU,EAAE,iBAAwD,EACpE,KAAU,EACV,cAAiD,EACjD,sBAAsB,EACzB,EAAE;IACC,OAAO,EACD,yBAAyB,CAAC,UAAU,CAAC,GACrC,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACnC,GACF,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAgP7D"}
@@ -2,5 +2,5 @@ import type { EntryPoint } from "permissionless/types/entrypoint";
2
2
  import { type Chain, type Client, type Transport } from "viem";
3
3
  import { type KernelPluginManager, type KernelPluginManagerParams } from "../../types/kernel.js";
4
4
  export declare function isKernelPluginManager<entryPoint extends EntryPoint>(plugin: any): plugin is KernelPluginManager<entryPoint>;
5
- export declare function toKernelPluginManager<entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain, undefined>, { sudo, regular, pluginEnableSignature, validatorInitData, executorData, validAfter, validUntil, entryPoint: entryPointAddress, kernelVersion }: KernelPluginManagerParams<entryPoint>): Promise<KernelPluginManager<entryPoint>>;
5
+ export declare function toKernelPluginManager<entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain, undefined>, { sudo, regular, pluginEnableSignature, validatorInitData, action, validAfter, validUntil, entryPoint: entryPointAddress, kernelVersion }: KernelPluginManagerParams<entryPoint>): Promise<KernelPluginManager<entryPoint>>;
6
6
  //# sourceMappingURL=toKernelPluginManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAUjB,MAAM,MAAM,CAAA;AAGb,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAM9B,wBAAgB,qBAAqB,CAAC,UAAU,SAAS,UAAU,EAE/D,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAE3C;AAED,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,IAAI,EACJ,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,YAKC,EACD,UAAc,EACd,UAAc,EACd,UAAU,EAAE,iBAAiB,EAC7B,aAAa,EAChB,EAAE,yBAAyB,CAAC,UAAU,CAAC,GACzC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAmU1C"}
1
+ {"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAMjB,MAAM,MAAM,CAAA;AAGb,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAU9B,wBAAgB,qBAAqB,CAAC,UAAU,SAAS,UAAU,EAE/D,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAE3C;AAED,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,IAAI,EACJ,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,MAGC,EACD,UAAc,EACd,UAAc,EACd,UAAU,EAAE,iBAAiB,EAC7B,aAAa,EAChB,EAAE,yBAAyB,CAAC,UAAU,CAAC,GACzC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAmN1C"}
@@ -1,4 +1,4 @@
1
- export type { KernelValidator, ZeroDevPaymasterRpcSchema, ExecutorData, KernelPluginManager, ValidatorInitData, CallType, KernelEncodeCallDataArgs, PluginValidityData } from "./kernel.js";
1
+ export type { KernelValidator, ZeroDevPaymasterRpcSchema, Action, KernelPluginManager, ValidatorInitData, CallType, KernelEncodeCallDataArgs, PluginValidityData } from "./kernel.js";
2
2
  export { ValidatorMode } from "./kernel.js";
3
3
  export type WithRequired<T, K extends keyof T> = Required<Pick<T, K>>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EACrB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,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,EACrB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA"}
@@ -68,45 +68,39 @@ export type ZeroDevPaymasterRpcSchema<entryPoint extends EntryPoint> = [
68
68
  };
69
69
  }
70
70
  ];
71
- export type ValidatorType = keyof typeof VALIDATOR_TYPE;
72
- export type KernelValidator<entryPoint extends EntryPoint, Name extends string = string, type extends ValidatorType = "SUDO"> = type extends "PERMISSION" ? LocalAccount<Name> & {
71
+ export type ValidatorType = Extract<keyof typeof VALIDATOR_TYPE, "PERMISSION" | "SECONDARY">;
72
+ export type KernelValidator<entryPoint extends EntryPoint, Name extends string = string> = LocalAccount<Name> & {
73
+ validatorType: ValidatorType;
73
74
  getNonceKey: (accountAddress?: Address) => Promise<bigint>;
74
75
  getDummySignature(userOperation: UserOperation<GetEntryPointVersion<entryPoint>>, pluginEnableSignature?: Hex): Promise<Hex>;
75
76
  signUserOperation: (userOperation: UserOperation<GetEntryPointVersion<entryPoint>>, pluginEnableSignature?: Hex) => Promise<Hex>;
76
77
  getEnableData(accountAddress?: Address): Promise<Hex>;
77
78
  isEnabled(accountAddress: Address, selector: Hex): Promise<boolean>;
78
- isPermissionValidator: boolean;
79
- getPermissionId: () => Hex;
80
- } : LocalAccount<Name> & {
81
- getNonceKey: (accountAddress?: Address) => Promise<bigint>;
82
- getDummySignature(userOperation: UserOperation<GetEntryPointVersion<entryPoint>>, pluginEnableSignature?: Hex): Promise<Hex>;
83
- signUserOperation: (userOperation: UserOperation<GetEntryPointVersion<entryPoint>>, pluginEnableSignature?: Hex) => Promise<Hex>;
84
- getEnableData(accountAddress?: Address): Promise<Hex>;
85
- isEnabled(accountAddress: Address, selector: Hex): Promise<boolean>;
86
- isPermissionValidator: boolean;
79
+ getIdentifier: () => Hex;
87
80
  };
88
81
  export type ValidatorInitData = {
89
82
  validatorAddress: Address;
90
83
  enableData: Hex;
84
+ identifier: Hex;
91
85
  };
92
86
  export type KernelPluginManager<entryPoint extends EntryPoint> = KernelValidator<entryPoint> & {
93
87
  getPluginEnableSignature(accountAddress: Address): Promise<Hex>;
94
88
  getValidatorInitData(): Promise<ValidatorInitData>;
95
- getExecutorData(): ExecutorData;
89
+ getAction(): Action;
96
90
  getValidityData(): PluginValidityData;
97
- getValidationId(isSudo?: boolean): Hex;
91
+ getIdentifier(isSudo?: boolean): Hex;
98
92
  };
99
93
  export type KernelPluginManagerParams<entryPoint extends EntryPoint> = {
100
94
  sudo?: KernelValidator<entryPoint>;
101
95
  regular?: KernelValidator<entryPoint>;
102
96
  pluginEnableSignature?: Hex;
103
97
  validatorInitData?: ValidatorInitData;
104
- executorData?: ExecutorData;
98
+ action?: Action;
105
99
  entryPoint: entryPoint;
106
100
  kernelVersion?: string;
107
101
  } & Partial<PluginValidityData>;
108
- export type ExecutorData = {
109
- executor: Address;
102
+ export type Action = {
103
+ address: Address;
110
104
  selector: Hex;
111
105
  };
112
106
  export type PluginValidityData = {
@@ -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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"}
@@ -55,6 +55,7 @@ export type KernelSmartAccount<
55
55
  chain extends Chain | undefined = Chain | undefined
56
56
  > = SmartAccount<entryPoint, "kernelSmartAccount", transport, chain> & {
57
57
  kernelPluginManager: KernelPluginManager<entryPoint>
58
+ generateInitCode: () => Promise<Hex>
58
59
  encodeCallData: (args: KernelEncodeCallDataArgs) => Promise<Hex>
59
60
  }
60
61
 
@@ -127,7 +128,7 @@ const getKernelInitData = async <entryPoint extends EntryPoint>({
127
128
  kernelPluginManager: KernelPluginManager<entryPoint>
128
129
  }) => {
129
130
  const entryPointVersion = getEntryPointVersion(entryPointAddress)
130
- const { enableData, validatorAddress } =
131
+ const { enableData, identifier, validatorAddress } =
131
132
  await kernelPluginManager.getValidatorInitData()
132
133
 
133
134
  if (entryPointVersion === "v0.6") {
@@ -141,12 +142,7 @@ const getKernelInitData = async <entryPoint extends EntryPoint>({
141
142
  return encodeFunctionData({
142
143
  abi: KernelV3InitAbi,
143
144
  functionName: "initialize",
144
- args: [
145
- kernelPluginManager.getValidationId(true),
146
- zeroAddress,
147
- enableData,
148
- "0x"
149
- ]
145
+ args: [identifier, zeroAddress, enableData, "0x"]
150
146
  })
151
147
  }
152
148
 
@@ -263,7 +259,7 @@ export async function createKernelAccount<
263
259
  : await toKernelPluginManager<entryPoint>(client, {
264
260
  sudo: plugins.sudo,
265
261
  regular: plugins.regular,
266
- executorData: plugins.executorData,
262
+ action: plugins.action,
267
263
  pluginEnableSignature: plugins.pluginEnableSignature,
268
264
  entryPoint: entryPointAddress
269
265
  })
@@ -296,6 +292,7 @@ export async function createKernelAccount<
296
292
 
297
293
  return {
298
294
  kernelPluginManager,
295
+ generateInitCode,
299
296
  ...toSmartAccount({
300
297
  address: accountAddress,
301
298
  publicKey: accountAddress,
@@ -377,7 +374,7 @@ export async function createKernelAccount<
377
374
  }
378
375
 
379
376
  return concatHex([
380
- kernelPluginManager.getValidationId(),
377
+ kernelPluginManager.getIdentifier(),
381
378
  signature
382
379
  ])
383
380
  },
@@ -426,7 +423,7 @@ export async function createKernelAccount<
426
423
  return signature
427
424
  }
428
425
  return concatHex([
429
- kernelPluginManager.getValidationId(),
426
+ kernelPluginManager.getIdentifier(),
430
427
  signature
431
428
  ])
432
429
  },
@@ -0,0 +1,24 @@
1
+ import { getAction } from "permissionless"
2
+ import type { Address, Client } from "viem"
3
+ import { readContract } from "viem/actions"
4
+ import { KernelV3AccountAbi } from "../../../abi/kernel_v_3_0_0/KernelAccountAbi.js"
5
+
6
+ export const getKernelV3Nonce = async (
7
+ client: Client,
8
+ accountAddress: Address
9
+ ): Promise<number> => {
10
+ try {
11
+ const nonce = await getAction(
12
+ client,
13
+ readContract
14
+ )({
15
+ abi: KernelV3AccountAbi,
16
+ address: accountAddress,
17
+ functionName: "currentNonce",
18
+ args: []
19
+ })
20
+ return nonce
21
+ } catch (error) {
22
+ return 2
23
+ }
24
+ }
@@ -0,0 +1,20 @@
1
+ import type { EntryPointVersion } from "permissionless/types/entrypoint"
2
+ import { type Hex, getAbiItem, toFunctionSelector } from "viem"
3
+ import { KernelAccountAbi } from "../../abi/KernelAccountAbi.js"
4
+ import { KernelV3AccountAbi } from "../../abi/kernel_v_3_0_0/KernelAccountAbi.js"
5
+
6
+ export const getActionSelector = (
7
+ entryPointVersion: EntryPointVersion
8
+ ): Hex => {
9
+ if (entryPointVersion === "v0.6") {
10
+ return toFunctionSelector(
11
+ getAbiItem({ abi: KernelAccountAbi, name: "execute" })
12
+ )
13
+ } else if (entryPointVersion === "v0.7") {
14
+ return toFunctionSelector(
15
+ getAbiItem({ abi: KernelV3AccountAbi, name: "execute" })
16
+ )
17
+ } else {
18
+ throw new Error("Unsupported entry point version")
19
+ }
20
+ }
@@ -0,0 +1,39 @@
1
+ import type {
2
+ ENTRYPOINT_ADDRESS_V06_TYPE,
3
+ EntryPoint
4
+ } from "permissionless/types/entrypoint"
5
+ import { type Address, type Hex, concat, pad, toHex } from "viem"
6
+ import {
7
+ type PluginValidityData,
8
+ ValidatorMode
9
+ } from "../../../../../types/index.js"
10
+ import type { Kernel2_0_plugins } from "./getPluginsEnableTypedData.js"
11
+
12
+ export const getEncodedPluginsData = async <
13
+ entryPoint extends EntryPoint = ENTRYPOINT_ADDRESS_V06_TYPE
14
+ >({
15
+ accountAddress,
16
+ enableSignature,
17
+ action,
18
+ validator,
19
+ validUntil,
20
+ validAfter
21
+ }: {
22
+ accountAddress: Address
23
+ enableSignature: Hex
24
+ } & Kernel2_0_plugins<entryPoint> &
25
+ PluginValidityData) => {
26
+ const enableData = await validator.getEnableData(accountAddress)
27
+ const enableDataLength = enableData.length / 2 - 1
28
+ return concat([
29
+ ValidatorMode.enable,
30
+ pad(toHex(validUntil, { size: 6 }), { size: 6 }), // 6 bytes 4 - 10
31
+ pad(toHex(validAfter), { size: 6 }), // 6 bytes 10 - 16
32
+ pad(validator.address, { size: 20 }), // 20 bytes 16 - 36
33
+ pad(action.address, { size: 20 }), // 20 bytes 36 - 56
34
+ pad(toHex(enableDataLength), { size: 32 }), // 32 bytes 56 - 88
35
+ enableData, // 88 - 88 + enableData.length
36
+ pad(toHex(enableSignature.length / 2 - 1), { size: 32 }), // 32 bytes 88 + enableData.length - 120 + enableData.length
37
+ enableSignature // 120 + enableData.length - 120 + enableData.length + enableSignature.length
38
+ ])
39
+ }
@@ -0,0 +1,76 @@
1
+ import type {
2
+ ENTRYPOINT_ADDRESS_V06_TYPE,
3
+ EntryPoint
4
+ } from "permissionless/types/entrypoint"
5
+ import {
6
+ type Address,
7
+ type CustomSource,
8
+ concatHex,
9
+ hexToBigInt,
10
+ pad,
11
+ toHex
12
+ } from "viem"
13
+ import type {
14
+ Action,
15
+ KernelValidator,
16
+ PluginValidityData
17
+ } from "../../../../../types/index.js"
18
+
19
+ export type Kernel2_0_plugins<entryPoint extends EntryPoint> = {
20
+ validator: KernelValidator<entryPoint>
21
+ action: Action
22
+ }
23
+ export const getPluginsEnableTypedData = async <
24
+ entryPoint extends EntryPoint = ENTRYPOINT_ADDRESS_V06_TYPE
25
+ >({
26
+ accountAddress,
27
+ chainId,
28
+ kernelVersion,
29
+ action,
30
+ validator,
31
+ validUntil,
32
+ validAfter
33
+ }: {
34
+ accountAddress: Address
35
+ chainId: number
36
+ kernelVersion: string
37
+ // { action, validator }: Kernel2_0_plugins
38
+ } & Kernel2_0_plugins<entryPoint> &
39
+ PluginValidityData): Promise<
40
+ Parameters<CustomSource["signTypedData"]>[0]
41
+ > => {
42
+ return {
43
+ domain: {
44
+ name: "Kernel",
45
+ version: kernelVersion,
46
+ chainId,
47
+ verifyingContract: accountAddress
48
+ },
49
+ types: {
50
+ ValidatorApproved: [
51
+ { name: "sig", type: "bytes4" },
52
+ { name: "validatorData", type: "uint256" },
53
+ { name: "executor", type: "address" },
54
+ { name: "enableData", type: "bytes" }
55
+ ]
56
+ },
57
+ message: {
58
+ sig: action.selector,
59
+ validatorData: hexToBigInt(
60
+ concatHex([
61
+ pad(toHex(validUntil ?? 0), {
62
+ size: 6
63
+ }),
64
+ pad(toHex(validAfter ?? 0), {
65
+ size: 6
66
+ }),
67
+ validator.address
68
+ ]),
69
+ { size: 32 }
70
+ ),
71
+ executor: action.address as Address,
72
+ enableData: await validator.getEnableData(accountAddress)
73
+ },
74
+ primaryType: "ValidatorApproved"
75
+ }
76
+ }
@@ -0,0 +1,44 @@
1
+ import type {
2
+ ENTRYPOINT_ADDRESS_V06_TYPE,
3
+ EntryPoint
4
+ } from "permissionless/types/entrypoint"
5
+ import {
6
+ type Address,
7
+ type Hex,
8
+ concat,
9
+ encodeAbiParameters,
10
+ parseAbiParameters,
11
+ zeroAddress
12
+ } from "viem"
13
+ import type { Kernel2_0_plugins } from "../ep0_6/getPluginsEnableTypedData.js"
14
+
15
+ export const getEncodedPluginsData = async <
16
+ entryPoint extends EntryPoint = ENTRYPOINT_ADDRESS_V06_TYPE
17
+ >({
18
+ accountAddress,
19
+ enableSignature,
20
+ userOpSignature,
21
+ action,
22
+ validator
23
+ }: {
24
+ accountAddress: Address
25
+ enableSignature: Hex
26
+ userOpSignature: Hex
27
+ } & Kernel2_0_plugins<entryPoint>) => {
28
+ const enableData = await validator.getEnableData(accountAddress)
29
+ return concat([
30
+ zeroAddress, // hook address 20 bytes
31
+ encodeAbiParameters(
32
+ parseAbiParameters(
33
+ "bytes validatorData, bytes hookData, bytes selectorData, bytes enableSig, bytes userOpSig"
34
+ ),
35
+ [
36
+ enableData,
37
+ "0x",
38
+ concat([action.selector, action.address, zeroAddress, "0x"]),
39
+ enableSignature,
40
+ userOpSignature
41
+ ]
42
+ )
43
+ ])
44
+ }
@@ -0,0 +1,61 @@
1
+ import type {
2
+ ENTRYPOINT_ADDRESS_V07_TYPE,
3
+ EntryPoint
4
+ } from "permissionless/types/entrypoint"
5
+ import { type Address, type CustomSource, concat, zeroAddress } from "viem"
6
+ import { VALIDATOR_TYPE } from "../../../../../constants.js"
7
+ import type { Kernel2_0_plugins } from "../ep0_6/getPluginsEnableTypedData.js"
8
+
9
+ export const getPluginsEnableTypedData = async <
10
+ entryPoint extends EntryPoint = ENTRYPOINT_ADDRESS_V07_TYPE
11
+ >({
12
+ accountAddress,
13
+ chainId,
14
+ kernelVersion,
15
+ action,
16
+ validator,
17
+ validatorNonce
18
+ }: {
19
+ accountAddress: Address
20
+ chainId: number
21
+ kernelVersion: string
22
+ validatorNonce: number
23
+ } & Kernel2_0_plugins<entryPoint>): Promise<
24
+ Parameters<CustomSource["signTypedData"]>[0]
25
+ > => {
26
+ return {
27
+ domain: {
28
+ name: "Kernel",
29
+ version: kernelVersion,
30
+ chainId,
31
+ verifyingContract: accountAddress
32
+ },
33
+ types: {
34
+ Enable: [
35
+ { name: "validationId", type: "bytes21" },
36
+ { name: "nonce", type: "uint32" },
37
+ { name: "hook", type: "address" },
38
+ { name: "validatorData", type: "bytes" },
39
+ { name: "hookData", type: "bytes" },
40
+ { name: "selectorData", type: "bytes" }
41
+ ]
42
+ },
43
+ message: {
44
+ validationId: concat([
45
+ VALIDATOR_TYPE[validator.validatorType],
46
+ validator.getIdentifier()
47
+ ]),
48
+ nonce: validatorNonce,
49
+ hook: zeroAddress,
50
+ validatorData: await validator.getEnableData(accountAddress),
51
+ hookData: "0x",
52
+ selectorData: concat([
53
+ action.selector,
54
+ action.address,
55
+ zeroAddress,
56
+ "0x"
57
+ ])
58
+ },
59
+ primaryType: "Enable"
60
+ }
61
+ }
@@ -0,0 +1,23 @@
1
+ import { getAction } from "permissionless"
2
+ import type { Address, Client } from "viem"
3
+ import { readContract } from "viem/actions"
4
+ import { KernelModuleIsInitializedAbi } from "../../../abi/kernel_v_3_0_0/KernelModuleAbi.js"
5
+
6
+ export const isPluginInitialized = async (
7
+ client: Client,
8
+ accountAddress: Address,
9
+ pluginAddress: Address
10
+ ) => {
11
+ try {
12
+ return await getAction(
13
+ client,
14
+ readContract
15
+ )({
16
+ abi: KernelModuleIsInitializedAbi,
17
+ address: pluginAddress,
18
+ functionName: "isInitialized",
19
+ args: [accountAddress]
20
+ })
21
+ } catch (error) {}
22
+ return false
23
+ }
@@ -200,6 +200,7 @@ export async function createKernelV1Account<
200
200
 
201
201
  return {
202
202
  ...account,
203
+ generateInitCode,
203
204
  client: client,
204
205
  publicKey: accountAddress,
205
206
  entryPoint: entryPointAddress,
@@ -56,6 +56,7 @@ export type KernelSmartAccount<
56
56
  chain extends Chain | undefined = Chain | undefined
57
57
  > = SmartAccount<entryPoint, "kernelSmartAccount", transport, chain> & {
58
58
  kernelPluginManager: KernelPluginManager<entryPoint>
59
+ generateInitCode: () => Promise<Hex>
59
60
  encodeCallData: (args: KernelEncodeCallDataArgs) => Promise<Hex>
60
61
  }
61
62
 
@@ -173,7 +174,7 @@ export async function createKernelV2Account<
173
174
  : await toKernelPluginManager(client, {
174
175
  sudo: plugins.sudo,
175
176
  regular: plugins.regular,
176
- executorData: plugins.executorData,
177
+ action: plugins.action,
177
178
  pluginEnableSignature: plugins.pluginEnableSignature,
178
179
  kernelVersion: "0.0.2" ?? plugins.kernelVersion,
179
180
  entryPoint: entryPointAddress
@@ -281,6 +282,7 @@ export async function createKernelV2Account<
281
282
  entryPoint: entryPointAddress,
282
283
  source: "kernelSmartAccount",
283
284
  kernelPluginManager,
285
+ generateInitCode,
284
286
  async getFactory() {
285
287
  if (smartAccountDeployed) return undefined
286
288