viem 2.17.11 → 2.18.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (470) hide show
  1. package/CHANGELOG.md +20 -2
  2. package/_cjs/account-abstraction/accounts/createWebAuthnCredential.js +6 -0
  3. package/_cjs/account-abstraction/accounts/createWebAuthnCredential.js.map +1 -0
  4. package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +688 -0
  5. package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -0
  6. package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js +704 -0
  7. package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -0
  8. package/_cjs/account-abstraction/accounts/toSmartAccount.js +93 -0
  9. package/_cjs/account-abstraction/accounts/toSmartAccount.js.map +1 -0
  10. package/_cjs/account-abstraction/accounts/toWebAuthnAccount.js +24 -0
  11. package/_cjs/account-abstraction/accounts/toWebAuthnAccount.js.map +1 -0
  12. package/_cjs/account-abstraction/accounts/types.js +3 -0
  13. package/_cjs/account-abstraction/accounts/types.js.map +1 -0
  14. package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js +37 -0
  15. package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -0
  16. package/_cjs/account-abstraction/actions/bundler/getSupportedEntryPoints.js +7 -0
  17. package/_cjs/account-abstraction/actions/bundler/getSupportedEntryPoints.js.map +1 -0
  18. package/_cjs/account-abstraction/actions/bundler/getUserOperation.js +22 -0
  19. package/_cjs/account-abstraction/actions/bundler/getUserOperation.js.map +1 -0
  20. package/_cjs/account-abstraction/actions/bundler/getUserOperationReceipt.js +15 -0
  21. package/_cjs/account-abstraction/actions/bundler/getUserOperationReceipt.js.map +1 -0
  22. package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js +239 -0
  23. package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -0
  24. package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js +36 -0
  25. package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -0
  26. package/_cjs/account-abstraction/actions/bundler/waitForUserOperationReceipt.js +48 -0
  27. package/_cjs/account-abstraction/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  28. package/_cjs/account-abstraction/actions/paymaster/getPaymasterData.js +34 -0
  29. package/_cjs/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -0
  30. package/_cjs/account-abstraction/actions/paymaster/getPaymasterStubData.js +34 -0
  31. package/_cjs/account-abstraction/actions/paymaster/getPaymasterStubData.js.map +1 -0
  32. package/_cjs/account-abstraction/clients/createBundlerClient.js +18 -0
  33. package/_cjs/account-abstraction/clients/createBundlerClient.js.map +1 -0
  34. package/_cjs/account-abstraction/clients/createPaymasterClient.js +17 -0
  35. package/_cjs/account-abstraction/clients/createPaymasterClient.js.map +1 -0
  36. package/_cjs/account-abstraction/clients/decorators/bundler.js +24 -0
  37. package/_cjs/account-abstraction/clients/decorators/bundler.js.map +1 -0
  38. package/_cjs/account-abstraction/clients/decorators/paymaster.js +12 -0
  39. package/_cjs/account-abstraction/clients/decorators/paymaster.js.map +1 -0
  40. package/_cjs/account-abstraction/constants/abis.js +1318 -0
  41. package/_cjs/account-abstraction/constants/abis.js.map +1 -0
  42. package/_cjs/account-abstraction/constants/address.js +6 -0
  43. package/_cjs/account-abstraction/constants/address.js.map +1 -0
  44. package/_cjs/account-abstraction/errors/bundler.js +813 -0
  45. package/_cjs/account-abstraction/errors/bundler.js.map +1 -0
  46. package/_cjs/account-abstraction/errors/userOperation.js +91 -0
  47. package/_cjs/account-abstraction/errors/userOperation.js.map +1 -0
  48. package/_cjs/account-abstraction/index.js +90 -0
  49. package/_cjs/account-abstraction/index.js.map +1 -0
  50. package/_cjs/account-abstraction/types/account.js +3 -0
  51. package/_cjs/account-abstraction/types/account.js.map +1 -0
  52. package/_cjs/account-abstraction/types/entryPointVersion.js +3 -0
  53. package/_cjs/account-abstraction/types/entryPointVersion.js.map +1 -0
  54. package/_cjs/account-abstraction/types/rpc.js +3 -0
  55. package/_cjs/account-abstraction/types/rpc.js.map +1 -0
  56. package/_cjs/account-abstraction/types/userOperation.js +3 -0
  57. package/_cjs/account-abstraction/types/userOperation.js.map +1 -0
  58. package/_cjs/account-abstraction/utils/errors/getBundlerError.js +186 -0
  59. package/_cjs/account-abstraction/utils/errors/getBundlerError.js.map +1 -0
  60. package/_cjs/account-abstraction/utils/errors/getUserOperationError.js +87 -0
  61. package/_cjs/account-abstraction/utils/errors/getUserOperationError.js.map +1 -0
  62. package/_cjs/account-abstraction/utils/formatters/userOperation.js +24 -0
  63. package/_cjs/account-abstraction/utils/formatters/userOperation.js.map +1 -0
  64. package/_cjs/account-abstraction/utils/formatters/userOperationGas.js +18 -0
  65. package/_cjs/account-abstraction/utils/formatters/userOperationGas.js.map +1 -0
  66. package/_cjs/account-abstraction/utils/formatters/userOperationReceipt.js +18 -0
  67. package/_cjs/account-abstraction/utils/formatters/userOperationReceipt.js.map +1 -0
  68. package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js +43 -0
  69. package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -0
  70. package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js +88 -0
  71. package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -0
  72. package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js +44 -0
  73. package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -0
  74. package/_cjs/accounts/index.js.map +1 -1
  75. package/_cjs/accounts/privateKeyToAccount.js +4 -0
  76. package/_cjs/accounts/privateKeyToAccount.js.map +1 -1
  77. package/_cjs/accounts/toAccount.js +1 -0
  78. package/_cjs/accounts/toAccount.js.map +1 -1
  79. package/_cjs/accounts/utils/parseAccount.js.map +1 -1
  80. package/_cjs/accounts/utils/sign.js +8 -2
  81. package/_cjs/accounts/utils/sign.js.map +1 -1
  82. package/_cjs/accounts/utils/signMessage.js +1 -3
  83. package/_cjs/accounts/utils/signMessage.js.map +1 -1
  84. package/_cjs/accounts/utils/signTypedData.js +2 -3
  85. package/_cjs/accounts/utils/signTypedData.js.map +1 -1
  86. package/_cjs/actions/public/getLogs.js +2 -1
  87. package/_cjs/actions/public/getLogs.js.map +1 -1
  88. package/_cjs/actions/wallet/sendTransaction.js +35 -22
  89. package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
  90. package/_cjs/actions/wallet/signMessage.js +1 -1
  91. package/_cjs/actions/wallet/signMessage.js.map +1 -1
  92. package/_cjs/actions/wallet/signTransaction.js +1 -2
  93. package/_cjs/actions/wallet/signTransaction.js.map +1 -1
  94. package/_cjs/actions/wallet/signTypedData.js +1 -1
  95. package/_cjs/actions/wallet/signTypedData.js.map +1 -1
  96. package/_cjs/chains/definitions/bobaSepolia.js +1 -0
  97. package/_cjs/chains/definitions/bobaSepolia.js.map +1 -1
  98. package/_cjs/chains/definitions/cronoszkEVMTestnet.js +24 -0
  99. package/_cjs/chains/definitions/cronoszkEVMTestnet.js.map +1 -0
  100. package/_cjs/chains/index.js +8 -6
  101. package/_cjs/chains/index.js.map +1 -1
  102. package/_cjs/constants/abis.js +0 -3
  103. package/_cjs/constants/abis.js.map +1 -1
  104. package/_cjs/constants/address.js +3 -1
  105. package/_cjs/constants/address.js.map +1 -1
  106. package/_cjs/errors/account.js +17 -2
  107. package/_cjs/errors/account.js.map +1 -1
  108. package/_cjs/errors/contract.js +1 -1
  109. package/_cjs/errors/contract.js.map +1 -1
  110. package/_cjs/errors/rpc.js +6 -6
  111. package/_cjs/errors/rpc.js.map +1 -1
  112. package/_cjs/errors/version.js +1 -1
  113. package/_cjs/errors/version.js.map +1 -1
  114. package/_cjs/index.js +5 -3
  115. package/_cjs/index.js.map +1 -1
  116. package/_cjs/types/eip1193.js.map +1 -1
  117. package/_cjs/utils/abi/parseEventLogs.js +70 -2
  118. package/_cjs/utils/abi/parseEventLogs.js.map +1 -1
  119. package/_cjs/utils/buildRequest.js +4 -2
  120. package/_cjs/utils/buildRequest.js.map +1 -1
  121. package/_cjs/utils/errors/getNodeError.js +1 -2
  122. package/_cjs/utils/errors/getNodeError.js.map +1 -1
  123. package/_cjs/utils/index.js +3 -1
  124. package/_cjs/utils/index.js.map +1 -1
  125. package/_cjs/utils/signature/serializeErc6492Signature.js +6 -2
  126. package/_cjs/utils/signature/serializeErc6492Signature.js.map +1 -1
  127. package/_cjs/utils/signature/serializeSignature.js +6 -2
  128. package/_cjs/utils/signature/serializeSignature.js.map +1 -1
  129. package/_cjs/utils/signature/verifyHash.js +10 -0
  130. package/_cjs/utils/signature/verifyHash.js.map +1 -0
  131. package/_esm/account-abstraction/accounts/createWebAuthnCredential.js +3 -0
  132. package/_esm/account-abstraction/accounts/createWebAuthnCredential.js.map +1 -0
  133. package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +709 -0
  134. package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -0
  135. package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js +718 -0
  136. package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -0
  137. package/_esm/account-abstraction/accounts/toSmartAccount.js +96 -0
  138. package/_esm/account-abstraction/accounts/toSmartAccount.js.map +1 -0
  139. package/_esm/account-abstraction/accounts/toWebAuthnAccount.js +26 -0
  140. package/_esm/account-abstraction/accounts/toWebAuthnAccount.js.map +1 -0
  141. package/_esm/account-abstraction/accounts/types.js +2 -0
  142. package/_esm/account-abstraction/accounts/types.js.map +1 -0
  143. package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js +61 -0
  144. package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -0
  145. package/_esm/account-abstraction/actions/bundler/getSupportedEntryPoints.js +25 -0
  146. package/_esm/account-abstraction/actions/bundler/getSupportedEntryPoints.js.map +1 -0
  147. package/_esm/account-abstraction/actions/bundler/getUserOperation.js +42 -0
  148. package/_esm/account-abstraction/actions/bundler/getUserOperation.js.map +1 -0
  149. package/_esm/account-abstraction/actions/bundler/getUserOperationReceipt.js +35 -0
  150. package/_esm/account-abstraction/actions/bundler/getUserOperationReceipt.js.map +1 -0
  151. package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js +323 -0
  152. package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -0
  153. package/_esm/account-abstraction/actions/bundler/sendUserOperation.js +60 -0
  154. package/_esm/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -0
  155. package/_esm/account-abstraction/actions/bundler/waitForUserOperationReceipt.js +68 -0
  156. package/_esm/account-abstraction/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  157. package/_esm/account-abstraction/actions/paymaster/getPaymasterData.js +56 -0
  158. package/_esm/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -0
  159. package/_esm/account-abstraction/actions/paymaster/getPaymasterStubData.js +56 -0
  160. package/_esm/account-abstraction/actions/paymaster/getPaymasterStubData.js.map +1 -0
  161. package/_esm/account-abstraction/clients/createBundlerClient.js +15 -0
  162. package/_esm/account-abstraction/clients/createBundlerClient.js.map +1 -0
  163. package/_esm/account-abstraction/clients/createPaymasterClient.js +14 -0
  164. package/_esm/account-abstraction/clients/createPaymasterClient.js.map +1 -0
  165. package/_esm/account-abstraction/clients/decorators/bundler.js +21 -0
  166. package/_esm/account-abstraction/clients/decorators/bundler.js.map +1 -0
  167. package/_esm/account-abstraction/clients/decorators/paymaster.js +9 -0
  168. package/_esm/account-abstraction/clients/decorators/paymaster.js.map +1 -0
  169. package/_esm/account-abstraction/constants/abis.js +1315 -0
  170. package/_esm/account-abstraction/constants/abis.js.map +1 -0
  171. package/_esm/account-abstraction/constants/address.js +3 -0
  172. package/_esm/account-abstraction/constants/address.js.map +1 -0
  173. package/_esm/account-abstraction/errors/bundler.js +774 -0
  174. package/_esm/account-abstraction/errors/bundler.js.map +1 -0
  175. package/_esm/account-abstraction/errors/userOperation.js +84 -0
  176. package/_esm/account-abstraction/errors/userOperation.js.map +1 -0
  177. package/_esm/account-abstraction/index.js +31 -0
  178. package/_esm/account-abstraction/index.js.map +1 -0
  179. package/_esm/account-abstraction/types/account.js +2 -0
  180. package/_esm/account-abstraction/types/account.js.map +1 -0
  181. package/_esm/account-abstraction/types/entryPointVersion.js +2 -0
  182. package/_esm/account-abstraction/types/entryPointVersion.js.map +1 -0
  183. package/_esm/account-abstraction/types/rpc.js +2 -0
  184. package/_esm/account-abstraction/types/rpc.js.map +1 -0
  185. package/_esm/account-abstraction/types/userOperation.js +2 -0
  186. package/_esm/account-abstraction/types/userOperation.js.map +1 -0
  187. package/_esm/account-abstraction/utils/errors/getBundlerError.js +183 -0
  188. package/_esm/account-abstraction/utils/errors/getBundlerError.js.map +1 -0
  189. package/_esm/account-abstraction/utils/errors/getUserOperationError.js +85 -0
  190. package/_esm/account-abstraction/utils/errors/getUserOperationError.js.map +1 -0
  191. package/_esm/account-abstraction/utils/formatters/userOperation.js +21 -0
  192. package/_esm/account-abstraction/utils/formatters/userOperation.js.map +1 -0
  193. package/_esm/account-abstraction/utils/formatters/userOperationGas.js +15 -0
  194. package/_esm/account-abstraction/utils/formatters/userOperationGas.js.map +1 -0
  195. package/_esm/account-abstraction/utils/formatters/userOperationReceipt.js +15 -0
  196. package/_esm/account-abstraction/utils/formatters/userOperationReceipt.js.map +1 -0
  197. package/_esm/account-abstraction/utils/formatters/userOperationRequest.js +40 -0
  198. package/_esm/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -0
  199. package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js +85 -0
  200. package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -0
  201. package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js +41 -0
  202. package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -0
  203. package/_esm/accounts/index.js.map +1 -1
  204. package/_esm/accounts/privateKeyToAccount.js +4 -0
  205. package/_esm/accounts/privateKeyToAccount.js.map +1 -1
  206. package/_esm/accounts/toAccount.js +2 -0
  207. package/_esm/accounts/toAccount.js.map +1 -1
  208. package/_esm/accounts/utils/parseAccount.js.map +1 -1
  209. package/_esm/accounts/utils/sign.js +9 -3
  210. package/_esm/accounts/utils/sign.js.map +1 -1
  211. package/_esm/accounts/utils/signMessage.js +1 -3
  212. package/_esm/accounts/utils/signMessage.js.map +1 -1
  213. package/_esm/accounts/utils/signTypedData.js +2 -3
  214. package/_esm/accounts/utils/signTypedData.js.map +1 -1
  215. package/_esm/actions/public/getLogs.js +2 -1
  216. package/_esm/actions/public/getLogs.js.map +1 -1
  217. package/_esm/actions/wallet/sendTransaction.js +37 -24
  218. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  219. package/_esm/actions/wallet/signMessage.js +1 -1
  220. package/_esm/actions/wallet/signMessage.js.map +1 -1
  221. package/_esm/actions/wallet/signTransaction.js +1 -2
  222. package/_esm/actions/wallet/signTransaction.js.map +1 -1
  223. package/_esm/actions/wallet/signTypedData.js +1 -1
  224. package/_esm/actions/wallet/signTypedData.js.map +1 -1
  225. package/_esm/chains/definitions/bobaSepolia.js +1 -0
  226. package/_esm/chains/definitions/bobaSepolia.js.map +1 -1
  227. package/_esm/chains/definitions/cronoszkEVMTestnet.js +21 -0
  228. package/_esm/chains/definitions/cronoszkEVMTestnet.js.map +1 -0
  229. package/_esm/chains/index.js +1 -0
  230. package/_esm/chains/index.js.map +1 -1
  231. package/_esm/constants/abis.js +0 -3
  232. package/_esm/constants/abis.js.map +1 -1
  233. package/_esm/constants/address.js +2 -0
  234. package/_esm/constants/address.js.map +1 -1
  235. package/_esm/errors/account.js +15 -1
  236. package/_esm/errors/account.js.map +1 -1
  237. package/_esm/errors/contract.js +1 -1
  238. package/_esm/errors/contract.js.map +1 -1
  239. package/_esm/errors/rpc.js +6 -6
  240. package/_esm/errors/rpc.js.map +1 -1
  241. package/_esm/errors/version.js +1 -1
  242. package/_esm/errors/version.js.map +1 -1
  243. package/_esm/index.js +1 -0
  244. package/_esm/index.js.map +1 -1
  245. package/_esm/types/eip1193.js.map +1 -1
  246. package/_esm/utils/abi/parseEventLogs.js +72 -2
  247. package/_esm/utils/abi/parseEventLogs.js.map +1 -1
  248. package/_esm/utils/buildRequest.js +4 -2
  249. package/_esm/utils/buildRequest.js.map +1 -1
  250. package/_esm/utils/errors/getNodeError.js +1 -2
  251. package/_esm/utils/errors/getNodeError.js.map +1 -1
  252. package/_esm/utils/index.js +1 -0
  253. package/_esm/utils/index.js.map +1 -1
  254. package/_esm/utils/signature/serializeErc6492Signature.js +6 -2
  255. package/_esm/utils/signature/serializeErc6492Signature.js.map +1 -1
  256. package/_esm/utils/signature/serializeSignature.js +6 -2
  257. package/_esm/utils/signature/serializeSignature.js.map +1 -1
  258. package/_esm/utils/signature/verifyHash.js +19 -0
  259. package/_esm/utils/signature/verifyHash.js.map +1 -0
  260. package/_types/account-abstraction/accounts/createWebAuthnCredential.d.ts +2 -0
  261. package/_types/account-abstraction/accounts/createWebAuthnCredential.d.ts.map +1 -0
  262. package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts +648 -0
  263. package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts.map +1 -0
  264. package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts +464 -0
  265. package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts.map +1 -0
  266. package/_types/account-abstraction/accounts/toSmartAccount.d.ts +14 -0
  267. package/_types/account-abstraction/accounts/toSmartAccount.d.ts.map +1 -0
  268. package/_types/account-abstraction/accounts/toWebAuthnAccount.d.ts +32 -0
  269. package/_types/account-abstraction/accounts/toWebAuthnAccount.d.ts.map +1 -0
  270. package/_types/account-abstraction/accounts/types.d.ts +174 -0
  271. package/_types/account-abstraction/accounts/types.d.ts.map +1 -0
  272. package/_types/account-abstraction/actions/bundler/estimateUserOperationGas.d.ts +62 -0
  273. package/_types/account-abstraction/actions/bundler/estimateUserOperationGas.d.ts.map +1 -0
  274. package/_types/account-abstraction/actions/bundler/getSupportedEntryPoints.d.ts +30 -0
  275. package/_types/account-abstraction/actions/bundler/getSupportedEntryPoints.d.ts.map +1 -0
  276. package/_types/account-abstraction/actions/bundler/getUserOperation.d.ts +57 -0
  277. package/_types/account-abstraction/actions/bundler/getUserOperation.d.ts.map +1 -0
  278. package/_types/account-abstraction/actions/bundler/getUserOperationReceipt.d.ts +39 -0
  279. package/_types/account-abstraction/actions/bundler/getUserOperationReceipt.d.ts.map +1 -0
  280. package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts +106 -0
  281. package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts.map +1 -0
  282. package/_types/account-abstraction/actions/bundler/sendUserOperation.d.ts +60 -0
  283. package/_types/account-abstraction/actions/bundler/sendUserOperation.d.ts.map +1 -0
  284. package/_types/account-abstraction/actions/bundler/waitForUserOperationReceipt.d.ts +52 -0
  285. package/_types/account-abstraction/actions/bundler/waitForUserOperationReceipt.d.ts.map +1 -0
  286. package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts +49 -0
  287. package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts.map +1 -0
  288. package/_types/account-abstraction/actions/paymaster/getPaymasterStubData.d.ts +55 -0
  289. package/_types/account-abstraction/actions/paymaster/getPaymasterStubData.d.ts.map +1 -0
  290. package/_types/account-abstraction/clients/createBundlerClient.d.ts +66 -0
  291. package/_types/account-abstraction/clients/createBundlerClient.d.ts.map +1 -0
  292. package/_types/account-abstraction/clients/createPaymasterClient.d.ts +27 -0
  293. package/_types/account-abstraction/clients/createPaymasterClient.d.ts.map +1 -0
  294. package/_types/account-abstraction/clients/decorators/bundler.d.ts +206 -0
  295. package/_types/account-abstraction/clients/decorators/bundler.d.ts.map +1 -0
  296. package/_types/account-abstraction/clients/decorators/paymaster.d.ts +60 -0
  297. package/_types/account-abstraction/clients/decorators/paymaster.d.ts.map +1 -0
  298. package/_types/account-abstraction/constants/abis.d.ts +1468 -0
  299. package/_types/account-abstraction/constants/abis.d.ts.map +1 -0
  300. package/_types/account-abstraction/constants/address.d.ts +3 -0
  301. package/_types/account-abstraction/constants/address.d.ts.map +1 -0
  302. package/_types/account-abstraction/errors/bundler.d.ts +391 -0
  303. package/_types/account-abstraction/errors/bundler.d.ts.map +1 -0
  304. package/_types/account-abstraction/errors/userOperation.d.ts +41 -0
  305. package/_types/account-abstraction/errors/userOperation.d.ts.map +1 -0
  306. package/_types/account-abstraction/index.d.ts +34 -0
  307. package/_types/account-abstraction/index.d.ts.map +1 -0
  308. package/_types/account-abstraction/types/account.d.ts +11 -0
  309. package/_types/account-abstraction/types/account.d.ts.map +1 -0
  310. package/_types/account-abstraction/types/entryPointVersion.d.ts +9 -0
  311. package/_types/account-abstraction/types/entryPointVersion.d.ts.map +1 -0
  312. package/_types/account-abstraction/types/rpc.d.ts +9 -0
  313. package/_types/account-abstraction/types/rpc.d.ts.map +1 -0
  314. package/_types/account-abstraction/types/userOperation.d.ts +157 -0
  315. package/_types/account-abstraction/types/userOperation.d.ts.map +1 -0
  316. package/_types/account-abstraction/utils/errors/getBundlerError.d.ts +8 -0
  317. package/_types/account-abstraction/utils/errors/getBundlerError.d.ts.map +1 -0
  318. package/_types/account-abstraction/utils/errors/getUserOperationError.d.ts +15 -0
  319. package/_types/account-abstraction/utils/errors/getUserOperationError.d.ts.map +1 -0
  320. package/_types/account-abstraction/utils/formatters/userOperation.d.ts +6 -0
  321. package/_types/account-abstraction/utils/formatters/userOperation.d.ts.map +1 -0
  322. package/_types/account-abstraction/utils/formatters/userOperationGas.d.ts +6 -0
  323. package/_types/account-abstraction/utils/formatters/userOperationGas.d.ts.map +1 -0
  324. package/_types/account-abstraction/utils/formatters/userOperationReceipt.d.ts +6 -0
  325. package/_types/account-abstraction/utils/formatters/userOperationReceipt.d.ts.map +1 -0
  326. package/_types/account-abstraction/utils/formatters/userOperationRequest.d.ts +7 -0
  327. package/_types/account-abstraction/utils/formatters/userOperationRequest.d.ts.map +1 -0
  328. package/_types/account-abstraction/utils/userOperation/getUserOperationHash.d.ts +13 -0
  329. package/_types/account-abstraction/utils/userOperation/getUserOperationHash.d.ts.map +1 -0
  330. package/_types/account-abstraction/utils/userOperation/toPackedUserOperation.d.ts +3 -0
  331. package/_types/account-abstraction/utils/userOperation/toPackedUserOperation.d.ts.map +1 -0
  332. package/_types/accounts/index.d.ts.map +1 -1
  333. package/_types/accounts/privateKeyToAccount.d.ts +2 -1
  334. package/_types/accounts/privateKeyToAccount.d.ts.map +1 -1
  335. package/_types/accounts/toAccount.d.ts.map +1 -1
  336. package/_types/accounts/types.d.ts +14 -7
  337. package/_types/accounts/types.d.ts.map +1 -1
  338. package/_types/accounts/utils/parseAccount.d.ts +1 -1
  339. package/_types/accounts/utils/parseAccount.d.ts.map +1 -1
  340. package/_types/accounts/utils/sign.d.ts +9 -6
  341. package/_types/accounts/utils/sign.d.ts.map +1 -1
  342. package/_types/accounts/utils/signMessage.d.ts +1 -2
  343. package/_types/accounts/utils/signMessage.d.ts.map +1 -1
  344. package/_types/accounts/utils/signTypedData.d.ts +1 -2
  345. package/_types/accounts/utils/signTypedData.d.ts.map +1 -1
  346. package/_types/actions/public/getLogs.d.ts.map +1 -1
  347. package/_types/actions/wallet/sendTransaction.d.ts +2 -1
  348. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  349. package/_types/actions/wallet/signMessage.d.ts.map +1 -1
  350. package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
  351. package/_types/chains/definitions/bobaSepolia.d.ts +1 -1
  352. package/_types/chains/definitions/bobaSepolia.d.ts.map +1 -1
  353. package/_types/chains/definitions/cronoszkEVMTestnet.d.ts +35 -0
  354. package/_types/chains/definitions/cronoszkEVMTestnet.d.ts.map +1 -0
  355. package/_types/chains/definitions/lisk.d.ts +2 -2
  356. package/_types/chains/definitions/playfiAlbireo.d.ts +2 -2
  357. package/_types/chains/definitions/zkSync.d.ts +2 -2
  358. package/_types/chains/definitions/zkSyncInMemoryNode.d.ts +2 -2
  359. package/_types/chains/definitions/zkSyncLocalNode.d.ts +2 -2
  360. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +2 -2
  361. package/_types/chains/definitions/zkSyncTestnet.d.ts +2 -2
  362. package/_types/chains/index.d.ts +1 -0
  363. package/_types/chains/index.d.ts.map +1 -1
  364. package/_types/clients/decorators/public.d.ts +1 -1
  365. package/_types/clients/decorators/public.d.ts.map +1 -1
  366. package/_types/constants/abis.d.ts +0 -3
  367. package/_types/constants/abis.d.ts.map +1 -1
  368. package/_types/constants/address.d.ts +2 -0
  369. package/_types/constants/address.d.ts.map +1 -1
  370. package/_types/errors/account.d.ts +11 -0
  371. package/_types/errors/account.d.ts.map +1 -1
  372. package/_types/errors/rpc.d.ts +9 -3
  373. package/_types/errors/rpc.d.ts.map +1 -1
  374. package/_types/errors/version.d.ts +1 -1
  375. package/_types/errors/version.d.ts.map +1 -1
  376. package/_types/index.d.ts +5 -3
  377. package/_types/index.d.ts.map +1 -1
  378. package/_types/types/eip1193.d.ts +239 -2
  379. package/_types/types/eip1193.d.ts.map +1 -1
  380. package/_types/types/multicall.d.ts +1 -1
  381. package/_types/types/multicall.d.ts.map +1 -1
  382. package/_types/utils/abi/parseEventLogs.d.ts +9 -3
  383. package/_types/utils/abi/parseEventLogs.d.ts.map +1 -1
  384. package/_types/utils/buildRequest.d.ts.map +1 -1
  385. package/_types/utils/errors/getNodeError.d.ts.map +1 -1
  386. package/_types/utils/formatters/transaction.d.ts +1 -1
  387. package/_types/utils/index.d.ts +1 -0
  388. package/_types/utils/index.d.ts.map +1 -1
  389. package/_types/utils/signature/hashTypedData.d.ts +2 -2
  390. package/_types/utils/signature/hashTypedData.d.ts.map +1 -1
  391. package/_types/utils/signature/serializeErc6492Signature.d.ts +7 -4
  392. package/_types/utils/signature/serializeErc6492Signature.d.ts.map +1 -1
  393. package/_types/utils/signature/serializeSignature.d.ts +8 -2
  394. package/_types/utils/signature/serializeSignature.d.ts.map +1 -1
  395. package/_types/utils/signature/verifyHash.d.ts +30 -0
  396. package/_types/utils/signature/verifyHash.d.ts.map +1 -0
  397. package/_types/zksync/chainConfig.d.ts +2 -2
  398. package/_types/zksync/formatters.d.ts +2 -2
  399. package/account-abstraction/accounts/createWebAuthnCredential.ts +7 -0
  400. package/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts +817 -0
  401. package/account-abstraction/accounts/implementations/toSoladySmartAccount.ts +794 -0
  402. package/account-abstraction/accounts/toSmartAccount.ts +126 -0
  403. package/account-abstraction/accounts/toWebAuthnAccount.ts +56 -0
  404. package/account-abstraction/accounts/types.ts +208 -0
  405. package/account-abstraction/actions/bundler/estimateUserOperationGas.ts +170 -0
  406. package/account-abstraction/actions/bundler/getSupportedEntryPoints.ts +33 -0
  407. package/account-abstraction/actions/bundler/getUserOperation.ts +85 -0
  408. package/account-abstraction/actions/bundler/getUserOperationReceipt.ts +64 -0
  409. package/account-abstraction/actions/bundler/prepareUserOperation.ts +637 -0
  410. package/account-abstraction/actions/bundler/sendUserOperation.ts +149 -0
  411. package/account-abstraction/actions/bundler/waitForUserOperationReceipt.ts +139 -0
  412. package/account-abstraction/actions/paymaster/getPaymasterData.ts +135 -0
  413. package/account-abstraction/actions/paymaster/getPaymasterStubData.ts +138 -0
  414. package/account-abstraction/clients/createBundlerClient.ts +155 -0
  415. package/account-abstraction/clients/createPaymasterClient.ts +78 -0
  416. package/account-abstraction/clients/decorators/bundler.ts +296 -0
  417. package/account-abstraction/clients/decorators/paymaster.ts +81 -0
  418. package/account-abstraction/constants/abis.ts +1404 -0
  419. package/account-abstraction/constants/address.ts +4 -0
  420. package/account-abstraction/errors/bundler.ts +781 -0
  421. package/account-abstraction/errors/userOperation.ts +111 -0
  422. package/account-abstraction/index.ts +228 -0
  423. package/account-abstraction/package.json +6 -0
  424. package/account-abstraction/types/account.ts +21 -0
  425. package/account-abstraction/types/entryPointVersion.ts +24 -0
  426. package/account-abstraction/types/rpc.ts +29 -0
  427. package/account-abstraction/types/userOperation.ts +262 -0
  428. package/account-abstraction/utils/errors/getBundlerError.ts +309 -0
  429. package/account-abstraction/utils/errors/getUserOperationError.ts +153 -0
  430. package/account-abstraction/utils/formatters/userOperation.ts +31 -0
  431. package/account-abstraction/utils/formatters/userOperationGas.ts +26 -0
  432. package/account-abstraction/utils/formatters/userOperationReceipt.ts +24 -0
  433. package/account-abstraction/utils/formatters/userOperationRequest.ts +53 -0
  434. package/account-abstraction/utils/userOperation/getUserOperationHash.ts +138 -0
  435. package/account-abstraction/utils/userOperation/toPackedUserOperation.ts +64 -0
  436. package/accounts/index.ts +1 -0
  437. package/accounts/privateKeyToAccount.ts +5 -0
  438. package/accounts/toAccount.ts +3 -0
  439. package/accounts/types.ts +34 -12
  440. package/accounts/utils/parseAccount.ts +6 -3
  441. package/accounts/utils/sign.ts +24 -8
  442. package/accounts/utils/signMessage.ts +1 -7
  443. package/accounts/utils/signTypedData.ts +2 -7
  444. package/actions/public/getLogs.ts +2 -1
  445. package/actions/wallet/sendTransaction.ts +48 -27
  446. package/actions/wallet/signMessage.ts +2 -1
  447. package/actions/wallet/signTransaction.ts +1 -2
  448. package/actions/wallet/signTypedData.ts +1 -1
  449. package/chains/definitions/bobaSepolia.ts +1 -0
  450. package/chains/definitions/cronoszkEVMTestnet.ts +21 -0
  451. package/chains/index.ts +1 -0
  452. package/clients/decorators/public.ts +1 -1
  453. package/constants/abis.ts +0 -3
  454. package/constants/address.ts +4 -0
  455. package/errors/account.ts +22 -1
  456. package/errors/contract.ts +1 -1
  457. package/errors/rpc.ts +6 -6
  458. package/errors/version.ts +1 -1
  459. package/index.ts +20 -3
  460. package/package.json +7 -1
  461. package/types/eip1193.ts +314 -2
  462. package/types/multicall.ts +1 -1
  463. package/utils/abi/parseEventLogs.ts +103 -14
  464. package/utils/buildRequest.ts +4 -2
  465. package/utils/errors/getNodeError.ts +1 -2
  466. package/utils/index.ts +6 -0
  467. package/utils/signature/hashTypedData.ts +6 -6
  468. package/utils/signature/serializeErc6492Signature.ts +17 -8
  469. package/utils/signature/serializeSignature.ts +24 -4
  470. package/utils/signature/verifyHash.ts +54 -0
