@zerodev/sdk 5.2.0-alpha-3 → 5.2.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 (203) hide show
  1. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js +115 -58
  2. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js.map +1 -1
  3. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryAbi.js +39 -0
  4. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryAbi.js.map +1 -0
  5. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryStakerAbi.js +203 -0
  6. package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryStakerAbi.js.map +1 -0
  7. package/_cjs/accounts/kernel/createKernelAccount.js +43 -22
  8. package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
  9. package/_cjs/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js +22 -0
  10. package/_cjs/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js.map +1 -0
  11. package/_cjs/accounts/kernel/utils/common/getActionSelector.js +19 -0
  12. package/_cjs/accounts/kernel/utils/common/getActionSelector.js.map +1 -0
  13. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js +22 -0
  14. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -0
  15. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js +39 -0
  16. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -0
  17. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js +21 -0
  18. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js.map +1 -0
  19. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js +41 -0
  20. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -0
  21. package/_cjs/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js +20 -0
  22. package/_cjs/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js.map +1 -0
  23. package/_cjs/accounts/kernel/v1/createKernelV1Account.js +5 -2
  24. package/_cjs/accounts/kernel/v1/createKernelV1Account.js.map +1 -1
  25. package/_cjs/accounts/kernel/v2/createKernelV2Account.js +9 -4
  26. package/_cjs/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  27. package/_cjs/accounts/utils/getCustomNonceKeyFromString.js +19 -0
  28. package/_cjs/accounts/utils/getCustomNonceKeyFromString.js.map +1 -0
  29. package/_cjs/accounts/utils/index.js +3 -1
  30. package/_cjs/accounts/utils/index.js.map +1 -1
  31. package/_cjs/accounts/utils/toKernelPluginManager.js +120 -184
  32. package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
  33. package/_cjs/actions/account-client/getUserOperationGasPrice.js +15 -0
  34. package/_cjs/actions/account-client/getUserOperationGasPrice.js.map +1 -0
  35. package/_cjs/actions/index.js +3 -1
  36. package/_cjs/actions/index.js.map +1 -1
  37. package/_cjs/actions/paymaster/estimateGasInERC20.js +2 -2
  38. package/_cjs/actions/paymaster/estimateGasInERC20.js.map +1 -1
  39. package/_cjs/actions/paymaster/sponsorUserOperation.js +1 -2
  40. package/_cjs/actions/paymaster/sponsorUserOperation.js.map +1 -1
  41. package/_cjs/clients/decorators/kernel.js +3 -1
  42. package/_cjs/clients/decorators/kernel.js.map +1 -1
  43. package/_cjs/clients/kernelAccountClient.js +29 -3
  44. package/_cjs/clients/kernelAccountClient.js.map +1 -1
  45. package/_cjs/clients/paymasterClient.js +18 -1
  46. package/_cjs/clients/paymasterClient.js.map +1 -1
  47. package/_cjs/clients/utils.js +31 -0
  48. package/_cjs/clients/utils.js.map +1 -0
  49. package/_cjs/constants.js +5 -2
  50. package/_cjs/constants.js.map +1 -1
  51. package/_cjs/index.js +6 -1
  52. package/_cjs/index.js.map +1 -1
  53. package/_cjs/providers/KernelEIP1193Provider.js +37 -0
  54. package/_cjs/providers/KernelEIP1193Provider.js.map +1 -1
  55. package/_cjs/types/index.js.map +1 -1
  56. package/_cjs/types/kernel.js.map +1 -1
  57. package/_cjs/utils.js +1 -2
  58. package/_cjs/utils.js.map +1 -1
  59. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js +115 -58
  60. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js.map +1 -1
  61. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryAbi.js +36 -0
  62. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryAbi.js.map +1 -0
  63. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryStakerAbi.js +200 -0
  64. package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryStakerAbi.js.map +1 -0
  65. package/_esm/accounts/kernel/createKernelAccount.js +44 -23
  66. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  67. package/_esm/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js +18 -0
  68. package/_esm/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.js.map +1 -0
  69. package/_esm/accounts/kernel/utils/common/getActionSelector.js +15 -0
  70. package/_esm/accounts/kernel/utils/common/getActionSelector.js.map +1 -0
  71. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js +18 -0
  72. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -0
  73. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js +35 -0
  74. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -0
  75. package/_esm/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js +18 -0
  76. package/_esm/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js.map +1 -0
  77. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js +42 -0
  78. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -0
  79. package/_esm/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js +16 -0
  80. package/_esm/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.js.map +1 -0
  81. package/_esm/accounts/kernel/v1/createKernelV1Account.js +6 -3
  82. package/_esm/accounts/kernel/v1/createKernelV1Account.js.map +1 -1
  83. package/_esm/accounts/kernel/v2/createKernelV2Account.js +10 -5
  84. package/_esm/accounts/kernel/v2/createKernelV2Account.js.map +1 -1
  85. package/_esm/accounts/utils/getCustomNonceKeyFromString.js +15 -0
  86. package/_esm/accounts/utils/getCustomNonceKeyFromString.js.map +1 -0
  87. package/_esm/accounts/utils/index.js +1 -0
  88. package/_esm/accounts/utils/index.js.map +1 -1
  89. package/_esm/accounts/utils/toKernelPluginManager.js +124 -188
  90. package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
  91. package/_esm/actions/account-client/getUserOperationGasPrice.js +11 -0
  92. package/_esm/actions/account-client/getUserOperationGasPrice.js.map +1 -0
  93. package/_esm/actions/index.js +1 -0
  94. package/_esm/actions/index.js.map +1 -1
  95. package/_esm/actions/paymaster/estimateGasInERC20.js +2 -2
  96. package/_esm/actions/paymaster/estimateGasInERC20.js.map +1 -1
  97. package/_esm/actions/paymaster/sponsorUserOperation.js +1 -2
  98. package/_esm/actions/paymaster/sponsorUserOperation.js.map +1 -1
  99. package/_esm/clients/decorators/kernel.js +3 -1
  100. package/_esm/clients/decorators/kernel.js.map +1 -1
  101. package/_esm/clients/kernelAccountClient.js +30 -4
  102. package/_esm/clients/kernelAccountClient.js.map +1 -1
  103. package/_esm/clients/paymasterClient.js +19 -2
  104. package/_esm/clients/paymasterClient.js.map +1 -1
  105. package/_esm/clients/utils.js +26 -0
  106. package/_esm/clients/utils.js.map +1 -0
  107. package/_esm/constants.js +4 -1
  108. package/_esm/constants.js.map +1 -1
  109. package/_esm/index.js +3 -1
  110. package/_esm/index.js.map +1 -1
  111. package/_esm/providers/KernelEIP1193Provider.js +37 -0
  112. package/_esm/providers/KernelEIP1193Provider.js.map +1 -1
  113. package/_esm/types/index.js.map +1 -1
  114. package/_esm/types/kernel.js.map +1 -1
  115. package/_esm/utils.js +2 -3
  116. package/_esm/utils.js.map +1 -1
  117. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.d.ts +110 -20
  118. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.d.ts.map +1 -1
  119. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryAbi.d.ts +60 -0
  120. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryAbi.d.ts.map +1 -0
  121. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryStakerAbi.d.ts +215 -0
  122. package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryStakerAbi.d.ts.map +1 -0
  123. package/_types/accounts/kernel/createKernelAccount.d.ts +8 -4
  124. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  125. package/_types/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.d.ts +3 -0
  126. package/_types/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.d.ts.map +1 -0
  127. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts +4 -0
  128. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts.map +1 -0
  129. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts +9 -0
  130. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts.map +1 -0
  131. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts +13 -0
  132. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts.map +1 -0
  133. package/_types/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.d.ts +9 -0
  134. package/_types/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.d.ts.map +1 -0
  135. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts +10 -0
  136. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts.map +1 -0
  137. package/_types/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.d.ts +3 -0
  138. package/_types/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.d.ts.map +1 -0
  139. package/_types/accounts/kernel/v1/createKernelV1Account.d.ts +1 -1
  140. package/_types/accounts/kernel/v1/createKernelV1Account.d.ts.map +1 -1
  141. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts +3 -1
  142. package/_types/accounts/kernel/v2/createKernelV2Account.d.ts.map +1 -1
  143. package/_types/accounts/utils/getCustomNonceKeyFromString.d.ts +3 -0
  144. package/_types/accounts/utils/getCustomNonceKeyFromString.d.ts.map +1 -0
  145. package/_types/accounts/utils/index.d.ts +1 -0
  146. package/_types/accounts/utils/index.d.ts.map +1 -1
  147. package/_types/accounts/utils/toKernelPluginManager.d.ts +1 -1
  148. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  149. package/_types/actions/account-client/getUserOperationGasPrice.d.ts +9 -0
  150. package/_types/actions/account-client/getUserOperationGasPrice.d.ts.map +1 -0
  151. package/_types/actions/index.d.ts +1 -0
  152. package/_types/actions/index.d.ts.map +1 -1
  153. package/_types/actions/paymaster/estimateGasInERC20.d.ts.map +1 -1
  154. package/_types/actions/paymaster/sponsorUserOperation.d.ts.map +1 -1
  155. package/_types/clients/decorators/kernel.d.ts +8 -1
  156. package/_types/clients/decorators/kernel.d.ts.map +1 -1
  157. package/_types/clients/kernelAccountClient.d.ts +12 -4
  158. package/_types/clients/kernelAccountClient.d.ts.map +1 -1
  159. package/_types/clients/paymasterClient.d.ts.map +1 -1
  160. package/_types/clients/utils.d.ts +3 -0
  161. package/_types/clients/utils.d.ts.map +1 -0
  162. package/_types/constants.d.ts +4 -1
  163. package/_types/constants.d.ts.map +1 -1
  164. package/_types/index.d.ts +3 -1
  165. package/_types/index.d.ts.map +1 -1
  166. package/_types/providers/KernelEIP1193Provider.d.ts +2 -0
  167. package/_types/providers/KernelEIP1193Provider.d.ts.map +1 -1
  168. package/_types/types/index.d.ts +1 -1
  169. package/_types/types/index.d.ts.map +1 -1
  170. package/_types/types/kernel.d.ts +32 -17
  171. package/_types/types/kernel.d.ts.map +1 -1
  172. package/_types/utils.d.ts.map +1 -1
  173. package/accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.ts +115 -58
  174. package/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryAbi.ts +35 -0
  175. package/accounts/kernel/abi/kernel_v_3_0_0/KernelFactoryStakerAbi.ts +199 -0
  176. package/accounts/kernel/createKernelAccount.ts +59 -26
  177. package/accounts/kernel/utils/account/ep0_7/getKernelV3Nonce.ts +24 -0
  178. package/accounts/kernel/utils/common/getActionSelector.ts +20 -0
  179. package/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.ts +39 -0
  180. package/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts +76 -0
  181. package/accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.ts +47 -0
  182. package/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts +63 -0
  183. package/accounts/kernel/utils/plugins/ep0_7/isPluginInitialized.ts +23 -0
  184. package/accounts/kernel/v1/createKernelV1Account.ts +21 -8
  185. package/accounts/kernel/v2/createKernelV2Account.ts +17 -6
  186. package/accounts/utils/getCustomNonceKeyFromString.ts +21 -0
  187. package/accounts/utils/index.ts +2 -0
  188. package/accounts/utils/toKernelPluginManager.ts +155 -224
  189. package/actions/account-client/getUserOperationGasPrice.ts +26 -0
  190. package/actions/index.ts +5 -0
  191. package/actions/paymaster/estimateGasInERC20.ts +2 -3
  192. package/actions/paymaster/sponsorUserOperation.ts +1 -3
  193. package/clients/decorators/kernel.ts +22 -6
  194. package/clients/kernelAccountClient.ts +36 -3
  195. package/clients/paymasterClient.ts +24 -1
  196. package/clients/utils.ts +28 -0
  197. package/constants.ts +6 -2
  198. package/index.ts +6 -1
  199. package/package.json +4 -4
  200. package/providers/KernelEIP1193Provider.ts +51 -0
  201. package/types/index.ts +4 -2
  202. package/types/kernel.ts +52 -38
  203. package/utils.ts +2 -3
