@zerodev/sdk 5.3.25 → 5.4.0-beta.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 (320) hide show
  1. package/_cjs/accounts/index.js.map +1 -1
  2. package/_cjs/accounts/kernel/createKernelAccount.js +171 -199
  3. package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
  4. package/_cjs/accounts/kernel/utils/account/ep0_6/encodeCallData.js +13 -9
  5. package/_cjs/accounts/kernel/utils/account/ep0_6/encodeCallData.js.map +1 -1
  6. package/_cjs/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.js.map +1 -1
  7. package/_cjs/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.js +18 -17
  8. package/_cjs/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.js.map +1 -1
  9. package/_cjs/accounts/kernel/utils/account/ep0_7/encodeCallData.js +12 -8
  10. package/_cjs/accounts/kernel/utils/account/ep0_7/encodeCallData.js.map +1 -1
  11. package/_cjs/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.js.map +1 -1
  12. package/_cjs/accounts/kernel/utils/common/accountMetadata.js.map +1 -1
  13. package/_cjs/accounts/kernel/utils/common/getActionSelector.js +2 -2
  14. package/_cjs/accounts/kernel/utils/common/getActionSelector.js.map +1 -1
  15. package/_cjs/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.js +2 -2
  16. package/_cjs/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.js.map +1 -1
  17. package/_cjs/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.js +1 -1
  18. package/_cjs/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.js.map +1 -1
  19. package/_cjs/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.js +1 -1
  20. package/_cjs/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.js.map +1 -1
  21. package/_cjs/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.js +2 -2
  22. package/_cjs/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.js.map +1 -1
  23. package/_cjs/accounts/kernel/utils/ep0_7/encodeExecuteCall.js +2 -2
  24. package/_cjs/accounts/kernel/utils/ep0_7/encodeExecuteCall.js.map +1 -1
  25. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -1
  26. package/_cjs/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -1
  27. package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -1
  28. package/_cjs/accounts/kernel/v1/createKernelAccountV1.js +81 -94
  29. package/_cjs/accounts/kernel/v1/createKernelAccountV1.js.map +1 -1
  30. package/_cjs/accounts/kernel/v2/createKernelAccountV0_2.js +104 -110
  31. package/_cjs/accounts/kernel/v2/createKernelAccountV0_2.js.map +1 -1
  32. package/_cjs/accounts/utils/getCustomNonceKeyFromString.js +2 -4
  33. package/_cjs/accounts/utils/getCustomNonceKeyFromString.js.map +1 -1
  34. package/_cjs/accounts/utils/index.js +1 -7
  35. package/_cjs/accounts/utils/index.js.map +1 -1
  36. package/_cjs/accounts/utils/multisend.js.map +1 -1
  37. package/_cjs/accounts/utils/toKernelPluginManager.js +14 -16
  38. package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
  39. package/_cjs/actions/account-client/changeSudoValidator.js +27 -21
  40. package/_cjs/actions/account-client/changeSudoValidator.js.map +1 -1
  41. package/_cjs/actions/account-client/getKernelV3ModuleCurrentNonce.js +8 -6
  42. package/_cjs/actions/account-client/getKernelV3ModuleCurrentNonce.js.map +1 -1
  43. package/_cjs/actions/account-client/invalidateNonce.js +20 -15
  44. package/_cjs/actions/account-client/invalidateNonce.js.map +1 -1
  45. package/_cjs/actions/account-client/sendTransaction.js +42 -0
  46. package/_cjs/actions/account-client/sendTransaction.js.map +1 -0
  47. package/_cjs/actions/account-client/signMessage.js +15 -0
  48. package/_cjs/actions/account-client/signMessage.js.map +1 -0
  49. package/_cjs/actions/account-client/signTypedData.js +32 -0
  50. package/_cjs/actions/account-client/signTypedData.js.map +1 -0
  51. package/_cjs/actions/account-client/signUserOperation.js +7 -5
  52. package/_cjs/actions/account-client/signUserOperation.js.map +1 -1
  53. package/_cjs/actions/account-client/uninstallPlugin.js +13 -12
  54. package/_cjs/actions/account-client/uninstallPlugin.js.map +1 -1
  55. package/_cjs/actions/account-client/writeContract.js +21 -0
  56. package/_cjs/actions/account-client/writeContract.js.map +1 -0
  57. package/_cjs/actions/index.js +13 -3
  58. package/_cjs/actions/index.js.map +1 -1
  59. package/_cjs/actions/paymaster/estimateGasInERC20.js +4 -4
  60. package/_cjs/actions/paymaster/estimateGasInERC20.js.map +1 -1
  61. package/_cjs/actions/paymaster/sponsorUserOperation.js +4 -6
  62. package/_cjs/actions/paymaster/sponsorUserOperation.js.map +1 -1
  63. package/_cjs/actions/public/getAccountNonce.js +38 -0
  64. package/_cjs/actions/public/getAccountNonce.js.map +1 -0
  65. package/_cjs/actions/public/getSenderAddress.js +166 -0
  66. package/_cjs/actions/public/getSenderAddress.js.map +1 -0
  67. package/_cjs/actions/public/index.js +8 -0
  68. package/_cjs/actions/public/index.js.map +1 -0
  69. package/_cjs/clients/decorators/kernel.js +17 -27
  70. package/_cjs/clients/decorators/kernel.js.map +1 -1
  71. package/_cjs/clients/fallbackKernelAccountClient.js.map +1 -1
  72. package/_cjs/clients/kernelAccountClient.js +27 -45
  73. package/_cjs/clients/kernelAccountClient.js.map +1 -1
  74. package/_cjs/clients/paymasterClient.js +7 -18
  75. package/_cjs/clients/paymasterClient.js.map +1 -1
  76. package/_cjs/errors/index.js +18 -0
  77. package/_cjs/errors/index.js.map +1 -0
  78. package/_cjs/gasTokenAddresses.js +2 -1
  79. package/_cjs/gasTokenAddresses.js.map +1 -1
  80. package/_cjs/index.js.map +1 -1
  81. package/_cjs/providers/KernelEIP1193Provider.js.map +1 -1
  82. package/_cjs/types/kernel.js.map +1 -1
  83. package/_cjs/utils.js +27 -7
  84. package/_cjs/utils.js.map +1 -1
  85. package/_esm/accounts/index.js.map +1 -1
  86. package/_esm/accounts/kernel/createKernelAccount.js +181 -217
  87. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  88. package/_esm/accounts/kernel/utils/account/ep0_6/encodeCallData.js +13 -9
  89. package/_esm/accounts/kernel/utils/account/ep0_6/encodeCallData.js.map +1 -1
  90. package/_esm/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.js.map +1 -1
  91. package/_esm/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.js +18 -17
  92. package/_esm/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.js.map +1 -1
  93. package/_esm/accounts/kernel/utils/account/ep0_7/encodeCallData.js +12 -8
  94. package/_esm/accounts/kernel/utils/account/ep0_7/encodeCallData.js.map +1 -1
  95. package/_esm/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.js.map +1 -1
  96. package/_esm/accounts/kernel/utils/common/accountMetadata.js.map +1 -1
  97. package/_esm/accounts/kernel/utils/common/getActionSelector.js +2 -2
  98. package/_esm/accounts/kernel/utils/common/getActionSelector.js.map +1 -1
  99. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.js +2 -2
  100. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.js.map +1 -1
  101. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.js +1 -1
  102. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.js.map +1 -1
  103. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.js +1 -1
  104. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.js.map +1 -1
  105. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.js +2 -2
  106. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.js.map +1 -1
  107. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteCall.js +2 -2
  108. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteCall.js.map +1 -1
  109. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -1
  110. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -1
  111. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -1
  112. package/_esm/accounts/kernel/v1/createKernelAccountV1.js +91 -98
  113. package/_esm/accounts/kernel/v1/createKernelAccountV1.js.map +1 -1
  114. package/_esm/accounts/kernel/v2/createKernelAccountV0_2.js +105 -118
  115. package/_esm/accounts/kernel/v2/createKernelAccountV0_2.js.map +1 -1
  116. package/_esm/accounts/utils/getCustomNonceKeyFromString.js +2 -4
  117. package/_esm/accounts/utils/getCustomNonceKeyFromString.js.map +1 -1
  118. package/_esm/accounts/utils/index.js +0 -5
  119. package/_esm/accounts/utils/index.js.map +1 -1
  120. package/_esm/accounts/utils/multisend.js.map +1 -1
  121. package/_esm/accounts/utils/toKernelPluginManager.js +14 -16
  122. package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
  123. package/_esm/actions/account-client/changeSudoValidator.js +23 -17
  124. package/_esm/actions/account-client/changeSudoValidator.js.map +1 -1
  125. package/_esm/actions/account-client/getKernelV3ModuleCurrentNonce.js +8 -6
  126. package/_esm/actions/account-client/getKernelV3ModuleCurrentNonce.js.map +1 -1
  127. package/_esm/actions/account-client/invalidateNonce.js +20 -15
  128. package/_esm/actions/account-client/invalidateNonce.js.map +1 -1
  129. package/_esm/actions/account-client/sendTransaction.js +85 -0
  130. package/_esm/actions/account-client/sendTransaction.js.map +1 -0
  131. package/_esm/actions/account-client/signMessage.js +58 -0
  132. package/_esm/actions/account-client/signMessage.js.map +1 -0
  133. package/_esm/actions/account-client/signTypedData.js +127 -0
  134. package/_esm/actions/account-client/signTypedData.js.map +1 -0
  135. package/_esm/actions/account-client/signUserOperation.js +7 -5
  136. package/_esm/actions/account-client/signUserOperation.js.map +1 -1
  137. package/_esm/actions/account-client/uninstallPlugin.js +10 -9
  138. package/_esm/actions/account-client/uninstallPlugin.js.map +1 -1
  139. package/_esm/actions/account-client/writeContract.js +18 -0
  140. package/_esm/actions/account-client/writeContract.js.map +1 -0
  141. package/_esm/actions/index.js +6 -1
  142. package/_esm/actions/index.js.map +1 -1
  143. package/_esm/actions/paymaster/estimateGasInERC20.js +3 -3
  144. package/_esm/actions/paymaster/estimateGasInERC20.js.map +1 -1
  145. package/_esm/actions/paymaster/sponsorUserOperation.js +3 -5
  146. package/_esm/actions/paymaster/sponsorUserOperation.js.map +1 -1
  147. package/_esm/actions/public/getAccountNonce.js +61 -0
  148. package/_esm/actions/public/getAccountNonce.js.map +1 -0
  149. package/_esm/actions/public/getSenderAddress.js +191 -0
  150. package/_esm/actions/public/getSenderAddress.js.map +1 -0
  151. package/_esm/actions/public/index.js +3 -0
  152. package/_esm/actions/public/index.js.map +1 -0
  153. package/_esm/clients/decorators/kernel.js +19 -28
  154. package/_esm/clients/decorators/kernel.js.map +1 -1
  155. package/_esm/clients/fallbackKernelAccountClient.js.map +1 -1
  156. package/_esm/clients/kernelAccountClient.js +28 -46
  157. package/_esm/clients/kernelAccountClient.js.map +1 -1
  158. package/_esm/clients/paymasterClient.js +8 -19
  159. package/_esm/clients/paymasterClient.js.map +1 -1
  160. package/_esm/errors/index.js +14 -0
  161. package/_esm/errors/index.js.map +1 -0
  162. package/_esm/gasTokenAddresses.js +2 -1
  163. package/_esm/gasTokenAddresses.js.map +1 -1
  164. package/_esm/index.js.map +1 -1
  165. package/_esm/providers/KernelEIP1193Provider.js.map +1 -1
  166. package/_esm/types/kernel.js.map +1 -1
  167. package/_esm/utils.js +29 -7
  168. package/_esm/utils.js.map +1 -1
  169. package/_types/accounts/index.d.ts +2 -2
  170. package/_types/accounts/index.d.ts.map +1 -1
  171. package/_types/accounts/kernel/createKernelAccount.d.ts +21 -18
  172. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  173. package/_types/accounts/kernel/utils/account/ep0_6/encodeCallData.d.ts +8 -3
  174. package/_types/accounts/kernel/utils/account/ep0_6/encodeCallData.d.ts.map +1 -1
  175. package/_types/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.d.ts +3 -2
  176. package/_types/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.d.ts.map +1 -1
  177. package/_types/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.d.ts +0 -1
  178. package/_types/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.d.ts.map +1 -1
  179. package/_types/accounts/kernel/utils/account/ep0_7/encodeCallData.d.ts +8 -3
  180. package/_types/accounts/kernel/utils/account/ep0_7/encodeCallData.d.ts.map +1 -1
  181. package/_types/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.d.ts +3 -2
  182. package/_types/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.d.ts.map +1 -1
  183. package/_types/accounts/kernel/utils/common/accountMetadata.d.ts +2 -2
  184. package/_types/accounts/kernel/utils/common/accountMetadata.d.ts.map +1 -1
  185. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts +1 -1
  186. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts.map +1 -1
  187. package/_types/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.d.ts +1 -1
  188. package/_types/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.d.ts.map +1 -1
  189. package/_types/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.d.ts +1 -1
  190. package/_types/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.d.ts.map +1 -1
  191. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts +2 -3
  192. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts.map +1 -1
  193. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts +4 -5
  194. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts.map +1 -1
  195. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts +2 -3
  196. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts.map +1 -1
  197. package/_types/accounts/kernel/utils/types.d.ts +2 -2
  198. package/_types/accounts/kernel/utils/types.d.ts.map +1 -1
  199. package/_types/accounts/kernel/v1/createKernelAccountV1.d.ts +18 -9
  200. package/_types/accounts/kernel/v1/createKernelAccountV1.d.ts.map +1 -1
  201. package/_types/accounts/kernel/v2/createKernelAccountV0_2.d.ts +9 -7
  202. package/_types/accounts/kernel/v2/createKernelAccountV0_2.d.ts.map +1 -1
  203. package/_types/accounts/utils/getCustomNonceKeyFromString.d.ts +2 -2
  204. package/_types/accounts/utils/getCustomNonceKeyFromString.d.ts.map +1 -1
  205. package/_types/accounts/utils/index.d.ts +0 -2
  206. package/_types/accounts/utils/index.d.ts.map +1 -1
  207. package/_types/accounts/utils/multisend.d.ts +2 -2
  208. package/_types/accounts/utils/multisend.d.ts.map +1 -1
  209. package/_types/accounts/utils/toKernelPluginManager.d.ts +4 -4
  210. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  211. package/_types/actions/account-client/changeSudoValidator.d.ts +5 -11
  212. package/_types/actions/account-client/changeSudoValidator.d.ts.map +1 -1
  213. package/_types/actions/account-client/getKernelV3ModuleCurrentNonce.d.ts +2 -5
  214. package/_types/actions/account-client/getKernelV3ModuleCurrentNonce.d.ts.map +1 -1
  215. package/_types/actions/account-client/invalidateNonce.d.ts +4 -6
  216. package/_types/actions/account-client/invalidateNonce.d.ts.map +1 -1
  217. package/_types/actions/account-client/sendTransaction.d.ts +50 -0
  218. package/_types/actions/account-client/sendTransaction.d.ts.map +1 -0
  219. package/_types/actions/account-client/signMessage.d.ts +50 -0
  220. package/_types/actions/account-client/signMessage.d.ts.map +1 -0
  221. package/_types/actions/account-client/signTypedData.d.ts +104 -0
  222. package/_types/actions/account-client/signTypedData.d.ts.map +1 -0
  223. package/_types/actions/account-client/signUserOperation.d.ts +4 -6
  224. package/_types/actions/account-client/signUserOperation.d.ts.map +1 -1
  225. package/_types/actions/account-client/uninstallPlugin.d.ts +5 -7
  226. package/_types/actions/account-client/uninstallPlugin.d.ts.map +1 -1
  227. package/_types/actions/account-client/writeContract.d.ts +4 -0
  228. package/_types/actions/account-client/writeContract.d.ts.map +1 -0
  229. package/_types/actions/index.d.ts +6 -1
  230. package/_types/actions/index.d.ts.map +1 -1
  231. package/_types/actions/paymaster/estimateGasInERC20.d.ts +1305 -4
  232. package/_types/actions/paymaster/estimateGasInERC20.d.ts.map +1 -1
  233. package/_types/actions/paymaster/sponsorUserOperation.d.ts +1314 -10
  234. package/_types/actions/paymaster/sponsorUserOperation.d.ts.map +1 -1
  235. package/_types/actions/public/getAccountNonce.d.ts +34 -0
  236. package/_types/actions/public/getAccountNonce.d.ts.map +1 -0
  237. package/_types/actions/public/getSenderAddress.d.ts +46 -0
  238. package/_types/actions/public/getSenderAddress.d.ts.map +1 -0
  239. package/_types/actions/public/index.d.ts +3 -0
  240. package/_types/actions/public/index.d.ts.map +1 -0
  241. package/_types/clients/decorators/kernel.d.ts +774 -20
  242. package/_types/clients/decorators/kernel.d.ts.map +1 -1
  243. package/_types/clients/fallbackKernelAccountClient.d.ts +255 -4
  244. package/_types/clients/fallbackKernelAccountClient.d.ts.map +1 -1
  245. package/_types/clients/kernelAccountClient.d.ts +34 -36
  246. package/_types/clients/kernelAccountClient.d.ts.map +1 -1
  247. package/_types/clients/paymasterClient.d.ts +10 -24
  248. package/_types/clients/paymasterClient.d.ts.map +1 -1
  249. package/_types/errors/index.d.ts +7 -0
  250. package/_types/errors/index.d.ts.map +1 -0
  251. package/_types/gasTokenAddresses.d.ts +1 -1
  252. package/_types/gasTokenAddresses.d.ts.map +1 -1
  253. package/_types/index.d.ts +1 -1
  254. package/_types/index.d.ts.map +1 -1
  255. package/_types/providers/KernelEIP1193Provider.d.ts +3 -4
  256. package/_types/providers/KernelEIP1193Provider.d.ts.map +1 -1
  257. package/_types/types/index.d.ts +1 -0
  258. package/_types/types/index.d.ts.map +1 -1
  259. package/_types/types/kernel.d.ts +25 -27
  260. package/_types/types/kernel.d.ts.map +1 -1
  261. package/_types/utils.d.ts +1310 -4
  262. package/_types/utils.d.ts.map +1 -1
  263. package/accounts/index.ts +5 -2
  264. package/accounts/kernel/createKernelAccount.ts +312 -357
  265. package/accounts/kernel/utils/account/ep0_6/encodeCallData.ts +22 -12
  266. package/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.ts +6 -3
  267. package/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.ts +22 -19
  268. package/accounts/kernel/utils/account/ep0_7/encodeCallData.ts +21 -11
  269. package/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.ts +6 -3
  270. package/accounts/kernel/utils/common/accountMetadata.ts +2 -7
  271. package/accounts/kernel/utils/common/getActionSelector.ts +3 -3
  272. package/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.ts +3 -3
  273. package/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.ts +1 -1
  274. package/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.ts +1 -1
  275. package/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.ts +3 -3
  276. package/accounts/kernel/utils/ep0_7/encodeExecuteCall.ts +2 -2
  277. package/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.ts +2 -8
  278. package/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts +4 -10
  279. package/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts +2 -8
  280. package/accounts/kernel/utils/types.ts +2 -2
  281. package/accounts/kernel/v1/createKernelAccountV1.ts +147 -174
  282. package/accounts/kernel/v2/createKernelAccountV0_2.ts +135 -179
  283. package/accounts/utils/getCustomNonceKeyFromString.ts +3 -6
  284. package/accounts/utils/index.ts +0 -9
  285. package/accounts/utils/multisend.ts +5 -2
  286. package/accounts/utils/toKernelPluginManager.ts +23 -27
  287. package/actions/account-client/changeSudoValidator.ts +61 -85
  288. package/actions/account-client/getKernelV3ModuleCurrentNonce.ts +12 -51
  289. package/actions/account-client/invalidateNonce.ts +38 -67
  290. package/actions/account-client/sendTransaction.ts +134 -0
  291. package/actions/account-client/signMessage.ts +75 -0
  292. package/actions/account-client/signTypedData.ts +159 -0
  293. package/actions/account-client/signUserOperation.ts +31 -63
  294. package/actions/account-client/uninstallPlugin.ts +35 -54
  295. package/actions/account-client/writeContract.ts +72 -0
  296. package/actions/index.ts +15 -6
  297. package/actions/paymaster/estimateGasInERC20.ts +12 -8
  298. package/actions/paymaster/sponsorUserOperation.ts +52 -50
  299. package/actions/public/getAccountNonce.ts +77 -0
  300. package/actions/public/getSenderAddress.ts +276 -0
  301. package/actions/public/index.ts +9 -0
  302. package/clients/decorators/kernel.ts +363 -159
  303. package/clients/fallbackKernelAccountClient.ts +9 -11
  304. package/clients/kernelAccountClient.ts +142 -104
  305. package/clients/paymasterClient.ts +69 -43
  306. package/errors/index.ts +17 -0
  307. package/gasTokenAddresses.ts +3 -2
  308. package/index.ts +5 -2
  309. package/package.json +2 -3
  310. package/providers/KernelEIP1193Provider.ts +4 -7
  311. package/types/index.ts +2 -0
  312. package/types/kernel.ts +64 -63
  313. package/utils.ts +41 -13
  314. package/_cjs/actions/paymaster/sponsorUserOperationEip7677.js +0 -59
  315. package/_cjs/actions/paymaster/sponsorUserOperationEip7677.js.map +0 -1
  316. package/_esm/actions/paymaster/sponsorUserOperationEip7677.js +0 -58
  317. package/_esm/actions/paymaster/sponsorUserOperationEip7677.js.map +0 -1
  318. package/_types/actions/paymaster/sponsorUserOperationEip7677.d.ts +0 -16
  319. package/_types/actions/paymaster/sponsorUserOperationEip7677.d.ts.map +0 -1
  320. package/actions/paymaster/sponsorUserOperationEip7677.ts +0 -152
