@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,55 +1,57 @@
1
1
  import {
2
- ENTRYPOINT_ADDRESS_V06,
3
2
  getAccountNonce,
4
- getEntryPointVersion,
5
- getSenderAddress,
6
- getUserOperationHash,
7
- isSmartAccountDeployed
8
- } from "permissionless"
9
- import {
10
- SignTransactionNotSupportedBySmartAccount,
11
- type SmartAccountSigner
12
- } from "permissionless/accounts"
13
- import type {
14
- ENTRYPOINT_ADDRESS_V06_TYPE,
15
- EntryPoint
16
- } from "permissionless/types"
3
+ getSenderAddress
4
+ } from "../../../actions/public/index.js"
17
5
  import {
6
+ type Account,
18
7
  type Address,
8
+ type Assign,
19
9
  type Chain,
20
10
  type Client,
21
- type Hash,
11
+ type EIP1193Provider,
22
12
  type Hex,
23
13
  type LocalAccount,
24
- type PublicActions,
25
- type PublicRpcSchema,
14
+ type OneOf,
26
15
  type Transport,
27
16
  type TypedData,
28
17
  type TypedDataDefinition,
29
- concatHex,
18
+ type WalletClient,
19
+ createNonceManager,
30
20
  encodeFunctionData
31
21
  } from "viem"
22
+ import {
23
+ type SmartAccount,
24
+ type SmartAccountImplementation,
25
+ entryPoint06Abi,
26
+ entryPoint06Address,
27
+ getUserOperationHash,
28
+ toSmartAccount
29
+ } from "viem/account-abstraction"
32
30
  import { toAccount } from "viem/accounts"
33
- import { getChainId, signMessage, signTypedData } from "viem/actions"
34
- import type { KernelEncodeCallDataArgs } from "../../../types/kernel.js"
35
- import { wrapSignatureWith6492 } from "../../utils/6492.js"
36
- import { parseFactoryAddressAndCallDataFromAccountInitCode } from "../../utils/index.js"
31
+ import { getChainId, signMessage } from "viem/actions"
32
+ import type { CallType, GetEntryPointAbi } from "../../../types/kernel.js"
37
33
  import {
38
34
  MULTISEND_ADDRESS,
39
35
  encodeMultiSend,
40
36
  multiSendAbi
41
37
  } from "../../utils/multisend.js"
42
- import type { KernelSmartAccount } from "../createKernelAccount.js"
43
38
 
44
- export type KernelSmartAccountV1<
45
- entryPoint extends EntryPoint,
46
- transport extends Transport = Transport,
47
- chain extends Chain | undefined = Chain | undefined
48
- > = Omit<
49
- KernelSmartAccount<entryPoint, transport, chain>,
50
- "kernelPluginManager" | "kernelVersion"
39
+ export type KernelSmartAccountV1Implementation = Assign<
40
+ SmartAccountImplementation<GetEntryPointAbi<"0.6">, "0.6">,
41
+ {
42
+ sign: NonNullable<SmartAccountImplementation["sign"]>
43
+ encodeCalls: (
44
+ calls: Parameters<SmartAccountImplementation["encodeCalls"]>[0],
45
+ callType?: CallType | undefined
46
+ ) => Promise<Hex>
47
+ generateInitCode: () => Promise<Hex>
48
+ encodeModuleInstallCallData: () => Promise<Hex>
49
+ }
51
50
  >
52
51
 
