viem 1.1.8 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/actions/package.json +5 -0
  2. package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
  3. package/dist/cjs/actions/ens/getEnsAvatar.js.map +1 -1
  4. package/dist/cjs/actions/ens/getEnsName.js.map +1 -1
  5. package/dist/cjs/actions/ens/getEnsResolver.js.map +1 -1
  6. package/dist/cjs/actions/ens/getEnsText.js.map +1 -1
  7. package/dist/cjs/actions/index.js +155 -0
  8. package/dist/cjs/actions/index.js.map +1 -0
  9. package/dist/cjs/actions/public/call.js.map +1 -1
  10. package/dist/cjs/actions/public/createBlockFilter.js.map +1 -1
  11. package/dist/cjs/actions/public/createContractEventFilter.js.map +1 -1
  12. package/dist/cjs/actions/public/createEventFilter.js.map +1 -1
  13. package/dist/cjs/actions/public/createPendingTransactionFilter.js.map +1 -1
  14. package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
  15. package/dist/cjs/actions/public/estimateGas.js.map +1 -1
  16. package/dist/cjs/actions/public/getBalance.js.map +1 -1
  17. package/dist/cjs/actions/public/getBlock.js.map +1 -1
  18. package/dist/cjs/actions/public/getBlockNumber.js.map +1 -1
  19. package/dist/cjs/actions/public/getBlockTransactionCount.js.map +1 -1
  20. package/dist/cjs/actions/public/getBytecode.js.map +1 -1
  21. package/dist/cjs/actions/public/getChainId.js.map +1 -1
  22. package/dist/cjs/actions/public/getFeeHistory.js.map +1 -1
  23. package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
  24. package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
  25. package/dist/cjs/actions/public/getGasPrice.js.map +1 -1
  26. package/dist/cjs/actions/public/getLogs.js.map +1 -1
  27. package/dist/cjs/actions/public/getStorageAt.js.map +1 -1
  28. package/dist/cjs/actions/public/getTransaction.js.map +1 -1
  29. package/dist/cjs/actions/public/getTransactionConfirmations.js.map +1 -1
  30. package/dist/cjs/actions/public/getTransactionCount.js.map +1 -1
  31. package/dist/cjs/actions/public/getTransactionReceipt.js.map +1 -1
  32. package/dist/cjs/actions/public/multicall.js.map +1 -1
  33. package/dist/cjs/actions/public/readContract.js.map +1 -1
  34. package/dist/cjs/actions/public/simulateContract.js.map +1 -1
  35. package/dist/cjs/actions/public/uninstallFilter.js.map +1 -1
  36. package/dist/cjs/actions/public/verifyHash.js.map +1 -1
  37. package/dist/cjs/actions/public/verifyMessage.js.map +1 -1
  38. package/dist/cjs/actions/public/verifyTypedData.js +2 -2
  39. package/dist/cjs/actions/public/verifyTypedData.js.map +1 -1
  40. package/dist/cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
  41. package/dist/cjs/actions/public/watchBlockNumber.js.map +1 -1
  42. package/dist/cjs/actions/public/watchBlocks.js.map +1 -1
  43. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  44. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  45. package/dist/cjs/actions/public/watchPendingTransactions.js.map +1 -1
  46. package/dist/cjs/actions/test/dropTransaction.js.map +1 -1
  47. package/dist/cjs/actions/test/getAutomine.js.map +1 -1
  48. package/dist/cjs/actions/test/getTxpoolContent.js.map +1 -1
  49. package/dist/cjs/actions/test/getTxpoolStatus.js.map +1 -1
  50. package/dist/cjs/actions/test/impersonateAccount.js.map +1 -1
  51. package/dist/cjs/actions/test/increaseTime.js.map +1 -1
  52. package/dist/cjs/actions/test/inspectTxpool.js.map +1 -1
  53. package/dist/cjs/actions/test/mine.js.map +1 -1
  54. package/dist/cjs/actions/test/removeBlockTimestampInterval.js.map +1 -1
  55. package/dist/cjs/actions/test/reset.js.map +1 -1
  56. package/dist/cjs/actions/test/revert.js.map +1 -1
  57. package/dist/cjs/actions/test/sendUnsignedTransaction.js.map +1 -1
  58. package/dist/cjs/actions/test/setAutomine.js.map +1 -1
  59. package/dist/cjs/actions/test/setBalance.js.map +1 -1
  60. package/dist/cjs/actions/test/setBlockGasLimit.js.map +1 -1
  61. package/dist/cjs/actions/test/setBlockTimestampInterval.js.map +1 -1
  62. package/dist/cjs/actions/test/setCode.js.map +1 -1
  63. package/dist/cjs/actions/test/setCoinbase.js.map +1 -1
  64. package/dist/cjs/actions/test/setIntervalMining.js.map +1 -1
  65. package/dist/cjs/actions/test/setLoggingEnabled.js.map +1 -1
  66. package/dist/cjs/actions/test/setMinGasPrice.js.map +1 -1
  67. package/dist/cjs/actions/test/setNextBlockBaseFeePerGas.js.map +1 -1
  68. package/dist/cjs/actions/test/setNextBlockTimestamp.js.map +1 -1
  69. package/dist/cjs/actions/test/setNonce.js.map +1 -1
  70. package/dist/cjs/actions/test/setRpcUrl.js.map +1 -1
  71. package/dist/cjs/actions/test/setStorageAt.js.map +1 -1
  72. package/dist/cjs/actions/test/snapshot.js.map +1 -1
  73. package/dist/cjs/actions/test/stopImpersonatingAccount.js.map +1 -1
  74. package/dist/cjs/actions/wallet/addChain.js.map +1 -1
  75. package/dist/cjs/actions/wallet/deployContract.js.map +1 -1
  76. package/dist/cjs/actions/wallet/getAddresses.js.map +1 -1
  77. package/dist/cjs/actions/wallet/getPermissions.js.map +1 -1
  78. package/dist/cjs/actions/wallet/requestAddresses.js.map +1 -1
  79. package/dist/cjs/actions/wallet/requestPermissions.js.map +1 -1
  80. package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
  81. package/dist/cjs/actions/wallet/signMessage.js.map +1 -1
  82. package/dist/cjs/actions/wallet/signTypedData.js.map +1 -1
  83. package/dist/cjs/actions/wallet/switchChain.js.map +1 -1
  84. package/dist/cjs/actions/wallet/watchAsset.js.map +1 -1
  85. package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
  86. package/dist/cjs/clients/createClient.js +18 -3
  87. package/dist/cjs/clients/createClient.js.map +1 -1
  88. package/dist/cjs/clients/createPublicClient.js +8 -14
  89. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  90. package/dist/cjs/clients/createTestClient.js +12 -16
  91. package/dist/cjs/clients/createTestClient.js.map +1 -1
  92. package/dist/cjs/clients/createWalletClient.js +9 -16
  93. package/dist/cjs/clients/createWalletClient.js.map +1 -1
  94. package/dist/cjs/clients/decorators/public.js.map +1 -1
  95. package/dist/cjs/clients/decorators/test.js +35 -30
  96. package/dist/cjs/clients/decorators/test.js.map +1 -1
  97. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  98. package/dist/cjs/errors/version.js +1 -1
  99. package/dist/cjs/index.js +11 -5
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/utils/ccip.js.map +1 -1
  102. package/dist/cjs/utils/ens/avatar/parseAvatarRecord.js.map +1 -1
  103. package/dist/cjs/utils/ens/avatar/utils.js.map +1 -1
  104. package/dist/cjs/utils/filters/createFilterRequestScope.js.map +1 -1
  105. package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
  106. package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
  107. package/dist/esm/actions/ens/getEnsAvatar.js.map +1 -1
  108. package/dist/esm/actions/ens/getEnsName.js.map +1 -1
  109. package/dist/esm/actions/ens/getEnsResolver.js.map +1 -1
  110. package/dist/esm/actions/ens/getEnsText.js.map +1 -1
  111. package/dist/esm/actions/index.js +76 -0
  112. package/dist/esm/actions/index.js.map +1 -0
  113. package/dist/esm/actions/public/call.js.map +1 -1
  114. package/dist/esm/actions/public/createBlockFilter.js.map +1 -1
  115. package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
  116. package/dist/esm/actions/public/createEventFilter.js.map +1 -1
  117. package/dist/esm/actions/public/createPendingTransactionFilter.js.map +1 -1
  118. package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
  119. package/dist/esm/actions/public/estimateGas.js.map +1 -1
  120. package/dist/esm/actions/public/getBalance.js.map +1 -1
  121. package/dist/esm/actions/public/getBlock.js.map +1 -1
  122. package/dist/esm/actions/public/getBlockNumber.js.map +1 -1
  123. package/dist/esm/actions/public/getBlockTransactionCount.js.map +1 -1
  124. package/dist/esm/actions/public/getBytecode.js.map +1 -1
  125. package/dist/esm/actions/public/getChainId.js.map +1 -1
  126. package/dist/esm/actions/public/getFeeHistory.js.map +1 -1
  127. package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
  128. package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
  129. package/dist/esm/actions/public/getGasPrice.js.map +1 -1
  130. package/dist/esm/actions/public/getLogs.js.map +1 -1
  131. package/dist/esm/actions/public/getStorageAt.js.map +1 -1
  132. package/dist/esm/actions/public/getTransaction.js.map +1 -1
  133. package/dist/esm/actions/public/getTransactionConfirmations.js.map +1 -1
  134. package/dist/esm/actions/public/getTransactionCount.js.map +1 -1
  135. package/dist/esm/actions/public/getTransactionReceipt.js.map +1 -1
  136. package/dist/esm/actions/public/multicall.js.map +1 -1
  137. package/dist/esm/actions/public/readContract.js.map +1 -1
  138. package/dist/esm/actions/public/simulateContract.js.map +1 -1
  139. package/dist/esm/actions/public/uninstallFilter.js.map +1 -1
  140. package/dist/esm/actions/public/verifyHash.js.map +1 -1
  141. package/dist/esm/actions/public/verifyMessage.js.map +1 -1
  142. package/dist/esm/actions/public/verifyTypedData.js +1 -1
  143. package/dist/esm/actions/public/verifyTypedData.js.map +1 -1
  144. package/dist/esm/actions/public/waitForTransactionReceipt.js.map +1 -1
  145. package/dist/esm/actions/public/watchBlockNumber.js.map +1 -1
  146. package/dist/esm/actions/public/watchBlocks.js.map +1 -1
  147. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  148. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  149. package/dist/esm/actions/public/watchPendingTransactions.js.map +1 -1
  150. package/dist/esm/actions/test/dropTransaction.js.map +1 -1
  151. package/dist/esm/actions/test/getAutomine.js.map +1 -1
  152. package/dist/esm/actions/test/getTxpoolContent.js.map +1 -1
  153. package/dist/esm/actions/test/getTxpoolStatus.js.map +1 -1
  154. package/dist/esm/actions/test/impersonateAccount.js.map +1 -1
  155. package/dist/esm/actions/test/increaseTime.js.map +1 -1
  156. package/dist/esm/actions/test/inspectTxpool.js.map +1 -1
  157. package/dist/esm/actions/test/mine.js.map +1 -1
  158. package/dist/esm/actions/test/removeBlockTimestampInterval.js.map +1 -1
  159. package/dist/esm/actions/test/reset.js.map +1 -1
  160. package/dist/esm/actions/test/revert.js.map +1 -1
  161. package/dist/esm/actions/test/sendUnsignedTransaction.js.map +1 -1
  162. package/dist/esm/actions/test/setAutomine.js.map +1 -1
  163. package/dist/esm/actions/test/setBalance.js.map +1 -1
  164. package/dist/esm/actions/test/setBlockGasLimit.js.map +1 -1
  165. package/dist/esm/actions/test/setBlockTimestampInterval.js.map +1 -1
  166. package/dist/esm/actions/test/setCode.js.map +1 -1
  167. package/dist/esm/actions/test/setCoinbase.js.map +1 -1
  168. package/dist/esm/actions/test/setIntervalMining.js.map +1 -1
  169. package/dist/esm/actions/test/setLoggingEnabled.js.map +1 -1
  170. package/dist/esm/actions/test/setMinGasPrice.js.map +1 -1
  171. package/dist/esm/actions/test/setNextBlockBaseFeePerGas.js.map +1 -1
  172. package/dist/esm/actions/test/setNextBlockTimestamp.js.map +1 -1
  173. package/dist/esm/actions/test/setNonce.js.map +1 -1
  174. package/dist/esm/actions/test/setRpcUrl.js.map +1 -1
  175. package/dist/esm/actions/test/setStorageAt.js.map +1 -1
  176. package/dist/esm/actions/test/snapshot.js.map +1 -1
  177. package/dist/esm/actions/test/stopImpersonatingAccount.js.map +1 -1
  178. package/dist/esm/actions/wallet/addChain.js.map +1 -1
  179. package/dist/esm/actions/wallet/deployContract.js.map +1 -1
  180. package/dist/esm/actions/wallet/getAddresses.js.map +1 -1
  181. package/dist/esm/actions/wallet/getPermissions.js.map +1 -1
  182. package/dist/esm/actions/wallet/requestAddresses.js.map +1 -1
  183. package/dist/esm/actions/wallet/requestPermissions.js.map +1 -1
  184. package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
  185. package/dist/esm/actions/wallet/signMessage.js.map +1 -1
  186. package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
  187. package/dist/esm/actions/wallet/switchChain.js.map +1 -1
  188. package/dist/esm/actions/wallet/watchAsset.js.map +1 -1
  189. package/dist/esm/actions/wallet/writeContract.js.map +1 -1
  190. package/dist/esm/clients/createClient.js +18 -3
  191. package/dist/esm/clients/createClient.js.map +1 -1
  192. package/dist/esm/clients/createPublicClient.js +8 -14
  193. package/dist/esm/clients/createPublicClient.js.map +1 -1
  194. package/dist/esm/clients/createTestClient.js +12 -16
  195. package/dist/esm/clients/createTestClient.js.map +1 -1
  196. package/dist/esm/clients/createWalletClient.js +9 -16
  197. package/dist/esm/clients/createWalletClient.js.map +1 -1
  198. package/dist/esm/clients/decorators/public.js.map +1 -1
  199. package/dist/esm/clients/decorators/test.js +35 -30
  200. package/dist/esm/clients/decorators/test.js.map +1 -1
  201. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  202. package/dist/esm/errors/version.js +1 -1
  203. package/dist/esm/index.js +5 -0
  204. package/dist/esm/index.js.map +1 -1
  205. package/dist/esm/utils/ccip.js.map +1 -1
  206. package/dist/esm/utils/ens/avatar/parseAvatarRecord.js.map +1 -1
  207. package/dist/esm/utils/ens/avatar/utils.js.map +1 -1
  208. package/dist/esm/utils/filters/createFilterRequestScope.js.map +1 -1
  209. package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
  210. package/dist/types/actions/ens/getEnsAddress.d.ts +2 -2
  211. package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
  212. package/dist/types/actions/ens/getEnsAvatar.d.ts +2 -2
  213. package/dist/types/actions/ens/getEnsAvatar.d.ts.map +1 -1
  214. package/dist/types/actions/ens/getEnsName.d.ts +2 -2
  215. package/dist/types/actions/ens/getEnsName.d.ts.map +1 -1
  216. package/dist/types/actions/ens/getEnsResolver.d.ts +2 -2
  217. package/dist/types/actions/ens/getEnsResolver.d.ts.map +1 -1
  218. package/dist/types/actions/ens/getEnsText.d.ts +2 -2
  219. package/dist/types/actions/ens/getEnsText.d.ts.map +1 -1
  220. package/dist/types/actions/index.d.ts +76 -0
  221. package/dist/types/actions/index.d.ts.map +1 -0
  222. package/dist/types/actions/public/call.d.ts +2 -2
  223. package/dist/types/actions/public/call.d.ts.map +1 -1
  224. package/dist/types/actions/public/createBlockFilter.d.ts +2 -2
  225. package/dist/types/actions/public/createBlockFilter.d.ts.map +1 -1
  226. package/dist/types/actions/public/createContractEventFilter.d.ts +2 -2
  227. package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
  228. package/dist/types/actions/public/createEventFilter.d.ts +2 -2
  229. package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
  230. package/dist/types/actions/public/createPendingTransactionFilter.d.ts +2 -2
  231. package/dist/types/actions/public/createPendingTransactionFilter.d.ts.map +1 -1
  232. package/dist/types/actions/public/estimateContractGas.d.ts +2 -3
  233. package/dist/types/actions/public/estimateContractGas.d.ts.map +1 -1
  234. package/dist/types/actions/public/estimateGas.d.ts +2 -3
  235. package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
  236. package/dist/types/actions/public/getBalance.d.ts +2 -2
  237. package/dist/types/actions/public/getBalance.d.ts.map +1 -1
  238. package/dist/types/actions/public/getBlock.d.ts +2 -3
  239. package/dist/types/actions/public/getBlock.d.ts.map +1 -1
  240. package/dist/types/actions/public/getBlockNumber.d.ts +4 -4
  241. package/dist/types/actions/public/getBlockNumber.d.ts.map +1 -1
  242. package/dist/types/actions/public/getBlockTransactionCount.d.ts +2 -2
  243. package/dist/types/actions/public/getBlockTransactionCount.d.ts.map +1 -1
  244. package/dist/types/actions/public/getBytecode.d.ts +2 -2
  245. package/dist/types/actions/public/getBytecode.d.ts.map +1 -1
  246. package/dist/types/actions/public/getChainId.d.ts +2 -3
  247. package/dist/types/actions/public/getChainId.d.ts.map +1 -1
  248. package/dist/types/actions/public/getFeeHistory.d.ts +2 -2
  249. package/dist/types/actions/public/getFeeHistory.d.ts.map +1 -1
  250. package/dist/types/actions/public/getFilterChanges.d.ts +2 -2
  251. package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
  252. package/dist/types/actions/public/getFilterLogs.d.ts +2 -2
  253. package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
  254. package/dist/types/actions/public/getGasPrice.d.ts +2 -3
  255. package/dist/types/actions/public/getGasPrice.d.ts.map +1 -1
  256. package/dist/types/actions/public/getLogs.d.ts +2 -2
  257. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  258. package/dist/types/actions/public/getStorageAt.d.ts +2 -2
  259. package/dist/types/actions/public/getStorageAt.d.ts.map +1 -1
  260. package/dist/types/actions/public/getTransaction.d.ts +2 -2
  261. package/dist/types/actions/public/getTransaction.d.ts.map +1 -1
  262. package/dist/types/actions/public/getTransactionConfirmations.d.ts +2 -2
  263. package/dist/types/actions/public/getTransactionConfirmations.d.ts.map +1 -1
  264. package/dist/types/actions/public/getTransactionCount.d.ts +2 -3
  265. package/dist/types/actions/public/getTransactionCount.d.ts.map +1 -1
  266. package/dist/types/actions/public/getTransactionReceipt.d.ts +2 -2
  267. package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
  268. package/dist/types/actions/public/multicall.d.ts +2 -2
  269. package/dist/types/actions/public/multicall.d.ts.map +1 -1
  270. package/dist/types/actions/public/readContract.d.ts +2 -2
  271. package/dist/types/actions/public/readContract.d.ts.map +1 -1
  272. package/dist/types/actions/public/simulateContract.d.ts +2 -2
  273. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  274. package/dist/types/actions/public/uninstallFilter.d.ts +2 -2
  275. package/dist/types/actions/public/uninstallFilter.d.ts.map +1 -1
  276. package/dist/types/actions/public/verifyHash.d.ts +2 -2
  277. package/dist/types/actions/public/verifyHash.d.ts.map +1 -1
  278. package/dist/types/actions/public/verifyMessage.d.ts +2 -2
  279. package/dist/types/actions/public/verifyMessage.d.ts.map +1 -1
  280. package/dist/types/actions/public/verifyTypedData.d.ts +2 -2
  281. package/dist/types/actions/public/verifyTypedData.d.ts.map +1 -1
  282. package/dist/types/actions/public/waitForTransactionReceipt.d.ts +2 -2
  283. package/dist/types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
  284. package/dist/types/actions/public/watchBlockNumber.d.ts +2 -2
  285. package/dist/types/actions/public/watchBlockNumber.d.ts.map +1 -1
  286. package/dist/types/actions/public/watchBlocks.d.ts +2 -2
  287. package/dist/types/actions/public/watchBlocks.d.ts.map +1 -1
  288. package/dist/types/actions/public/watchContractEvent.d.ts +2 -2
  289. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  290. package/dist/types/actions/public/watchEvent.d.ts +2 -2
  291. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  292. package/dist/types/actions/public/watchPendingTransactions.d.ts +2 -2
  293. package/dist/types/actions/public/watchPendingTransactions.d.ts.map +1 -1
  294. package/dist/types/actions/test/dropTransaction.d.ts +2 -1
  295. package/dist/types/actions/test/dropTransaction.d.ts.map +1 -1
  296. package/dist/types/actions/test/getAutomine.d.ts +2 -1
  297. package/dist/types/actions/test/getAutomine.d.ts.map +1 -1
  298. package/dist/types/actions/test/getTxpoolContent.d.ts +2 -1
  299. package/dist/types/actions/test/getTxpoolContent.d.ts.map +1 -1
  300. package/dist/types/actions/test/getTxpoolStatus.d.ts +2 -1
  301. package/dist/types/actions/test/getTxpoolStatus.d.ts.map +1 -1
  302. package/dist/types/actions/test/impersonateAccount.d.ts +2 -1
  303. package/dist/types/actions/test/impersonateAccount.d.ts.map +1 -1
  304. package/dist/types/actions/test/increaseTime.d.ts +2 -1
  305. package/dist/types/actions/test/increaseTime.d.ts.map +1 -1
  306. package/dist/types/actions/test/inspectTxpool.d.ts +2 -1
  307. package/dist/types/actions/test/inspectTxpool.d.ts.map +1 -1
  308. package/dist/types/actions/test/mine.d.ts +2 -1
  309. package/dist/types/actions/test/mine.d.ts.map +1 -1
  310. package/dist/types/actions/test/removeBlockTimestampInterval.d.ts +2 -1
  311. package/dist/types/actions/test/removeBlockTimestampInterval.d.ts.map +1 -1
  312. package/dist/types/actions/test/reset.d.ts +2 -1
  313. package/dist/types/actions/test/reset.d.ts.map +1 -1
  314. package/dist/types/actions/test/revert.d.ts +2 -1
  315. package/dist/types/actions/test/revert.d.ts.map +1 -1
  316. package/dist/types/actions/test/sendUnsignedTransaction.d.ts +2 -1
  317. package/dist/types/actions/test/sendUnsignedTransaction.d.ts.map +1 -1
  318. package/dist/types/actions/test/setAutomine.d.ts +2 -1
  319. package/dist/types/actions/test/setAutomine.d.ts.map +1 -1
  320. package/dist/types/actions/test/setBalance.d.ts +2 -1
  321. package/dist/types/actions/test/setBalance.d.ts.map +1 -1
  322. package/dist/types/actions/test/setBlockGasLimit.d.ts +2 -1
  323. package/dist/types/actions/test/setBlockGasLimit.d.ts.map +1 -1
  324. package/dist/types/actions/test/setBlockTimestampInterval.d.ts +2 -1
  325. package/dist/types/actions/test/setBlockTimestampInterval.d.ts.map +1 -1
  326. package/dist/types/actions/test/setCode.d.ts +2 -1
  327. package/dist/types/actions/test/setCode.d.ts.map +1 -1
  328. package/dist/types/actions/test/setCoinbase.d.ts +2 -1
  329. package/dist/types/actions/test/setCoinbase.d.ts.map +1 -1
  330. package/dist/types/actions/test/setIntervalMining.d.ts +2 -1
  331. package/dist/types/actions/test/setIntervalMining.d.ts.map +1 -1
  332. package/dist/types/actions/test/setLoggingEnabled.d.ts +2 -1
  333. package/dist/types/actions/test/setLoggingEnabled.d.ts.map +1 -1
  334. package/dist/types/actions/test/setMinGasPrice.d.ts +2 -1
  335. package/dist/types/actions/test/setMinGasPrice.d.ts.map +1 -1
  336. package/dist/types/actions/test/setNextBlockBaseFeePerGas.d.ts +2 -1
  337. package/dist/types/actions/test/setNextBlockBaseFeePerGas.d.ts.map +1 -1
  338. package/dist/types/actions/test/setNextBlockTimestamp.d.ts +2 -1
  339. package/dist/types/actions/test/setNextBlockTimestamp.d.ts.map +1 -1
  340. package/dist/types/actions/test/setNonce.d.ts +2 -1
  341. package/dist/types/actions/test/setNonce.d.ts.map +1 -1
  342. package/dist/types/actions/test/setRpcUrl.d.ts +2 -1
  343. package/dist/types/actions/test/setRpcUrl.d.ts.map +1 -1
  344. package/dist/types/actions/test/setStorageAt.d.ts +2 -1
  345. package/dist/types/actions/test/setStorageAt.d.ts.map +1 -1
  346. package/dist/types/actions/test/snapshot.d.ts +2 -1
  347. package/dist/types/actions/test/snapshot.d.ts.map +1 -1
  348. package/dist/types/actions/test/stopImpersonatingAccount.d.ts +2 -1
  349. package/dist/types/actions/test/stopImpersonatingAccount.d.ts.map +1 -1
  350. package/dist/types/actions/wallet/addChain.d.ts +2 -2
  351. package/dist/types/actions/wallet/addChain.d.ts.map +1 -1
  352. package/dist/types/actions/wallet/deployContract.d.ts +2 -2
  353. package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
  354. package/dist/types/actions/wallet/getAddresses.d.ts +2 -2
  355. package/dist/types/actions/wallet/getAddresses.d.ts.map +1 -1
  356. package/dist/types/actions/wallet/getPermissions.d.ts +2 -2
  357. package/dist/types/actions/wallet/getPermissions.d.ts.map +1 -1
  358. package/dist/types/actions/wallet/requestAddresses.d.ts +2 -2
  359. package/dist/types/actions/wallet/requestAddresses.d.ts.map +1 -1
  360. package/dist/types/actions/wallet/requestPermissions.d.ts +2 -2
  361. package/dist/types/actions/wallet/requestPermissions.d.ts.map +1 -1
  362. package/dist/types/actions/wallet/sendTransaction.d.ts +2 -2
  363. package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
  364. package/dist/types/actions/wallet/signMessage.d.ts +2 -2
  365. package/dist/types/actions/wallet/signMessage.d.ts.map +1 -1
  366. package/dist/types/actions/wallet/signTypedData.d.ts +2 -2
  367. package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
  368. package/dist/types/actions/wallet/switchChain.d.ts +2 -2
  369. package/dist/types/actions/wallet/switchChain.d.ts.map +1 -1
  370. package/dist/types/actions/wallet/watchAsset.d.ts +2 -2
  371. package/dist/types/actions/wallet/watchAsset.d.ts.map +1 -1
  372. package/dist/types/actions/wallet/writeContract.d.ts +2 -2
  373. package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
  374. package/dist/types/clients/createClient.d.ts +35 -3
  375. package/dist/types/clients/createClient.d.ts.map +1 -1
  376. package/dist/types/clients/createPublicClient.d.ts +3 -15
  377. package/dist/types/clients/createPublicClient.d.ts.map +1 -1
  378. package/dist/types/clients/createTestClient.d.ts +6 -3
  379. package/dist/types/clients/createTestClient.d.ts.map +1 -1
  380. package/dist/types/clients/createWalletClient.d.ts +5 -10
  381. package/dist/types/clients/createWalletClient.d.ts.map +1 -1
  382. package/dist/types/clients/decorators/public.d.ts +524 -5
  383. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  384. package/dist/types/clients/decorators/test.d.ts +6 -2
  385. package/dist/types/clients/decorators/test.d.ts.map +1 -1
  386. package/dist/types/clients/decorators/wallet.d.ts +520 -2
  387. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  388. package/dist/types/errors/version.d.ts +1 -1
  389. package/dist/types/index.d.ts +6 -2
  390. package/dist/types/index.d.ts.map +1 -1
  391. package/dist/types/types/account.d.ts +2 -2
  392. package/dist/types/types/account.d.ts.map +1 -1
  393. package/dist/types/utils/ccip.d.ts +2 -2
  394. package/dist/types/utils/ccip.d.ts.map +1 -1
  395. package/dist/types/utils/ens/avatar/parseAvatarRecord.d.ts +2 -2
  396. package/dist/types/utils/ens/avatar/parseAvatarRecord.d.ts.map +1 -1
  397. package/dist/types/utils/ens/avatar/utils.d.ts +2 -2
  398. package/dist/types/utils/ens/avatar/utils.d.ts.map +1 -1
  399. package/dist/types/utils/filters/createFilterRequestScope.d.ts +4 -3
  400. package/dist/types/utils/filters/createFilterRequestScope.d.ts.map +1 -1
  401. package/dist/types/utils/formatters/transaction.d.ts +1 -1
  402. package/dist/types/utils/transaction/prepareRequest.d.ts +2 -3
  403. package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
  404. package/package.json +11 -2
  405. package/src/actions/ens/getEnsAddress.ts +2 -2
  406. package/src/actions/ens/getEnsAvatar.ts +2 -2
  407. package/src/actions/ens/getEnsName.ts +2 -2
  408. package/src/actions/ens/getEnsResolver.ts +2 -2
  409. package/src/actions/ens/getEnsText.ts +2 -2
  410. package/src/actions/index.ts +324 -0
  411. package/src/actions/public/call.ts +4 -4
  412. package/src/actions/public/createBlockFilter.ts +2 -2
  413. package/src/actions/public/createContractEventFilter.ts +2 -2
  414. package/src/actions/public/createEventFilter.ts +2 -2
  415. package/src/actions/public/createPendingTransactionFilter.ts +2 -2
  416. package/src/actions/public/estimateContractGas.ts +2 -6
  417. package/src/actions/public/estimateGas.ts +4 -7
  418. package/src/actions/public/getBalance.ts +2 -2
  419. package/src/actions/public/getBlock.ts +4 -7
  420. package/src/actions/public/getBlockNumber.ts +2 -2
  421. package/src/actions/public/getBlockTransactionCount.ts +2 -2
  422. package/src/actions/public/getBytecode.ts +2 -2
  423. package/src/actions/public/getChainId.ts +3 -8
  424. package/src/actions/public/getFeeHistory.ts +2 -2
  425. package/src/actions/public/getFilterChanges.ts +2 -2
  426. package/src/actions/public/getFilterLogs.ts +2 -2
  427. package/src/actions/public/getGasPrice.ts +3 -8
  428. package/src/actions/public/getLogs.ts +2 -2
  429. package/src/actions/public/getStorageAt.ts +2 -2
  430. package/src/actions/public/getTransaction.ts +2 -2
  431. package/src/actions/public/getTransactionConfirmations.ts +2 -2
  432. package/src/actions/public/getTransactionCount.ts +3 -6
  433. package/src/actions/public/getTransactionReceipt.ts +2 -2
  434. package/src/actions/public/multicall.ts +2 -2
  435. package/src/actions/public/readContract.ts +2 -2
  436. package/src/actions/public/simulateContract.ts +2 -2
  437. package/src/actions/public/uninstallFilter.ts +2 -2
  438. package/src/actions/public/verifyHash.ts +2 -2
  439. package/src/actions/public/verifyMessage.ts +2 -2
  440. package/src/actions/public/verifyTypedData.ts +3 -3
  441. package/src/actions/public/waitForTransactionReceipt.ts +2 -2
  442. package/src/actions/public/watchBlockNumber.ts +2 -2
  443. package/src/actions/public/watchBlocks.ts +2 -2
  444. package/src/actions/public/watchContractEvent.ts +2 -2
  445. package/src/actions/public/watchEvent.ts +2 -2
  446. package/src/actions/public/watchPendingTransactions.ts +2 -2
  447. package/src/actions/test/dropTransaction.ts +6 -2
  448. package/src/actions/test/getAutomine.ts +6 -2
  449. package/src/actions/test/getTxpoolContent.ts +6 -2
  450. package/src/actions/test/getTxpoolStatus.ts +6 -2
  451. package/src/actions/test/impersonateAccount.ts +6 -2
  452. package/src/actions/test/increaseTime.ts +6 -2
  453. package/src/actions/test/inspectTxpool.ts +6 -2
  454. package/src/actions/test/mine.ts +6 -2
  455. package/src/actions/test/removeBlockTimestampInterval.ts +3 -1
  456. package/src/actions/test/reset.ts +6 -2
  457. package/src/actions/test/revert.ts +6 -2
  458. package/src/actions/test/sendUnsignedTransaction.ts +3 -1
  459. package/src/actions/test/setAutomine.ts +6 -2
  460. package/src/actions/test/setBalance.ts +6 -2
  461. package/src/actions/test/setBlockGasLimit.ts +6 -2
  462. package/src/actions/test/setBlockTimestampInterval.ts +3 -1
  463. package/src/actions/test/setCode.ts +6 -2
  464. package/src/actions/test/setCoinbase.ts +6 -2
  465. package/src/actions/test/setIntervalMining.ts +6 -2
  466. package/src/actions/test/setLoggingEnabled.ts +6 -2
  467. package/src/actions/test/setMinGasPrice.ts +6 -2
  468. package/src/actions/test/setNextBlockBaseFeePerGas.ts +3 -1
  469. package/src/actions/test/setNextBlockTimestamp.ts +6 -2
  470. package/src/actions/test/setNonce.ts +6 -2
  471. package/src/actions/test/setRpcUrl.ts +6 -2
  472. package/src/actions/test/setStorageAt.ts +6 -2
  473. package/src/actions/test/snapshot.ts +5 -3
  474. package/src/actions/test/stopImpersonatingAccount.ts +3 -1
  475. package/src/actions/wallet/addChain.ts +2 -5
  476. package/src/actions/wallet/deployContract.ts +2 -2
  477. package/src/actions/wallet/getAddresses.ts +2 -2
  478. package/src/actions/wallet/getPermissions.ts +2 -2
  479. package/src/actions/wallet/requestAddresses.ts +2 -2
  480. package/src/actions/wallet/requestPermissions.ts +2 -2
  481. package/src/actions/wallet/sendTransaction.ts +2 -2
  482. package/src/actions/wallet/signMessage.ts +2 -2
  483. package/src/actions/wallet/signTypedData.ts +2 -2
  484. package/src/actions/wallet/switchChain.ts +2 -5
  485. package/src/actions/wallet/watchAsset.ts +2 -2
  486. package/src/actions/wallet/writeContract.ts +2 -2
  487. package/src/clients/createClient.ts +83 -6
  488. package/src/clients/createPublicClient.ts +18 -38
  489. package/src/clients/createTestClient.ts +34 -23
  490. package/src/clients/createWalletClient.ts +22 -41
  491. package/src/clients/decorators/public.ts +10 -12
  492. package/src/clients/decorators/test.ts +56 -36
  493. package/src/clients/decorators/wallet.ts +3 -9
  494. package/src/errors/version.ts +1 -1
  495. package/src/index.ts +20 -4
  496. package/src/types/account.ts +9 -5
  497. package/src/utils/ccip.ts +3 -3
  498. package/src/utils/ens/avatar/parseAvatarRecord.ts +3 -3
  499. package/src/utils/ens/avatar/utils.ts +2 -2
  500. package/src/utils/filters/createFilterRequestScope.ts +4 -3
  501. package/src/utils/transaction/prepareRequest.ts +2 -5