@@ -1,139 +1,177 @@
1
- import { getEntryPointVersion } from "permissionless"
2
- import type { SmartAccount } from "permissionless/accounts"
3
- import type { Middleware } from "permissionless/actions/smartAccount"
4
- import type { EntryPoint, Prettify } from "permissionless/types"
5
- import type { BundlerRpcSchema } from "permissionless/types/bundler"
6
1
  import {
7
- http,
2
+ type BundlerRpcSchema,
8
3
  type Chain,
9
4
  type Client,
10
5
  type ClientConfig,
6
+ type EstimateFeesPerGasReturnType,
7
+ type Prettify,
8
+ type RpcSchema,
11
9
  type Transport,
12
10
  createClient
13
11
  } from "viem"
14
- import type { KernelSmartAccount } from "../accounts/index.js"
15
- import { getUserOperationGasPrice } from "../actions/account-client/getUserOperationGasPrice.js"
12
+ import {
13
+ type BundlerActions,
14
+ type BundlerClientConfig,
15
+ type PaymasterActions,
16
+ type PrepareUserOperationParameters,
17
+ type SmartAccount,
18
+ type UserOperationRequest,
19
+ bundlerActions,
20
+ type prepareUserOperation as viemPrepareUserOperation
21
+ } from "viem/account-abstraction"
16
22
  import {
17
23
  type KernelAccountClientActions,
18
24
  kernelAccountClientActions
19
25
  } from "./decorators/kernel.js"