@@ -1,50 +1,56 @@
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, maxUint16, maxUint192, 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)")
18
- }, validAfter = 0, validUntil = 0, entryPoint: entryPointAddress, kernelVersion }) {
19
+ export async function toKernelPluginManager(client, { sudo, regular, pluginEnableSignature, validatorInitData, action, validAfter = 0, validUntil = 0, entryPoint: entryPointAddress, kernelVersion }) {
19
20
  const entryPointVersion = getEntryPointVersion(entryPointAddress);
20
21
  const chainId = await getChainId(client);
21
22
  const activeValidator = regular || sudo;
22
23
  if (!activeValidator) {
23
24
  throw new Error("One of `sudo` or `regular` validator must be set");
24
25
  }
25
- const getValidatorSignature = async (accountAddress, selector, sig) => {
26
+ action = {
27
+ selector: action?.selector ?? getActionSelector(entryPointVersion),
28
+ address: action?.address ?? zeroAddress
29
+ };
30
+ if (!action) {
31
+ throw new Error("Action data must be set");
32
+ }
33
+ const getSignatureData = async (accountAddress, selector, userOpSignature = "0x") => {
34
+ if (!action) {
35
+ throw new Error("Action data must be set");
36
+ }
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,179 +60,101 @@ 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 (!action) {
84
+ throw new Error("Action data must be set");
85
+ }
86
+ if (!regular)
87
+ throw new Error("regular validator not set");
88
+ if (entryPointVersion === "v0.6") {
89
+ return regular.isEnabled(accountAddress, selector);
94
90
  }
95
- catch (error) { }
96
- return false;
91
+ return ((await regular.isEnabled(accountAddress, action.selector)) ||
92
+ (await isPluginInitialized(client, accountAddress, regular.address)));
97
93
  };
98
94
  const getPluginEnableSignature = async (accountAddress) => {
95
+ if (!action) {
96
+ throw new Error("Action data must be set");
97
+ }
99
98
  if (pluginEnableSignature)
100
99
  return pluginEnableSignature;
101
100
  if (!sudo)
102
101
  throw new Error("sudo validator not set -- need it to enable the validator");
103
102
  if (!regular)
104
103
  throw new Error("regular validator not set");
105
- const kernelImplAddr = await getKernelImplementationAddress(client, accountAddress);
106
- const _kernelVersion = kernelVersion ?? getKernelVersion(entryPointAddress, kernelImplAddr);
104
+ const { version } = await accountMetadata(client, accountAddress, entryPointAddress);
107
105
  let ownerSig;
108
106
  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"
107
+ const typeData = await getPluginsEnableTypedDataV1({
108
+ accountAddress,
109
+ chainId,
110
+ kernelVersion: kernelVersion ?? version,
111
+ action,
112
+ validator: regular,
113
+ validUntil,
114
+ validAfter
139
115
  });
116
+ ownerSig = await sudo.signTypedData(typeData);
140
117
  pluginEnableSignature = ownerSig;
141
118
  return ownerSig;
142
119
  }
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"
120
+ const validatorNonce = await getKernelV3Nonce(client, accountAddress);
121
+ const typedData = await getPluginsEnableTypedDataV2({
122
+ accountAddress,
123
+ chainId,
124
+ kernelVersion: version,
125
+ action,
126
+ validator: regular,
127
+ validatorNonce
185
128
  });
129
+ ownerSig = await sudo.signTypedData(typedData);
186
130
  return ownerSig;
187
131
  };
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
- }
132
+ const getIdentifier = (isSudo = false) => {
133
+ const validator = (isSudo ? sudo : regular) ?? activeValidator;
134
+ return concat([
135
+ VALIDATOR_TYPE[validator.validatorType],
136
+ validator.getIdentifier()
137
+ ]);
201
138
  };
202
139
  return {
203
140
  ...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
- },
141
+ getIdentifier,
219
142
  signUserOperation: async (userOperation) => {
220
143
  const userOpSig = await activeValidator.signUserOperation(userOperation);
221
144
  if (entryPointVersion === "v0.6") {
222
145
  return concatHex([
223
- await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
146
+ await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
224
147
  userOpSig
225
148
  ]);
226
149
  }
227
- return await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
150
+ return await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
151
+ },
152
+ getAction: () => {
153
+ if (!action) {
154
+ throw new Error("Action data must be set");
155
+ }
156
+ return action;
228
157
  },
229
- getExecutorData: () => executorData,
230
158
  getValidityData: () => ({
231
159
  validAfter,
232
160
  validUntil
@@ -235,37 +163,44 @@ export async function toKernelPluginManager(client, { sudo, regular, pluginEnabl
235
163
  const userOpSig = await activeValidator.getDummySignature(userOperation);
236
164
  if (entryPointVersion === "v0.6") {
237
165
  return concatHex([
238
- await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
166
+ await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
239
167
  userOpSig
240
168
  ]);
241
169
  }
242
- return await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
170
+ return await getSignatureData(userOperation.sender, userOperation.callData.toString().slice(0, 10), userOpSig);
243
171
  },
244
- getNonceKey: async (accountAddress = zeroAddress) => {
245
- 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()), {
172
+ getNonceKey: async (accountAddress = zeroAddress, customNonceKey = 0n) => {
173
+ if (!action) {
174
+ throw new Error("Action data must be set");
175
+ }
176
+ if (entryPointVersion === "v0.6") {
177
+ if (customNonceKey > maxUint192) {
178
+ throw new Error("Custom nonce key must be equal or less than maxUint192 for v0.6");
179
+ }
180
+ return await activeValidator.getNonceKey(accountAddress, customNonceKey);
181
+ }
182
+ if (customNonceKey > maxUint16)
183
+ throw new Error("Custom nonce key must be equal or less than 2 bytes(maxUint16) for v0.7");
184
+ const validatorMode = !regular ||
185
+ (await isPluginEnabled(accountAddress, action.selector))
186
+ ? VALIDATOR_MODE.DEFAULT
187
+ : VALIDATOR_MODE.ENABLE;
188
+ const validatorType = regular
189
+ ? VALIDATOR_TYPE[regular.validatorType]
190
+ : VALIDATOR_TYPE.SUDO;
191
+ const encoding = pad(concatHex([
192
+ validatorMode, // 1 byte
193
+ validatorType, // 1 byte
194
+ pad(activeValidator.getIdentifier(), {
195
+ size: 20,
196
+ dir: "right"
197
+ }), // 20 bytes
198
+ pad(toHex(await activeValidator.getNonceKey(accountAddress, customNonceKey)), {
266
199
  size: 2
267
- }) // 10 byte
268
- ]), { size: 24 }));
200
+ }) // 2 byte
201
+ ]), { size: 24 });
202
+ const encodedNonceKey = BigInt(encoding);
203
+ return encodedNonceKey;
269
204
  },
