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,309 @@
1
+ import type { BaseError } from '../../../errors/base.js'
2
+ import type { ExactPartial } from '../../../types/utils.js'
3
+ import {
4
+ AccountNotDeployedError,
5
+ type AccountNotDeployedErrorType,
6
+ ExecutionRevertedError,
7
+ type ExecutionRevertedErrorType,
8
+ FailedToSendToBeneficiaryError,
9
+ type FailedToSendToBeneficiaryErrorType,
10
+ GasValuesOverflowError,
11
+ type GasValuesOverflowErrorType,
12
+ HandleOpsOutOfGasError,
13
+ type HandleOpsOutOfGasErrorType,
14
+ InitCodeFailedError,
15
+ type InitCodeFailedErrorType,
16
+ InitCodeMustCreateSenderError,
17
+ type InitCodeMustCreateSenderErrorType,
18
+ InitCodeMustReturnSenderError,
19
+ type InitCodeMustReturnSenderErrorType,
20
+ InsufficientPrefundError,
21
+ type InsufficientPrefundErrorType,
22
+ InternalCallOnlyError,
23
+ type InternalCallOnlyErrorType,
24
+ InvalidAccountNonceError,
25
+ type InvalidAccountNonceErrorType,
26
+ InvalidAggregatorError,
27
+ type InvalidAggregatorErrorType,
28
+ InvalidBeneficiaryError,
29
+ type InvalidBeneficiaryErrorType,
30
+ InvalidFieldsError,
31
+ type InvalidFieldsErrorType,
32
+ InvalidPaymasterAndDataError,
33
+ type InvalidPaymasterAndDataErrorType,
34
+ PaymasterDepositTooLowError,
35
+ type PaymasterDepositTooLowErrorType,
36
+ PaymasterFunctionRevertedError,
37
+ type PaymasterFunctionRevertedErrorType,
38
+ PaymasterNotDeployedError,
39
+ type PaymasterNotDeployedErrorType,
40
+ PaymasterPostOpFunctionRevertedError,
41
+ type PaymasterPostOpFunctionRevertedErrorType,
42
+ PaymasterRateLimitError,
43
+ type PaymasterRateLimitErrorType,
44
+ PaymasterStakeTooLowError,
45
+ type PaymasterStakeTooLowErrorType,
46
+ SenderAlreadyConstructedError,
47
+ type SenderAlreadyConstructedErrorType,
48
+ SignatureCheckFailedError,
49
+ type SignatureCheckFailedErrorType,
50
+ SmartAccountFunctionRevertedError,
51
+ type SmartAccountFunctionRevertedErrorType,
52
+ UnknownBundlerError,
53
+ type UnknownBundlerErrorType,
54
+ UnsupportedSignatureAggregatorError,
55
+ type UnsupportedSignatureAggregatorErrorType,
56
+ UserOperationExpiredError,
57
+ type UserOperationExpiredErrorType,
58
+ UserOperationOutOfTimeRangeError,
59
+ type UserOperationOutOfTimeRangeErrorType,
60
+ UserOperationPaymasterExpiredError,
61
+ type UserOperationPaymasterExpiredErrorType,
62
+ UserOperationPaymasterSignatureError,
63
+ type UserOperationPaymasterSignatureErrorType,
64
+ UserOperationRejectedByEntryPointError,
65
+ type UserOperationRejectedByEntryPointErrorType,
66
+ UserOperationRejectedByOpCodeError,
67
+ type UserOperationRejectedByOpCodeErrorType,
68
+ UserOperationRejectedByPaymasterError,
69
+ type UserOperationRejectedByPaymasterErrorType,
70
+ UserOperationSignatureError,
71
+ type UserOperationSignatureErrorType,
72
+ VerificationGasLimitExceededError,
73
+ type VerificationGasLimitExceededErrorType,
74
+ VerificationGasLimitTooLowError,
75
+ type VerificationGasLimitTooLowErrorType,
76
+ } from '../../errors/bundler.js'
77
+ import type { UserOperation } from '../../types/userOperation.js'
78
+
79
+ const bundlerErrors = [
80
+ ExecutionRevertedError,
81
+ InvalidFieldsError,
82
+ PaymasterDepositTooLowError,
83
+ PaymasterRateLimitError,
84
+ PaymasterStakeTooLowError,
85
+ SignatureCheckFailedError,
86
+ UnsupportedSignatureAggregatorError,
87
+ UserOperationOutOfTimeRangeError,
88
+ UserOperationRejectedByEntryPointError,
89
+ UserOperationRejectedByPaymasterError,
90
+ UserOperationRejectedByOpCodeError,
91
+ ]
92
+
93
+ export type GetBundlerErrorParameters = ExactPartial<UserOperation>
94
+
95
+ export type GetBundlerErrorReturnType =
96
+ | AccountNotDeployedErrorType
97
+ | ExecutionRevertedErrorType
98
+ | FailedToSendToBeneficiaryErrorType
99
+ | GasValuesOverflowErrorType
100
+ | HandleOpsOutOfGasErrorType
101
+ | InitCodeFailedErrorType
102
+ | InitCodeMustCreateSenderErrorType
103
+ | InitCodeMustReturnSenderErrorType
104
+ | InsufficientPrefundErrorType
105
+ | InternalCallOnlyErrorType
106
+ | InvalidAccountNonceErrorType
107
+ | InvalidAggregatorErrorType
108
+ | InvalidBeneficiaryErrorType
109
+ | InvalidFieldsErrorType
110
+ | InvalidPaymasterAndDataErrorType
111
+ | PaymasterDepositTooLowErrorType
112
+ | PaymasterFunctionRevertedErrorType
113
+ | PaymasterNotDeployedErrorType
114
+ | PaymasterPostOpFunctionRevertedErrorType
115
+ | PaymasterRateLimitErrorType
116
+ | PaymasterStakeTooLowErrorType
117
+ | SignatureCheckFailedErrorType
118
+ | SenderAlreadyConstructedErrorType
119
+ | SmartAccountFunctionRevertedErrorType
120
+ | UnsupportedSignatureAggregatorErrorType
121
+ | UserOperationOutOfTimeRangeErrorType
122
+ | UserOperationRejectedByEntryPointErrorType
123
+ | UserOperationRejectedByOpCodeErrorType
124
+ | UserOperationRejectedByPaymasterErrorType
125
+ | UnknownBundlerErrorType
126
+ | UserOperationExpiredErrorType
127
+ | UserOperationPaymasterExpiredErrorType
128
+ | UserOperationPaymasterSignatureErrorType
129
+ | UserOperationSignatureErrorType
130
+ | VerificationGasLimitExceededErrorType
131
+ | VerificationGasLimitTooLowErrorType
132
+
133
+ export function getBundlerError(
134
+ err: BaseError,
135
+ args: GetBundlerErrorParameters,
136
+ ): GetBundlerErrorReturnType {
137
+ const message = (err.details || '').toLowerCase()
138
+
139
+ if (AccountNotDeployedError.message.test(message))
140
+ return new AccountNotDeployedError({
141
+ cause: err,
142
+ }) as any
143
+ if (FailedToSendToBeneficiaryError.message.test(message))
144
+ return new FailedToSendToBeneficiaryError({
145
+ cause: err,
146
+ }) as any
147
+ if (GasValuesOverflowError.message.test(message))
148
+ return new GasValuesOverflowError({
149
+ cause: err,
150
+ }) as any
151
+ if (HandleOpsOutOfGasError.message.test(message))
152
+ return new HandleOpsOutOfGasError({
153
+ cause: err,
154
+ }) as any
155
+ if (InitCodeFailedError.message.test(message))
156
+ return new InitCodeFailedError({
157
+ cause: err,
158
+ factory: args.factory,
159
+ factoryData: args.factoryData,
160
+ initCode: args.initCode,
161
+ }) as any
162
+ if (InitCodeMustCreateSenderError.message.test(message))
163
+ return new InitCodeMustCreateSenderError({
164
+ cause: err,
165
+ factory: args.factory,
166
+ factoryData: args.factoryData,
167
+ initCode: args.initCode,
168
+ }) as any
169
+ if (InitCodeMustReturnSenderError.message.test(message))
170
+ return new InitCodeMustReturnSenderError({
171
+ cause: err,
172
+ factory: args.factory,
173
+ factoryData: args.factoryData,
174
+ initCode: args.initCode,
175
+ sender: args.sender,
176
+ }) as any
177
+ if (InsufficientPrefundError.message.test(message))
178
+ return new InsufficientPrefundError({
179
+ cause: err,
180
+ }) as any
181
+ if (InternalCallOnlyError.message.test(message))
182
+ return new InternalCallOnlyError({
183
+ cause: err,
184
+ }) as any
185
+ if (InvalidAccountNonceError.message.test(message))
186
+ return new InvalidAccountNonceError({
187
+ cause: err,
188
+ nonce: args.nonce,
189
+ }) as any
190
+ if (InvalidAggregatorError.message.test(message))
191
+ return new InvalidAggregatorError({
192
+ cause: err,
193
+ }) as any
194
+ if (InvalidBeneficiaryError.message.test(message))
195
+ return new InvalidBeneficiaryError({
196
+ cause: err,
197
+ }) as any
198
+ if (InvalidPaymasterAndDataError.message.test(message))
199
+ return new InvalidPaymasterAndDataError({
200
+ cause: err,
201
+ }) as any
202
+ if (PaymasterDepositTooLowError.message.test(message))
203
+ return new PaymasterDepositTooLowError({
204
+ cause: err,
205
+ }) as any
206
+ if (PaymasterFunctionRevertedError.message.test(message))
207
+ return new PaymasterFunctionRevertedError({
208
+ cause: err,
209
+ }) as any
210
+ if (PaymasterNotDeployedError.message.test(message))
211
+ return new PaymasterNotDeployedError({
212
+ cause: err,
213
+ }) as any
214
+ if (PaymasterPostOpFunctionRevertedError.message.test(message))
215
+ return new PaymasterPostOpFunctionRevertedError({
216
+ cause: err,
217
+ }) as any
218
+ if (SmartAccountFunctionRevertedError.message.test(message))
219
+ return new SmartAccountFunctionRevertedError({
220
+ cause: err,
221
+ }) as any
222
+ if (SenderAlreadyConstructedError.message.test(message))
223
+ return new SenderAlreadyConstructedError({
224
+ cause: err,
225
+ factory: args.factory,
226
+ factoryData: args.factoryData,
227
+ initCode: args.initCode,
228
+ }) as any
229
+ if (UserOperationExpiredError.message.test(message))
230
+ return new UserOperationExpiredError({
231
+ cause: err,
232
+ }) as any
233
+ if (UserOperationPaymasterExpiredError.message.test(message))
234
+ return new UserOperationPaymasterExpiredError({
235
+ cause: err,
236
+ }) as any
237
+ if (UserOperationPaymasterSignatureError.message.test(message))
238
+ return new UserOperationPaymasterSignatureError({
239
+ cause: err,
240
+ }) as any
241
+ if (UserOperationSignatureError.message.test(message))
242
+ return new UserOperationSignatureError({
243
+ cause: err,
244
+ }) as any
245
+ if (VerificationGasLimitExceededError.message.test(message))
246
+ return new VerificationGasLimitExceededError({
247
+ cause: err,
248
+ }) as any
249
+ if (VerificationGasLimitTooLowError.message.test(message))
250
+ return new VerificationGasLimitTooLowError({
251
+ cause: err,
252
+ }) as any
253
+
254
+ const error = err.walk((e) =>
255
+ bundlerErrors.some((error) => error.code === (e as { code: number }).code),
256
+ ) as BaseError & { code: number }
257
+
258
+ if (error) {
259
+ if (error.code === ExecutionRevertedError.code)
260
+ return new ExecutionRevertedError({
261
+ cause: err,
262
+ message: error.details,
263
+ }) as any
264
+ if (error.code === InvalidFieldsError.code)
265
+ return new InvalidFieldsError({
266
+ cause: err,
267
+ }) as any
268
+ if (error.code === PaymasterDepositTooLowError.code)
269
+ return new PaymasterDepositTooLowError({
270
+ cause: err,
271
+ }) as any
272
+ if (error.code === PaymasterRateLimitError.code)
273
+ return new PaymasterRateLimitError({
274
+ cause: err,
275
+ }) as any
276
+ if (error.code === PaymasterStakeTooLowError.code)
277
+ return new PaymasterStakeTooLowError({
278
+ cause: err,
279
+ }) as any
280
+ if (error.code === SignatureCheckFailedError.code)
281
+ return new SignatureCheckFailedError({
282
+ cause: err,
283
+ }) as any
284
+ if (error.code === UnsupportedSignatureAggregatorError.code)
285
+ return new UnsupportedSignatureAggregatorError({
286
+ cause: err,
287
+ }) as any
288
+ if (error.code === UserOperationOutOfTimeRangeError.code)
289
+ return new UserOperationOutOfTimeRangeError({
290
+ cause: err,
291
+ }) as any
292
+ if (error.code === UserOperationRejectedByEntryPointError.code)
293
+ return new UserOperationRejectedByEntryPointError({
294
+ cause: err,
295
+ }) as any
296
+ if (error.code === UserOperationRejectedByPaymasterError.code)
297
+ return new UserOperationRejectedByPaymasterError({
298
+ cause: err,
299
+ }) as any
300
+ if (error.code === UserOperationRejectedByOpCodeError.code)
301
+ return new UserOperationRejectedByOpCodeError({
302
+ cause: err,
303
+ }) as any
304
+ }
305
+
306
+ return new UnknownBundlerError({
307
+ cause: err,
308
+ }) as any
309
+ }
@@ -0,0 +1,153 @@
1
+ import type { Address } from 'abitype'
2
+ import { BaseError } from '../../../errors/base.js'
3
+ import {
4
+ ContractFunctionExecutionError,
5
+ ContractFunctionRevertedError,
6
+ ContractFunctionZeroDataError,
7
+ } from '../../../errors/contract.js'
8
+ import type { ErrorType } from '../../../errors/utils.js'
9
+ import type { ContractFunctionParameters } from '../../../types/contract.js'
10
+ import type { Hex } from '../../../types/misc.js'
11
+ import type { OneOf } from '../../../types/utils.js'
12
+ import { decodeErrorResult } from '../../../utils/abi/decodeErrorResult.js'
13
+ import type { GetContractErrorReturnType } from '../../../utils/errors/getContractError.js'
14
+ import { ExecutionRevertedError } from '../../errors/bundler.js'
15
+ import {
16
+ UserOperationExecutionError,
17
+ type UserOperationExecutionErrorType,
18
+ } from '../../errors/userOperation.js'
19
+ import type {
20
+ UserOperation,
21
+ UserOperationCall,
22
+ } from '../../types/userOperation.js'
23
+ import {
24
+ type GetBundlerErrorParameters,
25
+ getBundlerError,
26
+ } from './getBundlerError.js'
27
+
28
+ type Call = OneOf<
29
+ | UserOperationCall
30
+ | (ContractFunctionParameters & {
31
+ to: Address
32
+ })
33
+ >
34
+
35
+ type GetNodeErrorReturnType = ErrorType
36
+
37
+ export type GetUserOperationErrorParameters = UserOperation & {
38
+ calls?: readonly unknown[] | undefined
39
+ docsPath?: string | undefined
40
+ }
41
+
42
+ export type GetUserOperationErrorReturnType<cause = ErrorType> = Omit<
43
+ UserOperationExecutionErrorType,
44
+ 'cause'
45
+ > & { cause: cause | GetNodeErrorReturnType }
46
+
47
+ export type GetUserOperationErrorErrorType = ErrorType
48
+
49
+ export function getUserOperationError<err extends ErrorType<string>>(
50
+ err: err,
51
+ { calls, docsPath, ...args }: GetUserOperationErrorParameters,
52
+ ): GetUserOperationErrorReturnType<err> {
53
+ const cause = (() => {
54
+ const cause = getBundlerError(
55
+ err as {} as BaseError,
56
+ args as GetBundlerErrorParameters,
57
+ )
58
+ if (cause instanceof ExecutionRevertedError) {
59
+ const revertData = getRevertData(cause)
60
+ const contractCalls = calls?.filter(
61
+ (call: any) => call.abi || call.data,
62
+ ) as readonly Call[]
63
+ if (revertData && contractCalls.length > 0)
64
+ return getContractError({ calls: contractCalls, revertData })
65
+ }
66
+ return cause
67
+ })()
68
+ return new UserOperationExecutionError(cause, {
69
+ docsPath,
70
+ ...args,
71
+ }) as GetUserOperationErrorReturnType<err>
72
+ }
73
+
74
+ /////////////////////////////////////////////////////////////////////////////////
75
+
76
+ function getRevertData(error: BaseError) {
77
+ let revertData: Hex | undefined
78
+ error.walk((e) => {
79
+ const error = e as any
80
+ if (
81
+ typeof error.data === 'string' ||
82
+ typeof error.data?.revertData === 'string' ||
83
+ (!(error instanceof BaseError) && typeof error.message === 'string')
84
+ ) {
85
+ const match = (
86
+ error.data?.revertData ||
87
+ error.data ||
88
+ error.message
89
+ ).match?.(/(0x[A-Za-z0-9]*)/)
90
+ if (match) {
91
+ revertData = match[1]
92
+ return true
93
+ }
94
+ }
95
+ return false
96
+ })
97
+ return revertData
98
+ }
99
+
100
+ function getContractError(parameters: {
101
+ calls: readonly Call[]
102
+ revertData: Hex
103
+ }) {
104
+ const { calls, revertData } = parameters
105
+
106
+ const { abi, functionName, args, to } = (() => {
107
+ const contractCalls = calls?.filter((call) =>
108
+ Boolean(call.abi),
109
+ ) as readonly (ContractFunctionParameters & { to: Address })[]
110
+
111
+ if (contractCalls.length === 1) return contractCalls[0]
112
+
113
+ const compatContractCalls = contractCalls.filter((call) => {
114
+ try {
115
+ return Boolean(
116
+ decodeErrorResult({
117
+ abi: call.abi,
118
+ data: revertData,
119
+ }),
120
+ )
121
+ } catch {
122
+ return false
123
+ }
124
+ })
125
+ if (compatContractCalls.length === 1) return compatContractCalls[0]
126
+
127
+ return {
128
+ abi: [],
129
+ functionName: contractCalls.reduce(
130
+ (acc, call) => `${acc ? `${acc} | ` : ''}${call.functionName}`,
131
+ '',
132
+ ),
133
+ args: undefined,
134
+ to: undefined,
135
+ }
136
+ })()
137
+
138
+ const cause = (() => {
139
+ if (revertData === '0x')
140
+ return new ContractFunctionZeroDataError({ functionName })
141
+ return new ContractFunctionRevertedError({
142
+ abi,
143
+ data: revertData,
144
+ functionName,
145
+ })
146
+ })()
147
+ return new ContractFunctionExecutionError(cause as BaseError, {
148
+ abi,
149
+ args,
150
+ contractAddress: to,
151
+ functionName,
152
+ }) as GetContractErrorReturnType
153
+ }
@@ -0,0 +1,31 @@
1
+ import type { ErrorType } from '../../../errors/utils.js'
2
+ import type { RpcUserOperation } from '../../types/rpc.js'
3
+ import type { UserOperation } from '../../types/userOperation.js'
4
+
5
+ export type FormatUserOperationErrorType = ErrorType
6
+
7
+ export function formatUserOperation(parameters: RpcUserOperation) {
8
+ const userOperation = { ...parameters } as unknown as UserOperation
9
+
10
+ if (parameters.callGasLimit)
11
+ userOperation.callGasLimit = BigInt(parameters.callGasLimit)
12
+ if (parameters.maxFeePerGas)
13
+ userOperation.maxFeePerGas = BigInt(parameters.maxFeePerGas)
14
+ if (parameters.maxPriorityFeePerGas)
15
+ userOperation.maxPriorityFeePerGas = BigInt(parameters.maxPriorityFeePerGas)
16
+ if (parameters.nonce) userOperation.nonce = BigInt(parameters.nonce)
17
+ if (parameters.paymasterPostOpGasLimit)
18
+ userOperation.paymasterPostOpGasLimit = BigInt(
19
+ parameters.paymasterPostOpGasLimit,
20
+ )
21
+ if (parameters.paymasterVerificationGasLimit)
22
+ userOperation.paymasterVerificationGasLimit = BigInt(
23
+ parameters.paymasterVerificationGasLimit,
24
+ )
25
+ if (parameters.preVerificationGas)
26
+ userOperation.preVerificationGas = BigInt(parameters.preVerificationGas)
27
+ if (parameters.verificationGasLimit)
28
+ userOperation.verificationGasLimit = BigInt(parameters.verificationGasLimit)
29
+
30
+ return userOperation
31
+ }
@@ -0,0 +1,26 @@
1
+ import type { ErrorType } from '../../../errors/utils.js'
2
+ import type { RpcEstimateUserOperationGasReturnType } from '../../types/rpc.js'
3
+ import type { EstimateUserOperationGasReturnType } from '../../types/userOperation.js'
4
+
5
+ export type FormatUserOperationGasErrorType = ErrorType
6
+
7
+ export function formatUserOperationGas(
8
+ parameters: RpcEstimateUserOperationGasReturnType,
9
+ ): EstimateUserOperationGasReturnType {
10
+ const gas = {} as EstimateUserOperationGasReturnType
11
+
12
+ if (parameters.callGasLimit)
13
+ gas.callGasLimit = BigInt(parameters.callGasLimit)
14
+ if (parameters.preVerificationGas)
15
+ gas.preVerificationGas = BigInt(parameters.preVerificationGas)
16
+ if (parameters.verificationGasLimit)
17
+ gas.verificationGasLimit = BigInt(parameters.verificationGasLimit)
18
+ if (parameters.paymasterPostOpGasLimit)
19
+ gas.paymasterPostOpGasLimit = BigInt(parameters.paymasterPostOpGasLimit)
20
+ if (parameters.paymasterVerificationGasLimit)
21
+ gas.paymasterVerificationGasLimit = BigInt(
22
+ parameters.paymasterVerificationGasLimit,
23
+ )
24
+
25
+ return gas
26
+ }
@@ -0,0 +1,24 @@
1
+ import type { ErrorType } from '../../../errors/utils.js'
2
+ import { formatLog } from '../../../utils/formatters/log.js'
3
+ import { formatTransactionReceipt } from '../../../utils/formatters/transactionReceipt.js'
4
+ import type { RpcUserOperationReceipt } from '../../types/rpc.js'
5
+ import type { UserOperationReceipt } from '../../types/userOperation.js'
6
+
7
+ export type FormatUserOperationReceiptErrorType = ErrorType
8
+
9
+ export function formatUserOperationReceipt(
10
+ parameters: RpcUserOperationReceipt,
11
+ ) {
12
+ const receipt = { ...parameters } as unknown as UserOperationReceipt
13
+
14
+ if (parameters.actualGasCost)
15
+ receipt.actualGasCost = BigInt(parameters.actualGasCost)
16
+ if (parameters.actualGasUsed)
17
+ receipt.actualGasUsed = BigInt(parameters.actualGasUsed)
18
+ if (parameters.logs)
19
+ receipt.logs = parameters.logs.map((log) => formatLog(log)) as any
20
+ if (parameters.receipt)
21
+ receipt.receipt = formatTransactionReceipt(receipt.receipt as any)
22
+
23
+ return receipt
24
+ }
@@ -0,0 +1,53 @@
1
+ import type { ErrorType } from '../../../errors/utils.js'
2
+ import type { ExactPartial } from '../../../types/utils.js'
3
+ import { numberToHex } from '../../../utils/encoding/toHex.js'
4
+ import type { RpcUserOperation } from '../../types/rpc.js'
5
+ import type { UserOperation } from '../../types/userOperation.js'
6
+
7
+ export type FormatUserOperationRequestErrorType = ErrorType
8
+
9
+ export function formatUserOperationRequest(
10
+ request: ExactPartial<UserOperation>,
11
+ ) {
12
+ const rpcRequest = {} as RpcUserOperation
13
+
14
+ if (typeof request.callData !== 'undefined')
15
+ rpcRequest.callData = request.callData
16
+ if (typeof request.callGasLimit !== 'undefined')
17
+ rpcRequest.callGasLimit = numberToHex(request.callGasLimit)
18
+ if (typeof request.factory !== 'undefined')
19
+ rpcRequest.factory = request.factory
20
+ if (typeof request.factoryData !== 'undefined')
21
+ rpcRequest.factoryData = request.factoryData
22
+ if (typeof request.initCode !== 'undefined')
23
+ rpcRequest.initCode = request.initCode
24
+ if (typeof request.maxFeePerGas !== 'undefined')
25
+ rpcRequest.maxFeePerGas = numberToHex(request.maxFeePerGas)
26
+ if (typeof request.maxPriorityFeePerGas !== 'undefined')
27
+ rpcRequest.maxPriorityFeePerGas = numberToHex(request.maxPriorityFeePerGas)
28
+ if (typeof request.nonce !== 'undefined')
29
+ rpcRequest.nonce = numberToHex(request.nonce)
30
+ if (typeof request.paymaster !== 'undefined')
31
+ rpcRequest.paymaster = request.paymaster
32
+ if (typeof request.paymasterAndData !== 'undefined')
33
+ rpcRequest.paymasterAndData = request.paymasterAndData || '0x'
34
+ if (typeof request.paymasterData !== 'undefined')
35
+ rpcRequest.paymasterData = request.paymasterData
36
+ if (typeof request.paymasterPostOpGasLimit !== 'undefined')
37
+ rpcRequest.paymasterPostOpGasLimit = numberToHex(
38
+ request.paymasterPostOpGasLimit,
39
+ )
40
+ if (typeof request.paymasterVerificationGasLimit !== 'undefined')
41
+ rpcRequest.paymasterVerificationGasLimit = numberToHex(
42
+ request.paymasterVerificationGasLimit,
43
+ )
44
+ if (typeof request.preVerificationGas !== 'undefined')
45
+ rpcRequest.preVerificationGas = numberToHex(request.preVerificationGas)
46
+ if (typeof request.sender !== 'undefined') rpcRequest.sender = request.sender
47
+ if (typeof request.signature !== 'undefined')
48
+ rpcRequest.signature = request.signature
49
+ if (typeof request.verificationGasLimit !== 'undefined')
50
+ rpcRequest.verificationGasLimit = numberToHex(request.verificationGasLimit)
51
+
52
+ return rpcRequest
53
+ }