20
- import { isProviderSet, setPimlicoAsProvider } from "./utils.js"
21
26
 
22
27
  export type KernelAccountClient<
23
- entryPoint extends EntryPoint,
24
28
  transport extends Transport = Transport,
25
29
  chain extends Chain | undefined = Chain | undefined,
26
- account extends
27
- | KernelSmartAccount<entryPoint, transport, chain>
28
- | undefined =
29
- | KernelSmartAccount<entryPoint, transport, chain>
30
- | undefined
31
- > = Client<
32
- transport,
33
- chain,
34
- account,
35
- BundlerRpcSchema<entryPoint>,
36
- KernelAccountClientActions<entryPoint, transport, chain, account>
37
- >
30
+ account extends SmartAccount | undefined = SmartAccount | undefined,
31
+ client extends Client | undefined = Client | undefined,
32
+ rpcSchema extends RpcSchema | undefined = undefined
33
+ > = Prettify<
34
+ Client<
35
+ transport,
36
+ chain extends Chain
37
+ ? chain
38
+ : // biome-ignore lint/suspicious/noExplicitAny: <explanation>
39
+ client extends Client<any, infer chain>
40
+ ? chain
41
+ : undefined,
42
+ account,
43
+ rpcSchema extends RpcSchema
44
+ ? [...BundlerRpcSchema, ...rpcSchema]
45
+ : BundlerRpcSchema,
46
+ BundlerActions<account> & KernelAccountClientActions<chain, account>
47
+ >
48
+ > & {
49
+ client: client
50
+ paymaster: BundlerClientConfig["paymaster"] | undefined
51
+ paymasterContext: BundlerClientConfig["paymasterContext"] | undefined
52
+ userOperation: BundlerClientConfig["userOperation"] | undefined
53
+ }
38
54
 
