@zerodev/sdk 5.2.0-alpha-4 → 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 (78) hide show
  1. package/_cjs/accounts/kernel/createKernelAccount.js +5 -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/v2/createKernelV2Account.js +2 -1
  18. package/_cjs/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  19. package/_cjs/accounts/utils/toKernelPluginManager.js +88 -177
  20. package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
  21. package/_cjs/types/kernel.js.map +1 -1
  22. package/_esm/accounts/kernel/createKernelAccount.js +5 -10
  23. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  24. package/_esm/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js +18 -0
  25. package/_esm/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js.map +1 -0
  26. package/_esm/accounts/kernel/utils/common/getActionSelector.js +15 -0
  27. package/_esm/accounts/kernel/utils/common/getActionSelector.js.map +1 -0
  28. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js +18 -0
  29. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -0
  30. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js +35 -0
  31. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -0
  32. package/_esm/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js +15 -0
  33. package/_esm/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js.map +1 -0
  34. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js +40 -0
  35. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -0
  36. package/_esm/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js +16 -0
  37. package/_esm/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js.map +1 -0
  38. package/_esm/accounts/kernel/v2/createKernelV2Account.js +2 -1
  39. package/_esm/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  40. package/_esm/accounts/utils/toKernelPluginManager.js +92 -181
  41. package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
  42. package/_esm/types/kernel.js.map +1 -1
  43. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  44. package/_types/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.d.ts +3 -0
  45. package/_types/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.d.ts.map +1 -0
  46. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts +4 -0
  47. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts.map +1 -0
  48. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts +9 -0
  49. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts.map +1 -0
  50. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts +13 -0
  51. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts.map +1 -0
  52. package/_types/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.d.ts +9 -0
  53. package/_types/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.d.ts.map +1 -0
  54. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts +10 -0
  55. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts.map +1 -0
  56. package/_types/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.d.ts +3 -0
  57. package/_types/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.d.ts.map +1 -0
  58. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts +1 -0
  59. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts.map +1 -1
  60. package/_types/accounts/utils/toKernelPluginManager.d.ts +1 -1
  61. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  62. package/_types/types/index.d.ts +1 -1
  63. package/_types/types/index.d.ts.map +1 -1
  64. package/_types/types/kernel.d.ts +10 -16
  65. package/_types/types/kernel.d.ts.map +1 -1
  66. package/accounts/kernel/createKernelAccount.ts +5 -10
  67. package/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.ts +24 -0
  68. package/accounts/kernel/utils/common/getActionSelector.ts +20 -0
  69. package/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.ts +39 -0
  70. package/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts +76 -0
  71. package/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.ts +44 -0
  72. package/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts +61 -0
  73. package/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.ts +23 -0
  74. package/accounts/kernel/v2/createKernelV2Account.ts +3 -1
  75. package/accounts/utils/toKernelPluginManager.ts +99 -213
  76. package/package.json +4 -4
  77. package/types/index.ts +1 -1
  78. package/types/kernel.ts +26 -38
@@ -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"}
@@ -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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"}
@@ -128,7 +128,7 @@ const getKernelInitData = async <entryPoint extends EntryPoint>({
128
128
  kernelPluginManager: KernelPluginManager<entryPoint>
129
129
  }) => {
130
130
  const entryPointVersion = getEntryPointVersion(entryPointAddress)
131
- const { enableData, validatorAddress } =
131
+ const { enableData, identifier, validatorAddress } =
132
132
  await kernelPluginManager.getValidatorInitData()
133
133
 
134
134
  if (entryPointVersion === "v0.6") {
@@ -142,12 +142,7 @@ const getKernelInitData = async <entryPoint extends EntryPoint>({
142
142
  return encodeFunctionData({
143
143
  abi: KernelV3InitAbi,
144
144
  functionName: "initialize",
145
- args: [
146
- kernelPluginManager.getValidationId(true),
147
- zeroAddress,
148
- enableData,
149
- "0x"
150
- ]
145
+ args: [identifier, zeroAddress, enableData, "0x"]
151
146
  })
152
147
  }
153
148
 
@@ -264,7 +259,7 @@ export async function createKernelAccount<
264
259
  : await toKernelPluginManager<entryPoint>(client, {
265
260
  sudo: plugins.sudo,
266
261
  regular: plugins.regular,
267
- executorData: plugins.executorData,
262
+ action: plugins.action,
268
263
  pluginEnableSignature: plugins.pluginEnableSignature,
269
264
  entryPoint: entryPointAddress
270
265
  })
@@ -379,7 +374,7 @@ export async function createKernelAccount<
379
374
  }
380
375
 
381
376
  return concatHex([
382
- kernelPluginManager.getValidationId(),
377
+ kernelPluginManager.getIdentifier(),
383
378
  signature
384
379
  ])
385
380
  },
@@ -428,7 +423,7 @@ export async function createKernelAccount<
428
423
  return signature
429
424
  }
430
425
  return concatHex([
431
- kernelPluginManager.getValidationId(),
426
+ kernelPluginManager.getIdentifier(),
432
427
  signature
433
428
  ])
434
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
+ }
@@ -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