viem 2.17.10 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (464) hide show
  1. package/CHANGELOG.md +16 -2
  2. package/README.md +6 -0
  3. package/_cjs/account-abstraction/accounts/createWebAuthnCredential.js +6 -0
  4. package/_cjs/account-abstraction/accounts/createWebAuthnCredential.js.map +1 -0
  5. package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +688 -0
  6. package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -0
  7. package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js +704 -0
  8. package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -0
  9. package/_cjs/account-abstraction/accounts/toSmartAccount.js +93 -0
  10. package/_cjs/account-abstraction/accounts/toSmartAccount.js.map +1 -0
  11. package/_cjs/account-abstraction/accounts/toWebAuthnAccount.js +24 -0
  12. package/_cjs/account-abstraction/accounts/toWebAuthnAccount.js.map +1 -0
  13. package/_cjs/account-abstraction/accounts/types.js +3 -0
  14. package/_cjs/account-abstraction/accounts/types.js.map +1 -0
  15. package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js +37 -0
  16. package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -0
  17. package/_cjs/account-abstraction/actions/bundler/getSupportedEntryPoints.js +7 -0
  18. package/_cjs/account-abstraction/actions/bundler/getSupportedEntryPoints.js.map +1 -0
  19. package/_cjs/account-abstraction/actions/bundler/getUserOperation.js +22 -0
  20. package/_cjs/account-abstraction/actions/bundler/getUserOperation.js.map +1 -0
  21. package/_cjs/account-abstraction/actions/bundler/getUserOperationReceipt.js +15 -0
  22. package/_cjs/account-abstraction/actions/bundler/getUserOperationReceipt.js.map +1 -0
  23. package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js +239 -0
  24. package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -0
  25. package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js +36 -0
  26. package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -0
  27. package/_cjs/account-abstraction/actions/bundler/waitForUserOperationReceipt.js +48 -0
  28. package/_cjs/account-abstraction/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  29. package/_cjs/account-abstraction/actions/paymaster/getPaymasterData.js +34 -0
  30. package/_cjs/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -0
  31. package/_cjs/account-abstraction/actions/paymaster/getPaymasterStubData.js +34 -0
  32. package/_cjs/account-abstraction/actions/paymaster/getPaymasterStubData.js.map +1 -0
  33. package/_cjs/account-abstraction/clients/createBundlerClient.js +18 -0
  34. package/_cjs/account-abstraction/clients/createBundlerClient.js.map +1 -0
  35. package/_cjs/account-abstraction/clients/createPaymasterClient.js +17 -0
  36. package/_cjs/account-abstraction/clients/createPaymasterClient.js.map +1 -0
  37. package/_cjs/account-abstraction/clients/decorators/bundler.js +24 -0
  38. package/_cjs/account-abstraction/clients/decorators/bundler.js.map +1 -0
  39. package/_cjs/account-abstraction/clients/decorators/paymaster.js +12 -0
  40. package/_cjs/account-abstraction/clients/decorators/paymaster.js.map +1 -0
  41. package/_cjs/account-abstraction/constants/abis.js +1318 -0
  42. package/_cjs/account-abstraction/constants/abis.js.map +1 -0
  43. package/_cjs/account-abstraction/constants/address.js +6 -0
  44. package/_cjs/account-abstraction/constants/address.js.map +1 -0
  45. package/_cjs/account-abstraction/errors/bundler.js +813 -0
  46. package/_cjs/account-abstraction/errors/bundler.js.map +1 -0
  47. package/_cjs/account-abstraction/errors/userOperation.js +91 -0
  48. package/_cjs/account-abstraction/errors/userOperation.js.map +1 -0
  49. package/_cjs/account-abstraction/index.js +90 -0
  50. package/_cjs/account-abstraction/index.js.map +1 -0
  51. package/_cjs/account-abstraction/types/account.js +3 -0
  52. package/_cjs/account-abstraction/types/account.js.map +1 -0
  53. package/_cjs/account-abstraction/types/entryPointVersion.js +3 -0
  54. package/_cjs/account-abstraction/types/entryPointVersion.js.map +1 -0
  55. package/_cjs/account-abstraction/types/rpc.js +3 -0
  56. package/_cjs/account-abstraction/types/rpc.js.map +1 -0
  57. package/_cjs/account-abstraction/types/userOperation.js +3 -0
  58. package/_cjs/account-abstraction/types/userOperation.js.map +1 -0
  59. package/_cjs/account-abstraction/utils/errors/getBundlerError.js +186 -0
  60. package/_cjs/account-abstraction/utils/errors/getBundlerError.js.map +1 -0
  61. package/_cjs/account-abstraction/utils/errors/getUserOperationError.js +87 -0
  62. package/_cjs/account-abstraction/utils/errors/getUserOperationError.js.map +1 -0
  63. package/_cjs/account-abstraction/utils/formatters/userOperation.js +24 -0
  64. package/_cjs/account-abstraction/utils/formatters/userOperation.js.map +1 -0
  65. package/_cjs/account-abstraction/utils/formatters/userOperationGas.js +18 -0
  66. package/_cjs/account-abstraction/utils/formatters/userOperationGas.js.map +1 -0
  67. package/_cjs/account-abstraction/utils/formatters/userOperationReceipt.js +18 -0
  68. package/_cjs/account-abstraction/utils/formatters/userOperationReceipt.js.map +1 -0
  69. package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js +43 -0
  70. package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -0
  71. package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js +88 -0
  72. package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -0
  73. package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js +44 -0
  74. package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -0
  75. package/_cjs/accounts/index.js +1 -3
  76. package/_cjs/accounts/index.js.map +1 -1
  77. package/_cjs/accounts/privateKeyToAccount.js +4 -0
  78. package/_cjs/accounts/privateKeyToAccount.js.map +1 -1
  79. package/_cjs/accounts/toAccount.js +1 -0
  80. package/_cjs/accounts/toAccount.js.map +1 -1
  81. package/_cjs/accounts/utils/parseAccount.js.map +1 -1
  82. package/_cjs/accounts/utils/sign.js +8 -2
  83. package/_cjs/accounts/utils/sign.js.map +1 -1
  84. package/_cjs/accounts/utils/signMessage.js +1 -3
  85. package/_cjs/accounts/utils/signMessage.js.map +1 -1
  86. package/_cjs/accounts/utils/signTypedData.js +2 -3
  87. package/_cjs/accounts/utils/signTypedData.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 +23 -0
  97. package/_cjs/chains/definitions/bobaSepolia.js.map +1 -0
  98. package/_cjs/chains/index.js +9 -7
  99. package/_cjs/chains/index.js.map +1 -1
  100. package/_cjs/clients/decorators/public.js.map +1 -1
  101. package/_cjs/clients/decorators/wallet.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/buildRequest.js +4 -2
  118. package/_cjs/utils/buildRequest.js.map +1 -1
  119. package/_cjs/utils/errors/getNodeError.js +1 -2
  120. package/_cjs/utils/errors/getNodeError.js.map +1 -1
  121. package/_cjs/utils/index.js +3 -1
  122. package/_cjs/utils/index.js.map +1 -1
  123. package/_cjs/utils/signature/serializeErc6492Signature.js +6 -2
  124. package/_cjs/utils/signature/serializeErc6492Signature.js.map +1 -1
  125. package/_cjs/utils/signature/serializeSignature.js +6 -2
  126. package/_cjs/utils/signature/serializeSignature.js.map +1 -1
  127. package/_cjs/utils/signature/verifyHash.js +10 -0
  128. package/_cjs/utils/signature/verifyHash.js.map +1 -0
  129. package/_esm/account-abstraction/accounts/createWebAuthnCredential.js +3 -0
  130. package/_esm/account-abstraction/accounts/createWebAuthnCredential.js.map +1 -0
  131. package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +709 -0
  132. package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -0
  133. package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js +718 -0
  134. package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -0
  135. package/_esm/account-abstraction/accounts/toSmartAccount.js +96 -0
  136. package/_esm/account-abstraction/accounts/toSmartAccount.js.map +1 -0
  137. package/_esm/account-abstraction/accounts/toWebAuthnAccount.js +26 -0
  138. package/_esm/account-abstraction/accounts/toWebAuthnAccount.js.map +1 -0
  139. package/_esm/account-abstraction/accounts/types.js +2 -0
  140. package/_esm/account-abstraction/accounts/types.js.map +1 -0
  141. package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js +61 -0
  142. package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -0
  143. package/_esm/account-abstraction/actions/bundler/getSupportedEntryPoints.js +25 -0
  144. package/_esm/account-abstraction/actions/bundler/getSupportedEntryPoints.js.map +1 -0
  145. package/_esm/account-abstraction/actions/bundler/getUserOperation.js +42 -0
  146. package/_esm/account-abstraction/actions/bundler/getUserOperation.js.map +1 -0
  147. package/_esm/account-abstraction/actions/bundler/getUserOperationReceipt.js +35 -0
  148. package/_esm/account-abstraction/actions/bundler/getUserOperationReceipt.js.map +1 -0
  149. package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js +323 -0
  150. package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -0
  151. package/_esm/account-abstraction/actions/bundler/sendUserOperation.js +60 -0
  152. package/_esm/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -0
  153. package/_esm/account-abstraction/actions/bundler/waitForUserOperationReceipt.js +68 -0
  154. package/_esm/account-abstraction/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  155. package/_esm/account-abstraction/actions/paymaster/getPaymasterData.js +56 -0
  156. package/_esm/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -0
  157. package/_esm/account-abstraction/actions/paymaster/getPaymasterStubData.js +56 -0
  158. package/_esm/account-abstraction/actions/paymaster/getPaymasterStubData.js.map +1 -0
  159. package/_esm/account-abstraction/clients/createBundlerClient.js +15 -0
  160. package/_esm/account-abstraction/clients/createBundlerClient.js.map +1 -0
  161. package/_esm/account-abstraction/clients/createPaymasterClient.js +14 -0
  162. package/_esm/account-abstraction/clients/createPaymasterClient.js.map +1 -0
  163. package/_esm/account-abstraction/clients/decorators/bundler.js +21 -0
  164. package/_esm/account-abstraction/clients/decorators/bundler.js.map +1 -0
  165. package/_esm/account-abstraction/clients/decorators/paymaster.js +9 -0
  166. package/_esm/account-abstraction/clients/decorators/paymaster.js.map +1 -0
  167. package/_esm/account-abstraction/constants/abis.js +1315 -0
  168. package/_esm/account-abstraction/constants/abis.js.map +1 -0
  169. package/_esm/account-abstraction/constants/address.js +3 -0
  170. package/_esm/account-abstraction/constants/address.js.map +1 -0
  171. package/_esm/account-abstraction/errors/bundler.js +774 -0
  172. package/_esm/account-abstraction/errors/bundler.js.map +1 -0
  173. package/_esm/account-abstraction/errors/userOperation.js +84 -0
  174. package/_esm/account-abstraction/errors/userOperation.js.map +1 -0
  175. package/_esm/account-abstraction/index.js +31 -0
  176. package/_esm/account-abstraction/index.js.map +1 -0
  177. package/_esm/account-abstraction/types/account.js +2 -0
  178. package/_esm/account-abstraction/types/account.js.map +1 -0
  179. package/_esm/account-abstraction/types/entryPointVersion.js +2 -0
  180. package/_esm/account-abstraction/types/entryPointVersion.js.map +1 -0
  181. package/_esm/account-abstraction/types/rpc.js +2 -0
  182. package/_esm/account-abstraction/types/rpc.js.map +1 -0
  183. package/_esm/account-abstraction/types/userOperation.js +2 -0
  184. package/_esm/account-abstraction/types/userOperation.js.map +1 -0
  185. package/_esm/account-abstraction/utils/errors/getBundlerError.js +183 -0
  186. package/_esm/account-abstraction/utils/errors/getBundlerError.js.map +1 -0
  187. package/_esm/account-abstraction/utils/errors/getUserOperationError.js +85 -0
  188. package/_esm/account-abstraction/utils/errors/getUserOperationError.js.map +1 -0
  189. package/_esm/account-abstraction/utils/formatters/userOperation.js +21 -0
  190. package/_esm/account-abstraction/utils/formatters/userOperation.js.map +1 -0
  191. package/_esm/account-abstraction/utils/formatters/userOperationGas.js +15 -0
  192. package/_esm/account-abstraction/utils/formatters/userOperationGas.js.map +1 -0
  193. package/_esm/account-abstraction/utils/formatters/userOperationReceipt.js +15 -0
  194. package/_esm/account-abstraction/utils/formatters/userOperationReceipt.js.map +1 -0
  195. package/_esm/account-abstraction/utils/formatters/userOperationRequest.js +40 -0
  196. package/_esm/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -0
  197. package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js +85 -0
  198. package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -0
  199. package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js +41 -0
  200. package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -0
  201. package/_esm/accounts/index.js +0 -1
  202. package/_esm/accounts/index.js.map +1 -1
  203. package/_esm/accounts/privateKeyToAccount.js +4 -0
  204. package/_esm/accounts/privateKeyToAccount.js.map +1 -1
  205. package/_esm/accounts/toAccount.js +2 -0
  206. package/_esm/accounts/toAccount.js.map +1 -1
  207. package/_esm/accounts/utils/parseAccount.js.map +1 -1
  208. package/_esm/accounts/utils/sign.js +9 -3
  209. package/_esm/accounts/utils/sign.js.map +1 -1
  210. package/_esm/accounts/utils/signMessage.js +1 -3
  211. package/_esm/accounts/utils/signMessage.js.map +1 -1
  212. package/_esm/accounts/utils/signTypedData.js +2 -3
  213. package/_esm/accounts/utils/signTypedData.js.map +1 -1
  214. package/_esm/actions/wallet/sendTransaction.js +37 -24
  215. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  216. package/_esm/actions/wallet/signMessage.js +1 -1
  217. package/_esm/actions/wallet/signMessage.js.map +1 -1
  218. package/_esm/actions/wallet/signTransaction.js +1 -2
  219. package/_esm/actions/wallet/signTransaction.js.map +1 -1
  220. package/_esm/actions/wallet/signTypedData.js +1 -1
  221. package/_esm/actions/wallet/signTypedData.js.map +1 -1
  222. package/_esm/chains/definitions/bobaSepolia.js +20 -0
  223. package/_esm/chains/definitions/bobaSepolia.js.map +1 -0
  224. package/_esm/chains/index.js +1 -0
  225. package/_esm/chains/index.js.map +1 -1
  226. package/_esm/clients/decorators/public.js.map +1 -1
  227. package/_esm/clients/decorators/wallet.js.map +1 -1
  228. package/_esm/constants/abis.js +0 -3
  229. package/_esm/constants/abis.js.map +1 -1
  230. package/_esm/constants/address.js +2 -0
  231. package/_esm/constants/address.js.map +1 -1
  232. package/_esm/errors/account.js +15 -1
  233. package/_esm/errors/account.js.map +1 -1
  234. package/_esm/errors/contract.js +1 -1
  235. package/_esm/errors/contract.js.map +1 -1
  236. package/_esm/errors/rpc.js +6 -6
  237. package/_esm/errors/rpc.js.map +1 -1
  238. package/_esm/errors/version.js +1 -1
  239. package/_esm/errors/version.js.map +1 -1
  240. package/_esm/index.js +1 -0
  241. package/_esm/index.js.map +1 -1
  242. package/_esm/types/eip1193.js.map +1 -1
  243. package/_esm/utils/buildRequest.js +4 -2
  244. package/_esm/utils/buildRequest.js.map +1 -1
  245. package/_esm/utils/errors/getNodeError.js +1 -2
  246. package/_esm/utils/errors/getNodeError.js.map +1 -1
  247. package/_esm/utils/index.js +1 -0
  248. package/_esm/utils/index.js.map +1 -1
  249. package/_esm/utils/signature/serializeErc6492Signature.js +6 -2
  250. package/_esm/utils/signature/serializeErc6492Signature.js.map +1 -1
  251. package/_esm/utils/signature/serializeSignature.js +6 -2
  252. package/_esm/utils/signature/serializeSignature.js.map +1 -1
  253. package/_esm/utils/signature/verifyHash.js +19 -0
  254. package/_esm/utils/signature/verifyHash.js.map +1 -0
  255. package/_types/account-abstraction/accounts/createWebAuthnCredential.d.ts +2 -0
  256. package/_types/account-abstraction/accounts/createWebAuthnCredential.d.ts.map +1 -0
  257. package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts +648 -0
  258. package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts.map +1 -0
  259. package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts +464 -0
  260. package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts.map +1 -0
  261. package/_types/account-abstraction/accounts/toSmartAccount.d.ts +14 -0
  262. package/_types/account-abstraction/accounts/toSmartAccount.d.ts.map +1 -0
  263. package/_types/account-abstraction/accounts/toWebAuthnAccount.d.ts +32 -0
  264. package/_types/account-abstraction/accounts/toWebAuthnAccount.d.ts.map +1 -0
  265. package/_types/account-abstraction/accounts/types.d.ts +174 -0
  266. package/_types/account-abstraction/accounts/types.d.ts.map +1 -0
  267. package/_types/account-abstraction/actions/bundler/estimateUserOperationGas.d.ts +62 -0
  268. package/_types/account-abstraction/actions/bundler/estimateUserOperationGas.d.ts.map +1 -0
  269. package/_types/account-abstraction/actions/bundler/getSupportedEntryPoints.d.ts +30 -0
  270. package/_types/account-abstraction/actions/bundler/getSupportedEntryPoints.d.ts.map +1 -0
  271. package/_types/account-abstraction/actions/bundler/getUserOperation.d.ts +57 -0
  272. package/_types/account-abstraction/actions/bundler/getUserOperation.d.ts.map +1 -0
  273. package/_types/account-abstraction/actions/bundler/getUserOperationReceipt.d.ts +39 -0
  274. package/_types/account-abstraction/actions/bundler/getUserOperationReceipt.d.ts.map +1 -0
  275. package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts +106 -0
  276. package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts.map +1 -0
  277. package/_types/account-abstraction/actions/bundler/sendUserOperation.d.ts +60 -0
  278. package/_types/account-abstraction/actions/bundler/sendUserOperation.d.ts.map +1 -0
  279. package/_types/account-abstraction/actions/bundler/waitForUserOperationReceipt.d.ts +52 -0
  280. package/_types/account-abstraction/actions/bundler/waitForUserOperationReceipt.d.ts.map +1 -0
  281. package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts +49 -0
  282. package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts.map +1 -0
  283. package/_types/account-abstraction/actions/paymaster/getPaymasterStubData.d.ts +55 -0
  284. package/_types/account-abstraction/actions/paymaster/getPaymasterStubData.d.ts.map +1 -0
  285. package/_types/account-abstraction/clients/createBundlerClient.d.ts +66 -0
  286. package/_types/account-abstraction/clients/createBundlerClient.d.ts.map +1 -0
  287. package/_types/account-abstraction/clients/createPaymasterClient.d.ts +27 -0
  288. package/_types/account-abstraction/clients/createPaymasterClient.d.ts.map +1 -0
  289. package/_types/account-abstraction/clients/decorators/bundler.d.ts +206 -0
  290. package/_types/account-abstraction/clients/decorators/bundler.d.ts.map +1 -0
  291. package/_types/account-abstraction/clients/decorators/paymaster.d.ts +60 -0
  292. package/_types/account-abstraction/clients/decorators/paymaster.d.ts.map +1 -0
  293. package/_types/account-abstraction/constants/abis.d.ts +1468 -0
  294. package/_types/account-abstraction/constants/abis.d.ts.map +1 -0
  295. package/_types/account-abstraction/constants/address.d.ts +3 -0
  296. package/_types/account-abstraction/constants/address.d.ts.map +1 -0
  297. package/_types/account-abstraction/errors/bundler.d.ts +391 -0
  298. package/_types/account-abstraction/errors/bundler.d.ts.map +1 -0
  299. package/_types/account-abstraction/errors/userOperation.d.ts +41 -0
  300. package/_types/account-abstraction/errors/userOperation.d.ts.map +1 -0
  301. package/_types/account-abstraction/index.d.ts +34 -0
  302. package/_types/account-abstraction/index.d.ts.map +1 -0
  303. package/_types/account-abstraction/types/account.d.ts +11 -0
  304. package/_types/account-abstraction/types/account.d.ts.map +1 -0
  305. package/_types/account-abstraction/types/entryPointVersion.d.ts +9 -0
  306. package/_types/account-abstraction/types/entryPointVersion.d.ts.map +1 -0
  307. package/_types/account-abstraction/types/rpc.d.ts +9 -0
  308. package/_types/account-abstraction/types/rpc.d.ts.map +1 -0
  309. package/_types/account-abstraction/types/userOperation.d.ts +157 -0
  310. package/_types/account-abstraction/types/userOperation.d.ts.map +1 -0
  311. package/_types/account-abstraction/utils/errors/getBundlerError.d.ts +8 -0
  312. package/_types/account-abstraction/utils/errors/getBundlerError.d.ts.map +1 -0
  313. package/_types/account-abstraction/utils/errors/getUserOperationError.d.ts +15 -0
  314. package/_types/account-abstraction/utils/errors/getUserOperationError.d.ts.map +1 -0
  315. package/_types/account-abstraction/utils/formatters/userOperation.d.ts +6 -0
  316. package/_types/account-abstraction/utils/formatters/userOperation.d.ts.map +1 -0
  317. package/_types/account-abstraction/utils/formatters/userOperationGas.d.ts +6 -0
  318. package/_types/account-abstraction/utils/formatters/userOperationGas.d.ts.map +1 -0
  319. package/_types/account-abstraction/utils/formatters/userOperationReceipt.d.ts +6 -0
  320. package/_types/account-abstraction/utils/formatters/userOperationReceipt.d.ts.map +1 -0
  321. package/_types/account-abstraction/utils/formatters/userOperationRequest.d.ts +7 -0
  322. package/_types/account-abstraction/utils/formatters/userOperationRequest.d.ts.map +1 -0
  323. package/_types/account-abstraction/utils/userOperation/getUserOperationHash.d.ts +13 -0
  324. package/_types/account-abstraction/utils/userOperation/getUserOperationHash.d.ts.map +1 -0
  325. package/_types/account-abstraction/utils/userOperation/toPackedUserOperation.d.ts +3 -0
  326. package/_types/account-abstraction/utils/userOperation/toPackedUserOperation.d.ts.map +1 -0
  327. package/_types/accounts/index.d.ts +0 -1
  328. package/_types/accounts/index.d.ts.map +1 -1
  329. package/_types/accounts/privateKeyToAccount.d.ts +2 -1
  330. package/_types/accounts/privateKeyToAccount.d.ts.map +1 -1
  331. package/_types/accounts/toAccount.d.ts.map +1 -1
  332. package/_types/accounts/types.d.ts +14 -7
  333. package/_types/accounts/types.d.ts.map +1 -1
  334. package/_types/accounts/utils/parseAccount.d.ts +1 -1
  335. package/_types/accounts/utils/parseAccount.d.ts.map +1 -1
  336. package/_types/accounts/utils/sign.d.ts +9 -6
  337. package/_types/accounts/utils/sign.d.ts.map +1 -1
  338. package/_types/accounts/utils/signMessage.d.ts +1 -2
  339. package/_types/accounts/utils/signMessage.d.ts.map +1 -1
  340. package/_types/accounts/utils/signTypedData.d.ts +1 -2
  341. package/_types/accounts/utils/signTypedData.d.ts.map +1 -1
  342. package/_types/actions/wallet/sendTransaction.d.ts +2 -1
  343. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  344. package/_types/actions/wallet/signMessage.d.ts.map +1 -1
  345. package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
  346. package/_types/chains/definitions/bobaSepolia.d.ts +35 -0
  347. package/_types/chains/definitions/bobaSepolia.d.ts.map +1 -0
  348. package/_types/chains/definitions/lisk.d.ts +2 -2
  349. package/_types/chains/definitions/playfiAlbireo.d.ts +2 -2
  350. package/_types/chains/definitions/zkSync.d.ts +2 -2
  351. package/_types/chains/definitions/zkSyncInMemoryNode.d.ts +2 -2
  352. package/_types/chains/definitions/zkSyncLocalNode.d.ts +2 -2
  353. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +2 -2
  354. package/_types/chains/definitions/zkSyncTestnet.d.ts +2 -2
  355. package/_types/chains/index.d.ts +1 -0
  356. package/_types/chains/index.d.ts.map +1 -1
  357. package/_types/clients/decorators/public.d.ts +2 -2
  358. package/_types/clients/decorators/public.d.ts.map +1 -1
  359. package/_types/clients/decorators/wallet.d.ts +1 -1
  360. package/_types/clients/decorators/wallet.d.ts.map +1 -1
  361. package/_types/constants/abis.d.ts +0 -3
  362. package/_types/constants/abis.d.ts.map +1 -1
  363. package/_types/constants/address.d.ts +2 -0
  364. package/_types/constants/address.d.ts.map +1 -1
  365. package/_types/errors/account.d.ts +11 -0
  366. package/_types/errors/account.d.ts.map +1 -1
  367. package/_types/errors/rpc.d.ts +9 -3
  368. package/_types/errors/rpc.d.ts.map +1 -1
  369. package/_types/errors/version.d.ts +1 -1
  370. package/_types/errors/version.d.ts.map +1 -1
  371. package/_types/index.d.ts +5 -3
  372. package/_types/index.d.ts.map +1 -1
  373. package/_types/types/eip1193.d.ts +239 -2
  374. package/_types/types/eip1193.d.ts.map +1 -1
  375. package/_types/types/multicall.d.ts +1 -1
  376. package/_types/types/multicall.d.ts.map +1 -1
  377. package/_types/types/utils.d.ts +2 -2
  378. package/_types/types/utils.d.ts.map +1 -1
  379. package/_types/utils/buildRequest.d.ts.map +1 -1
  380. package/_types/utils/errors/getNodeError.d.ts.map +1 -1
  381. package/_types/utils/formatters/transaction.d.ts +1 -1
  382. package/_types/utils/index.d.ts +1 -0
  383. package/_types/utils/index.d.ts.map +1 -1
  384. package/_types/utils/signature/hashTypedData.d.ts +2 -2
  385. package/_types/utils/signature/hashTypedData.d.ts.map +1 -1
  386. package/_types/utils/signature/serializeErc6492Signature.d.ts +7 -4
  387. package/_types/utils/signature/serializeErc6492Signature.d.ts.map +1 -1
  388. package/_types/utils/signature/serializeSignature.d.ts +8 -2
  389. package/_types/utils/signature/serializeSignature.d.ts.map +1 -1
  390. package/_types/utils/signature/verifyHash.d.ts +30 -0
  391. package/_types/utils/signature/verifyHash.d.ts.map +1 -0
  392. package/_types/zksync/chainConfig.d.ts +2 -2
  393. package/_types/zksync/formatters.d.ts +2 -2
  394. package/account-abstraction/accounts/createWebAuthnCredential.ts +7 -0
  395. package/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts +817 -0
  396. package/account-abstraction/accounts/implementations/toSoladySmartAccount.ts +794 -0
  397. package/account-abstraction/accounts/toSmartAccount.ts +126 -0
  398. package/account-abstraction/accounts/toWebAuthnAccount.ts +56 -0
  399. package/account-abstraction/accounts/types.ts +208 -0
  400. package/account-abstraction/actions/bundler/estimateUserOperationGas.ts +170 -0
  401. package/account-abstraction/actions/bundler/getSupportedEntryPoints.ts +33 -0
  402. package/account-abstraction/actions/bundler/getUserOperation.ts +85 -0
  403. package/account-abstraction/actions/bundler/getUserOperationReceipt.ts +64 -0
  404. package/account-abstraction/actions/bundler/prepareUserOperation.ts +637 -0
  405. package/account-abstraction/actions/bundler/sendUserOperation.ts +149 -0
  406. package/account-abstraction/actions/bundler/waitForUserOperationReceipt.ts +139 -0
  407. package/account-abstraction/actions/paymaster/getPaymasterData.ts +135 -0
  408. package/account-abstraction/actions/paymaster/getPaymasterStubData.ts +138 -0
  409. package/account-abstraction/clients/createBundlerClient.ts +155 -0
  410. package/account-abstraction/clients/createPaymasterClient.ts +78 -0
  411. package/account-abstraction/clients/decorators/bundler.ts +296 -0
  412. package/account-abstraction/clients/decorators/paymaster.ts +81 -0
  413. package/account-abstraction/constants/abis.ts +1404 -0
  414. package/account-abstraction/constants/address.ts +4 -0
  415. package/account-abstraction/errors/bundler.ts +781 -0
  416. package/account-abstraction/errors/userOperation.ts +111 -0
  417. package/account-abstraction/index.ts +228 -0
  418. package/account-abstraction/package.json +6 -0
  419. package/account-abstraction/types/account.ts +21 -0
  420. package/account-abstraction/types/entryPointVersion.ts +24 -0
  421. package/account-abstraction/types/rpc.ts +29 -0
  422. package/account-abstraction/types/userOperation.ts +262 -0
  423. package/account-abstraction/utils/errors/getBundlerError.ts +309 -0
  424. package/account-abstraction/utils/errors/getUserOperationError.ts +153 -0
  425. package/account-abstraction/utils/formatters/userOperation.ts +31 -0
  426. package/account-abstraction/utils/formatters/userOperationGas.ts +26 -0
  427. package/account-abstraction/utils/formatters/userOperationReceipt.ts +24 -0
  428. package/account-abstraction/utils/formatters/userOperationRequest.ts +53 -0
  429. package/account-abstraction/utils/userOperation/getUserOperationHash.ts +138 -0
  430. package/account-abstraction/utils/userOperation/toPackedUserOperation.ts +64 -0
  431. package/accounts/index.ts +1 -1
  432. package/accounts/privateKeyToAccount.ts +5 -0
  433. package/accounts/toAccount.ts +3 -0
  434. package/accounts/types.ts +34 -12
  435. package/accounts/utils/parseAccount.ts +6 -3
  436. package/accounts/utils/sign.ts +24 -8
  437. package/accounts/utils/signMessage.ts +1 -7
  438. package/accounts/utils/signTypedData.ts +2 -7
  439. package/actions/wallet/sendTransaction.ts +48 -27
  440. package/actions/wallet/signMessage.ts +2 -1
  441. package/actions/wallet/signTransaction.ts +1 -2
  442. package/actions/wallet/signTypedData.ts +1 -1
  443. package/chains/definitions/bobaSepolia.ts +20 -0
  444. package/chains/index.ts +1 -0
  445. package/clients/decorators/public.ts +2 -3
  446. package/clients/decorators/wallet.ts +1 -2
  447. package/constants/abis.ts +0 -3
  448. package/constants/address.ts +4 -0
  449. package/errors/account.ts +22 -1
  450. package/errors/contract.ts +1 -1
  451. package/errors/rpc.ts +6 -6
  452. package/errors/version.ts +1 -1
  453. package/index.ts +20 -3
  454. package/package.json +7 -1
  455. package/types/eip1193.ts +314 -2
  456. package/types/multicall.ts +1 -1
  457. package/types/utils.ts +6 -5
  458. package/utils/buildRequest.ts +4 -2
  459. package/utils/errors/getNodeError.ts +1 -2
  460. package/utils/index.ts +6 -0
  461. package/utils/signature/hashTypedData.ts +6 -6
  462. package/utils/signature/serializeErc6492Signature.ts +17 -8
  463. package/utils/signature/serializeSignature.ts +24 -4
  464. package/utils/signature/verifyHash.ts +54 -0
