@zerodev/sdk 5.2.0-alpha-4 → 5.2.1-alpha-1

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 (86) hide show
  1. package/_cjs/accounts/kernel/createKernelAccount.js +7 -12
  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 +4 -2
  18. package/_cjs/accounts/kernel/v1/createKernelV1Account.js.map +1 -1
  19. package/_cjs/accounts/kernel/v2/createKernelV2Account.js +9 -4
  20. package/_cjs/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  21. package/_cjs/accounts/utils/toKernelPluginManager.js +100 -182
  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 +7 -12
  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 +5 -3
  41. package/_esm/accounts/kernel/v1/createKernelV1Account.js.map +1 -1
  42. package/_esm/accounts/kernel/v2/createKernelV2Account.js +10 -5
  43. package/_esm/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  44. package/_esm/accounts/utils/toKernelPluginManager.js +105 -186
  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 +2 -1
  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 +1 -1
  64. package/_types/accounts/kernel/v1/createKernelV1Account.d.ts.map +1 -1
  65. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts +3 -1
  66. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts.map +1 -1
  67. package/_types/accounts/utils/toKernelPluginManager.d.ts +1 -1
  68. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  69. package/_types/types/index.d.ts +1 -1
  70. package/_types/types/index.d.ts.map +1 -1
  71. package/_types/types/kernel.d.ts +11 -17
  72. package/_types/types/kernel.d.ts.map +1 -1
  73. package/accounts/kernel/createKernelAccount.ts +12 -14
  74. package/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.ts +24 -0
  75. package/accounts/kernel/utils/common/getActionSelector.ts +20 -0
  76. package/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.ts +39 -0
  77. package/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts +76 -0
  78. package/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.ts +44 -0
  79. package/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts +61 -0
  80. package/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.ts +23 -0
  81. package/accounts/kernel/v1/createKernelV1Account.ts +20 -8
  82. package/accounts/kernel/v2/createKernelV2Account.ts +17 -6
  83. package/accounts/utils/toKernelPluginManager.ts +129 -222
  84. package/package.json +4 -4
  85. package/types/index.ts +1 -1
  86. package/types/kernel.ts +29 -38
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPluginsEnableTypedData.js","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts"],"names":[],"mappings":"AAIA,OAAO,EAGH,SAAS,EACT,WAAW,EACX,GAAG,EACH,KAAK,EACR,MAAM,MAAM,CAAA;AAWb,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAE5C,EACE,cAAc,EACd,OAAO,EACP,aAAa,EACb,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,EAOQ,EAEpB,EAAE;IACA,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAa;YACtB,OAAO;YACP,iBAAiB,EAAE,cAAc;SACpC;QACD,KAAK,EAAE;YACH,iBAAiB,EAAE;gBACf,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;aACxC;SACJ;QACD,OAAO,EAAE;YACL,GAAG,EAAE,MAAM,CAAC,QAAQ;YACpB,aAAa,EAAE,WAAW,CACtB,SAAS,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE;oBACxB,IAAI,EAAE,CAAC;iBACV,CAAC;gBACF,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE;oBACxB,IAAI,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,OAAO;aACpB,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,CACf;YACD,QAAQ,EAAE,MAAM,CAAC,OAAkB;YACnC,UAAU,EAAE,MAAM,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC;SAC5D;QACD,WAAW,EAAE,mBAAmB;KACnC,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { concat, encodeAbiParameters, parseAbiParameters, zeroAddress } from "viem";
2
+ export const getEncodedPluginsData = async ({ accountAddress, enableSignature, userOpSignature, action, validator }) => {
3
+ const enableData = await validator.getEnableData(accountAddress);
4
+ return concat([
5
+ zeroAddress, // hook address 20 bytes
6
+ encodeAbiParameters(parseAbiParameters("bytes validatorData, bytes hookData, bytes selectorData, bytes enableSig, bytes userOpSig"), [
7
+ enableData,
8
+ "0x",
9
+ concat([action.selector, action.address, zeroAddress, "0x"]),
10
+ enableSignature,
11
+ userOpSignature
12
+ ])
13
+ ]);
14
+ };
15
+ //# sourceMappingURL=getEncodedPluginsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEncodedPluginsData.js","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.ts"],"names":[],"mappings":"AAIA,OAAO,EAGH,MAAM,EACN,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACd,MAAM,MAAM,CAAA;AAGb,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAExC,EACE,cAAc,EACd,eAAe,EACf,eAAe,EACf,MAAM,EACN,SAAS,EAKoB,EAAE,EAAE;IACjC,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAChE,OAAO,MAAM,CAAC;QACV,WAAW,EAAE,wBAAwB;QACrC,mBAAmB,CACf,kBAAkB,CACd,2FAA2F,CAC9F,EACD;YACI,UAAU;YACV,IAAI;YACJ,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAC5D,eAAe;YACf,eAAe;SAClB,CACJ;KACJ,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { concat, pad, zeroAddress } from "viem";
2
+ import { VALIDATOR_TYPE } from "../../../../../constants.js";
3
+ export const getPluginsEnableTypedData = async ({ accountAddress, chainId, kernelVersion, action, validator, validatorNonce }) => {
4
+ return {
5
+ domain: {
6
+ name: "Kernel",
7
+ version: kernelVersion,
8
+ chainId,
9
+ verifyingContract: accountAddress
10
+ },
11
+ types: {
12
+ Enable: [
13
+ { name: "validationId", type: "bytes21" },
14
+ { name: "nonce", type: "uint32" },
15
+ { name: "hook", type: "address" },
16
+ { name: "validatorData", type: "bytes" },
17
+ { name: "hookData", type: "bytes" },
18
+ { name: "selectorData", type: "bytes" }
19
+ ]
20
+ },
21
+ message: {
22
+ validationId: concat([
23
+ VALIDATOR_TYPE[validator.validatorType],
24
+ pad(validator.getIdentifier(), { size: 20, dir: "right" })
25
+ ]),
26
+ nonce: validatorNonce,
27
+ hook: zeroAddress,
28
+ validatorData: await validator.getEnableData(accountAddress),
29
+ hookData: "0x",
30
+ selectorData: concat([
31
+ action.selector,
32
+ action.address,
33
+ zeroAddress,
34
+ "0x"
35
+ ])
36
+ },
37
+ primaryType: "Enable"
38
+ };
39
+ };
40
+ //# sourceMappingURL=getPluginsEnableTypedData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPluginsEnableTypedData.js","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAG5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAE5C,EACE,cAAc,EACd,OAAO,EACP,aAAa,EACb,MAAM,EACN,SAAS,EACT,cAAc,EAMe,EAE/B,EAAE;IACA,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAa;YACtB,OAAO;YACP,iBAAiB,EAAE,cAAc;SACpC;QACD,KAAK,EAAE;YACH,MAAM,EAAE;gBACJ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBACjC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;gBACnC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;aAC1C;SACJ;QACD,OAAO,EAAE;YACL,YAAY,EAAE,MAAM,CAAC;gBACjB,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC;gBACvC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;aAC7D,CAAC;YACF,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,WAAW;YACjB,aAAa,EAAE,MAAM,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC;YAC5D,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,MAAM,CAAC;gBACjB,MAAM,CAAC,QAAQ;gBACf,MAAM,CAAC,OAAO;gBACd,WAAW;gBACX,IAAI;aACP,CAAC;SACL;QACD,WAAW,EAAE,QAAQ;KACxB,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { getAction } from "permissionless";
2
+ import { readContract } from "viem/actions";
3
+ import { KernelModuleIsInitializedAbi } from "../../../abi/kernel_v_3_0_0/KernelModuleAbi.js";
4
+ export const isPluginInitialized = async (client, accountAddress, pluginAddress) => {
5
+ try {
6
+ return await getAction(client, readContract)({
7
+ abi: KernelModuleIsInitializedAbi,
8
+ address: pluginAddress,
9
+ functionName: "isInitialized",
10
+ args: [accountAddress]
11
+ });
12
+ }
13
+ catch (error) { }
14
+ return false;
15
+ };
16
+ //# sourceMappingURL=isPluginInitialized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPluginInitialized.js","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAA;AAE7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACpC,MAAc,EACd,cAAuB,EACvB,aAAsB,EACxB,EAAE;IACA,IAAI,CAAC;QACD,OAAO,MAAM,SAAS,CAClB,MAAM,EACN,YAAY,CACf,CAAC;YACE,GAAG,EAAE,4BAA4B;YACjC,OAAO,EAAE,aAAa;YACtB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,cAAc,CAAC;SACzB,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;IAClB,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { ENTRYPOINT_ADDRESS_V06, getAccountNonce, getSenderAddress, getUserOperationHash, isSmartAccountDeployed } from "permissionless";
1
+ import { ENTRYPOINT_ADDRESS_V06, getAccountNonce, getEntryPointVersion, getSenderAddress, getUserOperationHash, isSmartAccountDeployed } from "permissionless";
2
2
  import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts";