@@ -0,0 +1,794 @@
1
+ import { type Abi, type Address, type TypedData, parseAbi } from 'abitype'
2
+
3
+ import { parseAccount } from '../../../accounts/utils/parseAccount.js'
4
+ import { readContract } from '../../../actions/public/readContract.js'
5
+ import { signMessage as signMessage_ } from '../../../actions/wallet/signMessage.js'
6
+ import type { Client } from '../../../clients/createClient.js'
7
+ import { entryPoint07Address } from '../../../constants/address.js'
8
+ import { signMessage } from '../../../experimental/solady/actions/signMessage.js'
9
+ import { signTypedData } from '../../../experimental/solady/actions/signTypedData.js'
10
+ import type { Account } from '../../../types/account.js'
11
+ import type { Hex } from '../../../types/misc.js'
12
+ import type { TypedDataDefinition } from '../../../types/typedData.js'
13
+ import type { Prettify } from '../../../types/utils.js'
14
+ import { encodeFunctionData } from '../../../utils/abi/encodeFunctionData.js'
15
+ import { pad } from '../../../utils/data/pad.js'
16
+ import { getAction } from '../../../utils/getAction.js'
17
+ import { entryPoint07Abi } from '../../constants/abis.js'
18
+ import type { EntryPointVersion } from '../../types/entryPointVersion.js'
19
+ import { getUserOperationHash } from '../../utils/userOperation/getUserOperationHash.js'
20
+ import { toSmartAccount } from '../toSmartAccount.js'
21
+ import type { SmartAccount, SmartAccountImplementation } from '../types.js'
22
+
23
+ export type ToSoladySmartAccountParameters<
24
+ entryPointAbi extends Abi = Abi,
25
+ entryPointVersion extends EntryPointVersion = EntryPointVersion,
26
+ > = {
27
+ address?: Address | undefined
28
+ client: Client
29
+ entryPoint?:
30
+ | {
31
+ abi: entryPointAbi
32
+ address: Address
33
+ version: entryPointVersion | EntryPointVersion
34
+ }
35
+ | undefined
36
+ factoryAddress?: Address | undefined
37
+ owner: Address | Account
38
+ salt?: Hex | undefined
39
+ }
40
+
41
+ export type ToSoladySmartAccountReturnType<
42
+ entryPointAbi extends Abi = Abi,
43
+ entryPointVersion extends EntryPointVersion = EntryPointVersion,
44
+ > = Prettify<
45
+ SmartAccount<
46
+ SoladySmartAccountImplementation<entryPointAbi, entryPointVersion>
47
+ >
48
+ >
49
+
50
+ export type SoladySmartAccountImplementation<
51
+ entryPointAbi extends Abi = Abi,
52
+ entryPointVersion extends EntryPointVersion = EntryPointVersion,
53
+ > = SmartAccountImplementation<
54
+ entryPointAbi,
55
+ entryPointVersion,
56
+ { abi: typeof abi; factory: { abi: typeof factoryAbi; address: Address } }
57
+ >
58
+
59
+ /**
60
+ * @description Create a Solady Smart Account – based off [Solady's `ERC4337.sol`](https://github.com/Vectorized/solady/blob/main/src/accounts/ERC4337.sol).
61
+ *
62
+ * @param parameters - {@link ToSoladySmartAccountParameters}
63
+ * @returns Solady Smart Account. {@link ToSoladySmartAccountReturnType}
64
+ *
65
+ * @example
66
+ * import { toSoladySmartAccount } from 'viem/account-abstraction'
67
+ * import { client } from './client.js'
68
+ *
69
+ * const implementation = toSoladySmartAccount({
70
+ * client,
71
+ * owner: '0x...',
72
+ * })
73
+ */
74
+ export async function toSoladySmartAccount<
75
+ entryPointAbi extends Abi = typeof entryPoint07Abi,
76
+ entryPointVersion extends EntryPointVersion = '0.7',
77
+ >(
78
+ parameters: ToSoladySmartAccountParameters<entryPointAbi, entryPointVersion>,
79
+ ): Promise<ToSoladySmartAccountReturnType<entryPointAbi, entryPointVersion>> {
80
+ const {
81
+ address,
82
+ client,
83
+ entryPoint: entryPoint_ = {
84
+ abi: entryPoint07Abi,
85
+ address: entryPoint07Address,
86
+ version: '0.7',
87
+ },
88
+ factoryAddress = '0x5d82735936c6Cd5DE57cC3c1A799f6B2E6F933Df',
89
+ salt = '0x0',
90
+ } = parameters
91
+
92
+ const entryPoint = {
93
+ abi: entryPoint_.abi as entryPointAbi,
94
+ address: entryPoint_.address,
95
+ version: entryPoint_.version as entryPointVersion,
96
+ } as const
97
+ const factory = {
98
+ abi: factoryAbi,
99
+ address: factoryAddress,
100
+ } as const
101
+ const owner = parseAccount(parameters.owner)
102
+
103
+ return toSmartAccount({
104
+ client,
105
+ entryPoint,
106
+
107
+ extend: { abi, factory },
108
+
109
+ async encodeCalls(calls) {
110
+ if (calls.length === 1)
111
+ return encodeFunctionData({
112
+ abi,
113
+ functionName: 'execute',
114
+ args: [calls[0].to, calls[0].value ?? 0n, calls[0].data ?? '0x'],
115
+ })
116
+ return encodeFunctionData({
117
+ abi,
118
+ functionName: 'executeBatch',
119
+ args: [
120
+ calls.map((call) => ({
121
+ data: call.data ?? '0x',
122
+ target: call.to,
123
+ value: call.value ?? 0n,
124
+ })),
125
+ ],
126
+ })
127
+ },
128
+
129
+ async getAddress() {
130
+ if (address) return address
131
+ return await readContract(client, {
132
+ ...factory,
133
+ functionName: 'getAddress',
134
+ args: [pad(salt)],
135
+ })
136
+ },
137
+
138
+ async getFactoryArgs() {
139
+ const factoryData = encodeFunctionData({
140
+ abi: factory.abi,
141
+ functionName: 'createAccount',
142
+ args: [owner.address, pad(salt)],
143
+ })
144
+ return { factory: factory.address, factoryData }
145
+ },
146
+
147
+ async getNonce({ key = 0n } = {}) {
148
+ const address = await this.getAddress()
149
+ const nonce = await readContract(client, {
150
+ abi: parseAbi([
151
+ 'function getNonce(address, uint192) pure returns (uint256)',
152
+ ]),
153
+ address: entryPoint.address,
154
+ functionName: 'getNonce',
155
+ args: [address, key],
156
+ })
157
+ return nonce
158
+ },
159
+
160
+ async getStubSignature() {
161
+ return '0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c'
162
+ },
163
+
164
+ async signMessage(parameters) {
165
+ const { message } = parameters
166
+ const [address, { factory, factoryData }] = await Promise.all([
167
+ this.getAddress(),
168
+ this.getFactoryArgs(),
169
+ ])
170
+ return await signMessage(client, {
171
+ account: owner,
172
+ factory,
173
+ factoryData,
174
+ message,
175
+ verifier: address,
176
+ })
177
+ },
178
+
179
+ async signTypedData(parameters) {
180
+ const { domain, types, primaryType, message } =
181
+ parameters as TypedDataDefinition<TypedData, string>
182
+ const [address, { factory, factoryData }] = await Promise.all([
183
+ this.getAddress(),
184
+ this.getFactoryArgs(),
185
+ ])
186
+ return await signTypedData(client, {
187
+ account: owner,
188
+ domain,
189
+ message,
190
+ factory,
191
+ factoryData,
192
+ primaryType,
193
+ types,
194
+ verifier: address,
195
+ })
196
+ },
197
+
198
+ async signUserOperation(parameters) {
199
+ const { chainId = client.chain!.id, ...userOperation } = parameters
200
+
201
+ const address = await this.getAddress()
202
+ const userOpHash = getUserOperationHash({
203
+ chainId,
204
+ entryPointAddress: entryPoint.address,
205
+ entryPointVersion: entryPoint.version,
206
+ userOperation: {
207
+ ...(userOperation as any),
208
+ sender: address,
209
+ },
210
+ })
211
+ const signature = await getAction(
212
+ client,
213
+ signMessage_,
214
+ 'signMessage',
215
+ )({
216
+ account: owner,
217
+ message: {
218
+ raw: userOpHash,
219
+ },
220
+ })
221
+ return signature
222
+ },
223
+ })
224
+ }
225
+
226
+ /////////////////////////////////////////////////////////////////////////////////////////////
227
+ // Constants
228
+
229
+ const abi = [
230
+ {
231
+ type: 'fallback',
232
+ stateMutability: 'payable',
233
+ },
234
+ {
235
+ type: 'receive',
236
+ stateMutability: 'payable',
237
+ },
238
+ {
239
+ type: 'function',
240
+ name: 'addDeposit',
241
+ inputs: [],
242
+ outputs: [],
243
+ stateMutability: 'payable',
244
+ },
245
+ {
246
+ type: 'function',
247
+ name: 'cancelOwnershipHandover',
248
+ inputs: [],
249
+ outputs: [],
250
+ stateMutability: 'payable',
251
+ },
252
+ {
253
+ type: 'function',
254
+ name: 'completeOwnershipHandover',
255
+ inputs: [
256
+ {
257
+ name: 'pendingOwner',
258
+ type: 'address',
259
+ },
260
+ ],
261
+ outputs: [],
262
+ stateMutability: 'payable',
263
+ },
264
+ {
265
+ type: 'function',
266
+ name: 'delegateExecute',
267
+ inputs: [
268
+ {
269
+ name: 'delegate',
270
+ type: 'address',
271
+ },
272
+ {
273
+ name: 'data',
274
+ type: 'bytes',
275
+ },
276
+ ],
277
+ outputs: [
278
+ {
279
+ name: 'result',
280
+ type: 'bytes',
281
+ },
282
+ ],
283
+ stateMutability: 'payable',
284
+ },
285
+ {
286
+ type: 'function',
287
+ name: 'eip712Domain',
288
+ inputs: [],
289
+ outputs: [
290
+ {
291
+ name: 'fields',
292
+ type: 'bytes1',
293
+ },
294
+ {
295
+ name: 'name',
296
+ type: 'string',
297
+ },
298
+ {
299
+ name: 'version',
300
+ type: 'string',
301
+ },
302
+ {
303
+ name: 'chainId',
304
+ type: 'uint256',
305
+ },
306
+ {
307
+ name: 'verifyingContract',
308
+ type: 'address',
309
+ },
310
+ {
311
+ name: 'salt',
312
+ type: 'bytes32',
313
+ },
314
+ {
315
+ name: 'extensions',
316
+ type: 'uint256[]',
317
+ },
318
+ ],
319
+ stateMutability: 'view',
320
+ },
321
+ {
322
+ type: 'function',
323
+ name: 'entryPoint',
324
+ inputs: [],
325
+ outputs: [
326
+ {
327
+ name: '',
328
+ type: 'address',
329
+ },
330
+ ],
331
+ stateMutability: 'view',
332
+ },
333
+ {
334
+ type: 'function',
335
+ name: 'execute',
336
+ inputs: [
337
+ {
338
+ name: 'target',
339
+ type: 'address',
340
+ },
341
+ {
342
+ name: 'value',
343
+ type: 'uint256',
344
+ },
345
+ {
346
+ name: 'data',
347
+ type: 'bytes',
348
+ },
349
+ ],
350
+ outputs: [
351
+ {
352
+ name: 'result',
353
+ type: 'bytes',
354
+ },
355
+ ],
356
+ stateMutability: 'payable',
357
+ },
358
+ {
359
+ type: 'function',
360
+ name: 'executeBatch',
361
+ inputs: [
362
+ {
363
+ name: 'calls',
364
+ type: 'tuple[]',
365
+
366
+ components: [
367
+ {
368
+ name: 'target',
369
+ type: 'address',
370
+ },
371
+ {
372
+ name: 'value',
373
+ type: 'uint256',
374
+ },
375
+ {
376
+ name: 'data',
377
+ type: 'bytes',
378
+ },
379
+ ],
380
+ },
381
+ ],
382
+ outputs: [
383
+ {
384
+ name: 'results',
385
+ type: 'bytes[]',
386
+ },
387
+ ],
388
+ stateMutability: 'payable',
389
+ },
390
+ {
391
+ type: 'function',
392
+ name: 'getDeposit',
393
+ inputs: [],
394
+ outputs: [
395
+ {
396
+ name: 'result',
397
+ type: 'uint256',
398
+ },
399
+ ],
400
+ stateMutability: 'view',
401
+ },
402
+ {
403
+ type: 'function',
404
+ name: 'initialize',
405
+ inputs: [
406
+ {
407
+ name: 'newOwner',
408
+ type: 'address',
409
+ },
410
+ ],
411
+ outputs: [],
412
+ stateMutability: 'payable',
413
+ },
414
+ {
415
+ type: 'function',
416
+ name: 'isValidSignature',
417
+ inputs: [
418
+ {
419
+ name: 'hash',
420
+ type: 'bytes32',
421
+ },
422
+ {
423
+ name: 'signature',
424
+ type: 'bytes',
425
+ },
426
+ ],
427
+ outputs: [
428
+ {
429
+ name: 'result',
430
+ type: 'bytes4',
431
+ },
432
+ ],
433
+ stateMutability: 'view',
434
+ },
435
+ {
436
+ type: 'function',
437
+ name: 'owner',
438
+ inputs: [],
439
+ outputs: [
440
+ {
441
+ name: 'result',
442
+ type: 'address',
443
+ },
444
+ ],
445
+ stateMutability: 'view',
446
+ },
447
+ {
448
+ type: 'function',
449
+ name: 'ownershipHandoverExpiresAt',
450
+ inputs: [
451
+ {
452
+ name: 'pendingOwner',
453
+ type: 'address',
454
+ },
455
+ ],
456
+ outputs: [
457
+ {
458
+ name: 'result',
459
+ type: 'uint256',
460
+ },
461
+ ],
462
+ stateMutability: 'view',
463
+ },
464
+ {
465
+ type: 'function',
466
+ name: 'proxiableUUID',
467
+ inputs: [],
468
+ outputs: [
469
+ {
470
+ name: '',
471
+ type: 'bytes32',
472
+ },
473
+ ],
474
+ stateMutability: 'view',
475
+ },
476
+ {
477
+ type: 'function',
478
+ name: 'renounceOwnership',
479
+ inputs: [],
480
+ outputs: [],
481
+ stateMutability: 'payable',
482
+ },
483
+ {
484
+ type: 'function',
485
+ name: 'requestOwnershipHandover',
486
+ inputs: [],
487
+ outputs: [],
488
+ stateMutability: 'payable',
489
+ },
490
+ {
491
+ type: 'function',
492
+ name: 'storageLoad',
493
+ inputs: [
494
+ {
495
+ name: 'storageSlot',
496
+ type: 'bytes32',
497
+ },
498
+ ],
499
+ outputs: [
500
+ {
501
+ name: 'result',
502
+ type: 'bytes32',
503
+ },
504
+ ],
505
+ stateMutability: 'view',
506
+ },
507
+ {
508
+ type: 'function',
509
+ name: 'storageStore',
510
+ inputs: [
511
+ {
512
+ name: 'storageSlot',
513
+ type: 'bytes32',
514
+ },
515
+ {
516
+ name: 'storageValue',
517
+ type: 'bytes32',
518
+ },
519
+ ],
520
+ outputs: [],
521
+ stateMutability: 'payable',
522
+ },
523
+ {
524
+ type: 'function',
525
+ name: 'transferOwnership',
526
+ inputs: [
527
+ {
528
+ name: 'newOwner',
529
+ type: 'address',
530
+ },
531
+ ],
532
+ outputs: [],
533
+ stateMutability: 'payable',
534
+ },
535
+ {
536
+ type: 'function',
537
+ name: 'upgradeToAndCall',
538
+ inputs: [
539
+ {
540
+ name: 'newImplementation',
541
+ type: 'address',
542
+ },
543
+ {
544
+ name: 'data',
545
+ type: 'bytes',
546
+ },
547
+ ],
548
+ outputs: [],
549
+ stateMutability: 'payable',
550
+ },
551
+ {
552
+ type: 'function',
553
+ name: 'validateUserOp',
554
+ inputs: [
555
+ {
556
+ name: 'userOp',
557
+ type: 'tuple',
558
+
559
+ components: [
560
+ {
561
+ name: 'sender',
562
+ type: 'address',
563
+ },
564
+ {
565
+ name: 'nonce',
566
+ type: 'uint256',
567
+ },
568
+ {
569
+ name: 'initCode',
570
+ type: 'bytes',
571
+ },
572
+ {
573
+ name: 'callData',
574
+ type: 'bytes',
575
+ },
576
+ {
577
+ name: 'accountGasLimits',
578
+ type: 'bytes32',
579
+ },
580
+ {
581
+ name: 'preVerificationGas',
582
+ type: 'uint256',
583
+ },
584
+ {
585
+ name: 'gasFees',
586
+ type: 'bytes32',
587
+ },
588
+ {
589
+ name: 'paymasterAndData',
590
+ type: 'bytes',
591
+ },
592
+ {
593
+ name: 'signature',
594
+ type: 'bytes',
595
+ },
596
+ ],
597
+ },
598
+ {
599
+ name: 'userOpHash',
600
+ type: 'bytes32',
601
+ },
602
+ {
603
+ name: 'missingAccountFunds',
604
+ type: 'uint256',
605
+ },
606
+ ],
607
+ outputs: [
608
+ {
609
+ name: 'validationData',
610
+ type: 'uint256',
611
+ },
612
+ ],
613
+ stateMutability: 'payable',
614
+ },
615
+ {
616
+ type: 'function',
617
+ name: 'withdrawDepositTo',
618
+ inputs: [
619
+ {
620
+ name: 'to',
621
+ type: 'address',
622
+ },
623
+ {
624
+ name: 'amount',
625
+ type: 'uint256',
626
+ },
627
+ ],
628
+ outputs: [],
629
+ stateMutability: 'payable',
630
+ },
631
+ {
632
+ type: 'event',
633
+ name: 'OwnershipHandoverCanceled',
634
+ inputs: [
635
+ {
636
+ name: 'pendingOwner',
637
+ type: 'address',
638
+ indexed: true,
639
+ },
640
+ ],
641
+ anonymous: false,
642
+ },
643
+ {
644
+ type: 'event',
645
+ name: 'OwnershipHandoverRequested',
646
+ inputs: [
647
+ {
648
+ name: 'pendingOwner',
649
+ type: 'address',
650
+ indexed: true,
651
+ },
652
+ ],
653
+ anonymous: false,
654
+ },
655
+ {
656
+ type: 'event',
657
+ name: 'OwnershipTransferred',
658
+ inputs: [
659
+ {
660
+ name: 'oldOwner',
661
+ type: 'address',
662
+ indexed: true,
663
+ },
664
+ {
665
+ name: 'newOwner',
666
+ type: 'address',
667
+ indexed: true,
668
+ },
669
+ ],
670
+ anonymous: false,
671
+ },
672
+ {
673
+ type: 'event',
674
+ name: 'Upgraded',
675
+ inputs: [
676
+ {
677
+ name: 'implementation',
678
+ type: 'address',
679
+ indexed: true,
680
+ },
681
+ ],
682
+ anonymous: false,
683
+ },
684
+ {
685
+ type: 'error',
686
+ name: 'AlreadyInitialized',
687
+ inputs: [],
688
+ },
689
+ {
690
+ type: 'error',
691
+ name: 'FnSelectorNotRecognized',
692
+ inputs: [],
693
+ },
694
+ {
695
+ type: 'error',
696
+ name: 'NewOwnerIsZeroAddress',
697
+ inputs: [],
698
+ },
699
+ {
700
+ type: 'error',
701
+ name: 'NoHandoverRequest',
702
+ inputs: [],
703
+ },
704
+ {
705
+ type: 'error',
706
+ name: 'Unauthorized',
707
+ inputs: [],
708
+ },
709
+ {
710
+ type: 'error',
711
+ name: 'UnauthorizedCallContext',
712
+ inputs: [],
713
+ },
714
+ {
715
+ type: 'error',
716
+ name: 'UpgradeFailed',
717
+ inputs: [],
718
+ },
719
+ ] as const
720
+
721
+ const factoryAbi = [
722
+ {
723
+ type: 'constructor',
724
+ inputs: [
725
+ {
726
+ name: 'erc4337',
727
+ type: 'address',
728
+ },
729
+ ],
730
+ stateMutability: 'nonpayable',
731
+ },
732
+ {
733
+ type: 'function',
734
+ name: 'createAccount',
735
+ inputs: [
736
+ {
737
+ name: 'owner',
738
+ type: 'address',
739
+ },
740
+ {
741
+ name: 'salt',
742
+ type: 'bytes32',
743
+ },
744
+ ],
745
+ outputs: [
746
+ {
747
+ name: '',
748
+ type: 'address',
749
+ },
750
+ ],
751
+ stateMutability: 'payable',
752
+ },
753
+ {
754
+ type: 'function',
755
+ name: 'getAddress',
756
+ inputs: [
757
+ {
758
+ name: 'salt',
759
+ type: 'bytes32',
760
+ },
761
+ ],
762
+ outputs: [
763
+ {
764
+ name: '',
765
+ type: 'address',
766
+ },
767
+ ],
768
+ stateMutability: 'view',
769
+ },
770
+ {
771
+ type: 'function',
772
+ name: 'implementation',
773
+ inputs: [],
774
+ outputs: [
775
+ {
776
+ name: '',
777
+ type: 'address',
778
+ },
779
+ ],
780
+ stateMutability: 'view',
781
+ },
782
+ {
783
+ type: 'function',
784
+ name: 'initCodeHash',
785
+ inputs: [],
786
+ outputs: [
787
+ {
788
+ name: '',
789
+ type: 'bytes32',
790
+ },
791
+ ],
792
+ stateMutability: 'view',
793
+ },
794
+ ] as const