@zerodev/sdk 5.3.26 → 5.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/_cjs/accounts/index.js.map +1 -1
  2. package/_cjs/accounts/kernel/createKernelAccount.js +173 -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 +83 -94
  29. package/_cjs/accounts/kernel/v1/createKernelAccountV1.js.map +1 -1
  30. package/_cjs/accounts/kernel/v2/createKernelAccountV0_2.js +106 -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 +15 -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 +10 -0
  68. package/_cjs/actions/public/index.js.map +1 -0
  69. package/_cjs/actions/public/isSmartAccountDeployed.js +14 -0
  70. package/_cjs/actions/public/isSmartAccountDeployed.js.map +1 -0
  71. package/_cjs/clients/decorators/kernel.js +17 -27
  72. package/_cjs/clients/decorators/kernel.js.map +1 -1
  73. package/_cjs/clients/fallbackKernelAccountClient.js.map +1 -1
  74. package/_cjs/clients/kernelAccountClient.js +27 -45
  75. package/_cjs/clients/kernelAccountClient.js.map +1 -1
  76. package/_cjs/clients/paymasterClient.js +7 -18
  77. package/_cjs/clients/paymasterClient.js.map +1 -1
  78. package/_cjs/errors/index.js +26 -0
  79. package/_cjs/errors/index.js.map +1 -0
  80. package/_cjs/gasTokenAddresses.js +2 -1
  81. package/_cjs/gasTokenAddresses.js.map +1 -1
  82. package/_cjs/index.js +1 -0
  83. package/_cjs/index.js.map +1 -1
  84. package/_cjs/providers/KernelEIP1193Provider.js.map +1 -1
  85. package/_cjs/types/index.js.map +1 -1
  86. package/_cjs/types/kernel.js.map +1 -1
  87. package/_cjs/utils.js +27 -7
  88. package/_cjs/utils.js.map +1 -1
  89. package/_esm/accounts/index.js.map +1 -1
  90. package/_esm/accounts/kernel/createKernelAccount.js +183 -217
  91. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  92. package/_esm/accounts/kernel/utils/account/ep0_6/encodeCallData.js +13 -9
  93. package/_esm/accounts/kernel/utils/account/ep0_6/encodeCallData.js.map +1 -1
  94. package/_esm/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.js.map +1 -1
  95. package/_esm/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.js +18 -17
  96. package/_esm/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.js.map +1 -1
  97. package/_esm/accounts/kernel/utils/account/ep0_7/encodeCallData.js +12 -8
  98. package/_esm/accounts/kernel/utils/account/ep0_7/encodeCallData.js.map +1 -1
  99. package/_esm/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.js.map +1 -1
  100. package/_esm/accounts/kernel/utils/common/accountMetadata.js.map +1 -1
  101. package/_esm/accounts/kernel/utils/common/getActionSelector.js +2 -2
  102. package/_esm/accounts/kernel/utils/common/getActionSelector.js.map +1 -1
  103. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.js +2 -2
  104. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.js.map +1 -1
  105. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.js +1 -1
  106. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.js.map +1 -1
  107. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.js +1 -1
  108. package/_esm/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.js.map +1 -1
  109. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.js +2 -2
  110. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.js.map +1 -1
  111. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteCall.js +2 -2
  112. package/_esm/accounts/kernel/utils/ep0_7/encodeExecuteCall.js.map +1 -1
  113. package/_esm/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.js.map +1 -1
  114. package/_esm/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.js.map +1 -1
  115. package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.js.map +1 -1
  116. package/_esm/accounts/kernel/v1/createKernelAccountV1.js +93 -98
  117. package/_esm/accounts/kernel/v1/createKernelAccountV1.js.map +1 -1
  118. package/_esm/accounts/kernel/v2/createKernelAccountV0_2.js +107 -118
  119. package/_esm/accounts/kernel/v2/createKernelAccountV0_2.js.map +1 -1
  120. package/_esm/accounts/utils/getCustomNonceKeyFromString.js +2 -4
  121. package/_esm/accounts/utils/getCustomNonceKeyFromString.js.map +1 -1
  122. package/_esm/accounts/utils/index.js +0 -5
  123. package/_esm/accounts/utils/index.js.map +1 -1
  124. package/_esm/accounts/utils/multisend.js.map +1 -1
  125. package/_esm/accounts/utils/toKernelPluginManager.js +14 -16
  126. package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
  127. package/_esm/actions/account-client/changeSudoValidator.js +23 -17
  128. package/_esm/actions/account-client/changeSudoValidator.js.map +1 -1
  129. package/_esm/actions/account-client/getKernelV3ModuleCurrentNonce.js +8 -6
  130. package/_esm/actions/account-client/getKernelV3ModuleCurrentNonce.js.map +1 -1
  131. package/_esm/actions/account-client/invalidateNonce.js +20 -15
  132. package/_esm/actions/account-client/invalidateNonce.js.map +1 -1
  133. package/_esm/actions/account-client/sendTransaction.js +85 -0
  134. package/_esm/actions/account-client/sendTransaction.js.map +1 -0
  135. package/_esm/actions/account-client/signMessage.js +58 -0
  136. package/_esm/actions/account-client/signMessage.js.map +1 -0
  137. package/_esm/actions/account-client/signTypedData.js +127 -0
  138. package/_esm/actions/account-client/signTypedData.js.map +1 -0
  139. package/_esm/actions/account-client/signUserOperation.js +7 -5
  140. package/_esm/actions/account-client/signUserOperation.js.map +1 -1
  141. package/_esm/actions/account-client/uninstallPlugin.js +10 -9
  142. package/_esm/actions/account-client/uninstallPlugin.js.map +1 -1
  143. package/_esm/actions/account-client/writeContract.js +18 -0
  144. package/_esm/actions/account-client/writeContract.js.map +1 -0
  145. package/_esm/actions/index.js +7 -1
  146. package/_esm/actions/index.js.map +1 -1
  147. package/_esm/actions/paymaster/estimateGasInERC20.js +3 -3
  148. package/_esm/actions/paymaster/estimateGasInERC20.js.map +1 -1
  149. package/_esm/actions/paymaster/sponsorUserOperation.js +3 -5
  150. package/_esm/actions/paymaster/sponsorUserOperation.js.map +1 -1
  151. package/_esm/actions/public/getAccountNonce.js +61 -0
  152. package/_esm/actions/public/getAccountNonce.js.map +1 -0
  153. package/_esm/actions/public/getSenderAddress.js +191 -0
  154. package/_esm/actions/public/getSenderAddress.js.map +1 -0
  155. package/_esm/actions/public/index.js +4 -0
  156. package/_esm/actions/public/index.js.map +1 -0
  157. package/_esm/actions/public/isSmartAccountDeployed.js +10 -0
  158. package/_esm/actions/public/isSmartAccountDeployed.js.map +1 -0
  159. package/_esm/clients/decorators/kernel.js +19 -28
  160. package/_esm/clients/decorators/kernel.js.map +1 -1
  161. package/_esm/clients/fallbackKernelAccountClient.js.map +1 -1
  162. package/_esm/clients/kernelAccountClient.js +28 -46
  163. package/_esm/clients/kernelAccountClient.js.map +1 -1
  164. package/_esm/clients/paymasterClient.js +8 -19
  165. package/_esm/clients/paymasterClient.js.map +1 -1
  166. package/_esm/errors/index.js +21 -0
  167. package/_esm/errors/index.js.map +1 -0
  168. package/_esm/gasTokenAddresses.js +2 -1
  169. package/_esm/gasTokenAddresses.js.map +1 -1
  170. package/_esm/index.js +1 -0
  171. package/_esm/index.js.map +1 -1
  172. package/_esm/providers/KernelEIP1193Provider.js.map +1 -1
  173. package/_esm/types/index.js.map +1 -1
  174. package/_esm/types/kernel.js.map +1 -1
  175. package/_esm/utils.js +29 -7
  176. package/_esm/utils.js.map +1 -1
  177. package/_types/accounts/index.d.ts +2 -2
  178. package/_types/accounts/index.d.ts.map +1 -1
  179. package/_types/accounts/kernel/createKernelAccount.d.ts +21 -18
  180. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  181. package/_types/accounts/kernel/utils/account/ep0_6/encodeCallData.d.ts +8 -3
  182. package/_types/accounts/kernel/utils/account/ep0_6/encodeCallData.d.ts.map +1 -1
  183. package/_types/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.d.ts +3 -2
  184. package/_types/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.d.ts.map +1 -1
  185. package/_types/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.d.ts +0 -1
  186. package/_types/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.d.ts.map +1 -1
  187. package/_types/accounts/kernel/utils/account/ep0_7/encodeCallData.d.ts +8 -3
  188. package/_types/accounts/kernel/utils/account/ep0_7/encodeCallData.d.ts.map +1 -1
  189. package/_types/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.d.ts +3 -2
  190. package/_types/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.d.ts.map +1 -1
  191. package/_types/accounts/kernel/utils/common/accountMetadata.d.ts +2 -2
  192. package/_types/accounts/kernel/utils/common/accountMetadata.d.ts.map +1 -1
  193. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts +1 -1
  194. package/_types/accounts/kernel/utils/common/getActionSelector.d.ts.map +1 -1
  195. package/_types/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.d.ts +1 -1
  196. package/_types/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.d.ts.map +1 -1
  197. package/_types/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.d.ts +1 -1
  198. package/_types/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.d.ts.map +1 -1
  199. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts +2 -3
  200. package/_types/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.d.ts.map +1 -1
  201. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts +4 -5
  202. package/_types/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.d.ts.map +1 -1
  203. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts +2 -3
  204. package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.d.ts.map +1 -1
  205. package/_types/accounts/kernel/utils/types.d.ts +2 -2
  206. package/_types/accounts/kernel/utils/types.d.ts.map +1 -1
  207. package/_types/accounts/kernel/v1/createKernelAccountV1.d.ts +18 -9
  208. package/_types/accounts/kernel/v1/createKernelAccountV1.d.ts.map +1 -1
  209. package/_types/accounts/kernel/v2/createKernelAccountV0_2.d.ts +10 -8
  210. package/_types/accounts/kernel/v2/createKernelAccountV0_2.d.ts.map +1 -1
  211. package/_types/accounts/utils/getCustomNonceKeyFromString.d.ts +2 -2
  212. package/_types/accounts/utils/getCustomNonceKeyFromString.d.ts.map +1 -1
  213. package/_types/accounts/utils/index.d.ts +0 -2
  214. package/_types/accounts/utils/index.d.ts.map +1 -1
  215. package/_types/accounts/utils/multisend.d.ts +2 -2
  216. package/_types/accounts/utils/multisend.d.ts.map +1 -1
  217. package/_types/accounts/utils/toKernelPluginManager.d.ts +4 -4
  218. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  219. package/_types/actions/account-client/changeSudoValidator.d.ts +5 -11
  220. package/_types/actions/account-client/changeSudoValidator.d.ts.map +1 -1
  221. package/_types/actions/account-client/getKernelV3ModuleCurrentNonce.d.ts +2 -5
  222. package/_types/actions/account-client/getKernelV3ModuleCurrentNonce.d.ts.map +1 -1
  223. package/_types/actions/account-client/invalidateNonce.d.ts +4 -6
  224. package/_types/actions/account-client/invalidateNonce.d.ts.map +1 -1
  225. package/_types/actions/account-client/sendTransaction.d.ts +50 -0
  226. package/_types/actions/account-client/sendTransaction.d.ts.map +1 -0
  227. package/_types/actions/account-client/signMessage.d.ts +50 -0
  228. package/_types/actions/account-client/signMessage.d.ts.map +1 -0
  229. package/_types/actions/account-client/signTypedData.d.ts +104 -0
  230. package/_types/actions/account-client/signTypedData.d.ts.map +1 -0
  231. package/_types/actions/account-client/signUserOperation.d.ts +4 -6
  232. package/_types/actions/account-client/signUserOperation.d.ts.map +1 -1
  233. package/_types/actions/account-client/uninstallPlugin.d.ts +5 -7
  234. package/_types/actions/account-client/uninstallPlugin.d.ts.map +1 -1
  235. package/_types/actions/account-client/writeContract.d.ts +4 -0
  236. package/_types/actions/account-client/writeContract.d.ts.map +1 -0
  237. package/_types/actions/index.d.ts +7 -1
  238. package/_types/actions/index.d.ts.map +1 -1
  239. package/_types/actions/paymaster/estimateGasInERC20.d.ts +1305 -4
  240. package/_types/actions/paymaster/estimateGasInERC20.d.ts.map +1 -1
  241. package/_types/actions/paymaster/sponsorUserOperation.d.ts +1314 -10
  242. package/_types/actions/paymaster/sponsorUserOperation.d.ts.map +1 -1
  243. package/_types/actions/public/getAccountNonce.d.ts +34 -0
  244. package/_types/actions/public/getAccountNonce.d.ts.map +1 -0
  245. package/_types/actions/public/getSenderAddress.d.ts +46 -0
  246. package/_types/actions/public/getSenderAddress.d.ts.map +1 -0
  247. package/_types/actions/public/index.d.ts +4 -0
  248. package/_types/actions/public/index.d.ts.map +1 -0
  249. package/_types/actions/public/isSmartAccountDeployed.d.ts +3 -0
  250. package/_types/actions/public/isSmartAccountDeployed.d.ts.map +1 -0
  251. package/_types/clients/decorators/kernel.d.ts +774 -20
  252. package/_types/clients/decorators/kernel.d.ts.map +1 -1
  253. package/_types/clients/fallbackKernelAccountClient.d.ts +255 -4
  254. package/_types/clients/fallbackKernelAccountClient.d.ts.map +1 -1
  255. package/_types/clients/kernelAccountClient.d.ts +34 -36
  256. package/_types/clients/kernelAccountClient.d.ts.map +1 -1
  257. package/_types/clients/paymasterClient.d.ts +10 -24
  258. package/_types/clients/paymasterClient.d.ts.map +1 -1
  259. package/_types/errors/index.d.ts +10 -0
  260. package/_types/errors/index.d.ts.map +1 -0
  261. package/_types/gasTokenAddresses.d.ts +1 -1
  262. package/_types/gasTokenAddresses.d.ts.map +1 -1
  263. package/_types/index.d.ts +2 -1
  264. package/_types/index.d.ts.map +1 -1
  265. package/_types/providers/KernelEIP1193Provider.d.ts +3 -4
  266. package/_types/providers/KernelEIP1193Provider.d.ts.map +1 -1
  267. package/_types/types/index.d.ts +2 -1
  268. package/_types/types/index.d.ts.map +1 -1
  269. package/_types/types/kernel.d.ts +25 -27
  270. package/_types/types/kernel.d.ts.map +1 -1
  271. package/_types/utils.d.ts +1310 -4
  272. package/_types/utils.d.ts.map +1 -1
  273. package/accounts/index.ts +5 -2
  274. package/accounts/kernel/createKernelAccount.ts +315 -359
  275. package/accounts/kernel/utils/account/ep0_6/encodeCallData.ts +22 -12
  276. package/accounts/kernel/utils/account/ep0_6/encodeDeployCallData.ts +6 -3
  277. package/accounts/kernel/utils/account/ep0_6/encodeModuleInstallCallData.ts +22 -19
  278. package/accounts/kernel/utils/account/ep0_7/encodeCallData.ts +21 -11
  279. package/accounts/kernel/utils/account/ep0_7/encodeDeployCallData.ts +6 -3
  280. package/accounts/kernel/utils/common/accountMetadata.ts +2 -7
  281. package/accounts/kernel/utils/common/getActionSelector.ts +3 -3
  282. package/accounts/kernel/utils/ep0_6/encodeExecuteBatchCall.ts +3 -3
  283. package/accounts/kernel/utils/ep0_6/encodeExecuteDelegateCall.ts +1 -1
  284. package/accounts/kernel/utils/ep0_6/encodeExecuteSingleCall.ts +1 -1
  285. package/accounts/kernel/utils/ep0_7/encodeExecuteBatchCall.ts +3 -3
  286. package/accounts/kernel/utils/ep0_7/encodeExecuteCall.ts +2 -2
  287. package/accounts/kernel/utils/plugins/ep0_6/getEncodedPluginsData.ts +2 -8
  288. package/accounts/kernel/utils/plugins/ep0_6/getPluginsEnableTypedData.ts +4 -10
  289. package/accounts/kernel/utils/plugins/ep0_7/getPluginsEnableTypedData.ts +2 -8
  290. package/accounts/kernel/utils/types.ts +2 -2
  291. package/accounts/kernel/v1/createKernelAccountV1.ts +151 -176
  292. package/accounts/kernel/v2/createKernelAccountV0_2.ts +141 -196
  293. package/accounts/utils/getCustomNonceKeyFromString.ts +3 -6
  294. package/accounts/utils/index.ts +0 -9
  295. package/accounts/utils/multisend.ts +5 -2
  296. package/accounts/utils/toKernelPluginManager.ts +23 -27
  297. package/actions/account-client/changeSudoValidator.ts +61 -85
  298. package/actions/account-client/getKernelV3ModuleCurrentNonce.ts +12 -51
  299. package/actions/account-client/invalidateNonce.ts +38 -67
  300. package/actions/account-client/sendTransaction.ts +134 -0
  301. package/actions/account-client/signMessage.ts +75 -0
  302. package/actions/account-client/signTypedData.ts +159 -0
  303. package/actions/account-client/signUserOperation.ts +31 -63
  304. package/actions/account-client/uninstallPlugin.ts +35 -56
  305. package/actions/account-client/writeContract.ts +72 -0
  306. package/actions/index.ts +16 -5
  307. package/actions/paymaster/estimateGasInERC20.ts +12 -8
  308. package/actions/paymaster/sponsorUserOperation.ts +52 -50
  309. package/actions/public/getAccountNonce.ts +77 -0
  310. package/actions/public/getSenderAddress.ts +276 -0
  311. package/actions/public/index.ts +10 -0
  312. package/actions/public/isSmartAccountDeployed.ts +18 -0
  313. package/clients/decorators/kernel.ts +363 -159
  314. package/clients/fallbackKernelAccountClient.ts +9 -11
  315. package/clients/kernelAccountClient.ts +142 -104
  316. package/clients/paymasterClient.ts +69 -43
  317. package/errors/index.ts +25 -0
  318. package/gasTokenAddresses.ts +3 -2
  319. package/index.ts +6 -2
  320. package/package.json +11 -34
  321. package/providers/KernelEIP1193Provider.ts +4 -7
  322. package/types/index.ts +4 -1
  323. package/types/kernel.ts +64 -63
  324. package/utils.ts +41 -13
  325. package/_cjs/actions/paymaster/sponsorUserOperationEip7677.js +0 -59
  326. package/_cjs/actions/paymaster/sponsorUserOperationEip7677.js.map +0 -1
  327. package/_esm/actions/paymaster/sponsorUserOperationEip7677.js +0 -58
  328. package/_esm/actions/paymaster/sponsorUserOperationEip7677.js.map +0 -1
  329. package/_types/actions/paymaster/sponsorUserOperationEip7677.d.ts +0 -16
  330. package/_types/actions/paymaster/sponsorUserOperationEip7677.d.ts.map +0 -1
  331. package/actions/paymaster/sponsorUserOperationEip7677.ts +0 -152