3
3
  import { concatHex, encodeFunctionData } from "viem";
4
4
  import { toAccount } from "viem/accounts";
@@ -44,8 +44,10 @@ const KERNEL_V1_ADDRESSES = {
44
44
  FACTORY_ADDRESS: "0x4E4946298614FC299B50c947289F4aD0572CB9ce",
45
45
  ENTRYPOINT_V0_6: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
46
46
  };
47
- export async function createKernelV1Account(client, { signer, entrypoint: entryPointAddress = ENTRYPOINT_ADDRESS_V06, index = 0n }) {
48
- if (entryPointAddress !== ENTRYPOINT_ADDRESS_V06) {
47
+ export async function createKernelV1Account(client, { signer, entrypoint: entryPointAddress, index = 0n }) {
48
+ const entryPointVersion = getEntryPointVersion(entryPointAddress);
49
+ if (entryPointVersion !== "v0.6" ||
50
+ entryPointAddress !== ENTRYPOINT_ADDRESS_V06) {
49
51
  throw new Error("Only EntryPoint 0.6 is supported");
50
52
  }
51
53
  const viemSigner = {
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelV1Account.js","sourceRoot":"","sources":["../../../../accounts/kernel/v1/createKernelV1Account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createKernelV1Account.js","sourceRoot":"","sources":["../../../../accounts/kernel/v1/createKernelV1Account.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ENTRYPOINT_ADDRESS_V06, getAccountNonce, getSenderAddress, isSmartAccountDeployed } from "permissionless";
1
+ import { getAccountNonce, getEntryPointVersion, getSenderAddress, isSmartAccountDeployed } from "permissionless";
2
2
  import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts";
3
3
  import { concatHex, encodeDeployData, encodeFunctionData, getTypesForEIP712Domain, hashMessage, hashTypedData, parseAbi, validateTypedData } from "viem";
4
4
  import { toAccount } from "viem/accounts";
@@ -64,13 +64,17 @@ const getAccountAddress = async ({ client, entryPoint: entryPointAddress, initCo
64
64
  * @param ecdsaValidatorAddress
65
65
  * @param deployedAccountAddress
66
66
  */
67
- export async function createKernelV2Account(client, { plugins, entryPoint: entryPointAddress = ENTRYPOINT_ADDRESS_V06, index = 0n, factoryAddress = KERNEL_ADDRESSES.FACTORY_ADDRESS, deployedAccountAddress }) {
67
+ export async function createKernelV2Account(client, { plugins, entryPoint: entryPointAddress, index = 0n, factoryAddress = KERNEL_ADDRESSES.FACTORY_ADDRESS, deployedAccountAddress }) {
68
+ const entryPointVersion = getEntryPointVersion(entryPointAddress);
69
+ if (entryPointVersion !== "v0.6") {
70
+ throw new Error("Only EntryPoint 0.6 is supported");
71
+ }
68
72
  const kernelPluginManager = isKernelPluginManager(plugins)
69
73
  ? plugins
70
74
  : await toKernelPluginManager(client, {
71
75
  sudo: plugins.sudo,
72
76
  regular: plugins.regular,
73
- executorData: plugins.executorData,
77
+ action: plugins.action,
74
78
  pluginEnableSignature: plugins.pluginEnableSignature,
75
79
  kernelVersion: "0.0.2" ?? plugins.kernelVersion,
76
80
  entryPoint: entryPointAddress
@@ -158,6 +162,7 @@ export async function createKernelV2Account(client, { plugins, entryPoint: entry
158
162
  entryPoint: entryPointAddress,
159
163
  source: "kernelSmartAccount",
160
164
  kernelPluginManager,
165
+ generateInitCode,
161
166
  async getFactory() {
162
167
  if (smartAccountDeployed)
163
168
  return undefined;
@@ -175,8 +180,8 @@ export async function createKernelV2Account(client, { plugins, entryPoint: entry
175
180
  return parseFactoryAddressAndCallDataFromAccountInitCode(await generateInitCode())[1];
176
181
  },
177
182
  // Get the nonce of the smart account
178
- async getNonce() {
179
- const key = await kernelPluginManager.getNonceKey();
183
+ async getNonce(customNonceKey) {
184
+ const key = await kernelPluginManager.getNonceKey(accountAddress, customNonceKey);
180
185
  return getAccountNonce(client, {
181
186
  sender: accountAddress,
182
187
  entryPoint: entryPointAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelV2Account.js","sourceRoot":"","sources":["../../../../accounts/kernel/v2/createKernelV2Account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createKernelV2Account.js","sourceRoot":"","sources":["../../../../accounts/kernel/v2/createKernelV2Account.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACH,yCAAyC,EAE5C,MAAM,yBAAyB,CAAA;AAKhC,OAAO,EASH,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,iBAAiB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAMzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,iDAAiD,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EACH,iBAAiB,EACjB,eAAe,EACf,YAAY,EACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAahE,wKAAwK;AACxK,2JAA2J;AAC3J,MAAM,iBAAiB,GAAG,4CAA4C,CAAA;AAEtE,MAAM,aAAa,GAAG,QAAQ,CAAC;IAC3B,yGAAyG;IACzG,wHAAwH;CAC3H,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAGzB;IACA,eAAe,EAAE,4CAA4C;IAC7D,eAAe,EAAE,4CAA4C;CAChE,CAAA;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAC9B,KAAK,EACL,cAAc,EACd,gBAAgB,EAChB,UAAU,EAMb,EAAgB,EAAE;IACf,8BAA8B;IAC9B,OAAO,SAAS,CAAC;QACb,cAAc;QACd,kBAAkB,CAAC;YACf,GAAG,EAAE,kBAAkB;YACvB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,KAAK,CAAC;SAC9C,CAAQ;KACZ,CAAC,CAAA;AACN,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,KAAK,EAI7B,EACE,MAAM,EACN,UAAU,EAAE,iBAAiB,EAC7B,gBAAgB,EAKnB,EAAoB,EAAE;IACnB,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAEzC,gDAAgD;IAChD,OAAO,gBAAgB,CAAC,MAAM,EAAE;QAC5B,QAAQ;QACR,UAAU,EAAE,iBAAgD;KAC/D,CAAC,CAAA;AACN,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAKvC,MAA6C,EAC7C,EACI,OAAO,EACP,UAAU,EAAE,iBAAiB,EAC7B,KAAK,GAAG,EAAE,EACV,cAAc,GAAG,gBAAgB,CAAC,eAAe,EACjD,sBAAsB,EASzB;IAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;IAEjE,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,mBAAmB,GAAG,qBAAqB,CAAa,OAAO,CAAC;QAClE,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,qBAAqB,CAAC,MAAM,EAAE;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,aAAa,EAAE,OAAO,IAAI,OAAO,CAAC,aAAa;YAC/C,UAAU,EAAE,iBAAiB;SAChC,CAAC,CAAA;IACR,yDAAyD;IACzD,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,iBAAiB,GACnB,MAAM,mBAAmB,CAAC,oBAAoB,EAAE,CAAA;QACpD,OAAO,kBAAkB,CAAC;YACtB,KAAK;YACL,cAAc;YACd,gBAAgB,EAAE,iBAAiB,CAAC,gBAAgB;YACpD,UAAU,EAAE,iBAAiB,CAAC,UAAU;SAC3C,CAAC,CAAA;IACN,CAAC,CAAA;IAED,qCAAqC;IACrC,MAAM,cAAc,GAChB,sBAAsB;QACtB,CAAC,MAAM,iBAAiB,CAAiC;YACrD,MAAM;YACN,UAAU,EAAE,iBAAiB;YAC7B,gBAAgB,EAAE,gBAAgB;SACrC,CAAC,CAAC,CAAA;IAEP,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAEjE,uBAAuB;IACvB,MAAM,OAAO,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,cAAc;QACvB,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACzB,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;YACxC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC;gBAC9C,mBAAmB,CAAC,WAAW,CAAC;oBAC5B,OAAO,EAAE;wBACL,GAAG,EAAE,WAAW;qBACnB;iBACJ,CAAC;aACL,CAAC,CAAA;YACF,OAAO,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACrD,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,yCAAyC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,SAAS;YACzB,MAAM,KAAK,GAAG;gBACV,YAAY,EAAE,uBAAuB,CAAC;oBAClC,MAAM,EAAE,SAAS,CAAC,MAAM;iBAC3B,CAAC;gBACF,GAAG,SAAS,CAAC,KAAK;aACrB,CAAA;YAED,uFAAuF;YACvF,qDAAqD;YACrD,iBAAiB,CAAC;gBACd,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,KAAK,EAAE,KAAK;aACQ,CAAC,CAAA;YAEzB,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YAC1C,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC;gBAC9C,mBAAmB,CAAC,WAAW,CAAC;oBAC5B,OAAO,EAAE;wBACL,GAAG,EAAE,SAAS;qBACjB;iBACJ,CAAC;aACL,CAAC,CAAA;YACF,OAAO,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACrD,CAAC;KACJ,CAAC,CAAA;IAEF,IAAI,oBAAoB,GAAG,MAAM,sBAAsB,CACnD,MAAM,EACN,cAAc,CACjB,CAAA;IAED,MAAM,mBAAmB,GAAG,KAAK,EAC7B,UAAmB,EACnB,SAAe,EACF,EAAE;QACf,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,SAAS,CAAA;QACpB,CAAC;QAED,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,GACnC,iDAAiD,CAC7C,MAAM,gBAAgB,EAAE,CAC3B,CAAA;QAEL,OAAO,qBAAqB,CAAC;YACzB,cAAc;YACd,eAAe;YACf,SAAS;SACZ,CAAC,CAAA;IACN,CAAC,CAAA;IAED,OAAO;QACH,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,oBAAoB;QAC5B,mBAAmB;QACnB,gBAAgB;QAChB,KAAK,CAAC,UAAU;YACZ,IAAI,oBAAoB;gBAAE,OAAO,SAAS,CAAA;YAE1C,oBAAoB,GAAG,MAAM,sBAAsB,CAC/C,MAAM,EACN,cAAc,CACjB,CAAA;YAED,IAAI,oBAAoB;gBAAE,OAAO,SAAS,CAAA;YAE1C,OAAO,cAAc,CAAA;QACzB,CAAC;QAED,KAAK,CAAC,cAAc;YAChB,IAAI,oBAAoB;gBAAE,OAAO,SAAS,CAAA;YAE1C,oBAAoB,GAAG,MAAM,sBAAsB,CAC/C,MAAM,EACN,cAAc,CACjB,CAAA;YAED,IAAI,oBAAoB;gBAAE,OAAO,SAAS,CAAA;YAE1C,OAAO,iDAAiD,CACpD,MAAM,gBAAgB,EAAE,CAC3B,CAAC,CAAC,CAAC,CAAA;QACR,CAAC;QAED,qCAAqC;QACrC,KAAK,CAAC,QAAQ,CAAC,cAAuB;YAClC,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAC7C,cAAc,EACd,cAAc,CACjB,CAAA;YACD,OAAO,eAAe,CAAC,MAAM,EAAE;gBAC3B,MAAM,EAAE,cAAc;gBACtB,UAAU,EAAE,iBAAiB;gBAC7B,GAAG;aACN,CAAC,CAAA;QACN,CAAC;QAED,wBAAwB;QACxB,KAAK,CAAC,iBAAiB,CAAC,aAAa;YACjC,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC/D,CAAC;QAED,uBAAuB;QACvB,KAAK,CAAC,WAAW;YACb,IAAI,oBAAoB;gBAAE,OAAO,IAAI,CAAA;YAErC,oBAAoB,GAAG,MAAM,sBAAsB,CAC/C,MAAM,EACN,cAAc,CACjB,CAAA;YAED,IAAI,oBAAoB;gBAAE,OAAO,IAAI,CAAA;YACrC,OAAO,gBAAgB,EAAE,CAAA;QAC7B,CAAC;QAED,8BAA8B;QAC9B,KAAK,CAAC,oBAAoB,CAAC,GAAG;YAC1B,OAAO,kBAAkB,CAAC;gBACtB,GAAG,EAAE,kBAAkB;gBACvB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE;oBACF,iBAAiB;oBACjB,EAAE;oBACF,kBAAkB,CAAC;wBACf,GAAG,EAAE,aAAa;wBAClB,YAAY,EAAE,eAAe;wBAC7B,IAAI,EAAE;4BACF,EAAE;4BACF,gBAAgB,CAAC;gCACb,GAAG,EAAE,GAAG,CAAC,GAAG;gCACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;gCACtB,IAAI,EAAE,GAAG,CAAC,IAAI;6BACa,CAAC;yBACnC;qBACJ,CAAC;oBACF,CAAC,CAAC,gBAAgB;iBACrB;aACJ,CAAC,CAAA;QACN,CAAC;QAED,gBAAgB;QAChB,KAAK,CAAC,cAAc,CAAC,GAAG;YACpB,MAAM,EAAE,GAAG,GAA+B,CAAA;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;oBACzC,GAAG,EAAE,YAAY;oBACjB,YAAY,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;iBAC9B,CAAC,CAAA;gBACF,OAAO,kBAAkB,CAAC;oBACtB,GAAG,EAAE,kBAAkB;oBACvB,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;iBACtD,CAAC,CAAA;YACN,CAAC;YAED,oBAAoB;YACpB,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACzC,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvD,OAAO,EAAE,CAAC,IAAI,CAAA;gBAClB,CAAC;gBACD,OAAO,kBAAkB,CAAC;oBACtB,GAAG,EAAE,kBAAkB;oBACvB,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC,CAAA;YACN,CAAC;YAED,IAAI,EAAE,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;gBACjC,OAAO,kBAAkB,CAAC;oBACtB,GAAG,EAAE,kBAAkB;oBACvB,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;iBAChC,CAAC,CAAA;YACN,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACxC,CAAC;QAED,6BAA6B;QAC7B,KAAK,CAAC,iBAAiB,CAAC,aAAa;YACjC,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC/D,CAAC;KACJ,CAAA;AACL,CAAC"}
@@ -1,20 +1,24 @@
1
- import { getAction, getEntryPointVersion } from "permissionless";
2
- import { concat, concatHex, encodeAbiParameters, hexToBigInt, pad, parseAbiParameters, toFunctionSelector, toHex, zeroAddress } from "viem";
3
- import { getChainId, readContract } from "viem/actions";
1
+ import { getEntryPointVersion } from "permissionless";
2
+ import { concat, concatHex, pad, toHex, zeroAddress } from "viem";
3
+ import { getChainId } from "viem/actions";
4
4
  import { VALIDATOR_MODE, VALIDATOR_TYPE } from "../../constants.js";
5
5
  import { ValidatorMode } from "../../types/kernel.js";
6
- import { getKernelVersion } from "../../utils.js";
7
- import { KernelV3AccountAbi } from "../kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js";
8
- import { KernelModuleIsInitializedAbi } from "../kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js";
9
- import { getKernelImplementationAddress } from "./6492.js";
6
+ import { getKernelV3Nonce } from "../kernel/utils/account/ep0_7/getKernelV3Nonce.js";
7
+ import { accountMetadata } from "../kernel/utils/common/accountMetadata.js";
8
+ import { getActionSelector } from "../kernel/utils/common/getActionSelector.js";
9
+ import { getEncodedPluginsData as getEncodedPluginsDataV1 } from "../kernel/utils/plugins/ep0_6/getEncodedPluginsData.js";
10
+ import { getPluginsEnableTypedData as getPluginsEnableTypedDataV1 } from "../kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js";
11
+ import { getEncodedPluginsData as getEncodedPluginsDataV2 } from "../kernel/utils/plugins/ep0_7/getEncodedPluginsData.js";
12
+ import { getPluginsEnableTypedData as getPluginsEnableTypedDataV2 } from "../kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js";
13
+ import { isPluginInitialized } from "../kernel/utils/plugins/ep0_7/isPluginInitialized.js";
10
14
  export function isKernelPluginManager(
11
15
  // biome-ignore lint/suspicious/noExplicitAny: <explanation>
12
16
  plugin) {
13
17
  return plugin.getPluginEnableSignature !== undefined;
14
18
  }
15
- export async function toKernelPluginManager(client, { sudo, regular, pluginEnableSignature, validatorInitData, executorData = {
16
- executor: zeroAddress,
17
- selector: toFunctionSelector("execute(address, uint256, bytes, uint8)")
19
+ export async function toKernelPluginManager(client, { sudo, regular, pluginEnableSignature, validatorInitData, action = {
20
+ selector: getActionSelector("v0.6"),
21
+ address: zeroAddress
18
22
  }, validAfter = 0, validUntil = 0, entryPoint: entryPointAddress, kernelVersion }) {
19
23
  const entryPointVersion = getEntryPointVersion(entryPointAddress);
20
24
  const chainId = await getChainId(client);
@@ -22,29 +26,31 @@ export async function toKernelPluginManager(client, { sudo, regular, pluginEnabl
22
26
  if (!activeValidator) {
23
27
  throw new Error("One of `sudo` or `regular` validator must be set");
24
28
  }
25
- const getValidatorSignature = async (accountAddress, selector, sig) => {
29
+ action = {
30
+ selector: action?.selector ?? getActionSelector(entryPointVersion),
31
+ address: action?.address ?? zeroAddress
32
+ };
33
+ if (!action) {
34
+ throw new Error("Executor data must be set");
35
+ }
36
+ const getSignatureData = async (accountAddress, selector, userOpSignature = "0x") => {
26
37
  if (entryPointVersion === "v0.6") {
27
38
  if (regular) {
28
- if (await regular.isEnabled(accountAddress, selector)) {
39
+ if (await isPluginEnabled(accountAddress, selector)) {
29
40
  return ValidatorMode.plugin;
30
41
  }
31
42
  const enableSignature = await getPluginEnableSignature(accountAddress);
32
- const enableData = await regular.getEnableData(accountAddress);
33
- const enableDataLength = enableData.length / 2 - 1;
34
43
  if (!enableSignature) {
35
44
  throw new Error("Enable signature not set");
36
45
  }
37
- return concat([
38
- ValidatorMode.enable,
39
- pad(toHex(validUntil), { size: 6 }), // 6 bytes 4 - 10
40
- pad(toHex(validAfter), { size: 6 }), // 6 bytes 10 - 16
41
- pad(regular.address, { size: 20 }), // 20 bytes 16 - 36
42
- pad(executorData.executor, { size: 20 }), // 20 bytes 36 - 56
43
- pad(toHex(enableDataLength), { size: 32 }), // 32 bytes 56 - 88
44
- enableData, // 88 - 88 + enableData.length
45
- pad(toHex(enableSignature.length / 2 - 1), { size: 32 }), // 32 bytes 88 + enableData.length - 120 + enableData.length
46
- enableSignature // 120 + enableData.length - 120 + enableData.length + enableSignature.length
47
- ]);
46
+ return getEncodedPluginsDataV1({
47
+ accountAddress,
48
+ enableSignature,
49
+ action,
50
+ validator: regular,
51
+ validUntil,
52
+ validAfter
53
+ });
48
54
  }
49
55
  else if (sudo) {
50
56
  return ValidatorMode.sudo;
@@ -54,46 +60,33 @@ export async function toKernelPluginManager(client, { sudo, regular, pluginEnabl
54
60
  }
55
61
  }
56
62
  if (regular) {
57
- if ((await isPluginInitialized_7579(accountAddress)) ||
58
- (await regular.isEnabled(accountAddress, selector))) {
59
- return sig ?? "0x";
63
+ if (await isPluginEnabled(accountAddress, action.selector)) {
64
+ return userOpSignature;
60
65
  }
61
- const enableData = await regular.getEnableData(accountAddress);
62
66
  const enableSignature = await getPluginEnableSignature(accountAddress);
63
- return concat([
64
- zeroAddress, // hook address 20 bytes
65
- encodeAbiParameters(parseAbiParameters("bytes validatorData, bytes hookData, bytes selectorData, bytes enableSig, bytes userOpSig"), [
66
- enableData,
67
- "0x",
68
- concat([
69
- executorData.selector,
70
- executorData.executor,
71
- zeroAddress,
72
- "0x"
73
- ]),
74
- enableSignature,
75
- sig ?? "0x"
76
- ])
77
- ]);
67
+ return getEncodedPluginsDataV2({
68
+ accountAddress,
69
+ action,
70
+ enableSignature,
71
+ userOpSignature,
72
+ validator: regular
73
+ });
78
74
  }
79
75
  else if (sudo) {
80
- return sig ?? "0x";
76
+ return userOpSignature;
81
77
  }
82
78
  else {
83
79
  throw new Error("One of `sudo` or `regular` validator must be set");
84
80
  }
85
81
  };
86
- const isPluginInitialized_7579 = async (accountAddress) => {
87
- try {
88
- return await getAction(client, readContract)({
89
- abi: KernelModuleIsInitializedAbi,
90
- address: activeValidator.address,
91
- functionName: "isInitialized",
92
- args: [accountAddress]
93
- });
82
+ const isPluginEnabled = async (accountAddress, selector) => {
83
+ if (!regular)
84
+ throw new Error("regular validator not set");
85
+ if (entryPointVersion === "v0.6") {
86
+ return regular.isEnabled(accountAddress, selector);
94
87
  }
95
- catch (error) { }
96
- return false;
88
+ return ((await regular.isEnabled(accountAddress, action.selector)) ||
89
+ (await isPluginInitialized(client, accountAddress, regular.address)));
97
90
  };
98
91
  const getPluginEnableSignature = async (accountAddress) => {
99
92
  if (pluginEnableSignature)
@@ -102,131 +95,55 @@ export async function toKernelPluginManager(client, { sudo, regular, pluginEnabl
102
95
  throw new Error("sudo validator not set -- need it to enable the validator");
103
96
  if (!regular)
104
97
  throw new Error("regular validator not set");
105
- const kernelImplAddr = await getKernelImplementationAddress(client, accountAddress);
106
- const _kernelVersion = kernelVersion ?? getKernelVersion(entryPointAddress, kernelImplAddr);
98
+ const { version } = await accountMetadata(client, accountAddress, entryPointAddress);
107
99
  let ownerSig;
108
100
  if (entryPointVersion === "v0.6") {
109
- ownerSig = await sudo.signTypedData({
110
- domain: {
111
- name: "Kernel",
112
- version: _kernelVersion,
113
- chainId,
114
- verifyingContract: accountAddress
115
- },
116
- types: {
117
- ValidatorApproved: [
118
- { name: "sig", type: "bytes4" },
119
- { name: "validatorData", type: "uint256" },
120
- { name: "executor", type: "address" },
121
- { name: "enableData", type: "bytes" }
122
- ]
123
- },
124
- message: {
125
- sig: executorData.selector,
126
- validatorData: hexToBigInt(concatHex([
127
- pad(toHex(validUntil ?? 0), {
128
- size: 6
129
- }),
130
- pad(toHex(validAfter ?? 0), {
131
- size: 6
132
- }),
133
- regular.address
134
- ]), { size: 32 }),
135
- executor: executorData.executor,
136
- enableData: await regular.getEnableData(accountAddress)
137
- },
138
- primaryType: "ValidatorApproved"
101
+ const typeData = await getPluginsEnableTypedDataV1({
102
+ accountAddress,
103
+ chainId,
104
+ kernelVersion: version ?? kernelVersion,
105
+ action,
106
+ validator: regular,
107
+ validUntil,
108
+ validAfter
139
109
  });
110
+ ownerSig = await sudo.signTypedData(typeData);
140
111
  pluginEnableSignature = ownerSig;
141
112
  return ownerSig;
142
113
  }
143
- ownerSig = await sudo.signTypedData({
144
- domain: {
145
- name: "Kernel",
146
- version: _kernelVersion,
147
- chainId,
148
- verifyingContract: accountAddress
149
- },
150
- types: {
151
- Enable: [
152
- { name: "validationId", type: "bytes21" },
153
- { name: "nonce", type: "uint32" },
154
- { name: "hook", type: "address" },
155
- { name: "validatorData", type: "bytes" },
156
- { name: "hookData", type: "bytes" },
157
- { name: "selectorData", type: "bytes" }
158
- ]
159
- },
160
- message: {
161
- validationId: concat([
162
- activeValidator.isPermissionValidator
163
- ? VALIDATOR_TYPE.PERMISSION
164
- : VALIDATOR_TYPE.SECONDARY,
165
- activeValidator?.isPermissionValidator
166
- ? // @ts-ignore
167
- pad(regular.getPermissionId(), {
168
- size: 20,
169
- dir: "right"
170
- })
171
- : activeValidator.address
172
- ]),
173
- nonce: await getKernelV3Nonce(accountAddress),
174
- hook: zeroAddress,
175
- validatorData: await regular.getEnableData(accountAddress),
176
- hookData: "0x",
177
- selectorData: concat([
178
- executorData.selector,
179
- executorData.executor,
180
- zeroAddress,
181
- "0x"
182
- ])
183
- },
184
- primaryType: "Enable"
114
+ const validatorNonce = await getKernelV3Nonce(client, accountAddress);
115
+ const typedData = await getPluginsEnableTypedDataV2({
116
+ accountAddress,
117
+ chainId,
118
+ kernelVersion: version,
119
+ action,
120
+ validator: regular,
121
+ validatorNonce
185
122
  });
123
+ ownerSig = await sudo.signTypedData(typedData);
186
124
  return ownerSig;
187
125
  };
188
- const getKernelV3Nonce = async (accountAddress) => {
189
- try {
190
- const nonce = await getAction(client, readContract)({
191
- abi: KernelV3AccountAbi,
192
- address: accountAddress,
193
- functionName: "currentNonce",
194
- args: []
195
- });
196
- return nonce;
197
- }
198
- catch (error) {
199
- return 2;
200
- }
126
+ const getIdentifier = (isSudo = false) => {
127
+ const validator = (isSudo ? sudo : regular) ?? activeValidator;
128
+ return concat([
129
+ VALIDATOR_TYPE[validator.validatorType],
130
+ validator.getIdentifier()
131
+ ]);
201
132
  };
202
133
  return {
203
134
  ...activeValidator,
204
- getValidationId: (isSudo = false) => {
205
- const validator = (isSudo ? sudo : regular) ?? activeValidator;
206
- return concat([
207
- validator.isPermissionValidator
208
- ? VALIDATOR_TYPE.PERMISSION
209
- : VALIDATOR_TYPE.SECONDARY,
210
- validator?.isPermissionValidator
211
- ? // @ts-ignore
212
- pad(validator.getPermissionId(), {
213
- size: 20,
214
- dir: "right"
215
- })
216
- : validator.address
217
- ]);
218
- },
135
+ getIdentifier,
219
136
  signUserOperation: async (userOperation) => {
220
137
  const userOpSig = await activeValidator.signUserOperation(userOperation);
221
138
  if (entryPointVersion === "v0.6") {
222
139
  return concatHex([
223
- await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
140
+ await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
224
141
  userOpSig
225
142
  ]);
226
143
  }
227
- return await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
144
+ return await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
228
145
  },
229
- getExecutorData: () => executorData,
146
+ getAction: () => action,
230
147
  getValidityData: () => ({
231
148
  validAfter,
232
149
  validUntil
@@ -235,37 +152,38 @@ export async function toKernelPluginManager(client, { sudo, regular, pluginEnabl
235
152
  const userOpSig = await activeValidator.getDummySignature(userOperation);
236
153
  if (entryPointVersion === "v0.6") {
237
154
  return concatHex([
238
- await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
155
+ await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
239
156
  userOpSig
240
157
  ]);
241
158
  }
242
- return await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
159
+ return await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
243
160
  },
244
- getNonceKey: async (accountAddress = zeroAddress) => {
161
+ getNonceKey: async (accountAddress = zeroAddress, customNonceKey = 0n) => {
245
162
  if (entryPointVersion === "v0.6")
246
- return await activeValidator.getNonceKey();
247
- return BigInt(pad(concatHex([
248
- !regular ||
249
- (await regular.isEnabled(accountAddress, executorData.selector)) ||
250
- (await isPluginInitialized_7579(accountAddress))
251
- ? VALIDATOR_MODE.DEFAULT
252
- : VALIDATOR_MODE.ENABLE, // 1 byte
253
- regular
254
- ? regular.isPermissionValidator
255
- ? VALIDATOR_TYPE.PERMISSION
256
- : VALIDATOR_TYPE.SECONDARY
257
- : VALIDATOR_TYPE.SUDO, // 1 byte
258
- regular?.isPermissionValidator
259
- ? // @ts-ignore
260
- pad(regular.getPermissionId(), {
261
- size: 20,
262
- dir: "right"
263
- })
264
- : activeValidator.address, // 20 bytes
265
- pad(toHex(await activeValidator.getNonceKey()), {
163
+ return await activeValidator.getNonceKey(accountAddress, customNonceKey);
164
+ // when using v0.7 if customNonceKey is greater than 2 bytes, throw error
165
+ if (customNonceKey > 0xffffn)
166
+ throw new Error("Custom nonce key must be less than 2 bytes");
167
+ const validatorMode = !regular ||
168
+ (await isPluginEnabled(accountAddress, action.selector))
169
+ ? VALIDATOR_MODE.DEFAULT
170
+ : VALIDATOR_MODE.ENABLE;
171
+ const validatorType = regular
172
+ ? VALIDATOR_TYPE[regular.validatorType]
173
+ : VALIDATOR_TYPE.SUDO;
174
+ const encoding = pad(concatHex([
175
+ validatorMode, // 1 byte
176
+ validatorType, // 1 byte
177
+ pad(activeValidator.getIdentifier(), {
178
+ size: 20,
179
+ dir: "right"
180
+ }), // 20 bytes
181
+ pad(toHex(await activeValidator.getNonceKey(accountAddress, customNonceKey)), {
266
182
  size: 2
267
- }) // 10 byte
268
- ]), { size: 24 }));
183
+ }) // 2 byte
184
+ ]), { size: 24 });
185
+ const encodedNonceKey = BigInt(encoding);
186
+ return encodedNonceKey;
269
187
  },
270
188
  getPluginEnableSignature,
271
189
  getValidatorInitData: async () => {
@@ -274,7 +192,8 @@ export async function toKernelPluginManager(client, { sudo, regular, pluginEnabl
274
192
  return {
275
193
  validatorAddress: sudo?.address ?? activeValidator.address,
276
194
  enableData: (await sudo?.getEnableData()) ??
277
- (await activeValidator.getEnableData())
195
+ (await activeValidator.getEnableData()),
196
+ identifier: pad(getIdentifier(true), { size: 21, dir: "right" })
278
197
  };
279
198
  }
280
199
  };