270
205
  getPluginEnableSignature,
271
206
  getValidatorInitData: async () => {
@@ -274,7 +209,8 @@ export async function toKernelPluginManager(client, { sudo, regular, pluginEnabl
274
209
  return {
275
210
  validatorAddress: sudo?.address ?? activeValidator.address,
276
211
  enableData: (await sudo?.getEnableData()) ??
277
- (await activeValidator.getEnableData())
212
+ (await activeValidator.getEnableData()),
213
+ identifier: pad(getIdentifier(true), { size: 21, dir: "right" })
278
214
  };
279
215
  }
280
216
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toKernelPluginManager.js","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toKernelPluginManager.js","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export const getUserOperationGasPrice = async (client) => {
2
+ const gasPrice = await client.request({
3
+ method: "zd_getUserOperationGasPrice",
4
+ params: []
5
+ });
6
+ return {
7
+ maxFeePerGas: BigInt(gasPrice.standard.maxFeePerGas),
8
+ maxPriorityFeePerGas: BigInt(gasPrice.standard.maxPriorityFeePerGas)
9
+ };
10
+ };
11
+ //# sourceMappingURL=getUserOperationGasPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserOperationGasPrice.js","sourceRoot":"","sources":["../../../actions/account-client/getUserOperationGasPrice.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAKzC,MAA2E,EACtB,EAAE;IACvD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE,EAAE;KACb,CAAC,CAAA;IAEF,OAAO;QACH,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QACpD,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACvE,CAAA;AACL,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { sponsorUserOperation } from "./paymaster/sponsorUserOperation.js";
2
2
  export { signUserOperation } from "./account-client/signUserOperation.js";
3
+ export { getUserOperationGasPrice } from "./account-client/getUserOperationGasPrice.js";
3
4
  export { estimateGasInERC20 } from "./paymaster/estimateGasInERC20.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAGvB,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EACH,iBAAiB,EAGpB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACH,kBAAkB,EAGrB,MAAM,mCAAmC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAGvB,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EACH,iBAAiB,EAGpB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACH,wBAAwB,EAE3B,MAAM,8CAA8C,CAAA;AAErD,OAAO,EACH,kBAAkB,EAGrB,MAAM,mCAAmC,CAAA"}
@@ -1,5 +1,5 @@
1
+ import { ENTRYPOINT_ADDRESS_V06 } from "permissionless";
1
2
  import { deepHexlify } from "permissionless/utils";
2
- import { KERNEL_ADDRESSES } from "../../accounts/index.js";
3
3
  /**
4
4
  * Returns paymasterAndData & updated gas parameters required to sponsor a userOperation.
5
5
  */
@@ -11,7 +11,7 @@ export const estimateGasInERC20 = async (client, args) => {
11
11
  chainId: client.chain?.id,
12
12
  userOp: deepHexlify(args.userOperation),
13
13
  tokenAddress: args.gasTokenAddress,
14
- entryPointAddress: args.entryPoint ?? KERNEL_ADDRESSES.ENTRYPOINT_V0_6
14
+ entryPointAddress: args.entryPoint ?? ENTRYPOINT_ADDRESS_V06
15
15
  }
16
16
  ]