@@ -1,5 +1,5 @@
1
1
  import type { Account } from '../../accounts/types.js'
2
- import type { WalletClient } from '../../clients/createWalletClient.js'
2
+ import type { Client } from '../../clients/createClient.js'
3
3
  import type { Transport } from '../../clients/transports/createTransport.js'
4
4
  import type { Chain } from '../../types/chain.js'
5
5
  import { numberToHex } from '../../utils/encoding/toHex.js'
@@ -31,10 +31,7 @@ export type AddChainParameters = {
31
31
  export async function addChain<
32
32
  TChain extends Chain | undefined,
33
33
  TAccount extends Account | undefined,
34
- >(
35
- client: WalletClient<Transport, TChain, TAccount>,
36
- { chain }: AddChainParameters,
37
- ) {
34
+ >(client: Client<Transport, TChain, TAccount>, { chain }: AddChainParameters) {
38
35
  const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain
39
36
  await client.request({
40
37
  method: 'wallet_addEthereumChain',
@@ -1,7 +1,7 @@
1
1
  import type { Abi, Narrow } from 'abitype'
2
2
 
3
3
  import type { Account } from '../../accounts/types.js'
4
- import type { WalletClient } from '../../clients/createWalletClient.js'
4
+ import type { Client } from '../../clients/createClient.js'
5
5
  import type { Transport } from '../../clients/transports/createTransport.js'
6
6
  import type { Chain, GetChain } from '../../types/chain.js'
7
7
  import type { GetConstructorArgs } from '../../types/contract.js'
@@ -63,7 +63,7 @@ export function deployContract<
63
63
  TAccount extends Account | undefined,
64
64
  TChainOverride extends Chain | undefined,
65
65
  >(
66
- walletClient: WalletClient<Transport, TChain, TAccount>,
66
+ walletClient: Client<Transport, TChain, TAccount>,
67
67
  {
68
68
  abi,
69
69
  args,
@@ -1,7 +1,7 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
3
  import type { Account } from '../../accounts/types.js'
4
- import type { WalletClient } from '../../clients/createWalletClient.js'
4
+ import type { Client } from '../../clients/createClient.js'
5
5
  import type { Transport } from '../../clients/transports/createTransport.js'
6
6
  import type { Chain } from '../../types/chain.js'
7
7
  import { checksumAddress } from '../../utils/address/getAddress.js'
@@ -32,7 +32,7 @@ export async function getAddresses<
32
32
  TChain extends Chain | undefined,
33
33
  TAccount extends Account | undefined = undefined,
34
34
  >(
35
- client: WalletClient<Transport, TChain, TAccount>,
35
+ client: Client<Transport, TChain, TAccount>,
36
36
  ): Promise<GetAddressesReturnType> {
37
37
  const addresses = await client.request({ method: 'eth_accounts' })
38
38
  return addresses.map((address) => checksumAddress(address))
@@ -1,5 +1,5 @@
1
1
  import type { Account } from '../../accounts/types.js'
2
- import type { WalletClient } from '../../clients/createWalletClient.js'
2
+ import type { Client } from '../../clients/createClient.js'
3
3
  import type { Transport } from '../../clients/transports/createTransport.js'
4
4
  import type { Chain } from '../../types/chain.js'
5
5
  import type { WalletPermission } from '../../types/eip1193.js'
@@ -29,7 +29,7 @@ export type GetPermissionsReturnType = WalletPermission[]
29
29
  export async function getPermissions<
30
30
  TChain extends Chain | undefined,
31
31
  TAccount extends Account | undefined = undefined,
32
- >(client: WalletClient<Transport, TChain, TAccount>) {
32
+ >(client: Client<Transport, TChain, TAccount>) {
33
33
  const permissions = await client.request({ method: 'wallet_getPermissions' })
34
34
  return permissions
35
35
  }
@@ -1,7 +1,7 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
3
  import type { Account } from '../../accounts/types.js'
4
- import type { WalletClient } from '../../clients/createWalletClient.js'
4
+ import type { Client } from '../../clients/createClient.js'
5
5
  import type { Transport } from '../../clients/transports/createTransport.js'
6
6
  import type { Chain } from '../../types/chain.js'
7
7
  import { getAddress } from '../../utils/address/getAddress.js'
@@ -36,7 +36,7 @@ export async function requestAddresses<
36
36
  TChain extends Chain | undefined,
37
37
  TAccount extends Account | undefined = undefined,
38
38
  >(
39
- client: WalletClient<Transport, TChain, TAccount>,
39
+ client: Client<Transport, TChain, TAccount>,
40
40
  ): Promise<RequestAddressesReturnType> {
41
41
  const addresses = await client.request({ method: 'eth_requestAccounts' })
42
42
  return addresses.map((address) => getAddress(address))
@@ -1,5 +1,5 @@
1
1
  import type { Account } from '../../accounts/types.js'
2
- import type { WalletClient } from '../../clients/createWalletClient.js'
2
+ import type { Client } from '../../clients/createClient.js'
3
3
  import type { Transport } from '../../clients/transports/createTransport.js'
4
4
  import type { Chain } from '../../types/chain.js'
5
5
  import type { WalletPermission } from '../../types/eip1193.js'
@@ -41,7 +41,7 @@ export async function requestPermissions<
41
41
  TChain extends Chain | undefined,
42
42
  TAccount extends Account | undefined = undefined,
43
43
  >(
44
- client: WalletClient<Transport, TChain, TAccount>,
44
+ client: Client<Transport, TChain, TAccount>,
45
45
  permissions: RequestPermissionsParameters,
46
46
  ) {
47
47
  return client.request({
@@ -1,6 +1,6 @@
1
1
  import type { Account } from '../../accounts/types.js'
2
2
  import { parseAccount } from '../../accounts/utils/parseAccount.js'
3
- import type { WalletClient } from '../../clients/createWalletClient.js'
3
+ import type { Client } from '../../clients/createClient.js'
4
4
  import type { Transport } from '../../clients/transports/createTransport.js'
5
5
  import { AccountNotFoundError } from '../../errors/account.js'
6
6
  import type { BaseError } from '../../errors/base.js'
@@ -88,7 +88,7 @@ export async function sendTransaction<
88
88
  TAccount extends Account | undefined,
89
89
  TChainOverride extends Chain | undefined,
90
90
  >(
91
- client: WalletClient<Transport, TChain, TAccount>,
91
+ client: Client<Transport, TChain, TAccount>,
92
92
  args: SendTransactionParameters<TChain, TAccount, TChainOverride>,
93
93
  ): Promise<SendTransactionReturnType> {
94
94
  const {
@@ -1,6 +1,6 @@
1
1
  import type { Account } from '../../accounts/types.js'
2
2
  import { parseAccount } from '../../accounts/utils/parseAccount.js'
3
- import type { WalletClient } from '../../clients/createWalletClient.js'
3
+ import type { Client } from '../../clients/createClient.js'
4
4
  import type { Transport } from '../../clients/transports/createTransport.js'
5
5
  import { AccountNotFoundError } from '../../errors/account.js'
6
6
  import type { GetAccountParameter } from '../../types/account.js'
@@ -66,7 +66,7 @@ export async function signMessage<
66
66
  TChain extends Chain | undefined,
67
67
  TAccount extends Account | undefined,
68
68
  >(
69
- client: WalletClient<Transport, TChain, TAccount>,
69
+ client: Client<Transport, TChain, TAccount>,
70
70
  {
71
71
  account: account_ = client.account,
72
72
  message,
@@ -2,7 +2,7 @@ import type { TypedData } from 'abitype'
2
2
 
3
3
  import type { Account } from '../../accounts/types.js'
4
4
  import { parseAccount } from '../../accounts/utils/parseAccount.js'
5
- import type { WalletClient } from '../../clients/createWalletClient.js'
5
+ import type { Client } from '../../clients/createClient.js'
6
6
  import type { Transport } from '../../clients/transports/createTransport.js'
7
7
  import { AccountNotFoundError } from '../../errors/account.js'
8
8
  import type { GetAccountParameter } from '../../types/account.js'
@@ -126,7 +126,7 @@ export async function signTypedData<
126
126
  TChain extends Chain | undefined,
127
127
  TAccount extends Account | undefined,
128
128
  >(
129
- client: WalletClient<Transport, TChain, TAccount>,
129
+ client: Client<Transport, TChain, TAccount>,
130
130
  {
131
131
  account: account_ = client.account,
132
132
  domain,
@@ -1,5 +1,5 @@
1
1
  import type { Account } from '../../accounts/types.js'
2
- import type { WalletClient } from '../../clients/createWalletClient.js'
2
+ import type { Client } from '../../clients/createClient.js'
3
3
  import type { Transport } from '../../clients/transports/createTransport.js'
4
4
  import type { Chain } from '../../types/chain.js'
5
5
  import { numberToHex } from '../../utils/encoding/toHex.js'
@@ -32,10 +32,7 @@ export type SwitchChainParameters = {
32
32
  export async function switchChain<
33
33
  TChain extends Chain | undefined,
34
34
  TAccount extends Account | undefined = undefined,
35
- >(
36
- client: WalletClient<Transport, TChain, TAccount>,
37
- { id }: SwitchChainParameters,
38
- ) {
35
+ >(client: Client<Transport, TChain, TAccount>, { id }: SwitchChainParameters) {
39
36
  await client.request({
40
37
  method: 'wallet_switchEthereumChain',
41
38
  params: [
@@ -1,5 +1,5 @@
1
1
  import type { Account } from '../../accounts/types.js'
2
- import type { WalletClient } from '../../clients/createWalletClient.js'
2
+ import type { Client } from '../../clients/createClient.js'
3
3
  import type { Transport } from '../../clients/transports/createTransport.js'
4
4
  import type { Chain } from '../../types/chain.js'
5
5
  import type { WatchAssetParams } from '../../types/eip1193.js'
@@ -39,7 +39,7 @@ export async function watchAsset<
39
39
  TChain extends Chain | undefined,
40
40
  TAccount extends Account | undefined = undefined,
41
41
  >(
42
- client: WalletClient<Transport, TChain, TAccount>,
42
+ client: Client<Transport, TChain, TAccount>,
43
43
  params: WatchAssetParameters,
44
44
  ): Promise<WatchAssetReturnType> {
45
45
  const added = await client.request({
@@ -1,7 +1,7 @@
1
1
  import type { Abi } from 'abitype'
2
2
 
3
3
  import type { Account } from '../../accounts/types.js'
4
- import type { WalletClient } from '../../clients/createWalletClient.js'
4
+ import type { Client } from '../../clients/createClient.js'
5
5
  import type { Transport } from '../../clients/transports/createTransport.js'
6
6
  import type { Chain, GetChain } from '../../types/chain.js'
7
7
  import type { ContractFunctionConfig, GetValue } from '../../types/contract.js'
@@ -103,7 +103,7 @@ export async function writeContract<
103
103
  TFunctionName extends string,
104
104
  TChainOverride extends Chain | undefined = undefined,
105
105
  >(
106
- client: WalletClient<Transport, TChain, TAccount>,
106
+ client: Client<Transport, TChain, TAccount>,
107
107
  {
108
108
  abi,
109
109
  address,
@@ -1,16 +1,40 @@
1
+ import type { Address, Narrow } from 'abitype'
2
+
3
+ import type { Account, JsonRpcAccount } from '../accounts/types.js'
4
+ import type { ParseAccount } from '../types/account.js'
1
5
  import type { Chain } from '../types/chain.js'
2
6
  import type {
3
7
  EIP1193RequestFn,
4
8
  EIP1474Methods,
5
9
  RpcSchema,
6
10
  } from '../types/eip1193.js'
11
+ import type { Prettify } from '../types/utils.js'
12
+ import { parseAccount } from '../utils/accounts.js'
7
13
  import { uid } from '../utils/uid.js'
8
14
  import type { Transport } from './transports/createTransport.js'
9
15
 
16
+ export type MulticallBatchOptions = {
17
+ /** The maximum size (in bytes) for each calldata chunk. @default 1_024 */
18
+ batchSize?: number
19
+ /** The maximum number of milliseconds to wait before sending a batch. @default 0 */
20
+ wait?: number
21
+ }
22
+
10
23
  export type ClientConfig<
11
24
  TTransport extends Transport = Transport,
12
25
  TChain extends Chain | undefined = Chain | undefined,
26
+ TAccountOrAddress extends Account | Address | undefined =
27
+ | Account
28
+ | Address
29
+ | undefined,
13
30
  > = {
31
+ /** The Account to use for the Client. This will be used for Actions that require an account as an argument. */
32
+ account?: TAccountOrAddress
33
+ /** Flags for batch settings. */
34
+ batch?: {
35
+ /** Toggle to enable `eth_call` multicall aggregation. */
36
+ multicall?: boolean | MulticallBatchOptions
37
+ }
14
38
  /** Chain for the client. */
15
39
  chain?: TChain
16
40
  /** A key for the client. */
@@ -28,11 +52,19 @@ export type ClientConfig<
28
52
  type?: string
29
53
  }
30
54
 
31
- export type Client<
55
+ type Client_Base<
32
56
  TTransport extends Transport = Transport,
33
- TRpcSchema extends RpcSchema | undefined = undefined,
34
57
  TChain extends Chain | undefined = Chain | undefined,
58
+ TAccount extends Account | undefined = Account | undefined,
59
+ TRpcSchema extends RpcSchema | undefined = undefined,
35
60
  > = {
61
+ /** The Account of the Client. */
62
+ account: TAccount
63
+ /** Flags for batch settings. */
64
+ batch?: {
65
+ /** Toggle to enable `eth_call` multicall aggregation. */
66
+ multicall?: boolean | MulticallBatchOptions
67
+ }
36
68
  /** Chain for the client. */
37
69
  chain: TChain
38
70
  /** A key for the client. */
@@ -53,30 +85,75 @@ export type Client<
53
85
  uid: string
54
86
  }
55
87
 
88
+ type Extended = { [K in keyof Client_Base]?: undefined } & {
89
+ [key: string]: unknown
90
+ }
91
+
92
+ export type Client<
93
+ TTransport extends Transport = Transport,
94
+ TChain extends Chain | undefined = Chain | undefined,
95
+ TAccount extends Account | undefined = Account | undefined,
96
+ TRpcSchema extends RpcSchema | undefined = undefined,
97
+ TExtended extends Extended | undefined = Extended | undefined,
98
+ > = Client_Base<TTransport, TChain, TAccount, TRpcSchema> & {
99
+ extend: <TNextExtended extends Extended = Extended>(
100
+ fn: (
101
+ client: Client<TTransport, TChain, TAccount, TRpcSchema, TExtended>,
102
+ ) => Narrow<TNextExtended>,
103
+ ) => Client<
104
+ TTransport,
105
+ TChain,
106
+ TAccount,
107
+ TRpcSchema,
108
+ (TExtended extends Extended ? TExtended : {}) & TNextExtended
109
+ >
110
+ } & (TExtended extends Extended ? TExtended : {})
111
+
56
112
  /**
57
113
  * @description Creates a base client with the given transport.
58
114
  */
59
115
  export function createClient<
60
116
  TTransport extends Transport,
61
- TRpcSchema extends RpcSchema | undefined = undefined,
62
117
  TChain extends Chain | undefined = undefined,
118
+ TAccountOrAddress extends Account | Address | undefined = undefined,
63
119
  >({
120
+ account,
121
+ batch,
64
122
  chain,
65
123
  key = 'base',
66
124
  name = 'Base Client',
67
125
  pollingInterval = 4_000,
68
126
  transport,
69
127
  type = 'base',
70
- }: ClientConfig<TTransport, TChain>): Client<TTransport, TRpcSchema, TChain> {
128
+ }: ClientConfig<TTransport, TChain, TAccountOrAddress>): Client<
129
+ TTransport,
130
+ TChain,
131
+ TAccountOrAddress extends Address
132
+ ? Prettify<JsonRpcAccount<TAccountOrAddress>>
133
+ : TAccountOrAddress
134
+ > {
71
135
  const { config, request, value } = transport({ chain, pollingInterval })
72
- return {
136
+ const client = {
137
+ account: (account
138
+ ? parseAccount(account)
139
+ : undefined) as ParseAccount<TAccountOrAddress>,
140
+ batch,
73
141
  chain: chain as TChain,
74
142
  key,
75
143
  name,
76
144
  pollingInterval,
77
- request: request as any,
145
+ request,
78
146
  transport: { ...config, ...value },
79
147
  type,
80
148
  uid: uid(),
81
149
  }
150
+ function extend(client_: typeof client) {
151
+ return (fn: (_: typeof client) => unknown) => {
152
+ const extended = fn(client_) as Extended
153
+ for (const key in client) delete extended[key]
154
+ const nextClient = { ...client_, ...extended }
155
+ return Object.assign(nextClient, { extend: extend(nextClient) })
156
+ }
157
+ }
158
+ return Object.assign(client, { extend: extend(client) as any })
82
159
  }
@@ -5,35 +5,25 @@ import { type Client, type ClientConfig, createClient } from './createClient.js'
5
5
  import { type PublicActions, publicActions } from './decorators/public.js'
6
6
  import type { Transport } from './transports/createTransport.js'
7
7
 
8
- export type MulticallBatchOptions = {
9
- /** The maximum size (in bytes) for each calldata chunk. @default 1_024 */
10
- batchSize?: number
11
- /** The maximum number of milliseconds to wait before sending a batch. @default 0 */
12
- wait?: number
13
- }
14
-
15
8
  export type PublicClientConfig<
16
9
  TTransport extends Transport = Transport,
17
10
  TChain extends Chain | undefined = Chain | undefined,
18
11
  > = Pick<
19
12
  ClientConfig<TTransport, TChain>,
20
- 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
21
- > & {
22
- /** Flags for batch settings. */
23
- batch?: {
24
- /** Toggle to enable `eth_call` multicall aggregation. */
25
- multicall?: boolean | MulticallBatchOptions
26
- }
27
- }
13
+ 'batch' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
14
+ >
28
15
 
29
16
  export type PublicClient<
30
17
  TTransport extends Transport = Transport,
31
18
  TChain extends Chain | undefined = Chain | undefined,
32
- TIncludeActions extends boolean = true,
33
19
  > = Prettify<
34
- Client<TTransport, PublicRpcSchema, TChain> &
35
- Pick<PublicClientConfig, 'batch'> &
36
- (TIncludeActions extends true ? PublicActions<TTransport, TChain> : unknown)
20
+ Client<
21
+ TTransport,
22
+ TChain,
23
+ undefined,
24
+ PublicRpcSchema,
25
+ PublicActions<TTransport, TChain>
26
+ >
37
27
  >
38
28
 
39
29
  /**
@@ -65,24 +55,14 @@ export function createPublicClient<
65
55
  name = 'Public Client',
66
56
  transport,
67
57
  pollingInterval,
68
- }: PublicClientConfig<TTransport, TChain>): PublicClient<
69
- TTransport,
70
- TChain,
71
- true
72
- > {
73
- const client = {
58
+ }: PublicClientConfig<TTransport, TChain>): PublicClient<TTransport, TChain> {
59
+ return createClient({
74
60
  batch,
75
- ...(createClient({
76
- chain,
77
- key,
78
- name,
79
- pollingInterval,
80
- transport,
81
- type: 'publicClient',
82
- }) as PublicClient<TTransport, TChain>),
83
- }
84
- return {
85
- ...client,
86
- ...publicActions(client),
87
- }
61
+ chain,
62
+ key,
63
+ name,
64
+ pollingInterval,
65
+ transport,
66
+ type: 'publicClient',
67
+ }).extend(publicActions)
88
68
  }
@@ -1,8 +1,11 @@
1
+ import type { Account } from '../accounts/types.js'
2
+ import type { ParseAccount } from '../types/account.js'
1
3
  import type { Chain } from '../types/chain.js'
2
4
  import type { TestRpcSchema } from '../types/eip1193.js'
3
5
  import { type Client, type ClientConfig, createClient } from './createClient.js'
4
6
  import { type TestActions, testActions } from './decorators/test.js'
5
7
  import type { Transport } from './transports/createTransport.js'
8
+ import type { Address } from 'abitype'
6
9
 
7
10
  export type TestClientMode = 'anvil' | 'hardhat' | 'ganache'
8
11
 
@@ -10,9 +13,13 @@ export type TestClientConfig<
10
13
  TMode extends TestClientMode = TestClientMode,
11
14
  TTransport extends Transport = Transport,
12
15
  TChain extends Chain | undefined = Chain | undefined,
16
+ TAccountOrAddress extends Account | Address | undefined =
17
+ | Account
18
+ | Address
19
+ | undefined,
13
20
  > = Pick<
14
- ClientConfig<TTransport, TChain>,
15
- 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
21
+ ClientConfig<TTransport, TChain, TAccountOrAddress>,
22
+ 'account' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
16
23
  > & {
17
24
  /** Mode of the test client. Available: "anvil" | "hardhat" | "ganache" */
18
25
  mode: TMode
@@ -22,11 +29,17 @@ export type TestClient<
22
29
  TMode extends TestClientMode = TestClientMode,
23
30
  TTransport extends Transport = Transport,
24
31
  TChain extends Chain | undefined = Chain | undefined,
32
+ TAccount extends Account | undefined = Account | undefined,
25
33
  TIncludeActions extends boolean = true,
26
- > = Client<TTransport, TestRpcSchema<TMode>, TChain> &
27
- (TIncludeActions extends true ? TestActions : unknown) & {
28
- mode: TMode
29
- }
34
+ > = Client<
35
+ TTransport,
36
+ TChain,
37
+ TAccount,
38
+ TestRpcSchema<TMode>,
39
+ TIncludeActions extends true ? TestActions : Record<string, unknown>
40
+ > & {
41
+ mode: TMode
42
+ }
30
43
 
31
44
  /**
32
45
  * @description Creates a test client with a given transport.
@@ -55,32 +68,30 @@ export function createTestClient<
55
68
  TMode extends TestClientMode,
56
69
  TTransport extends Transport,
57
70
  TChain extends Chain | undefined = undefined,
71
+ TAccountOrAddress extends Account | Address | undefined = undefined,
58
72
  >({
73
+ account,
59
74
  chain,
60
75
  key = 'test',
61
76
  name = 'Test Client',
62
77
  mode,
63
78
  pollingInterval,
64
79
  transport,
65
- }: TestClientConfig<TMode, TTransport, TChain>): TestClient<
80
+ }: TestClientConfig<TMode, TTransport, TChain, TAccountOrAddress>): TestClient<
66
81
  TMode,
67
82
  TTransport,
68
83
  TChain,
69
- true
84
+ ParseAccount<TAccountOrAddress>
70
85
  > {
71
- const client = {
72
- ...createClient({
73
- chain,
74
- key,
75
- name,
76
- pollingInterval,
77
- transport,
78
- type: 'testClient',
79
- }),
80
- mode,
81
- } as TestClient<TMode, TTransport, TChain>
82
- return {
83
- ...client,
84
- ...testActions(client),
85
- }
86
+ return createClient({
87
+ account,
88
+ chain,
89
+ key,
90
+ name,
91
+ pollingInterval,
92
+ transport,
93
+ type: 'testClient',
94
+ })
95
+ .extend(() => ({ mode }))
96
+ .extend(testActions({ mode }))
86
97
  }
@@ -1,7 +1,7 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
- import type { Account, JsonRpcAccount } from '../accounts/types.js'
4
- import { parseAccount } from '../accounts/utils/parseAccount.js'
3
+ import type { Account } from '../accounts/types.js'
4
+ import type { ParseAccount } from '../types/account.js'
5
5
  import type { Chain } from '../types/chain.js'
6
6
  import type { WalletRpcSchema } from '../types/eip1193.js'
7
7
  import type { Prettify } from '../types/utils.js'
@@ -17,26 +17,22 @@ export type WalletClientConfig<
17
17
  | Address
18
18
  | undefined,
19
19
  > = Pick<
20
- ClientConfig<TTransport, TChain>,
21
- 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
22
- > & {
23
- /** The Account to use for the Wallet Client. This will be used for Actions that require an account as an argument. */
24
- account?: TAccountOrAddress
25
- }
20
+ ClientConfig<TTransport, TChain, TAccountOrAddress>,
21
+ 'account' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
22
+ >
26
23
 
27
24
  export type WalletClient<
28
25
  TTransport extends Transport = Transport,
29
26
  TChain extends Chain | undefined = Chain | undefined,
30
27
  TAccount extends Account | undefined = Account | undefined,
31
- TIncludeActions extends boolean = true,
32
28
  > = Prettify<
33
- Client<TTransport, WalletRpcSchema, TChain> &
34
- (TIncludeActions extends true
35
- ? WalletActions<TChain, TAccount>
36
- : unknown) & {
37
- /** The Account to use for the Wallet Client. */
38
- account: TAccount
39
- }
29
+ Client<
30
+ TTransport,
31
+ TChain,
32
+ TAccount,
33
+ WalletRpcSchema,
34
+ WalletActions<TChain, TAccount>
35
+ >
40
36
  >
41
37
 
42
38
  /**
@@ -89,30 +85,15 @@ export function createWalletClient<
89
85
  }: WalletClientConfig<TTransport, TChain, TAccountOrAddress>): WalletClient<
90
86
  TTransport,
91
87
  TChain,
92
- TAccountOrAddress extends Address
93
- ? Prettify<JsonRpcAccount<TAccountOrAddress>>
94
- : TAccountOrAddress,
95
- true
88
+ ParseAccount<TAccountOrAddress>
96
89
  > {
97
- const client = {
98
- ...createClient({
99
- chain,
100
- key,
101
- name,
102
- pollingInterval,
103
- transport: (opts) => transport({ ...opts, retryCount: 0 }),
104
- type: 'walletClient',
105
- }),
106
- account: account ? parseAccount(account) : undefined,
107
- } as WalletClient<
108
- TTransport,
109
- TChain,
110
- TAccountOrAddress extends Address
111
- ? JsonRpcAccount<TAccountOrAddress>
112
- : TAccountOrAddress
113
- >
114
- return {
115
- ...client,
116
- ...walletActions(client),
117
- }
90
+ return createClient({
91
+ account,
92
+ chain,
93
+ key,
94
+ name,
95
+ pollingInterval,
96
+ transport: (opts) => transport({ ...opts, retryCount: 0 }),
97
+ type: 'walletClient',
98
+ }).extend(walletActions)
118
99
  }