39
55
  export type SmartAccountClientConfig<
40
- entryPoint extends EntryPoint,
41
56
  transport extends Transport = Transport,
42
57
  chain extends Chain | undefined = Chain | undefined,
43
- account extends
44
- | SmartAccount<entryPoint, string, transport, chain>
45
- | undefined =
46
- | SmartAccount<entryPoint, string, transport, chain>
47
- | undefined
58
+ account extends SmartAccount | undefined = SmartAccount | undefined,
59
+ client extends Client | undefined = Client | undefined,
60
+ rpcSchema extends RpcSchema | undefined = undefined
48
61
  > = Prettify<
49
62
  Pick<
50
- ClientConfig<transport, chain, account>,
51
- "cacheTime" | "chain" | "key" | "name" | "pollingInterval"
52
- > & {
53
- account?: account
54
- bundlerTransport: Transport
55
- } & Middleware<entryPoint> & {
56
- entryPoint: entryPoint
57
- }
58
- >
59
-
60
- export const createKernelAccountClient = <
61
- TTransport extends Transport,
62
- TChain extends Chain | undefined,
63
- TEntryPoint extends EntryPoint,
64
- TSmartAccount extends
65
- | KernelSmartAccount<TEntryPoint, TTransport, TChain>
66
- | undefined =
67
- | KernelSmartAccount<TEntryPoint, TTransport, TChain>
63
+ ClientConfig<transport, chain, account, rpcSchema>,
64
+ | "account"
65
+ | "cacheTime"
66
+ | "chain"
67
+ | "key"
68
+ | "name"
69
+ | "pollingInterval"
70
+ | "rpcSchema"
71
+ >
72
+ > & {
73
+ bundlerTransport: transport
74
+ /** Client that points to an Execution RPC URL. */
75
+ client?: client | Client | undefined
76
+ /** Paymaster configuration. */
77
+ paymaster?:
78
+ | true
79
+ | {
80
+ /** Retrieves paymaster-related User Operation properties to be used for sending the User Operation. */
81
+ getPaymasterData?:
82
+ | PaymasterActions["getPaymasterData"]
83
+ | undefined
84
+ /** Retrieves paymaster-related User Operation properties to be used for gas estimation. */
85
+ getPaymasterStubData?:
86
+ | PaymasterActions["getPaymasterStubData"]
87
+ | undefined
88
+ }
89
+ | undefined
90
+ /** Paymaster context to pass to `getPaymasterData` and `getPaymasterStubData` calls. */
91
+ paymasterContext?: unknown
92
+ /** User Operation configuration. */
93
+ userOperation?:
94
+ | {
95
+ /** Prepares fee properties for the User Operation request. */
96
+ estimateFeesPerGas?:
97
+ | ((parameters: {
98
+ account: account | SmartAccount
99
+ bundlerClient: Client
100
+ userOperation: UserOperationRequest
101
+ }) => Promise<EstimateFeesPerGasReturnType<"eip1559">>)
102
+ | undefined
103
+ /** Prepare User Operation configuration. */
104
+ prepareUserOperation?: typeof viemPrepareUserOperation | undefined
105
+ }
68
106
  | undefined
107
+ }
108
+
109
+ export function createKernelAccountClient<
110
+ transport extends Transport,
111
+ chain extends Chain | undefined = undefined,
112
+ account extends SmartAccount | undefined = undefined,
113
+ client extends Client | undefined = undefined,
114
+ rpcSchema extends RpcSchema | undefined = undefined
69
115
  >(
70
116
  parameters: SmartAccountClientConfig<
71
- TEntryPoint,
72
- TTransport,
73
- TChain,
74
- TSmartAccount
117
+ transport,
118
+ chain,
119
+ account,
120
+ client,
121
+ rpcSchema
75
122
  >
76
- ): KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount> => {
123
+ ): KernelAccountClient<transport, chain, account, client, rpcSchema>
124
+
125
+ export function createKernelAccountClient(
126
+ parameters: SmartAccountClientConfig
127
+ ): KernelAccountClient {
77
128
  const {
129
+ client: client_,
78
130
  key = "Account",
79
131
  name = "Kernel Account Client",
132
+ paymaster,
133
+ paymasterContext,
80
134
  bundlerTransport,
81
- entryPoint
135
+ userOperation
82
136
  } = parameters
83
- const entryPointVersion = getEntryPointVersion(entryPoint)
84
- const shouldIncludePimlicoProvider =
85
- bundlerTransport({}).config.key === "http" &&
86
- entryPointVersion === "v0.7"
87
137
 
88
- const client = createClient({
89
- ...parameters,
90
- key,
91
- name,
92
- transport: (opts) => {
93
- let _bundlerTransport = bundlerTransport({
94
- ...opts,
95
- timeout: bundlerTransport({}).config.timeout,
96
- retryCount: 0
97
- })
98
- if (
99
- !shouldIncludePimlicoProvider ||
100
- isProviderSet(_bundlerTransport.value?.url, "ALCHEMY") ||
101
- isProviderSet(_bundlerTransport.value?.url, "ZERODEV") ||
102
- isProviderSet(_bundlerTransport.value?.url, "THIRDWEB") ||
103
- isProviderSet(_bundlerTransport.value?.url, "CONDUIT")
104
- )
105
- return _bundlerTransport
106
- _bundlerTransport = http(
107
- setPimlicoAsProvider(_bundlerTransport.value?.url)
108
- )({
109
- ...opts,
110
- timeout: bundlerTransport({}).config.timeout,
111
- retryCount: 0
112
- })
113
- return _bundlerTransport
114
- },
115
- type: "kernelAccountClient"
116
- })
138
+ const client = Object.assign(
139
+ createClient({
140
+ ...parameters,
141
+ chain: parameters.chain ?? client_?.chain,
142
+ transport: bundlerTransport,
143
+ key,
144
+ name,
145
+ type: "kernelAccountClient"
146
+ }),
147
+ { client: client_, paymaster, paymasterContext, userOperation }
148
+ )
117
149
 
118
- let middleware = parameters.middleware
150
+ if (parameters.userOperation?.prepareUserOperation) {
151
+ const customPrepareUserOp =
152
+ parameters.userOperation.prepareUserOperation
119
153
 
120
- if (
121
- (!middleware ||
122
- (typeof middleware !== "function" && !middleware.gasPrice)) &&
123
- client.transport?.url &&
124
- (isProviderSet(client.transport.url, "PIMLICO") ||
125
- isProviderSet(client.transport.url, "THIRDWEB") ||
126
- isProviderSet(client.transport.url, "CONDUIT"))
127
- ) {
128
- const gasPrice = () => getUserOperationGasPrice(client)
129
- middleware = {
130
- ...middleware,
131
- gasPrice
132
- }
154
+ return client
155
+ .extend(bundlerActions)
156
+ .extend((client) => ({
157
+ prepareUserOperation: (
158
+ args: PrepareUserOperationParameters
159
+ ) => {
160
+ return customPrepareUserOp(client, args)
161
+ }
162
+ }))
163
+ .extend(bundlerActions)
164
+ .extend((client) => ({
165
+ prepareUserOperation: (
166
+ args: PrepareUserOperationParameters
167
+ ) => {
168
+ return customPrepareUserOp(client, args)
169
+ }
170
+ }))
171
+ .extend(kernelAccountClientActions()) as KernelAccountClient
133
172
  }
134
- return client.extend(
135
- kernelAccountClientActions({
136
- middleware
137
- })
138
- ) as KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount>
173
+
174
+ return client
175
+ .extend(bundlerActions)
176
+ .extend(kernelAccountClientActions()) as KernelAccountClient
139
177
  }
@@ -1,28 +1,71 @@
1
- import { getEntryPointVersion } from "permissionless"
2
- import type { EntryPoint } from "permissionless/types/entrypoint"
3
1
  import {
4
- http,
5
- type Account,
2
+ type Address,
6
3
  type Chain,
7
4
  type Client,
5
+ type ClientConfig,
6
+ type Prettify,
8
7
  type PublicClientConfig,
8
+ type RpcSchema,
9
9
  type Transport,
10
10
  createClient
11
11
  } from "viem"
12
- import type { ZeroDevPaymasterRpcSchema } from "../types/kernel.js"
13
12
  import {
14
- type ZeroDevPaymasterClientActions,
15
- zerodevPaymasterActions
16
- } from "./decorators/kernel.js"
17
- import { isProviderSet, setPimlicoAsProvider } from "./utils.js"
13
+ type PaymasterActions,
14
+ type SmartAccount,
15
+ entryPoint07Address,
16
+ paymasterActions
17
+ } from "viem/account-abstraction"
18
+ import type { ZeroDevPaymasterRpcSchema } from "../types/kernel.js"
19
+ import { zerodevPaymasterActions } from "./decorators/kernel.js"
18
20
 