52
+ export type CreateKernelAccountV1ReturnType =
53
+ SmartAccount<KernelSmartAccountV1Implementation>
54
+
53
55
  const createAccountAbi = [
54
56
  {
55
57
  inputs: [
@@ -92,43 +94,33 @@ const KERNEL_V1_ADDRESSES: {
92
94
  ENTRYPOINT_V0_6: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
93
95
  }
94
96
 
95
- export async function createKernelAccountV1<
96
- entryPoint extends EntryPoint,
97
- TTransport extends Transport = Transport,
98
- TChain extends Chain | undefined = Chain | undefined,
99
- TSource extends string = string,
100
- TAddress extends Address = Address
101
- >(
102
- client: Client<
103
- TTransport,
104
- TChain,
105
- undefined,
106
- PublicRpcSchema,
107
- PublicActions<TTransport, TChain>
108
- >,
97
+ export async function createKernelAccountV1(
98
+ client: Client,
109
99
  {
110
100
  signer,
111
- entryPoint: entryPointAddress,
101
+ address,
102
+ entryPoint,
112
103
  index = 0n
113
104
  }: {
114
- signer: SmartAccountSigner<TSource, TAddress>
115
- entryPoint: entryPoint
105
+ signer: OneOf<
106
+ | EIP1193Provider
107
+ | WalletClient<Transport, Chain | undefined, Account>
108
+ | LocalAccount
109
+ >
110
+ entryPoint: {
111
+ address: Address
112
+ version: "0.6"
113
+ }
114
+ address?: Address
116
115
  index?: bigint
117
116
  }
118
- ): Promise<KernelSmartAccountV1<entryPoint, TTransport, TChain>> {
119
- const entryPointVersion = getEntryPointVersion(entryPointAddress)
120
-
121
- if (
122
- entryPointVersion !== "v0.6" ||
123
- entryPointAddress !== ENTRYPOINT_ADDRESS_V06
124
- ) {
125
- throw new Error("Only EntryPoint 0.6 is supported")
126
- }
127
-
117
+ ): Promise<CreateKernelAccountV1ReturnType> {
128
118
  const viemSigner: LocalAccount = {
129
119
  ...signer,
130
120
  signTransaction: (_, __) => {
131
- throw new SignTransactionNotSupportedBySmartAccount()
121
+ throw new Error(
122
+ "Smart account signer doesn't need to sign transactions"
123
+ )
132
124
  }
133
125
  } as LocalAccount
134
126
 
@@ -136,43 +128,45 @@ export async function createKernelAccountV1<
136
128
  const chainId = await getChainId(client)
137
129
 
138
130
  const generateInitCode = async (): Promise<Hex> => {
139
- return concatHex([
140
- KERNEL_V1_ADDRESSES.FACTORY_ADDRESS,
141
- encodeFunctionData({
142
- abi: createAccountAbi,
143
- functionName: "createAccount",
144
- args: [signer.address, index]
145
- })
146
- ]) as Hex
131
+ return encodeFunctionData({
132
+ abi: createAccountAbi,
133
+ functionName: "createAccount",
134
+ args: [signer.address, index]
135
+ })
147
136
  }
148
137
 
149
- const initCode = await generateInitCode()
150
- const accountAddress = await getSenderAddress<ENTRYPOINT_ADDRESS_V06_TYPE>(
151
- client,
152
- {
153
- initCode,
154
- entryPoint: entryPointAddress
138
+ const getFactoryArgs = async () => {
139
+ return {
140
+ factory: KERNEL_V1_ADDRESSES.FACTORY_ADDRESS,
141
+ factoryData: await generateInitCode()
155
142
  }
156
- )
143
+ }
157
144
 
158
- if (!accountAddress) throw new Error("Account address not found")
145
+ // Fetch account address and chain id
146
+ let accountAddress =
147
+ address ??
148
+ (await (async () => {
149
+ const { factory, factoryData } = await getFactoryArgs()
150
+
151
+ // Get the sender address based on the init code
152
+ return await getSenderAddress(client, {
153
+ factory,
154
+ factoryData,
155
+ entryPointAddress: entryPoint.address
156
+ })
157
+ })())
159
158
 
160
- let smartAccountDeployed = await isSmartAccountDeployed(
161
- client,
162
- accountAddress
163
- )
159
+ if (!accountAddress) throw new Error("Account address not found")
164
160
 
165
161
  const account = toAccount({
166
162
  address: accountAddress,
167
163
  async signMessage({ message }) {
168
- const [isDeployed, signature] = await Promise.all([
169
- isSmartAccountDeployed(client, accountAddress),
170
- signer.signMessage({ message })
171
- ])
172
- return create6492Signature(isDeployed, signature)
164
+ return viemSigner.signMessage({ message })
173
165
  },
174
166
  async signTransaction(_, __) {
175
- throw new SignTransactionNotSupportedBySmartAccount()
167
+ throw new Error(
168
+ "Smart account signer doesn't need to sign transactions"
169
+ )
176
170
  },
177
171
  async signTypedData<
178
172
  const TTypedData extends TypedData | Record<string, unknown>,
@@ -180,94 +174,69 @@ export async function createKernelAccountV1<
180
174
  | keyof TTypedData
181
175
  | "EIP712Domain" = keyof TTypedData
182
176
  >(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) {
183
- return signTypedData<TTypedData, TPrimaryType, TChain, undefined>(
184
- client,
185
- {
186
- account: viemSigner,
187
- ...typedData
188
- }
189
- )
177
+ return viemSigner.signTypedData(typedData)
190
178
  }
191
179
  })
192
180
 
193
- // const isAccountDeployed = async (): Promise<boolean> => {
194
- // const contractCode = await getBytecode(client, {
195
- // address: accountAddress
196
- // })
197
-
198
- // return (contractCode?.length ?? 0) > 2
199
- // }
200
-
201
- const create6492Signature = async (
202
- isDeployed: boolean,
203
- signature: Hash
204
- ): Promise<Hash> => {
205
- if (isDeployed) {
206
- return signature
207
- }
208
-
209
- const [factoryAddress, factoryCalldata] =
210
- parseFactoryAddressAndCallDataFromAccountInitCode(
211
- await generateInitCode()
212
- )
213
-
214
- return wrapSignatureWith6492({
215
- factoryAddress,
216
- factoryCalldata,
217
- signature
218
- })
181
+ const _entryPoint = {
182
+ address: entryPoint?.address ?? entryPoint06Address,
183
+ abi: entryPoint06Abi,
184
+ version: entryPoint?.version ?? "0.6"
219
185
  }
220
186
 
221
- return {
187
+ return toSmartAccount<KernelSmartAccountV1Implementation>({
222
188
  ...account,
223
189
  generateInitCode,
224
190
  encodeModuleInstallCallData: async () => {
225
191
  throw new Error("Not implemented")
226
192
  },
227
- client: client,
228
- publicKey: accountAddress,
229
- entryPoint: entryPointAddress,
230
- source: "kernelSmartAccount",
231
- async getFactory() {
232
- if (smartAccountDeployed) return undefined
233
-
234
- smartAccountDeployed = await isSmartAccountDeployed(
235
- client,
236
- accountAddress
237
- )
238
-
239
- if (smartAccountDeployed) return undefined
240
-
241
- return KERNEL_V1_ADDRESSES.FACTORY_ADDRESS
193
+ nonceKeyManager: createNonceManager({source: {get: () => 0, set: () => {}}}),
194
+ async sign({ hash }) {
195
+ return account.signMessage({ message: hash })
242
196
  },
197
+ async signMessage({ message }) {
198
+ return account.signMessage({ message })
199
+ },
200
+ async signTypedData<
201
+ const TTypedData extends TypedData | Record<string, unknown>,
202
+ TPrimaryType extends
203
+ | keyof TTypedData
204
+ | "EIP712Domain" = keyof TTypedData
205
+ >(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) {
206
+ return viemSigner.signTypedData(typedData)
207
+ },
208
+ async getAddress() {
209
+ if (accountAddress) return accountAddress
243
210
 
244
- async getFactoryData() {
245
- if (smartAccountDeployed) return undefined
246
-
247
- smartAccountDeployed = await isSmartAccountDeployed(
248
- client,
249
- accountAddress
250
- )
211
+ const { factory, factoryData } = await getFactoryArgs()
251
212
 
252
- if (smartAccountDeployed) return undefined
213
+ // Get the sender address based on the init code
214
+ accountAddress = await getSenderAddress(client, {
215
+ factory,
216
+ factoryData,
217
+ entryPointAddress: entryPoint.address
218
+ })
253
219
 
254
- return parseFactoryAddressAndCallDataFromAccountInitCode(
255
- await generateInitCode()
256
- )[1]
220
+ return accountAddress
257
221
  },
222
+ getFactoryArgs,
223
+ client: client,
224
+ entryPoint: _entryPoint,
258
225
  async getNonce() {
259
226
  return getAccountNonce(client, {
260
- sender: accountAddress,
261
- entryPoint: entryPointAddress
227
+ address: accountAddress,
228
+ entryPointAddress: entryPoint.address
262
229
  })
263
230
  },
264
231
  async signUserOperation(userOperation) {
265
232
  const hash = getUserOperationHash({
266
233
  userOperation: {
267
234
  ...userOperation,
235
+ sender: userOperation.sender ?? (await this.getAddress()),
268
236
  signature: "0x"
269
237
  },
270
- entryPoint: entryPointAddress,
238
+ entryPointAddress: entryPoint.address,
239
+ entryPointVersion: entryPoint.version,
271
240
  chainId: chainId
272
241
  })
273
242
  const signature = await signMessage(client, {
@@ -276,26 +245,27 @@ export async function createKernelAccountV1<
276
245
  })
277
246
  return signature
278
247
  },
279
- async getInitCode() {
280
- if (smartAccountDeployed) return "0x"
281
-
282
- smartAccountDeployed = await isSmartAccountDeployed(
283
- client,
284
- accountAddress
285
- )
286
-
287
- if (smartAccountDeployed) return "0x"
288
- return generateInitCode()
289
- },
290
- async encodeCallData(_tx) {
291
- const tx = _tx as KernelEncodeCallDataArgs
292
-
293
- if (Array.isArray(tx)) {
248
+ // async getInitCode() {
249
+ // if (smartAccountDeployed) return "0x"
250
+
251
+ // smartAccountDeployed = await isSmartAccountDeployed(
252
+ // client,
253
+ // accountAddress
254
+ // )
255
+
256
+ // if (smartAccountDeployed) return "0x"
257
+ // return generateInitCode()
258
+ // },
259
+ async encodeCalls(calls, callType): Promise<Hex> {
260
+ if (calls.length > 1) {
261
+ if (callType === "delegatecall") {
262
+ throw new Error("Cannot batch delegatecall")
263
+ }
294
264
  // Encode a batched call using multiSend
295
265
  const multiSendCallData = encodeFunctionData({
296
266
  abi: multiSendAbi,
297
267
  functionName: "multiSend",
298
- args: [encodeMultiSend(tx)]
268
+ args: [encodeMultiSend(calls)]
299
269
  })
300
270
 
301
271
  return encodeFunctionData({
@@ -305,34 +275,37 @@ export async function createKernelAccountV1<
305
275
  })
306
276
  }
307
277
 
278
+ const call = calls.length === 0 ? undefined : calls[0]
279
+
280
+ if (!call) {
281
+ throw new Error("No calls to encode")
282
+ }
283
+
308
284
  // Default to `call`
309
- if (!tx.callType || tx.callType === "call") {
310
- if (tx.to.toLowerCase() === accountAddress.toLowerCase()) {
311
- return tx.data
285
+ if (!callType || callType === "call") {
286
+ if (call.to.toLowerCase() === accountAddress.toLowerCase()) {
287
+ return call.data || "0x"
312
288
  }
313
289
 
314
290
  return encodeFunctionData({
315
291
  abi: executeAndRevertAbi,
316
292
  functionName: "executeAndRevert",
317
- args: [tx.to, tx.value || 0n, tx.data, 0n]
293
+ args: [call.to, call.value || 0n, call.data, 0n]
318
294
  })
319
295
  }
320
296
 
321
- if (tx.callType === "delegatecall") {
297
+ if (callType === "delegatecall") {
322
298
  return encodeFunctionData({
323
299
  abi: executeAndRevertAbi,
324
300
  functionName: "executeAndRevert",
325
- args: [tx.to, tx.value || 0n, tx.data, 1n]
301
+ args: [call.to, call.value || 0n, call.data, 1n]
326
302
  })
327
303
  }
328
304
 
329
305
  throw new Error("Invalid call type")
330
306
  },
331
- async encodeDeployCallData() {
332
- return "0x"
333
- },
334
- async getDummySignature() {
307
+ async getStubSignature() {
335
308
  return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c"
336
309
  }
337
- }
310
+ })
338
311
  }