17
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"estimateGasInERC20.js","sourceRoot":"","sources":["../../../actions/paymaster/estimateGasInERC20.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAkB1D;;GAEG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACnC,MAA0C,EAC1C,IAAkC,EACG,EAAE;IACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE;YACJ;gBACI,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAY;gBACnC,MAAM,EAAE,WAAW,CACf,IAAI,CAAC,aAAa,CACmB;gBACzC,YAAY,EAAE,IAAI,CAAC,eAAe;gBAClC,iBAAiB,EACb,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,eAAe;aAC1D;SACJ;KACJ,CAAC,CAAA;IAEF,MAAM,MAAM,GAAkC;QAC1C,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,aAAa,EAAE,QAAQ,CAAC,aAAa;KACxC,CAAA;IAED,MAAM,MAAM,GACR,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAEvE,OAAO,EAAE,MAAM,EAAE,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"estimateGasInERC20.js","sourceRoot":"","sources":["../../../actions/paymaster/estimateGasInERC20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAMvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAmBlD;;GAEG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACnC,MAA0C,EAC1C,IAAkC,EACG,EAAE;IACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE;YACJ;gBACI,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAY;gBACnC,MAAM,EAAE,WAAW,CACf,IAAI,CAAC,aAAa,CACmB;gBACzC,YAAY,EAAE,IAAI,CAAC,eAAe;gBAClC,iBAAiB,EAAE,IAAI,CAAC,UAAU,IAAI,sBAAsB;aAC/D;SACJ;KACJ,CAAC,CAAA;IAEF,MAAM,MAAM,GAAkC;QAC1C,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,aAAa,EAAE,QAAQ,CAAC,aAAa;KACxC,CAAA;IAED,MAAM,MAAM,GACR,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAEvE,OAAO,EAAE,MAAM,EAAE,CAAA;AACrB,CAAC,CAAA"}
@@ -1,5 +1,4 @@
1
1
  import { ENTRYPOINT_ADDRESS_V06, deepHexlify } from "permissionless/utils";
2
- import { KERNEL_ADDRESSES } from "../../accounts/index.js";
3
2
  /**
4
3
  * Returns paymasterAndData & updated gas parameters required to sponsor a userOperation.
5
4
  */
@@ -10,7 +9,7 @@ export const sponsorUserOperation = async (client, args) => {
10
9
  {
11
10
  chainId: client.chain?.id,
12
11
  userOp: deepHexlify(args.userOperation),
13
- entryPointAddress: args.entryPoint ?? KERNEL_ADDRESSES.ENTRYPOINT_V0_6,
12
+ entryPointAddress: args.entryPoint,
14
13
  gasTokenData: args.gasToken && {
15
14
  tokenAddress: args.gasToken
16
15
  },
@@ -1 +1 @@
1
- {"version":3,"file":"sponsorUserOperation.js","sourceRoot":"","sources":["../../../actions/paymaster/sponsorUserOperation.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAG1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AA2C1D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACrC,MAA0C,EAC1C,IAAgD,EACG,EAAE;IACrD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,yBAAyB;QACjC,MAAM,EAAE;YACJ;gBACI,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAY;gBACnC,MAAM,EAAE,WAAW,CACf,IAAI,CAAC,aAAa,CAGrB;gBACD,iBAAiB,EACb,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,eAAe;gBACvD,YAAY,EAAE,IAAI,CAAC,QAAQ,IAAI;oBAC3B,YAAY,EAAE,IAAI,CAAC,QAAQ;iBAC9B;gBACD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,KAAK;gBAClD,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;aAC5C;SACJ;KACJ,CAAC,CAAA;IACF,IAAI,IAAI,CAAC,UAAU,KAAK,sBAAsB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,QASnB,CAAA;QACD,OAAO;YACH,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC;YAC1D,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC;YAC9D,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;SACH,CAAA;IACnD,CAAC;IACD,MAAM,WAAW,GAAG,QASnB,CAAA;IAED,OAAO;QACH,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC;QAC9D,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC;QAC1D,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,6BAA6B,EAAE,MAAM,CACjC,WAAW,CAAC,6BAA6B,CAC5C;QACD,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC;QACpE,aAAa,EAAE,WAAW,CAAC,aAAa;KACG,CAAA;IAC/C,gEAAgE;IAChE,wCAAwC;IACxC,6BAA6B;IAC7B,mDAAmD;IACnD,+DAA+D;IAC/D,mEAAmE;IACnE,kDAAkD;IAClD,IAAI;IACJ,OAAO;IACP,6CAA6C;IAC7C,kDAAkD;IAClD,MAAM;IACN,iBAAiB;IACjB,qBAAqB;IACrB,uDAAuD;IACvD,sEAAsE;IACtE,QAAQ;IACR,IAAI;IAEJ,gBAAgB;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"sponsorUserOperation.js","sourceRoot":"","sources":["../../../actions/paymaster/sponsorUserOperation.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AA6C1E;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACrC,MAA0C,EAC1C,IAAgD,EACG,EAAE;IACrD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,yBAAyB;QACjC,MAAM,EAAE;YACJ;gBACI,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAY;gBACnC,MAAM,EAAE,WAAW,CACf,IAAI,CAAC,aAAa,CAGrB;gBACD,iBAAiB,EAAE,IAAI,CAAC,UAAU;gBAClC,YAAY,EAAE,IAAI,CAAC,QAAQ,IAAI;oBAC3B,YAAY,EAAE,IAAI,CAAC,QAAQ;iBAC9B;gBACD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,KAAK;gBAClD,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;aAC5C;SACJ;KACJ,CAAC,CAAA;IACF,IAAI,IAAI,CAAC,UAAU,KAAK,sBAAsB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,QASnB,CAAA;QACD,OAAO;YACH,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC;YAC1D,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC;YAC9D,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;SACH,CAAA;IACnD,CAAC;IACD,MAAM,WAAW,GAAG,QASnB,CAAA;IAED,OAAO;QACH,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC;QAC9D,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC;QAC1D,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,6BAA6B,EAAE,MAAM,CACjC,WAAW,CAAC,6BAA6B,CAC5C;QACD,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC;QACpE,aAAa,EAAE,WAAW,CAAC,aAAa;KACG,CAAA;IAC/C,gEAAgE;IAChE,wCAAwC;IACxC,6BAA6B;IAC7B,mDAAmD;IACnD,+DAA+D;IAC/D,mEAAmE;IACnE,kDAAkD;IAClD,IAAI;IACJ,OAAO;IACP,6CAA6C;IAC7C,kDAAkD;IAClD,MAAM;IACN,iBAAiB;IACjB,qBAAqB;IACrB,uDAAuD;IACvD,sEAAsE;IACtE,QAAQ;IACR,IAAI;IAEJ,gBAAgB;AACpB,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { smartAccountActions } from "permissionless";
2
2
  import {} from "permissionless/actions/smartAccount";
3
+ import { getUserOperationGasPrice } from "../../actions/account-client/getUserOperationGasPrice.js";
3
4
  import { signUserOperation } from "../../actions/index.js";
4
5
  import { estimateGasInERC20 } from "../../actions/paymaster/estimateGasInERC20.js";
5
6
  import { sponsorUserOperation } from "../../actions/paymaster/sponsorUserOperation.js";
@@ -15,6 +16,7 @@ export const kernelAccountClientActions = ({ middleware }) => (client) => ({
15
16
  signUserOperation: (args) => signUserOperation(client, {
16
17
  ...args,
17
18
  middleware
18
- })
19
+ }),
20
+ getUserOperationGasPrice: async () => getUserOperationGasPrice(client)
19
21
  });
20
22
  //# sourceMappingURL=kernel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAE9E,OAAO,EAAmB,MAAM,qCAAqC,CAAA;AAOrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAGH,kBAAkB,EACrB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAGH,oBAAoB,EACvB,MAAM,iDAAiD,CAAA;AAexD,MAAM,CAAC,MAAM,uBAAuB,GAChC,CAAgC,iBAA6B,EAAE,EAAE,CACjE,CAAC,MAAc,EAA6C,EAAE,CAAC,CAAC;IAC5D,oBAAoB,EAAE,KAAK,EACvB,IAAoE,EACtE,EAAE,CACA,oBAAoB,CAAC,MAA4C,EAAE;QAC/D,GAAG,IAAI;QACP,UAAU,EAAE,iBAAiB;KAChC,CAAC;IACN,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,kBAAkB,CACd,MAA4C,EAC5C,IAAI,CACP;CACR,CAAC,CAAA;AA2BN,MAAM,CAAC,MAAM,0BAA0B,GACnC,CAAgC,EAAE,UAAU,EAA0B,EAAE,EAAE,CAC1E,CAOI,MAAiD,EACY,EAAE,CAAC,CAAC;IACjE,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;IAC9C,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,iBAAiB,CACb,MAAM,EACN;QACI,GAAG,IAAI;QACP,UAAU;KAC6C,CAC9D;CACR,CAAC,CAAA"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAE9E,OAAO,EAAmB,MAAM,qCAAqC,CAAA;AAGrE,OAAO,EAEH,wBAAwB,EAC3B,MAAM,0DAA0D,CAAA;AAKjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAGH,kBAAkB,EACrB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAGH,oBAAoB,EACvB,MAAM,iDAAiD,CAAA;AAexD,MAAM,CAAC,MAAM,uBAAuB,GAChC,CAAgC,iBAA6B,EAAE,EAAE,CACjE,CAAC,MAAc,EAA6C,EAAE,CAAC,CAAC;IAC5D,oBAAoB,EAAE,KAAK,EACvB,IAAoE,EACtE,EAAE,CACA,oBAAoB,CAChB,MAA4C,EAC5C;QACI,GAAG,IAAI;QACP,UAAU,EAAE,iBAAiB;KAChC,CACJ;IACL,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,kBAAkB,CACd,MAA4C,EAC5C,IAAI,CACP;CACR,CAAC,CAAA;AAmCN,MAAM,CAAC,MAAM,0BAA0B,GACnC,CAAgC,EAAE,UAAU,EAA0B,EAAE,EAAE,CAC1E,CAOI,MAAiD,EACY,EAAE,CAAC,CAAC;IACjE,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;IAC9C,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,iBAAiB,CACb,MAAM,EACN;QACI,GAAG,IAAI;QACP,UAAU;KAC6C,CAC9D;IACL,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;CACzE,CAAC,CAAA"}
@@ -1,17 +1,43 @@
1
- import { createClient } from "viem";
1
+ import { getEntryPointVersion } from "permissionless";
2
+ import { http, createClient } from "viem";
2
3
  import {} from "../accounts/index.js";
4
+ import { getUserOperationGasPrice } from "../actions/account-client/getUserOperationGasPrice.js";
3
5
  import { kernelAccountClientActions } from "./decorators/kernel.js";
6
+ import { hasPimlicoAsProvider, setPimlicoAsProvider } from "./utils.js";
4
7
  export const createKernelAccountClient = (parameters) => {
5
- const { key = "Account", name = "Kernel Account Client", bundlerTransport } = parameters;
8
+ const { key = "Account", name = "Kernel Account Client", bundlerTransport, entryPoint } = parameters;
9
+ const entryPointVersion = getEntryPointVersion(entryPoint);
10
+ const shouldIncludePimlicoProvider = bundlerTransport({}).config.key === "http" &&
11
+ entryPointVersion === "v0.7";
6
12
  const client = createClient({
7
13
  ...parameters,
8
14
  key,
9
15
  name,
10
- transport: (opts) => bundlerTransport({ ...opts, retryCount: 0 }),
16
+ transport: (opts) => {
17
+ let _bundlerTransport = bundlerTransport({
18
+ ...opts,
19
+ retryCount: 0
20
+ });
21
+ if (!shouldIncludePimlicoProvider)
22
+ return _bundlerTransport;
23
+ _bundlerTransport = http(setPimlicoAsProvider(_bundlerTransport.value?.url))({ ...opts, retryCount: 0 });
24
+ return _bundlerTransport;
25
+ },
11
26
  type: "kernelAccountClient"
12
27
  });
28
+ let middleware = parameters.middleware;
29
+ if ((!middleware ||
30
+ (typeof middleware !== "function" && !middleware.gasPrice)) &&
31
+ client.transport?.url &&
32
+ hasPimlicoAsProvider(client.transport.url)) {
33
+ const gasPrice = () => getUserOperationGasPrice(client);
34
+ middleware = {
35
+ ...middleware,
36
+ gasPrice
37
+ };
38
+ }
13
39
  return client.extend(kernelAccountClientActions({
14
- middleware: parameters.middleware
40
+ middleware
15
41
  }));
16
42
  };
17
43
  //# sourceMappingURL=kernelAccountClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernelAccountClient.js","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAKH,YAAY,EACf,MAAM,MAAM,CAAA;AACb,OAAO,EAA2B,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAEH,0BAA0B,EAC7B,MAAM,wBAAwB,CAAA;AAsC/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAQrC,UAKC,EACiE,EAAE;IACpE,MAAM,EACF,GAAG,GAAG,SAAS,EACf,IAAI,GAAG,uBAAuB,EAC9B,gBAAgB,EACnB,GAAG,UAAU,CAAA;IACd,MAAM,MAAM,GAAG,YAAY,CAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,EAAE,qBAAqB;KAC9B,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,UAAU,EAAE,UAAU,CAAC,UAAU;KACpC,CAAC,CACiE,CAAA;AAC3E,CAAC,CAAA"}
1
+ {"version":3,"file":"kernelAccountClient.js","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAKrD,OAAO,EACH,IAAI,EAKJ,YAAY,EACf,MAAM,MAAM,CAAA;AACb,OAAO,EAA2B,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAA;AAChG,OAAO,EAEH,0BAA0B,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAsCvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAQrC,UAKC,EACiE,EAAE;IACpE,MAAM,EACF,GAAG,GAAG,SAAS,EACf,IAAI,GAAG,uBAAuB,EAC9B,gBAAgB,EAChB,UAAU,EACb,GAAG,UAAU,CAAA;IACd,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAC1D,MAAM,4BAA4B,GAC9B,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM;QAC1C,iBAAiB,KAAK,MAAM,CAAA;IAEhC,MAAM,MAAM,GAAG,YAAY,CAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,iBAAiB,GAAG,gBAAgB,CAAC;gBACrC,GAAG,IAAI;gBACP,UAAU,EAAE,CAAC;aAChB,CAAC,CAAA;YACF,IAAI,CAAC,4BAA4B;gBAAE,OAAO,iBAAiB,CAAA;YAC3D,iBAAiB,GAAG,IAAI,CACpB,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CACrD,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7B,OAAO,iBAAiB,CAAA;QAC5B,CAAC;QACD,IAAI,EAAE,qBAAqB;KAC9B,CAAC,CAAA;IAEF,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;IACtC,IACI,CAAC,CAAC,UAAU;QACR,CAAC,OAAO,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,EAAE,GAAG;QACrB,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAC5C,CAAC;QACC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;QACvD,UAAU,GAAG;YACT,GAAG,UAAU;YACb,QAAQ;SACX,CAAA;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,UAAU;KACb,CAAC,CACiE,CAAA;AAC3E,CAAC,CAAA"}