19
- export type ZeroDevPaymasterClient<entryPoint extends EntryPoint> = Client<
20
- Transport,
21
- Chain | undefined,
22
- Account | undefined,
23
- ZeroDevPaymasterRpcSchema<entryPoint>,
24
- ZeroDevPaymasterClientActions<entryPoint>
21
+ export type ZeroDevPaymasterClient<
22
+ entryPointVersion extends "0.6" | "0.7" = "0.7",
23
+ transport extends Transport = Transport,
24
+ chain extends Chain | undefined = Chain | undefined,
25
+ account extends SmartAccount | undefined = SmartAccount | undefined,
26
+ client extends Client | undefined = Client | undefined,
27
+ rpcSchema extends RpcSchema | undefined = undefined
28
+ > = Prettify<
29
+ Client<
30
+ transport,
31
+ chain extends Chain
32
+ ? chain
33
+ : // biome-ignore lint/suspicious/noExplicitAny: We need any to infer the chain type
34
+ client extends Client<any, infer chain>
35
+ ? chain
36
+ : undefined,
37
+ account,
38
+ rpcSchema extends RpcSchema
39
+ ? [...ZeroDevPaymasterRpcSchema<entryPointVersion>, ...rpcSchema]
40
+ : ZeroDevPaymasterRpcSchema<entryPointVersion>,
41
+ PaymasterActions
42
+ >
25
43
  >