@@ -0,0 +1,155 @@
1
+ import type { EstimateFeesPerGasReturnType } from '../../actions/public/estimateFeesPerGas.js'
2
+ import {
3
+ type Client,
4
+ type ClientConfig,
5
+ type CreateClientErrorType,
6
+ createClient,
7
+ } from '../../clients/createClient.js'
8
+ import type { Transport } from '../../clients/transports/createTransport.js'
9
+ import type { ErrorType } from '../../errors/utils.js'
10
+ import type { Chain } from '../../types/chain.js'
11
+ import type { RpcSchema } from '../../types/eip1193.js'
12
+ import type { BundlerRpcSchema } from '../../types/eip1193.js'
13
+ import type { Prettify } from '../../types/utils.js'
14
+ import type { SmartAccount } from '../accounts/types.js'
15
+ import type { UserOperationRequest } from '../types/userOperation.js'
16
+ import { type BundlerActions, bundlerActions } from './decorators/bundler.js'
17
+ import type { PaymasterActions } from './decorators/paymaster.js'
18
+
19
+ export type BundlerClientConfig<
20
+ transport extends Transport = Transport,
21
+ chain extends Chain | undefined = Chain | undefined,
22
+ account extends SmartAccount | undefined = SmartAccount | undefined,
23
+ client extends Client | undefined = Client | undefined,
24
+ rpcSchema extends RpcSchema | undefined = undefined,
25
+ > = Prettify<
26
+ Pick<
27
+ ClientConfig<transport, chain, account, rpcSchema>,
28
+ | 'account'
29
+ | 'cacheTime'
30
+ | 'chain'
31
+ | 'key'
32
+ | 'name'
33
+ | 'pollingInterval'
34
+ | 'rpcSchema'
35
+ | 'transport'
36
+ >
37
+ > & {
38
+ /** Client that points to an Execution RPC URL. */
39
+ client?: client | Client | undefined
40
+ /** Paymaster configuration. */
41
+ paymaster?:
42
+ | true
43
+ | {
44
+ /** Retrieves paymaster-related User Operation properties to be used for sending the User Operation. */
45
+ getPaymasterData?: PaymasterActions['getPaymasterData'] | undefined
46
+ /** Retrieves paymaster-related User Operation properties to be used for gas estimation. */
47
+ getPaymasterStubData?:
48
+ | PaymasterActions['getPaymasterStubData']
49
+ | undefined
50
+ }
51
+ | undefined
52
+ /** Paymaster context to pass to `getPaymasterData` and `getPaymasterStubData` calls. */
53
+ paymasterContext?: unknown
54
+ /** User Operation configuration. */
55
+ userOperation?:
56
+ | {
57
+ /** Prepares fee properties for the User Operation request. */
58
+ estimateFeesPerGas?:
59
+ | ((parameters: {
60
+ account: account | SmartAccount
61
+ bundlerClient: Client
62
+ userOperation: UserOperationRequest
63
+ }) => Promise<EstimateFeesPerGasReturnType<'eip1559'>>)
64
+ | undefined
65
+ }
66
+ | undefined
67
+ }
68
+
69
+ export type BundlerClient<
70
+ transport extends Transport = Transport,
71
+ chain extends Chain | undefined = Chain | undefined,
72
+ account extends SmartAccount | undefined = SmartAccount | undefined,
73
+ client extends Client | undefined = Client | undefined,
74
+ rpcSchema extends RpcSchema | undefined = undefined,
75
+ > = Prettify<
76
+ Client<
77
+ transport,
78
+ chain extends Chain
79
+ ? chain
80
+ : client extends Client<any, infer chain>
81
+ ? chain
82
+ : undefined,
83
+ account,
84
+ rpcSchema extends RpcSchema
85
+ ? [...BundlerRpcSchema, ...rpcSchema]
86
+ : BundlerRpcSchema,
87
+ BundlerActions<account>
88
+ >
89
+ > & {
90
+ client: client
91
+ paymaster: BundlerClientConfig['paymaster'] | undefined
92
+ paymasterContext: BundlerClientConfig['paymasterContext'] | undefined
93
+ userOperation: BundlerClientConfig['userOperation'] | undefined
94
+ }
95
+
96
+ export type CreateBundlerClientErrorType = CreateClientErrorType | ErrorType
97
+
98
+ /**
99
+ * Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).
100
+ *
101
+ * - Docs: https://viem.sh/account-abstraction/clients/bundler
102
+ *
103
+ * @param config - {@link BundlerClientConfig}
104
+ * @returns A Bundler Client. {@link BundlerClient}
105
+ *
106
+ * @example
107
+ * import { createPublicClient, http } from 'viem'
108
+ * import { createBundlerClient } from 'viem/account-abstraction'
109
+ * import { mainnet } from 'viem/chains'
110
+ *
111
+ * const client = createPublicClient({
112
+ * chain: mainnet,
113
+ * transport: http(),
114
+ * })
115
+ *
116
+ * const bundlerClient = createBundlerClient({
117
+ * client,
118
+ * transport: http('https://public.pimlico.io/v2/1/rpc'),
119
+ * })
120
+ */
121
+ export function createBundlerClient<
122
+ transport extends Transport,
123
+ chain extends Chain | undefined = undefined,
124
+ account extends SmartAccount | undefined = undefined,
125
+ client extends Client | undefined = undefined,
126
+ rpcSchema extends RpcSchema | undefined = undefined,
127
+ >(
128
+ parameters: BundlerClientConfig<transport, chain, account, client, rpcSchema>,
129
+ ): BundlerClient<transport, chain, account, client, rpcSchema>
130
+
131
+ export function createBundlerClient(
132
+ parameters: BundlerClientConfig,
133
+ ): BundlerClient {
134
+ const {
135
+ client: client_,
136
+ key = 'bundler',
137
+ name = 'Bundler Client',
138
+ paymaster,
139
+ paymasterContext,
140
+ transport,
141
+ userOperation,
142
+ } = parameters
143
+ const client = Object.assign(
144
+ createClient({
145
+ ...parameters,
146
+ chain: parameters.chain ?? client_?.chain,
147
+ key,
148
+ name,
149
+ transport,
150
+ type: 'bundlerClient',
151
+ }),
152
+ { client: client_, paymaster, paymasterContext, userOperation },
153
+ )
154
+ return client.extend(bundlerActions) as any
155
+ }
@@ -0,0 +1,78 @@
1
+ import {
2
+ type Client,
3
+ type ClientConfig,
4
+ type CreateClientErrorType,
5
+ createClient,
6
+ } from '../../clients/createClient.js'
7
+ import type { Transport } from '../../clients/transports/createTransport.js'
8
+ import type { ErrorType } from '../../errors/utils.js'
9
+ import type { PaymasterRpcSchema, RpcSchema } from '../../types/eip1193.js'
10
+ import type { Prettify } from '../../types/utils.js'
11
+ import {
12
+ type PaymasterActions,
13
+ paymasterActions,
14
+ } from './decorators/paymaster.js'
15
+
16
+ export type PaymasterClientConfig<
17
+ transport extends Transport = Transport,
18
+ rpcSchema extends RpcSchema | undefined = undefined,
19
+ > = Prettify<
20
+ Pick<
21
+ ClientConfig<transport, undefined, undefined, rpcSchema>,
22
+ 'cacheTime' | 'key' | 'name' | 'pollingInterval' | 'rpcSchema' | 'transport'
23
+ >
24
+ >
25
+
26
+ export type PaymasterClient<
27
+ transport extends Transport = Transport,
28
+ rpcSchema extends RpcSchema | undefined = undefined,
29
+ > = Prettify<
30
+ Client<
31
+ transport,
32
+ undefined,
33
+ undefined,
34
+ rpcSchema extends RpcSchema
35
+ ? [...PaymasterRpcSchema, ...rpcSchema]
36
+ : PaymasterRpcSchema,
37
+ PaymasterActions
38
+ >
39
+ >
40
+
41
+ export type CreatePaymasterClientErrorType = CreateClientErrorType | ErrorType
42
+
43
+ /**
44
+ * Creates a Paymaster Client.
45
+ *
46
+ * - Docs: https://viem.sh/account-abstraction/clients/paymaster
47
+ *
48
+ * @param config - {@link PaymasterClientConfig}
49
+ * @returns A Paymaster Client. {@link PaymasterClient}
50
+ *
51
+ * @example
52
+ * import { http } from 'viem'
53
+ * import { createPaymasterClient } from 'viem/account-abstraction'
54
+ *
55
+ * const paymasterClient = createPaymasterClient({
56
+ * transport: http('https://...'),
57
+ * })
58
+ */
59
+ export function createPaymasterClient<
60
+ transport extends Transport,
61
+ rpcSchema extends RpcSchema | undefined = undefined,
62
+ >(
63
+ parameters: PaymasterClientConfig<transport, rpcSchema>,
64
+ ): PaymasterClient<transport, rpcSchema>
65
+
66
+ export function createPaymasterClient(
67
+ parameters: PaymasterClientConfig,
68
+ ): PaymasterClient {
69
+ const { key = 'bundler', name = 'Bundler Client', transport } = parameters
70
+ const client = createClient({
71
+ ...parameters,
72
+ key,
73
+ name,
74
+ transport,
75
+ type: 'PaymasterClient',
76
+ })
77
+ return client.extend(paymasterActions)
78
+ }
@@ -0,0 +1,296 @@
1
+ import {
2
+ type GetChainIdReturnType,
3
+ getChainId,
4
+ } from '../../../actions/public/getChainId.js'
5
+ import type { Client } from '../../../clients/createClient.js'
6
+ import type { Transport } from '../../../clients/transports/createTransport.js'
7
+ import type { Chain } from '../../../types/chain.js'
8
+ import type { SmartAccount } from '../../accounts/types.js'
9
+ import {
10
+ type EstimateUserOperationGasParameters,
11
+ type EstimateUserOperationGasReturnType,
12
+ estimateUserOperationGas,
13
+ } from '../../actions/bundler/estimateUserOperationGas.js'
14
+ import {
15
+ type GetSupportedEntryPointsReturnType,
16
+ getSupportedEntryPoints,
17
+ } from '../../actions/bundler/getSupportedEntryPoints.js'
18
+ import {
19
+ type GetUserOperationParameters,
20
+ type GetUserOperationReturnType,
21
+ getUserOperation,
22
+ } from '../../actions/bundler/getUserOperation.js'
23
+ import {
24
+ type GetUserOperationReceiptParameters,
25
+ type GetUserOperationReceiptReturnType,
26
+ getUserOperationReceipt,
27
+ } from '../../actions/bundler/getUserOperationReceipt.js'
28
+ import {
29
+ type PrepareUserOperationParameters,
30
+ type PrepareUserOperationRequest,
31
+ type PrepareUserOperationReturnType,
32
+ prepareUserOperation,
33
+ } from '../../actions/bundler/prepareUserOperation.js'
34
+ import {
35
+ type SendUserOperationParameters,
36
+ type SendUserOperationReturnType,
37
+ sendUserOperation,
38
+ } from '../../actions/bundler/sendUserOperation.js'
39
+ import {
40
+ type WaitForUserOperationReceiptParameters,
41
+ type WaitForUserOperationReceiptReturnType,
42
+ waitForUserOperationReceipt,
43
+ } from '../../actions/bundler/waitForUserOperationReceipt.js'
44
+
45
+ export type BundlerActions<
46
+ account extends SmartAccount | undefined = SmartAccount | undefined,
47
+ > = {
48
+ /**
49
+ * Returns an estimate of gas values necessary to execute the User Operation.
50
+ *
51
+ * - Docs: https://viem.sh/actions/bundler/estimateUserOperationGas
52
+ *
53
+ * @param client - Client to use
54
+ * @param parameters - {@link EstimateUserOperationGasParameters}
55
+ * @returns The gas estimate (in wei). {@link EstimateUserOperationGasReturnType}
56
+ *
57
+ * @example
58
+ * import { createBundlerClient, http, parseEther } from 'viem'
59
+ * import { mainnet } from 'viem/chains'
60
+ * import { toSmartAccount } from 'viem/accounts'
61
+ *
62
+ * const account = await toSmartAccount({ ... })
63
+ *
64
+ * const bundlerClient = createBundlerClient({
65
+ * chain: mainnet,
66
+ * transport: http(),
67
+ * })
68
+ *
69
+ * const values = await bundlerClient.estimateUserOperationGas({
70
+ * account,
71
+ * calls: [{ to: '0x...', value: parseEther('1') }],
72
+ * })
73
+ */
74
+ estimateUserOperationGas: <
75
+ const calls extends readonly unknown[],
76
+ accountOverride extends SmartAccount | undefined = undefined,
77
+ >(
78
+ parameters: EstimateUserOperationGasParameters<
79
+ account,
80
+ accountOverride,
81
+ calls
82
+ >,
83
+ ) => Promise<EstimateUserOperationGasReturnType<account, accountOverride>>
84
+ /**
85
+ * Returns the chain ID associated with the bundler.
86
+ *
87
+ * - Docs: https://viem.sh/docs/actions/public/getChainId
88
+ * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)
89
+ *
90
+ * @returns The current chain ID. {@link GetChainIdReturnType}
91
+ *
92
+ * @example
93
+ * import { http } from 'viem'
94
+ * import { createBundlerClient, mainnet } from 'viem/chains'
95
+ *
96
+ * const client = createPublicClient({
97
+ * chain: mainnet,
98
+ * transport: http(),
99
+ * })
100
+ * const chainId = await client.getChainId()
101
+ * // 1
102
+ */
103
+ getChainId: () => Promise<GetChainIdReturnType>
104
+ /**
105
+ * Returns the EntryPoints that the bundler supports.
106
+ *
107
+ * - Docs: https://viem.sh/actions/bundler/getSupportedEntryPoints
108
+ *
109
+ * @param client - Client to use
110
+ * @param parameters - {@link GetSupportedEntryPointsParameters}
111
+ * @returns Supported Entry Points. {@link GetSupportedEntryPointsReturnType}
112
+ *
113
+ * @example
114
+ * import { createBundlerClient, http, parseEther } from 'viem'
115
+ * import { mainnet } from 'viem/chains'
116
+ *
117
+ * const bundlerClient = createBundlerClient({
118
+ * chain: mainnet,
119
+ * transport: http(),
120
+ * })
121
+ *
122
+ * const addresses = await bundlerClient.getSupportedEntryPoints()
123
+ */
124
+ getSupportedEntryPoints: () => Promise<GetSupportedEntryPointsReturnType>
125
+ /**
126
+ * Returns the information about a User Operation given a hash.
127
+ *
128
+ * - Docs: https://viem.sh/docs/actions/bundler/getUserOperation
129
+ *
130
+ * @param client - Client to use
131
+ * @param parameters - {@link GetUserOperationParameters}
132
+ * @returns The receipt. {@link GetUserOperationReturnType}
133
+ *
134
+ * @example
135
+ * import { createBundlerClient, http } from 'viem'
136
+ * import { mainnet } from 'viem/chains'
137
+ *
138
+ * const client = createBundlerClient({
139
+ * chain: mainnet,
140
+ * transport: http(),
141
+ * })
142
+ *
143
+ * const receipt = await client.getUserOperation({
144
+ * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
145
+ * })
146
+ */
147
+ getUserOperation: (
148
+ parameters: GetUserOperationParameters,
149
+ ) => Promise<GetUserOperationReturnType>
150
+ /**
151
+ * Returns the User Operation Receipt given a User Operation hash.
152
+ *
153
+ * - Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt
154
+ *
155
+ * @param client - Client to use
156
+ * @param parameters - {@link GetUserOperationReceiptParameters}
157
+ * @returns The receipt. {@link GetUserOperationReceiptReturnType}
158
+ *
159
+ * @example
160
+ * import { createBundlerClient, http } from 'viem'
161
+ * import { mainnet } from 'viem/chains'
162
+ *
163
+ * const client = createBundlerClient({
164
+ * chain: mainnet,
165
+ * transport: http(),
166
+ * })
167
+ *
168
+ * const receipt = await client.getUserOperationReceipt({
169
+ * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
170
+ * })
171
+ */
172
+ getUserOperationReceipt: (
173
+ parameters: GetUserOperationReceiptParameters,
174
+ ) => Promise<GetUserOperationReceiptReturnType>
175
+ /**
176
+ * Prepares a User Operation and fills in missing properties.
177
+ *
178
+ * - Docs: https://viem.sh/actions/bundler/prepareUserOperation
179
+ *
180
+ * @param args - {@link PrepareUserOperationParameters}
181
+ * @returns The User Operation. {@link PrepareUserOperationReturnType}
182
+ *
183
+ * @example
184
+ * import { createBundlerClient, http } from 'viem'
185
+ * import { mainnet } from 'viem/chains'
186
+ * import { toSmartAccount } from 'viem/accounts'
187
+ *
188
+ * const account = await toSmartAccount({ ... })
189
+ *
190
+ * const client = createBundlerClient({
191
+ * chain: mainnet,
192
+ * transport: http(),
193
+ * })
194
+ *
195
+ * const request = await client.prepareUserOperation({
196
+ * account,
197
+ * calls: [{ to: '0x...', value: parseEther('1') }],
198
+ * })
199
+ */
200
+ prepareUserOperation: <
201
+ const calls extends readonly unknown[],
202
+ const request extends PrepareUserOperationRequest<
203
+ account,
204
+ accountOverride,
205
+ calls
206
+ >,
207
+ accountOverride extends SmartAccount | undefined = undefined,
208
+ >(
209
+ parameters: PrepareUserOperationParameters<
210
+ account,
211
+ accountOverride,
212
+ calls,
213
+ request
214
+ >,
215
+ ) => Promise<
216
+ PrepareUserOperationReturnType<account, accountOverride, calls, request>
217
+ >
218
+ /**
219
+ * Broadcasts a User Operation to the Bundler.
220
+ *
221
+ * - Docs: https://viem.sh/actions/bundler/sendUserOperation
222
+ *
223
+ * @param client - Client to use
224
+ * @param parameters - {@link SendUserOperationParameters}
225
+ * @returns The User Operation hash. {@link SendUserOperationReturnType}
226
+ *
227
+ * @example
228
+ * import { createBundlerClient, http, parseEther } from 'viem'
229
+ * import { mainnet } from 'viem/chains'
230
+ * import { toSmartAccount } from 'viem/accounts'
231
+ *
232
+ * const account = toSmartAccount({ ... })
233
+ *
234
+ * const bundlerClient = createBundlerClient({
235
+ * chain: mainnet,
236
+ * transport: http(),
237
+ * })
238
+ *
239
+ * const values = await bundlerClient.sendUserOperation({
240
+ * account,
241
+ * calls: [{ to: '0x...', value: parseEther('1') }],
242
+ * })
243
+ */
244
+ sendUserOperation: <
245
+ const calls extends readonly unknown[],
246
+ accountOverride extends SmartAccount | undefined = undefined,
247
+ >(
248
+ parameters: SendUserOperationParameters<account, accountOverride, calls>,
249
+ ) => Promise<SendUserOperationReturnType>
250
+ /**
251
+ * Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.
252
+ *
253
+ * - Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt
254
+ *
255
+ * @param client - Client to use
256
+ * @param parameters - {@link WaitForUserOperationReceiptParameters}
257
+ * @returns The receipt. {@link WaitForUserOperationReceiptReturnType}
258
+ *
259
+ * @example
260
+ * import { createBundlerClient, http } from 'viem'
261
+ * import { mainnet } from 'viem/chains'
262
+ *
263
+ * const client = createBundlerClient({
264
+ * chain: mainnet,
265
+ * transport: http(),
266
+ * })
267
+ *
268
+ * const receipt = await client.waitForUserOperationReceipt({
269
+ * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
270
+ * })
271
+ */
272
+ waitForUserOperationReceipt: (
273
+ parameters: WaitForUserOperationReceiptParameters,
274
+ ) => Promise<WaitForUserOperationReceiptReturnType>
275
+ }
276
+
277
+ export function bundlerActions<
278
+ transport extends Transport = Transport,
279
+ chain extends Chain | undefined = Chain | undefined,
280
+ account extends SmartAccount | undefined = SmartAccount | undefined,
281
+ >(client: Client<transport, chain, account>): BundlerActions<account> {
282
+ return {
283
+ estimateUserOperationGas: (parameters) =>
284
+ estimateUserOperationGas(client, parameters),
285
+ getChainId: () => getChainId(client),
286
+ getSupportedEntryPoints: () => getSupportedEntryPoints(client),
287
+ getUserOperation: (parameters) => getUserOperation(client, parameters),
288
+ getUserOperationReceipt: (parameters) =>
289
+ getUserOperationReceipt(client, parameters),
290
+ prepareUserOperation: (parameters) =>
291
+ prepareUserOperation(client, parameters),
292
+ sendUserOperation: (parameters) => sendUserOperation(client, parameters),
293
+ waitForUserOperationReceipt: (parameters) =>
294
+ waitForUserOperationReceipt(client, parameters),
295
+ }
296
+ }
@@ -0,0 +1,81 @@
1
+ import type { Client } from '../../../clients/createClient.js'
2
+ import type { Transport } from '../../../clients/transports/createTransport.js'
3
+ import {
4
+ type GetPaymasterDataParameters,
5
+ type GetPaymasterDataReturnType,
6
+ getPaymasterData,
7
+ } from '../../actions/paymaster/getPaymasterData.js'
8
+ import {
9
+ type GetPaymasterStubDataParameters,
10
+ type GetPaymasterStubDataReturnType,
11
+ getPaymasterStubData,
12
+ } from '../../actions/paymaster/getPaymasterStubData.js'
13
+
14
+ export type PaymasterActions = {
15
+ /**
16
+ * Retrieves paymaster-related User Operation properties to be used for sending the User Operation.
17
+ *
18
+ * - Docs: https://viem.sh/account-abstraction/actions/paymaster/getPaymasterData
19
+ *
20
+ * @param client - Client to use
21
+ * @param parameters - {@link GetPaymasterDataParameters}
22
+ * @returns Paymaster-related User Operation properties. {@link GetPaymasterDataReturnType}
23
+ *
24
+ * @example
25
+ * import { http } from 'viem'
26
+ * import { createPaymasterClient } from 'viem/account-abstraction'
27
+ *
28
+ * const paymasterClient = createPaymasterClient({
29
+ * transport: http('https://...'),
30
+ * })
31
+ *
32
+ * const userOperation = { ... }
33
+ *
34
+ * const values = await paymasterClient.getPaymasterData({
35
+ * chainId: 1,
36
+ * entryPointAddress: '0x...',
37
+ * ...userOperation,
38
+ * })
39
+ */
40
+ getPaymasterData: (
41
+ parameters: GetPaymasterDataParameters,
42
+ ) => Promise<GetPaymasterDataReturnType>
43
+ /**
44
+ * Retrieves paymaster-related User Operation properties to be used for gas estimation.
45
+ *
46
+ * - Docs: https://viem.sh/account-abstraction/actions/paymaster/getPaymasterStubData
47
+ *
48
+ * @param client - Client to use
49
+ * @param parameters - {@link GetPaymasterStubDataParameters}
50
+ * @returns Paymaster-related User Operation properties. {@link GetPaymasterStubDataReturnType}
51
+ *
52
+ * @example
53
+ * import { http } from 'viem'
54
+ * import { createPaymasterClient } from 'viem/account-abstraction'
55
+ *
56
+ * const paymasterClient = createPaymasterClient({
57
+ * transport: http('https://...'),
58
+ * })
59
+ *
60
+ * const userOperation = { ... }
61
+ *
62
+ * const values = await paymasterClient.getPaymasterStubData({
63
+ * chainId: 1,
64
+ * entryPointAddress: '0x...',
65
+ * ...userOperation,
66
+ * })
67
+ */
68
+ getPaymasterStubData: (
69
+ parameters: GetPaymasterStubDataParameters,
70
+ ) => Promise<GetPaymasterStubDataReturnType>
71
+ }
72
+
73
+ export function paymasterActions<transport extends Transport = Transport>(
74
+ client: Client<transport>,
75
+ ): PaymasterActions {
76
+ return {
77
+ getPaymasterData: (parameters) => getPaymasterData(client, parameters),
78
+ getPaymasterStubData: (parameters) =>
79
+ getPaymasterStubData(client, parameters),
80
+ }
81
+ }