@@ -1,55 +1,57 @@
1
1
  import {
2
- ENTRYPOINT_ADDRESS_V06,
3
- 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"
17
- import {
2
+ type Account,
18
3
  type Address,
4
+ type Assign,
19
5
  type Chain,
20
6
  type Client,
21
- type Hash,
7
+ type EIP1193Provider,
22
8
  type Hex,
23
9
  type LocalAccount,
24
- type PublicActions,
25
- type PublicRpcSchema,
10
+ type OneOf,
26
11
  type Transport,
27
12
  type TypedData,
28
13
  type TypedDataDefinition,
29
- concatHex,
14
+ type WalletClient,
15
+ createNonceManager,
30
16
  encodeFunctionData
31
17
  } from "viem"
18
+ import {
19
+ type SmartAccount,
20
+ type SmartAccountImplementation,
21
+ entryPoint06Abi,
22
+ entryPoint06Address,
23
+ getUserOperationHash,
24
+ toSmartAccount
25
+ } from "viem/account-abstraction"
32
26
  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"
27
+ import { getChainId, signMessage } from "viem/actions"
28
+ import {
29
+ getAccountNonce,
30
+ getSenderAddress
31
+ } from "../../../actions/public/index.js"
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,71 @@ 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({
194
+ source: { get: () => 0, set: () => {} }
195
+ }),
196
+ async sign({ hash }) {
197
+ return account.signMessage({ message: hash })
198
+ },
199
+ async signMessage({ message }) {
200
+ return account.signMessage({ message })
242
201
  },
202
+ async signTypedData<
203
+ const TTypedData extends TypedData | Record<string, unknown>,
204
+ TPrimaryType extends
205
+ | keyof TTypedData
206
+ | "EIP712Domain" = keyof TTypedData
207
+ >(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) {
208
+ return viemSigner.signTypedData(typedData)
209
+ },
210
+ async getAddress() {
211
+ if (accountAddress) return accountAddress
243
212
 
244
- async getFactoryData() {
245
- if (smartAccountDeployed) return undefined
213
+ const { factory, factoryData } = await getFactoryArgs()
246
214
 
247
- smartAccountDeployed = await isSmartAccountDeployed(
248
- client,
249
- accountAddress
250
- )
251
-
252
- if (smartAccountDeployed) return undefined
215
+ // Get the sender address based on the init code
216
+ accountAddress = await getSenderAddress(client, {
217
+ factory,
218
+ factoryData,
219
+ entryPointAddress: entryPoint.address
220
+ })
253
221
 
254
- return parseFactoryAddressAndCallDataFromAccountInitCode(
255
- await generateInitCode()
256
- )[1]
222
+ return accountAddress
257
223
  },
224
+ getFactoryArgs,
225
+ client: client,
226
+ entryPoint: _entryPoint,
258
227
  async getNonce() {
259
228
  return getAccountNonce(client, {
260
- sender: accountAddress,
261
- entryPoint: entryPointAddress
229
+ address: accountAddress,
230
+ entryPointAddress: entryPoint.address
262
231
  })
263
232
  },
264
233
  async signUserOperation(userOperation) {
265
234
  const hash = getUserOperationHash({
266
235
  userOperation: {
267
236
  ...userOperation,
237
+ sender: userOperation.sender ?? (await this.getAddress()),
268
238
  signature: "0x"
269
239
  },
270
- entryPoint: entryPointAddress,
240
+ entryPointAddress: entryPoint.address,
241
+ entryPointVersion: entryPoint.version,
271
242
  chainId: chainId
272
243
  })
273
244
  const signature = await signMessage(client, {
@@ -276,26 +247,27 @@ export async function createKernelAccountV1<
276
247
  })
277
248
  return signature
278
249
  },
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)) {
250
+ // async getInitCode() {
251
+ // if (smartAccountDeployed) return "0x"
252
+
253
+ // smartAccountDeployed = await isSmartAccountDeployed(
254
+ // client,
255
+ // accountAddress
256
+ // )
257
+
258
+ // if (smartAccountDeployed) return "0x"
259
+ // return generateInitCode()
260
+ // },
261
+ async encodeCalls(calls, callType): Promise<Hex> {
262
+ if (calls.length > 1) {
263
+ if (callType === "delegatecall") {
264
+ throw new Error("Cannot batch delegatecall")
265
+ }
294
266
  // Encode a batched call using multiSend
295
267
  const multiSendCallData = encodeFunctionData({
296
268
  abi: multiSendAbi,
297
269
  functionName: "multiSend",
298
- args: [encodeMultiSend(tx)]
270
+ args: [encodeMultiSend(calls)]
299
271
  })
300
272
 
301
273
  return encodeFunctionData({
@@ -305,34 +277,37 @@ export async function createKernelAccountV1<
305
277
  })
306
278
  }
307
279
 
280
+ const call = calls.length === 0 ? undefined : calls[0]
281
+
282
+ if (!call) {
283
+ throw new Error("No calls to encode")
284
+ }
285
+
308
286
  // Default to `call`
309
- if (!tx.callType || tx.callType === "call") {
310
- if (tx.to.toLowerCase() === accountAddress.toLowerCase()) {
311
- return tx.data
287
+ if (!callType || callType === "call") {
288
+ if (call.to.toLowerCase() === accountAddress.toLowerCase()) {
289
+ return call.data || "0x"
312
290
  }
313
291
 
314
292
  return encodeFunctionData({
315
293
  abi: executeAndRevertAbi,
316
294
  functionName: "executeAndRevert",
317
- args: [tx.to, tx.value || 0n, tx.data, 0n]
295
+ args: [call.to, call.value || 0n, call.data, 0n]
318
296
  })
319
297
  }
320
298
 
321
- if (tx.callType === "delegatecall") {
299
+ if (callType === "delegatecall") {
322
300
  return encodeFunctionData({
323
301
  abi: executeAndRevertAbi,
324
302
  functionName: "executeAndRevert",
325
- args: [tx.to, tx.value || 0n, tx.data, 1n]
303
+ args: [call.to, call.value || 0n, call.data, 1n]
326
304
  })
327
305
  }
328
306
 
329
307
  throw new Error("Invalid call type")
330
308
  },
331
- async encodeDeployCallData() {
332
- return "0x"
333
- },
334
- async getDummySignature() {
309
+ async getStubSignature() {
335
310
  return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c"
336
311
  }
337
- }
312
+ })
338
313
  }