44
+
45
+ export type ZeroDevPaymasterClientConfig<
46
+ entryPointVersion extends "0.6" | "0.7" = "0.7" | "0.6",
47
+ transport extends Transport = Transport,
48
+ chain extends Chain | undefined = Chain | undefined,
49
+ account extends SmartAccount | undefined = SmartAccount | undefined,
50
+ rpcSchema extends RpcSchema | undefined = undefined
51
+ > = Prettify<
52
+ Pick<
53
+ ClientConfig<transport, chain, account, rpcSchema>,
54
+ | "account"
55
+ | "cacheTime"
56
+ | "chain"
57
+ | "key"
58
+ | "name"
59
+ | "pollingInterval"
60
+ | "rpcSchema"
61
+ | "transport"
62
+ >
63
+ > & {
64
+ entryPoint?: {
65
+ address: Address
66
+ version: entryPointVersion
67
+ }
68
+ }
26
69
  /**
27
70
  * Creates a ZeroDev-specific Paymaster Client with a given [Transport](https://viem.sh/docs/clients/intro.html) configured for a [Chain](https://viem.sh/docs/clients/chains.html).
28
71
  *
@@ -40,48 +83,31 @@ export type ZeroDevPaymasterClient<entryPoint extends EntryPoint> = Client<
40
83
  * transport: http(`https://rpc.zerodev.app/api/v2/paymaster/${projectId}`),
41
84
  * })
42
85
  */
43
- export const createZeroDevPaymasterClient = <
44
- entryPoint extends EntryPoint,
45
- transport extends Transport,
46
- chain extends Chain | undefined = undefined
47
- >(
48
- parameters: PublicClientConfig<transport, chain> & {
49
- entryPoint: entryPoint
50
- }
51
- ): ZeroDevPaymasterClient<entryPoint> => {
86
+ export const createZeroDevPaymasterClient = (
87
+ parameters: ZeroDevPaymasterClientConfig
88
+ ): ZeroDevPaymasterClient => {
52
89
  const {
53
90
  key = "public",
54
91
  name = "ZeroDev Paymaster Client",
55
- entryPoint: entryPointAddress,
92
+ entryPoint,
56
93
  transport
57
94
  } = parameters
58
- const entryPointVersion = getEntryPointVersion(entryPointAddress)
59
- const shouldIncludePimlicoProvider =
60
- transport({}).config.key === "http" && entryPointVersion === "v0.7"
61
95
  const client = createClient({
62
96
  ...parameters,
63
97
  transport: (opts) => {
64
- let _transport = transport({
65
- ...opts,
66
- retryCount: 0
67
- })
68
- if (
69
- !shouldIncludePimlicoProvider ||
70
- isProviderSet(_transport.value?.url, "ALCHEMY") ||
71
- isProviderSet(_transport.value?.url, "ZERODEV") ||
72
- isProviderSet(_transport.value?.url, "THIRDWEB") ||
73
- isProviderSet(_transport.value?.url, "CONDUIT")
74
- )
75
- return _transport
76
- _transport = http(setPimlicoAsProvider(_transport.value?.url))({
98
+ return transport({
77
99
  ...opts,
78
100
  retryCount: 0
79
101
  })
80
- return _transport
81
102
  },
82
103
  key,
83
104
  name,
84
105
  type: "zerodevPaymasterClient"
85
106
  })
86
- return client.extend(zerodevPaymasterActions(parameters.entryPoint))
107
+ return client.extend(paymasterActions).extend(
108
+ zerodevPaymasterActions({
109
+ address: entryPoint?.address ?? entryPoint07Address,
110
+ version: entryPoint?.version ?? "0.7"
111
+ })
112
+ )
87
113
  }
@@ -0,0 +1,17 @@
1
+ import { BaseError } from "viem"
2
+
3
+ export class AccountNotFoundError extends BaseError {
4
+ constructor({ docsPath }: { docsPath?: string | undefined } = {}) {
5
+ super(
6
+ [
7
+ "Could not find an Account to execute with this Action.",
8
+ "Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."
9
+ ].join("\n"),
10
+ {
11
+ docsPath,
12
+ docsSlug: "account",
13
+ name: "AccountNotFoundError"
14
+ }
15
+ )
16
+ }
17
+ }
@@ -306,7 +306,7 @@ export type TokenSymbolsMap = {
306
306
  84532: "6TEST"
307
307
  421613: "USDC" | "6TEST"
308
308
  421614: "6TEST"
309
- 11155111: "6TEST"
309
+ 11155111: "6TEST" | "USDC"
310
310
  11155420: "6TEST"
311
311
  }
312
312
 
@@ -662,7 +662,8 @@ export const gasTokenAddresses: {
662
662
  "6TEST": "0x3870419Ba2BBf0127060bCB37f69A1b1C090992B"
663
663
  },
664
664
  11155111: {
665
- "6TEST": "0x3870419Ba2BBf0127060bCB37f69A1b1C090992B"
665
+ "6TEST": "0x3870419Ba2BBf0127060bCB37f69A1b1C090992B",
666
+ USDC: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238"
666
667
  },
667
668
  11155420: {
668
669
  "6TEST": "0x3870419Ba2BBf0127060bCB37f69A1b1C090992B"
package/index.ts CHANGED
@@ -2,8 +2,11 @@ export {
2
2
  createKernelAccount,
3
3
  createKernelAccountV0_2,
4
4
  createKernelAccountV1,
5
- type KernelSmartAccountV1,
6
- type KernelSmartAccount,
5
+ type CreateKernelAccountParameters,
6
+ type CreateKernelAccountReturnType,
7
+ type CreateKernelAccountV1ReturnType,
8
+ type KernelSmartAccountImplementation,
9
+ type KernelSmartAccountV1Implementation,
7
10
  KERNEL_ADDRESSES,
8
11
  addressToEmptyAccount,
9
12
  EIP1271Abi,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "5.3.25",
3
+ "version": "5.4.0-beta.0",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
@@ -101,8 +101,7 @@
101
101
  }
102
102
  },
103
103
  "peerDependencies": {
104
- "viem": ">=2.16.3 <2.18.0",
105
- "permissionless": ">=0.1.44 <=0.1.45"
104
+ "viem": "^2.21.40"
106
105
  },
107
106
  "dependencies": {
108
107
  "semver": "^7.6.0"
@@ -1,19 +1,16 @@
1
1
  import { EventEmitter } from "events"
2
- import type { KernelAccountClient } from "@zerodev/sdk"
3
- import type { EntryPoint } from "permissionless/types"
4
2
  import type {
5
3
  EIP1193Parameters,
6
4
  EIP1193RequestFn,
7
5
  Hash,
8
6
  SendTransactionParameters
9
7
  } from "viem"
8
+ import type { KernelAccountClient } from "../clients/kernelAccountClient.js"
10
9
 
11
- export class KernelEIP1193Provider<
12
- entryPoint extends EntryPoint
13
- > extends EventEmitter {
14
- private kernelClient: KernelAccountClient<entryPoint>
10
+ export class KernelEIP1193Provider extends EventEmitter {
11
+ private kernelClient: KernelAccountClient
15
12
 
16
- constructor(kernelClient: KernelAccountClient<entryPoint>) {
13
+ constructor(kernelClient: KernelAccountClient) {
17
14
  super()
18
15
  this.kernelClient = kernelClient
19
16
  }
package/types/index.ts CHANGED
@@ -18,3 +18,5 @@ export type {
18
18
  export { ValidatorMode } from "./kernel.js"
19
19
 
20
20
  export type WithRequired<T, K extends keyof T> = Required<Pick<T, K>>
21
+
22
+ export type PartialPick<T, K extends keyof T> = Partial<Pick<T, K>>