viem 0.3.0-tsc-nodenext-2.20230407T050527 → 0.4.0-main.20230412T020839

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 (624) hide show
  1. package/dist/cjs/accounts/generateMnemonic.js +0 -7
  2. package/dist/cjs/accounts/generateMnemonic.js.map +1 -1
  3. package/dist/cjs/accounts/generatePrivateKey.js +0 -5
  4. package/dist/cjs/accounts/generatePrivateKey.js.map +1 -1
  5. package/dist/cjs/accounts/hdKeyToAccount.js +0 -5
  6. package/dist/cjs/accounts/hdKeyToAccount.js.map +1 -1
  7. package/dist/cjs/accounts/mnemonicToAccount.js +0 -5
  8. package/dist/cjs/accounts/mnemonicToAccount.js.map +1 -1
  9. package/dist/cjs/accounts/privateKeyToAccount.js +0 -5
  10. package/dist/cjs/accounts/privateKeyToAccount.js.map +1 -1
  11. package/dist/cjs/accounts/toAccount.js +0 -5
  12. package/dist/cjs/accounts/toAccount.js.map +1 -1
  13. package/dist/cjs/accounts/utils/publicKeyToAddress.js +0 -7
  14. package/dist/cjs/accounts/utils/publicKeyToAddress.js.map +1 -1
  15. package/dist/cjs/accounts/utils/sign.js +0 -8
  16. package/dist/cjs/accounts/utils/sign.js.map +1 -1
  17. package/dist/cjs/accounts/utils/signMessage.js +0 -6
  18. package/dist/cjs/accounts/utils/signMessage.js.map +1 -1
  19. package/dist/cjs/accounts/utils/signTypedData.js +0 -6
  20. package/dist/cjs/accounts/utils/signTypedData.js.map +1 -1
  21. package/dist/cjs/actions/ens/getEnsAddress.js +0 -6
  22. package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
  23. package/dist/cjs/actions/ens/getEnsAvatar.js +0 -3
  24. package/dist/cjs/actions/ens/getEnsAvatar.js.map +1 -1
  25. package/dist/cjs/actions/ens/getEnsName.js +0 -12
  26. package/dist/cjs/actions/ens/getEnsName.js.map +1 -1
  27. package/dist/cjs/actions/ens/getEnsResolver.js +0 -3
  28. package/dist/cjs/actions/ens/getEnsResolver.js.map +1 -1
  29. package/dist/cjs/actions/ens/getEnsText.js +0 -15
  30. package/dist/cjs/actions/ens/getEnsText.js.map +1 -1
  31. package/dist/cjs/actions/getContract.js +0 -14
  32. package/dist/cjs/actions/getContract.js.map +1 -1
  33. package/dist/cjs/actions/public/call.js +0 -1
  34. package/dist/cjs/actions/public/call.js.map +1 -1
  35. package/dist/cjs/actions/public/createBlockFilter.js +5 -1
  36. package/dist/cjs/actions/public/createBlockFilter.js.map +1 -1
  37. package/dist/cjs/actions/public/createContractEventFilter.js +5 -0
  38. package/dist/cjs/actions/public/createContractEventFilter.js.map +1 -1
  39. package/dist/cjs/actions/public/createEventFilter.js +5 -0
  40. package/dist/cjs/actions/public/createEventFilter.js.map +1 -1
  41. package/dist/cjs/actions/public/createPendingTransactionFilter.js +5 -1
  42. package/dist/cjs/actions/public/createPendingTransactionFilter.js.map +1 -1
  43. package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
  44. package/dist/cjs/actions/public/estimateGas.js +0 -4
  45. package/dist/cjs/actions/public/estimateGas.js.map +1 -1
  46. package/dist/cjs/actions/public/getBalance.js +0 -3
  47. package/dist/cjs/actions/public/getBalance.js.map +1 -1
  48. package/dist/cjs/actions/public/getBlock.js.map +1 -1
  49. package/dist/cjs/actions/public/getBlockNumber.js +0 -3
  50. package/dist/cjs/actions/public/getBlockNumber.js.map +1 -1
  51. package/dist/cjs/actions/public/getBlockTransactionCount.js.map +1 -1
  52. package/dist/cjs/actions/public/getBytecode.js.map +1 -1
  53. package/dist/cjs/actions/public/getChainId.js.map +1 -1
  54. package/dist/cjs/actions/public/getFeeHistory.js +0 -3
  55. package/dist/cjs/actions/public/getFeeHistory.js.map +1 -1
  56. package/dist/cjs/actions/public/getFilterChanges.js +2 -3
  57. package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
  58. package/dist/cjs/actions/public/getFilterLogs.js +2 -3
  59. package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
  60. package/dist/cjs/actions/public/getGasPrice.js +0 -3
  61. package/dist/cjs/actions/public/getGasPrice.js.map +1 -1
  62. package/dist/cjs/actions/public/getLogs.js +0 -4
  63. package/dist/cjs/actions/public/getLogs.js.map +1 -1
  64. package/dist/cjs/actions/public/getStorageAt.js.map +1 -1
  65. package/dist/cjs/actions/public/getTransaction.js +0 -1
  66. package/dist/cjs/actions/public/getTransaction.js.map +1 -1
  67. package/dist/cjs/actions/public/getTransactionConfirmations.js.map +1 -1
  68. package/dist/cjs/actions/public/getTransactionCount.js +0 -3
  69. package/dist/cjs/actions/public/getTransactionCount.js.map +1 -1
  70. package/dist/cjs/actions/public/getTransactionReceipt.js.map +1 -1
  71. package/dist/cjs/actions/public/multicall.js +0 -1
  72. package/dist/cjs/actions/public/multicall.js.map +1 -1
  73. package/dist/cjs/actions/public/readContract.js.map +1 -1
  74. package/dist/cjs/actions/public/simulateContract.js.map +1 -1
  75. package/dist/cjs/actions/public/uninstallFilter.js +2 -2
  76. package/dist/cjs/actions/public/uninstallFilter.js.map +1 -1
  77. package/dist/cjs/actions/public/waitForTransactionReceipt.js +0 -11
  78. package/dist/cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
  79. package/dist/cjs/actions/public/watchBlockNumber.js +0 -7
  80. package/dist/cjs/actions/public/watchBlockNumber.js.map +1 -1
  81. package/dist/cjs/actions/public/watchBlocks.js +1 -13
  82. package/dist/cjs/actions/public/watchBlocks.js.map +1 -1
  83. package/dist/cjs/actions/public/watchContractEvent.js +0 -6
  84. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  85. package/dist/cjs/actions/public/watchEvent.js +0 -6
  86. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  87. package/dist/cjs/actions/public/watchPendingTransactions.js.map +1 -1
  88. package/dist/cjs/actions/wallet/deployContract.js.map +1 -1
  89. package/dist/cjs/actions/wallet/sendTransaction.js +0 -2
  90. package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
  91. package/dist/cjs/actions/wallet/signTypedData.js +0 -2
  92. package/dist/cjs/actions/wallet/signTypedData.js.map +1 -1
  93. package/dist/cjs/adapters/ethers.js +0 -5
  94. package/dist/cjs/adapters/ethers.js.map +1 -1
  95. package/dist/cjs/clients/createClient.js +0 -3
  96. package/dist/cjs/clients/createClient.js.map +1 -1
  97. package/dist/cjs/clients/createPublicClient.js +0 -3
  98. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  99. package/dist/cjs/clients/createTestClient.js +0 -3
  100. package/dist/cjs/clients/createTestClient.js.map +1 -1
  101. package/dist/cjs/clients/createWalletClient.js +0 -3
  102. package/dist/cjs/clients/createWalletClient.js.map +1 -1
  103. package/dist/cjs/clients/decorators/public.js.map +1 -1
  104. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  105. package/dist/cjs/clients/transports/createTransport.js +0 -3
  106. package/dist/cjs/clients/transports/createTransport.js.map +1 -1
  107. package/dist/cjs/clients/transports/custom.js +0 -3
  108. package/dist/cjs/clients/transports/custom.js.map +1 -1
  109. package/dist/cjs/clients/transports/fallback.js +18 -12
  110. package/dist/cjs/clients/transports/fallback.js.map +1 -1
  111. package/dist/cjs/clients/transports/http.js +1 -6
  112. package/dist/cjs/clients/transports/http.js.map +1 -1
  113. package/dist/cjs/clients/transports/webSocket.js +1 -6
  114. package/dist/cjs/clients/transports/webSocket.js.map +1 -1
  115. package/dist/cjs/constants/abis.js +0 -1
  116. package/dist/cjs/constants/abis.js.map +1 -1
  117. package/dist/cjs/constants/solidity.js +0 -1
  118. package/dist/cjs/constants/solidity.js.map +1 -1
  119. package/dist/cjs/errors/abi.js.map +1 -1
  120. package/dist/cjs/errors/account.js.map +1 -1
  121. package/dist/cjs/errors/address.js.map +1 -1
  122. package/dist/cjs/errors/base.js +27 -21
  123. package/dist/cjs/errors/base.js.map +1 -1
  124. package/dist/cjs/errors/block.js.map +1 -1
  125. package/dist/cjs/errors/chain.js.map +1 -1
  126. package/dist/cjs/errors/contract.js.map +1 -1
  127. package/dist/cjs/errors/data.js.map +1 -1
  128. package/dist/cjs/errors/encoding.js.map +1 -1
  129. package/dist/cjs/errors/ens.js.map +1 -1
  130. package/dist/cjs/errors/estimateGas.js.map +1 -1
  131. package/dist/cjs/errors/index.js +27 -23
  132. package/dist/cjs/errors/index.js.map +1 -1
  133. package/dist/cjs/errors/log.js.map +1 -1
  134. package/dist/cjs/errors/node.js +0 -9
  135. package/dist/cjs/errors/node.js.map +1 -1
  136. package/dist/cjs/errors/request.js +50 -259
  137. package/dist/cjs/errors/request.js.map +1 -1
  138. package/dist/cjs/errors/rpc.js +271 -50
  139. package/dist/cjs/errors/rpc.js.map +1 -1
  140. package/dist/cjs/errors/transaction.js.map +1 -1
  141. package/dist/cjs/errors/version.js +1 -1
  142. package/dist/cjs/errors/version.js.map +1 -1
  143. package/dist/cjs/index.js +9 -5
  144. package/dist/cjs/index.js.map +1 -1
  145. package/dist/cjs/types/eip1193.js +0 -2
  146. package/dist/cjs/types/eip1193.js.map +1 -1
  147. package/dist/cjs/utils/abi/decodeAbiParameters.js +0 -29
  148. package/dist/cjs/utils/abi/decodeAbiParameters.js.map +1 -1
  149. package/dist/cjs/utils/abi/decodeEventLog.js +0 -2
  150. package/dist/cjs/utils/abi/decodeEventLog.js.map +1 -1
  151. package/dist/cjs/utils/abi/encodeAbiParameters.js +1 -10
  152. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  153. package/dist/cjs/utils/abi/getAbiItem.js +0 -7
  154. package/dist/cjs/utils/abi/getAbiItem.js.map +1 -1
  155. package/dist/cjs/utils/accounts.js +0 -3
  156. package/dist/cjs/utils/accounts.js.map +1 -1
  157. package/dist/cjs/utils/buildRequest.js +16 -3
  158. package/dist/cjs/utils/buildRequest.js.map +1 -1
  159. package/dist/cjs/utils/data/size.js +0 -6
  160. package/dist/cjs/utils/data/size.js.map +1 -1
  161. package/dist/cjs/utils/data/slice.js +0 -21
  162. package/dist/cjs/utils/data/slice.js.map +1 -1
  163. package/dist/cjs/utils/encoding/fromBytes.js +0 -15
  164. package/dist/cjs/utils/encoding/fromBytes.js.map +1 -1
  165. package/dist/cjs/utils/encoding/fromHex.js +0 -15
  166. package/dist/cjs/utils/encoding/fromHex.js.map +1 -1
  167. package/dist/cjs/utils/encoding/toBytes.js +0 -13
  168. package/dist/cjs/utils/encoding/toBytes.js.map +1 -1
  169. package/dist/cjs/utils/encoding/toHex.js +0 -15
  170. package/dist/cjs/utils/encoding/toHex.js.map +1 -1
  171. package/dist/cjs/utils/ens/avatar/parseAvatarRecord.js +2 -6
  172. package/dist/cjs/utils/ens/avatar/parseAvatarRecord.js.map +1 -1
  173. package/dist/cjs/utils/ens/avatar/utils.js +0 -10
  174. package/dist/cjs/utils/ens/avatar/utils.js.map +1 -1
  175. package/dist/cjs/utils/ens/labelhash.js +0 -9
  176. package/dist/cjs/utils/ens/labelhash.js.map +1 -1
  177. package/dist/cjs/utils/ens/namehash.js +0 -12
  178. package/dist/cjs/utils/ens/namehash.js.map +1 -1
  179. package/dist/cjs/utils/ens/normalize.js +0 -10
  180. package/dist/cjs/utils/ens/normalize.js.map +1 -1
  181. package/dist/cjs/utils/ens/packetToBytes.js +0 -4
  182. package/dist/cjs/utils/ens/packetToBytes.js.map +1 -1
  183. package/dist/cjs/utils/errors/getNodeError.js +28 -27
  184. package/dist/cjs/utils/errors/getNodeError.js.map +1 -1
  185. package/dist/cjs/utils/filters/createFilterRequestScope.js +14 -0
  186. package/dist/cjs/utils/filters/createFilterRequestScope.js.map +1 -0
  187. package/dist/cjs/utils/formatters/block.js +0 -1
  188. package/dist/cjs/utils/formatters/block.js.map +1 -1
  189. package/dist/cjs/utils/formatters/extract.js +0 -3
  190. package/dist/cjs/utils/formatters/extract.js.map +1 -1
  191. package/dist/cjs/utils/formatters/format.js +0 -3
  192. package/dist/cjs/utils/formatters/format.js.map +1 -1
  193. package/dist/cjs/utils/observe.js +0 -5
  194. package/dist/cjs/utils/observe.js.map +1 -1
  195. package/dist/cjs/utils/poll.js +0 -3
  196. package/dist/cjs/utils/poll.js.map +1 -1
  197. package/dist/cjs/utils/promise/withCache.js +0 -13
  198. package/dist/cjs/utils/promise/withCache.js.map +1 -1
  199. package/dist/cjs/utils/regex.js +0 -4
  200. package/dist/cjs/utils/regex.js.map +1 -1
  201. package/dist/cjs/utils/rpc.js +3 -13
  202. package/dist/cjs/utils/rpc.js.map +1 -1
  203. package/dist/cjs/utils/signature/hashTypedData.js +0 -3
  204. package/dist/cjs/utils/signature/hashTypedData.js.map +1 -1
  205. package/dist/cjs/utils/signature/recoverAddress.js +0 -2
  206. package/dist/cjs/utils/signature/recoverAddress.js.map +1 -1
  207. package/dist/cjs/utils/transaction/prepareRequest.js +0 -4
  208. package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
  209. package/dist/cjs/utils/transaction/serializeTransaction.js +2 -4
  210. package/dist/cjs/utils/transaction/serializeTransaction.js.map +1 -1
  211. package/dist/cjs/utils/typedData.js +0 -4
  212. package/dist/cjs/utils/typedData.js.map +1 -1
  213. package/dist/cjs/utils/unit/parseUnits.js +0 -2
  214. package/dist/cjs/utils/unit/parseUnits.js.map +1 -1
  215. package/dist/esm/accounts/generateMnemonic.js +0 -7
  216. package/dist/esm/accounts/generateMnemonic.js.map +1 -1
  217. package/dist/esm/accounts/generatePrivateKey.js +0 -5
  218. package/dist/esm/accounts/generatePrivateKey.js.map +1 -1
  219. package/dist/esm/accounts/hdKeyToAccount.js +0 -5
  220. package/dist/esm/accounts/hdKeyToAccount.js.map +1 -1
  221. package/dist/esm/accounts/mnemonicToAccount.js +0 -5
  222. package/dist/esm/accounts/mnemonicToAccount.js.map +1 -1
  223. package/dist/esm/accounts/privateKeyToAccount.js +0 -5
  224. package/dist/esm/accounts/privateKeyToAccount.js.map +1 -1
  225. package/dist/esm/accounts/toAccount.js +0 -5
  226. package/dist/esm/accounts/toAccount.js.map +1 -1
  227. package/dist/esm/accounts/utils/publicKeyToAddress.js +0 -7
  228. package/dist/esm/accounts/utils/publicKeyToAddress.js.map +1 -1
  229. package/dist/esm/accounts/utils/sign.js +0 -8
  230. package/dist/esm/accounts/utils/sign.js.map +1 -1
  231. package/dist/esm/accounts/utils/signMessage.js +0 -6
  232. package/dist/esm/accounts/utils/signMessage.js.map +1 -1
  233. package/dist/esm/accounts/utils/signTypedData.js +0 -6
  234. package/dist/esm/accounts/utils/signTypedData.js.map +1 -1
  235. package/dist/esm/actions/ens/getEnsAddress.js +0 -6
  236. package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
  237. package/dist/esm/actions/ens/getEnsAvatar.js +0 -3
  238. package/dist/esm/actions/ens/getEnsAvatar.js.map +1 -1
  239. package/dist/esm/actions/ens/getEnsName.js +0 -12
  240. package/dist/esm/actions/ens/getEnsName.js.map +1 -1
  241. package/dist/esm/actions/ens/getEnsResolver.js +0 -3
  242. package/dist/esm/actions/ens/getEnsResolver.js.map +1 -1
  243. package/dist/esm/actions/ens/getEnsText.js +0 -15
  244. package/dist/esm/actions/ens/getEnsText.js.map +1 -1
  245. package/dist/esm/actions/getContract.js +0 -14
  246. package/dist/esm/actions/getContract.js.map +1 -1
  247. package/dist/esm/actions/public/call.js +0 -1
  248. package/dist/esm/actions/public/call.js.map +1 -1
  249. package/dist/esm/actions/public/createBlockFilter.js +5 -1
  250. package/dist/esm/actions/public/createBlockFilter.js.map +1 -1
  251. package/dist/esm/actions/public/createContractEventFilter.js +5 -0
  252. package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
  253. package/dist/esm/actions/public/createEventFilter.js +5 -0
  254. package/dist/esm/actions/public/createEventFilter.js.map +1 -1
  255. package/dist/esm/actions/public/createPendingTransactionFilter.js +5 -1
  256. package/dist/esm/actions/public/createPendingTransactionFilter.js.map +1 -1
  257. package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
  258. package/dist/esm/actions/public/estimateGas.js +0 -4
  259. package/dist/esm/actions/public/estimateGas.js.map +1 -1
  260. package/dist/esm/actions/public/getBalance.js +0 -3
  261. package/dist/esm/actions/public/getBalance.js.map +1 -1
  262. package/dist/esm/actions/public/getBlock.js.map +1 -1
  263. package/dist/esm/actions/public/getBlockNumber.js +0 -3
  264. package/dist/esm/actions/public/getBlockNumber.js.map +1 -1
  265. package/dist/esm/actions/public/getBlockTransactionCount.js.map +1 -1
  266. package/dist/esm/actions/public/getBytecode.js.map +1 -1
  267. package/dist/esm/actions/public/getChainId.js.map +1 -1
  268. package/dist/esm/actions/public/getFeeHistory.js +0 -3
  269. package/dist/esm/actions/public/getFeeHistory.js.map +1 -1
  270. package/dist/esm/actions/public/getFilterChanges.js +2 -3
  271. package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
  272. package/dist/esm/actions/public/getFilterLogs.js +2 -3
  273. package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
  274. package/dist/esm/actions/public/getGasPrice.js +0 -3
  275. package/dist/esm/actions/public/getGasPrice.js.map +1 -1
  276. package/dist/esm/actions/public/getLogs.js +0 -4
  277. package/dist/esm/actions/public/getLogs.js.map +1 -1
  278. package/dist/esm/actions/public/getStorageAt.js.map +1 -1
  279. package/dist/esm/actions/public/getTransaction.js +0 -1
  280. package/dist/esm/actions/public/getTransaction.js.map +1 -1
  281. package/dist/esm/actions/public/getTransactionConfirmations.js.map +1 -1
  282. package/dist/esm/actions/public/getTransactionCount.js +0 -3
  283. package/dist/esm/actions/public/getTransactionCount.js.map +1 -1
  284. package/dist/esm/actions/public/getTransactionReceipt.js.map +1 -1
  285. package/dist/esm/actions/public/multicall.js +0 -1
  286. package/dist/esm/actions/public/multicall.js.map +1 -1
  287. package/dist/esm/actions/public/readContract.js.map +1 -1
  288. package/dist/esm/actions/public/simulateContract.js.map +1 -1
  289. package/dist/esm/actions/public/uninstallFilter.js +2 -2
  290. package/dist/esm/actions/public/uninstallFilter.js.map +1 -1
  291. package/dist/esm/actions/public/waitForTransactionReceipt.js +0 -11
  292. package/dist/esm/actions/public/waitForTransactionReceipt.js.map +1 -1
  293. package/dist/esm/actions/public/watchBlockNumber.js +0 -7
  294. package/dist/esm/actions/public/watchBlockNumber.js.map +1 -1
  295. package/dist/esm/actions/public/watchBlocks.js +1 -13
  296. package/dist/esm/actions/public/watchBlocks.js.map +1 -1
  297. package/dist/esm/actions/public/watchContractEvent.js +0 -6
  298. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  299. package/dist/esm/actions/public/watchEvent.js +0 -6
  300. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  301. package/dist/esm/actions/public/watchPendingTransactions.js.map +1 -1
  302. package/dist/esm/actions/wallet/deployContract.js.map +1 -1
  303. package/dist/esm/actions/wallet/sendTransaction.js +0 -2
  304. package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
  305. package/dist/esm/actions/wallet/signTypedData.js +0 -2
  306. package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
  307. package/dist/esm/adapters/ethers.js +0 -5
  308. package/dist/esm/adapters/ethers.js.map +1 -1
  309. package/dist/esm/clients/createClient.js +0 -3
  310. package/dist/esm/clients/createClient.js.map +1 -1
  311. package/dist/esm/clients/createPublicClient.js +0 -3
  312. package/dist/esm/clients/createPublicClient.js.map +1 -1
  313. package/dist/esm/clients/createTestClient.js +0 -3
  314. package/dist/esm/clients/createTestClient.js.map +1 -1
  315. package/dist/esm/clients/createWalletClient.js +0 -3
  316. package/dist/esm/clients/createWalletClient.js.map +1 -1
  317. package/dist/esm/clients/decorators/public.js.map +1 -1
  318. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  319. package/dist/esm/clients/transports/createTransport.js +0 -3
  320. package/dist/esm/clients/transports/createTransport.js.map +1 -1
  321. package/dist/esm/clients/transports/custom.js +0 -3
  322. package/dist/esm/clients/transports/custom.js.map +1 -1
  323. package/dist/esm/clients/transports/fallback.js +18 -12
  324. package/dist/esm/clients/transports/fallback.js.map +1 -1
  325. package/dist/esm/clients/transports/http.js +1 -6
  326. package/dist/esm/clients/transports/http.js.map +1 -1
  327. package/dist/esm/clients/transports/webSocket.js +1 -6
  328. package/dist/esm/clients/transports/webSocket.js.map +1 -1
  329. package/dist/esm/constants/abis.js +0 -1
  330. package/dist/esm/constants/abis.js.map +1 -1
  331. package/dist/esm/constants/solidity.js +0 -1
  332. package/dist/esm/constants/solidity.js.map +1 -1
  333. package/dist/esm/errors/abi.js.map +1 -1
  334. package/dist/esm/errors/account.js.map +1 -1
  335. package/dist/esm/errors/address.js.map +1 -1
  336. package/dist/esm/errors/base.js +27 -21
  337. package/dist/esm/errors/base.js.map +1 -1
  338. package/dist/esm/errors/block.js.map +1 -1
  339. package/dist/esm/errors/chain.js.map +1 -1
  340. package/dist/esm/errors/contract.js.map +1 -1
  341. package/dist/esm/errors/data.js.map +1 -1
  342. package/dist/esm/errors/encoding.js.map +1 -1
  343. package/dist/esm/errors/ens.js.map +1 -1
  344. package/dist/esm/errors/estimateGas.js.map +1 -1
  345. package/dist/esm/errors/index.js +4 -4
  346. package/dist/esm/errors/index.js.map +1 -1
  347. package/dist/esm/errors/log.js.map +1 -1
  348. package/dist/esm/errors/node.js +0 -9
  349. package/dist/esm/errors/node.js.map +1 -1
  350. package/dist/esm/errors/request.js +45 -241
  351. package/dist/esm/errors/request.js.map +1 -1
  352. package/dist/esm/errors/rpc.js +249 -45
  353. package/dist/esm/errors/rpc.js.map +1 -1
  354. package/dist/esm/errors/transaction.js.map +1 -1
  355. package/dist/esm/errors/version.js +1 -1
  356. package/dist/esm/errors/version.js.map +1 -1
  357. package/dist/esm/index.js +1 -1
  358. package/dist/esm/index.js.map +1 -1
  359. package/dist/esm/types/eip1193.js +0 -2
  360. package/dist/esm/types/eip1193.js.map +1 -1
  361. package/dist/esm/utils/abi/decodeAbiParameters.js +0 -29
  362. package/dist/esm/utils/abi/decodeAbiParameters.js.map +1 -1
  363. package/dist/esm/utils/abi/decodeEventLog.js +0 -2
  364. package/dist/esm/utils/abi/decodeEventLog.js.map +1 -1
  365. package/dist/esm/utils/abi/encodeAbiParameters.js +1 -10
  366. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  367. package/dist/esm/utils/abi/getAbiItem.js +0 -7
  368. package/dist/esm/utils/abi/getAbiItem.js.map +1 -1
  369. package/dist/esm/utils/accounts.js +0 -3
  370. package/dist/esm/utils/accounts.js.map +1 -1
  371. package/dist/esm/utils/buildRequest.js +16 -3
  372. package/dist/esm/utils/buildRequest.js.map +1 -1
  373. package/dist/esm/utils/data/size.js +0 -6
  374. package/dist/esm/utils/data/size.js.map +1 -1
  375. package/dist/esm/utils/data/slice.js +0 -21
  376. package/dist/esm/utils/data/slice.js.map +1 -1
  377. package/dist/esm/utils/encoding/fromBytes.js +0 -15
  378. package/dist/esm/utils/encoding/fromBytes.js.map +1 -1
  379. package/dist/esm/utils/encoding/fromHex.js +0 -15
  380. package/dist/esm/utils/encoding/fromHex.js.map +1 -1
  381. package/dist/esm/utils/encoding/toBytes.js +0 -13
  382. package/dist/esm/utils/encoding/toBytes.js.map +1 -1
  383. package/dist/esm/utils/encoding/toHex.js +0 -15
  384. package/dist/esm/utils/encoding/toHex.js.map +1 -1
  385. package/dist/esm/utils/ens/avatar/parseAvatarRecord.js +2 -6
  386. package/dist/esm/utils/ens/avatar/parseAvatarRecord.js.map +1 -1
  387. package/dist/esm/utils/ens/avatar/utils.js +0 -10
  388. package/dist/esm/utils/ens/avatar/utils.js.map +1 -1
  389. package/dist/esm/utils/ens/labelhash.js +0 -9
  390. package/dist/esm/utils/ens/labelhash.js.map +1 -1
  391. package/dist/esm/utils/ens/namehash.js +0 -12
  392. package/dist/esm/utils/ens/namehash.js.map +1 -1
  393. package/dist/esm/utils/ens/normalize.js +0 -10
  394. package/dist/esm/utils/ens/normalize.js.map +1 -1
  395. package/dist/esm/utils/ens/packetToBytes.js +0 -4
  396. package/dist/esm/utils/ens/packetToBytes.js.map +1 -1
  397. package/dist/esm/utils/errors/getNodeError.js +3 -2
  398. package/dist/esm/utils/errors/getNodeError.js.map +1 -1
  399. package/dist/esm/utils/filters/createFilterRequestScope.js +10 -0
  400. package/dist/esm/utils/filters/createFilterRequestScope.js.map +1 -0
  401. package/dist/esm/utils/formatters/block.js +0 -1
  402. package/dist/esm/utils/formatters/block.js.map +1 -1
  403. package/dist/esm/utils/formatters/extract.js +0 -3
  404. package/dist/esm/utils/formatters/extract.js.map +1 -1
  405. package/dist/esm/utils/formatters/format.js +0 -3
  406. package/dist/esm/utils/formatters/format.js.map +1 -1
  407. package/dist/esm/utils/observe.js +0 -5
  408. package/dist/esm/utils/observe.js.map +1 -1
  409. package/dist/esm/utils/poll.js +0 -3
  410. package/dist/esm/utils/poll.js.map +1 -1
  411. package/dist/esm/utils/promise/withCache.js +0 -13
  412. package/dist/esm/utils/promise/withCache.js.map +1 -1
  413. package/dist/esm/utils/regex.js +0 -4
  414. package/dist/esm/utils/regex.js.map +1 -1
  415. package/dist/esm/utils/rpc.js +4 -14
  416. package/dist/esm/utils/rpc.js.map +1 -1
  417. package/dist/esm/utils/signature/hashTypedData.js +0 -3
  418. package/dist/esm/utils/signature/hashTypedData.js.map +1 -1
  419. package/dist/esm/utils/signature/recoverAddress.js +0 -2
  420. package/dist/esm/utils/signature/recoverAddress.js.map +1 -1
  421. package/dist/esm/utils/transaction/prepareRequest.js +0 -4
  422. package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
  423. package/dist/esm/utils/transaction/serializeTransaction.js +2 -4
  424. package/dist/esm/utils/transaction/serializeTransaction.js.map +1 -1
  425. package/dist/esm/utils/typedData.js +0 -4
  426. package/dist/esm/utils/typedData.js.map +1 -1
  427. package/dist/esm/utils/unit/parseUnits.js +0 -2
  428. package/dist/esm/utils/unit/parseUnits.js.map +1 -1
  429. package/dist/types/actions/ens/getEnsAddress.d.ts +28 -5
  430. package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
  431. package/dist/types/actions/ens/getEnsAvatar.d.ts +28 -2
  432. package/dist/types/actions/ens/getEnsAvatar.d.ts.map +1 -1
  433. package/dist/types/actions/ens/getEnsName.d.ts +19 -3
  434. package/dist/types/actions/ens/getEnsName.d.ts.map +1 -1
  435. package/dist/types/actions/ens/getEnsResolver.d.ts +29 -3
  436. package/dist/types/actions/ens/getEnsResolver.d.ts.map +1 -1
  437. package/dist/types/actions/ens/getEnsText.d.ts +22 -7
  438. package/dist/types/actions/ens/getEnsText.d.ts.map +1 -1
  439. package/dist/types/actions/getContract.d.ts +42 -3
  440. package/dist/types/actions/getContract.d.ts.map +1 -1
  441. package/dist/types/actions/public/call.d.ts +29 -1
  442. package/dist/types/actions/public/call.d.ts.map +1 -1
  443. package/dist/types/actions/public/createBlockFilter.d.ts +21 -0
  444. package/dist/types/actions/public/createBlockFilter.d.ts.map +1 -1
  445. package/dist/types/actions/public/createContractEventFilter.d.ts +22 -0
  446. package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
  447. package/dist/types/actions/public/createEventFilter.d.ts +23 -0
  448. package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
  449. package/dist/types/actions/public/createPendingTransactionFilter.d.ts +21 -0
  450. package/dist/types/actions/public/createPendingTransactionFilter.d.ts.map +1 -1
  451. package/dist/types/actions/public/estimateContractGas.d.ts +28 -0
  452. package/dist/types/actions/public/estimateContractGas.d.ts.map +1 -1
  453. package/dist/types/actions/public/estimateGas.d.ts +27 -2
  454. package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
  455. package/dist/types/actions/public/getBalance.d.ts +34 -1
  456. package/dist/types/actions/public/getBalance.d.ts.map +1 -1
  457. package/dist/types/actions/public/getBlock.d.ts +28 -1
  458. package/dist/types/actions/public/getBlock.d.ts.map +1 -1
  459. package/dist/types/actions/public/getBlockNumber.d.ts +21 -1
  460. package/dist/types/actions/public/getBlockNumber.d.ts.map +1 -1
  461. package/dist/types/actions/public/getBlockTransactionCount.d.ts +23 -0
  462. package/dist/types/actions/public/getBlockTransactionCount.d.ts.map +1 -1
  463. package/dist/types/actions/public/getBytecode.d.ts +23 -0
  464. package/dist/types/actions/public/getBytecode.d.ts.map +1 -1
  465. package/dist/types/actions/public/getChainId.d.ts +21 -0
  466. package/dist/types/actions/public/getChainId.d.ts.map +1 -1
  467. package/dist/types/actions/public/getFeeHistory.d.ts +33 -1
  468. package/dist/types/actions/public/getFeeHistory.d.ts.map +1 -1
  469. package/dist/types/actions/public/getFilterChanges.d.ts +84 -1
  470. package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
  471. package/dist/types/actions/public/getFilterLogs.d.ts +29 -1
  472. package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
  473. package/dist/types/actions/public/getGasPrice.d.ts +18 -1
  474. package/dist/types/actions/public/getGasPrice.d.ts.map +1 -1
  475. package/dist/types/actions/public/getLogs.d.ts +20 -1
  476. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  477. package/dist/types/actions/public/getStorageAt.d.ts +24 -0
  478. package/dist/types/actions/public/getStorageAt.d.ts.map +1 -1
  479. package/dist/types/actions/public/getTransaction.d.ts +24 -1
  480. package/dist/types/actions/public/getTransaction.d.ts.map +1 -1
  481. package/dist/types/actions/public/getTransactionConfirmations.d.ts +24 -0
  482. package/dist/types/actions/public/getTransactionConfirmations.d.ts.map +1 -1
  483. package/dist/types/actions/public/getTransactionCount.d.ts +21 -1
  484. package/dist/types/actions/public/getTransactionCount.d.ts.map +1 -1
  485. package/dist/types/actions/public/getTransactionReceipt.d.ts +24 -0
  486. package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
  487. package/dist/types/actions/public/multicall.d.ts +39 -0
  488. package/dist/types/actions/public/multicall.d.ts.map +1 -1
  489. package/dist/types/actions/public/readContract.d.ts +32 -0
  490. package/dist/types/actions/public/readContract.d.ts.map +1 -1
  491. package/dist/types/actions/public/simulateContract.d.ts +32 -0
  492. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  493. package/dist/types/actions/public/uninstallFilter.d.ts +26 -1
  494. package/dist/types/actions/public/uninstallFilter.d.ts.map +1 -1
  495. package/dist/types/actions/public/waitForTransactionReceipt.d.ts +48 -2
  496. package/dist/types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
  497. package/dist/types/actions/public/watchBlockNumber.d.ts +25 -1
  498. package/dist/types/actions/public/watchBlockNumber.d.ts.map +1 -1
  499. package/dist/types/actions/public/watchBlocks.d.ts +24 -2
  500. package/dist/types/actions/public/watchBlocks.d.ts.map +1 -1
  501. package/dist/types/actions/public/watchContractEvent.d.ts +31 -0
  502. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  503. package/dist/types/actions/public/watchEvent.d.ts +37 -1
  504. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  505. package/dist/types/actions/public/watchPendingTransactions.d.ts +47 -4
  506. package/dist/types/actions/public/watchPendingTransactions.d.ts.map +1 -1
  507. package/dist/types/actions/wallet/deployContract.d.ts +27 -0
  508. package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
  509. package/dist/types/clients/decorators/public.d.ts +996 -1
  510. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  511. package/dist/types/clients/decorators/wallet.d.ts +25 -0
  512. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  513. package/dist/types/clients/transports/fallback.d.ts +14 -0
  514. package/dist/types/clients/transports/fallback.d.ts.map +1 -1
  515. package/dist/types/errors/abi.d.ts.map +1 -1
  516. package/dist/types/errors/account.d.ts.map +1 -1
  517. package/dist/types/errors/address.d.ts.map +1 -1
  518. package/dist/types/errors/base.d.ts +1 -0
  519. package/dist/types/errors/base.d.ts.map +1 -1
  520. package/dist/types/errors/block.d.ts.map +1 -1
  521. package/dist/types/errors/chain.d.ts.map +1 -1
  522. package/dist/types/errors/contract.d.ts.map +1 -1
  523. package/dist/types/errors/data.d.ts.map +1 -1
  524. package/dist/types/errors/encoding.d.ts.map +1 -1
  525. package/dist/types/errors/ens.d.ts.map +1 -1
  526. package/dist/types/errors/estimateGas.d.ts.map +1 -1
  527. package/dist/types/errors/index.d.ts +4 -4
  528. package/dist/types/errors/index.d.ts.map +1 -1
  529. package/dist/types/errors/log.d.ts.map +1 -1
  530. package/dist/types/errors/node.d.ts.map +1 -1
  531. package/dist/types/errors/request.d.ts +42 -80
  532. package/dist/types/errors/request.d.ts.map +1 -1
  533. package/dist/types/errors/rpc.d.ts +189 -43
  534. package/dist/types/errors/rpc.d.ts.map +1 -1
  535. package/dist/types/errors/transaction.d.ts.map +1 -1
  536. package/dist/types/errors/version.d.ts +1 -1
  537. package/dist/types/errors/version.d.ts.map +1 -1
  538. package/dist/types/index.d.ts +2 -2
  539. package/dist/types/index.d.ts.map +1 -1
  540. package/dist/types/types/eip1193.d.ts +2 -1
  541. package/dist/types/types/eip1193.d.ts.map +1 -1
  542. package/dist/types/types/filter.d.ts +2 -0
  543. package/dist/types/types/filter.d.ts.map +1 -1
  544. package/dist/types/types/index.d.ts +1 -0
  545. package/dist/types/types/index.d.ts.map +1 -1
  546. package/dist/types/types/window.d.ts +2 -4
  547. package/dist/types/types/window.d.ts.map +1 -1
  548. package/dist/types/utils/buildRequest.d.ts.map +1 -1
  549. package/dist/types/utils/errors/getNodeError.d.ts +1 -1
  550. package/dist/types/utils/errors/getNodeError.d.ts.map +1 -1
  551. package/dist/types/utils/filters/createFilterRequestScope.d.ts +16 -0
  552. package/dist/types/utils/filters/createFilterRequestScope.d.ts.map +1 -0
  553. package/dist/types/utils/rpc.d.ts.map +1 -1
  554. package/package.json +1 -1
  555. package/src/actions/ens/getEnsAddress.ts +28 -5
  556. package/src/actions/ens/getEnsAvatar.ts +28 -2
  557. package/src/actions/ens/getEnsName.ts +19 -3
  558. package/src/actions/ens/getEnsResolver.ts +29 -3
  559. package/src/actions/ens/getEnsText.ts +22 -7
  560. package/src/actions/getContract.ts +42 -3
  561. package/src/actions/public/call.ts +29 -1
  562. package/src/actions/public/createBlockFilter.ts +26 -1
  563. package/src/actions/public/createContractEventFilter.ts +28 -0
  564. package/src/actions/public/createEventFilter.ts +30 -0
  565. package/src/actions/public/createPendingTransactionFilter.ts +26 -1
  566. package/src/actions/public/estimateContractGas.ts +28 -0
  567. package/src/actions/public/estimateGas.ts +27 -2
  568. package/src/actions/public/getBalance.ts +34 -1
  569. package/src/actions/public/getBlock.ts +28 -1
  570. package/src/actions/public/getBlockNumber.ts +21 -1
  571. package/src/actions/public/getBlockTransactionCount.ts +23 -0
  572. package/src/actions/public/getBytecode.ts +23 -0
  573. package/src/actions/public/getChainId.ts +21 -0
  574. package/src/actions/public/getFeeHistory.ts +33 -1
  575. package/src/actions/public/getFilterChanges.ts +85 -2
  576. package/src/actions/public/getFilterLogs.ts +30 -2
  577. package/src/actions/public/getGasPrice.ts +18 -1
  578. package/src/actions/public/getLogs.ts +20 -1
  579. package/src/actions/public/getStorageAt.ts +24 -0
  580. package/src/actions/public/getTransaction.ts +24 -1
  581. package/src/actions/public/getTransactionConfirmations.ts +24 -0
  582. package/src/actions/public/getTransactionCount.ts +21 -1
  583. package/src/actions/public/getTransactionReceipt.ts +24 -0
  584. package/src/actions/public/multicall.ts +39 -0
  585. package/src/actions/public/readContract.ts +32 -0
  586. package/src/actions/public/simulateContract.ts +32 -0
  587. package/src/actions/public/uninstallFilter.ts +27 -2
  588. package/src/actions/public/waitForTransactionReceipt.ts +48 -2
  589. package/src/actions/public/watchBlockNumber.ts +25 -1
  590. package/src/actions/public/watchBlocks.ts +24 -2
  591. package/src/actions/public/watchContractEvent.ts +31 -0
  592. package/src/actions/public/watchEvent.ts +37 -1
  593. package/src/actions/public/watchPendingTransactions.ts +49 -4
  594. package/src/actions/wallet/deployContract.ts +27 -0
  595. package/src/clients/decorators/public.ts +996 -1
  596. package/src/clients/decorators/wallet.ts +25 -0
  597. package/src/clients/transports/fallback.ts +46 -2
  598. package/src/errors/abi.ts +25 -25
  599. package/src/errors/account.ts +1 -1
  600. package/src/errors/address.ts +1 -1
  601. package/src/errors/base.ts +7 -5
  602. package/src/errors/block.ts +1 -1
  603. package/src/errors/chain.ts +4 -4
  604. package/src/errors/contract.ts +7 -7
  605. package/src/errors/data.ts +1 -1
  606. package/src/errors/encoding.ts +7 -7
  607. package/src/errors/ens.ts +4 -4
  608. package/src/errors/estimateGas.ts +2 -2
  609. package/src/errors/index.ts +15 -11
  610. package/src/errors/log.ts +1 -1
  611. package/src/errors/node.ts +12 -12
  612. package/src/errors/request.ts +82 -175
  613. package/src/errors/rpc.ts +355 -89
  614. package/src/errors/transaction.ts +11 -11
  615. package/src/errors/version.ts +1 -1
  616. package/src/index.ts +6 -1
  617. package/src/types/eip1193.ts +6 -1
  618. package/src/types/filter.ts +3 -0
  619. package/src/types/index.ts +2 -0
  620. package/src/types/window.ts +2 -4
  621. package/src/utils/buildRequest.ts +19 -1
  622. package/src/utils/errors/getNodeError.ts +2 -3
  623. package/src/utils/filters/createFilterRequestScope.ts +42 -0
  624. package/src/utils/rpc.ts +6 -4
@@ -17,9 +17,9 @@ import type { ReadContractParameters } from '../public/index.js'
17
17
 
18
18
  export type GetEnsAddressParameters = Prettify<
19
19
  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
20
- /** ENS name to get address. */
20
+ /** Name to get the address for. */
21
21
  name: string
22
- /** Address of ENS Universal Resolver Contract */
22
+ /** Address of ENS Universal Resolver Contract. */
23
23
  universalResolverAddress?: Address
24
24
  }
25
25
  >
@@ -27,10 +27,33 @@ export type GetEnsAddressParameters = Prettify<
27
27
  export type GetEnsAddressReturnType = Address | null
28
28
 
29
29
  /**
30
- * @description Gets address for ENS name.
30
+ * Gets address for ENS name.
31
31
  *
32
- * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
33
- * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
32
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress.html
33
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
34
+ *
35
+ * @remarks
36
+ * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
37
+ *
38
+ * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
39
+ *
40
+ * @param client - Client to use
41
+ * @param parameters - {@link GetEnsAddressParameters}
42
+ * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}
43
+ *
44
+ * @example
45
+ * import { createPublicClient, http } from 'viem'
46
+ * import { mainnet } from 'viem/chains'
47
+ * import { getEnsAddress, normalize } from 'viem/ens'
48
+ *
49
+ * const client = createPublicClient({
50
+ * chain: mainnet,
51
+ * transport: http(),
52
+ * })
53
+ * const ensAddress = await getEnsAddress(client, {
54
+ * name: normalize('wagmi-dev.eth'),
55
+ * })
56
+ * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
34
57
  */
35
58
  export async function getEnsAddress<TChain extends Chain | undefined,>(
36
59
  client: PublicClient<Transport, TChain>,
@@ -6,7 +6,7 @@ import type { GetEnsTextParameters } from './getEnsText.js'
6
6
 
7
7
  export type GetEnsAvatarParameters = Prettify<
8
8
  Omit<GetEnsTextParameters, 'key'> & {
9
- /** Custom gateways to use */
9
+ /** Gateway urls to resolve IPFS and/or Arweave assets. */
10
10
  gatewayUrls?: AssetGatewayUrls
11
11
  }
12
12
  >
@@ -14,7 +14,33 @@ export type GetEnsAvatarParameters = Prettify<
14
14
  export type GetEnsAvatarReturnType = string | null
15
15
 
16
16
  /**
17
- * @description Gets avatar URI for ENS name.
17
+ * Gets the avatar of an ENS name.
18
+ *
19
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar.html
20
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
21
+ *
22
+ * @remarks
23
+ * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText.html) with `key` set to `'avatar'`.
24
+ *
25
+ * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
26
+ *
27
+ * @param client - Client to use
28
+ * @param parameters - {@link GetEnsAvatarParameters}
29
+ * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}
30
+ *
31
+ * @example
32
+ * import { createPublicClient, http } from 'viem'
33
+ * import { mainnet } from 'viem/chains'
34
+ * import { getEnsAvatar, normalize } from 'viem/ens'
35
+ *
36
+ * const client = createPublicClient({
37
+ * chain: mainnet,
38
+ * transport: http(),
39
+ * })
40
+ * const ensAvatar = await getEnsAvatar(client, {
41
+ * name: normalize('wagmi-dev.eth'),
42
+ * })
43
+ * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'
18
44
  */
19
45
  export async function getEnsAvatar<TChain extends Chain | undefined>(
20
46
  client: PublicClient<Transport, TChain>,
@@ -20,12 +20,28 @@ export type GetEnsNameParameters = Prettify<
20
20
  export type GetEnsNameReturnType = string | null
21
21
 
22
22
  /**
23
- * @description Gets primary name for specified address.
23
+ * Gets primary name for specified address.
24
24
  *
25
- * - Calls `reverse(bytes)` on ENS Universal Resolver Contract.
25
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsName.html
26
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
27
+ *
28
+ * @remarks
29
+ * Calls `reverse(bytes)` on ENS Universal Resolver Contract to "reverse resolve" the address to the primary ENS name.
30
+ *
31
+ * @param client - Client to use
32
+ * @param parameters - {@link GetEnsNameParameters}
33
+ * @returns Name or `null` if not found. {@link GetEnsNameReturnType}
26
34
  *
27
35
  * @example
28
- * const ensName = await getEnsName(publicClient, {
36
+ * import { createPublicClient, http } from 'viem'
37
+ * import { mainnet } from 'viem/chains'
38
+ * import { getEnsName } from 'viem/ens'
39
+ *
40
+ * const client = createPublicClient({
41
+ * chain: mainnet,
42
+ * transport: http(),
43
+ * })
44
+ * const ensName = await getEnsName(client, {
29
45
  * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
30
46
  * })
31
47
  * // 'wagmi-dev.eth'
@@ -7,9 +7,9 @@ import type { ReadContractParameters } from '../public/index.js'
7
7
 
8
8
  export type GetEnsResolverParameters = Prettify<
9
9
  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
10
- /** ENS name to get resolver. */
10
+ /** Name to get the address for. */
11
11
  name: string
12
- /** Address of ENS Universal Resolver Contract */
12
+ /** Address of ENS Universal Resolver Contract. */
13
13
  universalResolverAddress?: Address
14
14
  }
15
15
  >
@@ -17,7 +17,33 @@ export type GetEnsResolverParameters = Prettify<
17
17
  export type GetEnsResolverReturnType = Address
18
18
 
19
19
  /**
20
- * @description Gets resolver for ENS name.
20
+ * Gets resolver for ENS name.
21
+ *
22
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html
23
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
24
+ *
25
+ * @remarks
26
+ * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.
27
+ *
28
+ * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
29
+ *
30
+ * @param client - Client to use
31
+ * @param parameters - {@link GetEnsResolverParameters}
32
+ * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}
33
+ *
34
+ * @example
35
+ * import { createPublicClient, http } from 'viem'
36
+ * import { mainnet } from 'viem/chains'
37
+ * import { getEnsResolver, normalize } from 'viem/ens'
38
+ *
39
+ * const client = createPublicClient({
40
+ * chain: mainnet,
41
+ * transport: http(),
42
+ * })
43
+ * const resolverAddress = await getEnsResolver(client, {
44
+ * name: normalize('wagmi-dev.eth'),
45
+ * })
46
+ * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'
21
47
  */
22
48
  export async function getEnsResolver<TChain extends Chain | undefined>(
23
49
  client: PublicClient<Transport, TChain>,
@@ -13,9 +13,9 @@ import type { ReadContractParameters } from '../public/index.js'
13
13
 
14
14
  export type GetEnsTextParameters = Prettify<
15
15
  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
16
- /** ENS name to get ENS avatar for. */
16
+ /** ENS name to get Text for. */
17
17
  name: string
18
- /** Text record to retrieve */
18
+ /** Text record to retrieve. */
19
19
  key: string
20
20
  /** Address of ENS Universal Resolver Contract. */
21
21
  universalResolverAddress?: Address
@@ -25,15 +25,30 @@ export type GetEnsTextParameters = Prettify<
25
25
  export type GetEnsTextReturnType = string | null
26
26
 
27
27
  /**
28
- * @description Gets text record for ENS name.
28
+ * Gets a text record for specified ENS name.
29
29
  *
30
- * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
31
- * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
30
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html
31
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
32
+ *
33
+ * @remarks
34
+ * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
35
+ *
36
+ * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
37
+ *
38
+ * @param client - Client to use
39
+ * @param parameters - {@link GetEnsTextParameters}
40
+ * @returns Address for ENS resolver. {@link GetEnsTextReturnType}
32
41
  *
33
42
  * @example
34
- * import { normalize } from 'viem/ens'
43
+ * import { createPublicClient, http } from 'viem'
44
+ * import { mainnet } from 'viem/chains'
45
+ * import { getEnsText, normalize } from 'viem/ens'
35
46
  *
36
- * const twitterRecord = await getEnsText(publicClient, {
47
+ * const client = createPublicClient({
48
+ * chain: mainnet,
49
+ * transport: http(),
50
+ * })
51
+ * const twitterRecord = await getEnsText(client, {
37
52
  * name: normalize('wagmi-dev.eth'),
38
53
  * key: 'com.twitter',
39
54
  * })
@@ -61,9 +61,25 @@ export type GetContractParameters<
61
61
  abi: Narrow<TAbi>
62
62
  /** Contract address */
63
63
  address: Address
64
- /** Public client */
64
+ /**
65
+ * Public client
66
+ *
67
+ * If you pass in a [`publicClient`](https://viem.sh/docs/clients/public.html), the following methods are available:
68
+ *
69
+ * - [`createEventFilter`](https://viem.sh/docs/contract/createContractEventFilter.html)
70
+ * - [`estimateGas`](https://viem.sh/docs/contract/estimateContractGas.html)
71
+ * - [`read`](https://viem.sh/docs/contract/readContract.html)
72
+ * - [`simulate`](https://viem.sh/docs/contract/simulateContract.html)
73
+ * - [`watchEvent`](https://viem.sh/docs/contract/watchContractEvent.html)
74
+ */
65
75
  publicClient?: TPublicClient
66
- /** Wallet client */
76
+ /**
77
+ * Wallet client
78
+ *
79
+ * If you pass in a [`walletClient`](https://viem.sh/docs/clients/wallet.html), the following methods are available:
80
+ *
81
+ * - [`write`](https://viem.sh/docs/contract/writeContract.html)
82
+ */
67
83
  walletClient?: TWalletClient
68
84
  }
69
85
 
@@ -201,7 +217,30 @@ export type GetContractReturnType<
201
217
  >
202
218
 
203
219
  /**
204
- * Gets type-safe contract instance.
220
+ * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.
221
+ *
222
+ * - Docs https://viem.sh/docs/contract/getContract.html
223
+ *
224
+ * @remarks
225
+ * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properites every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract.html), [`writeContract`](https://viem.sh/docs/contract/writeContract.html), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas.html), etc.
226
+ *
227
+ * @example
228
+ * import { createPublicClient, getContract, http, parseAbi } from 'viem'
229
+ * import { mainnet } from 'viem/chains'
230
+ *
231
+ * const publicClient = createPublicClient({
232
+ * chain: mainnet,
233
+ * transport: http(),
234
+ * })
235
+ * const contract = getContract({
236
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
237
+ * abi: parseAbi([
238
+ * 'function balanceOf(address owner) view returns (uint256)',
239
+ * 'function ownerOf(uint256 tokenId) view returns (address)',
240
+ * 'function totalSupply() view returns (uint256)',
241
+ * ]),
242
+ * publicClient,
243
+ * })
205
244
  */
206
245
  export function getContract<
207
246
  TTransport extends Transport,
@@ -43,13 +43,41 @@ export type CallParameters<
43
43
  }
44
44
  | {
45
45
  blockNumber?: never
46
- /** The balance of the account at a block tag. */
46
+ /**
47
+ * The balance of the account at a block tag.
48
+ * @default 'latest'
49
+ */
47
50
  blockTag?: BlockTag
48
51
  }
49
52
  )
50
53
 
51
54
  export type CallReturnType = { data: Hex | undefined }
52
55
 
56
+ /**
57
+ * Executes a new message call immediately without submitting a transaction to the network.
58
+ *
59
+ * - Docs: https://viem.sh/docs/actions/public/call.html
60
+ * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)
61
+ *
62
+ * @param client - Client to use
63
+ * @param parameters - {@link CallParameters}
64
+ * @returns The call data. {@link CallReturnType}
65
+ *
66
+ * @example
67
+ * import { createPublicClient, http } from 'viem'
68
+ * import { mainnet } from 'viem/chains'
69
+ * import { call } from 'viem/public'
70
+ *
71
+ * const client = createPublicClient({
72
+ * chain: mainnet,
73
+ * transport: http(),
74
+ * })
75
+ * const data = await call(client, {
76
+ * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
77
+ * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
78
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
79
+ * })
80
+ */
53
81
  export async function call<TChain extends Chain | undefined>(
54
82
  client: PublicClient<Transport, TChain>,
55
83
  args: CallParameters<TChain>,
@@ -1,13 +1,38 @@
1
1
  import type { PublicClient, Transport } from '../../clients/index.js'
2
2
  import type { Chain, Filter } from '../../types/index.js'
3
+ import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'
3
4
 
4
5
  export type CreateBlockFilterReturnType = Filter<'block'>
5
6
 
7
+ /**
8
+ * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).
9
+ *
10
+ * - Docs: https://viem.sh/docs/actions/public/createBlockFilter.html
11
+ * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)
12
+ *
13
+ * @param client - Client to use
14
+ * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateBlockFilterReturnType}
15
+ *
16
+ * @example
17
+ * import { createPublicClient, http } from 'viem'
18
+ * import { mainnet } from 'viem/chains'
19
+ * import { createBlockFilter } from 'viem/public'
20
+ *
21
+ * const client = createPublicClient({
22
+ * chain: mainnet,
23
+ * transport: http(),
24
+ * })
25
+ * const filter = await createBlockFilter(client)
26
+ * // { id: "0x345a6572337856574a76364e457a4366", type: 'block' }
27
+ */
6
28
  export async function createBlockFilter<TChain extends Chain | undefined>(
7
29
  client: PublicClient<Transport, TChain>,
8
30
  ): Promise<CreateBlockFilterReturnType> {
31
+ const getRequest = createFilterRequestScope(client, {
32
+ method: 'eth_newBlockFilter',
33
+ })
9
34
  const id = await client.request({
10
35
  method: 'eth_newBlockFilter',
11
36
  })
12
- return { id, type: 'block' }
37
+ return { id, request: getRequest(id), type: 'block' }
13
38
  }
@@ -12,6 +12,7 @@ import type {
12
12
  } from '../../types/index.js'
13
13
  import { encodeEventTopics, numberToHex } from '../../utils/index.js'
14
14
  import type { EncodeEventTopicsParameters } from '../../utils/index.js'
15
+ import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'
15
16
 
16
17
  export type CreateContractEventFilterParameters<
17
18
  TAbi extends Abi | readonly unknown[] = Abi,
@@ -48,6 +49,28 @@ export type CreateContractEventFilterReturnType<
48
49
  | undefined = undefined,
49
50
  > = Filter<'event', TAbi, TEventName, TArgs>
50
51
 
52
+ /**
53
+ * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs).
54
+ *
55
+ * - Docs: https://viem.sh/docs/contract/createContractEventFilter.html
56
+ *
57
+ * @param client - Client to use
58
+ * @param parameters - {@link CreateContractEventFilterParameters}
59
+ * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateContractEventFilterReturnType}
60
+ *
61
+ * @example
62
+ * import { createPublicClient, http, parseAbi } from 'viem'
63
+ * import { mainnet } from 'viem/chains'
64
+ * import { createContractEventFilter } from 'viem/contract'
65
+ *
66
+ * const client = createPublicClient({
67
+ * chain: mainnet,
68
+ * transport: http(),
69
+ * })
70
+ * const filter = await createContractEventFilter(client, {
71
+ * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
72
+ * })
73
+ */
51
74
  export async function createContractEventFilter<
52
75
  TChain extends Chain | undefined,
53
76
  TAbi extends Abi | readonly unknown[],
@@ -64,6 +87,10 @@ export async function createContractEventFilter<
64
87
  toBlock,
65
88
  }: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>,
66
89
  ): Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>> {
90
+ const getRequest = createFilterRequestScope(client, {
91
+ method: 'eth_newFilter',
92
+ })
93
+
67
94
  const topics = eventName
68
95
  ? encodeEventTopics({
69
96
  abi,
@@ -88,6 +115,7 @@ export async function createContractEventFilter<
88
115
  args,
89
116
  eventName,
90
117
  id,
118
+ request: getRequest(id),
91
119
  type: 'event',
92
120
  } as unknown as CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>
93
121
  }
@@ -14,6 +14,7 @@ import type {
14
14
  } from '../../types/index.js'
15
15
  import { encodeEventTopics, numberToHex } from '../../utils/index.js'
16
16
  import type { EncodeEventTopicsParameters } from '../../utils/index.js'
17
+ import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'
17
18
 
18
19
  export type CreateEventFilterParameters<
19
20
  TAbiEvent extends AbiEvent | undefined = undefined,
@@ -59,6 +60,29 @@ export type CreateEventFilterReturnType<
59
60
  | undefined = undefined,
60
61
  > = Prettify<Filter<'event', TAbi, TEventName, TArgs>>
61
62
 
63
+ /**
64
+ * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).
65
+ *
66
+ * - Docs: https://viem.sh/docs/actions/public/createEventFilter.html
67
+ * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)
68
+ *
69
+ * @param client - Client to use
70
+ * @param parameters - {@link CreateEventFilterParameters}
71
+ * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateEventFilterReturnType}
72
+ *
73
+ * @example
74
+ * import { createPublicClient, http } from 'viem'
75
+ * import { mainnet } from 'viem/chains'
76
+ * import { createEventFilter } from 'viem/public'
77
+ *
78
+ * const client = createPublicClient({
79
+ * chain: mainnet,
80
+ * transport: http(),
81
+ * })
82
+ * const filter = await createEventFilter(client, {
83
+ * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',
84
+ * })
85
+ */
62
86
  export async function createEventFilter<
63
87
  TChain extends Chain | undefined,
64
88
  TAbiEvent extends AbiEvent | undefined,
@@ -82,6 +106,10 @@ export async function createEventFilter<
82
106
  _Args
83
107
  > = {} as any,
84
108
  ): Promise<CreateEventFilterReturnType<TAbiEvent, _Abi, _EventName, _Args>> {
109
+ const getRequest = createFilterRequestScope(client, {
110
+ method: 'eth_newFilter',
111
+ })
112
+
85
113
  let topics: LogTopic[] = []
86
114
  if (event)
87
115
  topics = encodeEventTopics({
@@ -102,11 +130,13 @@ export async function createEventFilter<
102
130
  },
103
131
  ],
104
132
  })
133
+
105
134
  return {
106
135
  abi: event ? [event] : undefined,
107
136
  args,
108
137
  eventName: event ? (event as AbiEvent).name : undefined,
109
138
  id,
139
+ request: getRequest(id),
110
140
  type: 'event',
111
141
  } as unknown as CreateEventFilterReturnType<
112
142
  TAbiEvent,
@@ -1,16 +1,41 @@
1
1
  import type { PublicClient, Transport } from '../../clients/index.js'
2
2
  import type { Chain, Filter } from '../../types/index.js'
3
+ import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'
3
4
 
4
5
  export type CreatePendingTransactionFilterReturnType = Filter<'transaction'>
5
6
 
7
+ /**
8
+ * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).
9
+ *
10
+ * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter.html
11
+ * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)
12
+ *
13
+ * @param client - Client to use
14
+ * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateBlockFilterReturnType}
15
+ *
16
+ * @example
17
+ * import { createPublicClient, http } from 'viem'
18
+ * import { mainnet } from 'viem/chains'
19
+ * import { createPendingTransactionFilter } from 'viem/public'
20
+ *
21
+ * const client = createPublicClient({
22
+ * chain: mainnet,
23
+ * transport: http(),
24
+ * })
25
+ * const filter = await createPendingTransactionFilter(client)
26
+ * // { id: "0x345a6572337856574a76364e457a4366", type: 'transaction' }
27
+ */
6
28
  export async function createPendingTransactionFilter<
7
29
  TTransport extends Transport,
8
30
  TChain extends Chain | undefined,
9
31
  >(
10
32
  client: PublicClient<TTransport, TChain>,
11
33
  ): Promise<CreatePendingTransactionFilterReturnType> {
34
+ const getRequest = createFilterRequestScope(client, {
35
+ method: 'eth_newPendingTransactionFilter',
36
+ })
12
37
  const id = await client.request({
13
38
  method: 'eth_newPendingTransactionFilter',
14
39
  })
15
- return { id, type: 'transaction' }
40
+ return { id, request: getRequest(id), type: 'transaction' }
16
41
  }
@@ -26,6 +26,34 @@ export type EstimateContractGasParameters<
26
26
 
27
27
  export type EstimateContractGasReturnType = bigint
28
28
 
29
+ /**
30
+ * Estimates the gas required to successfully execute a contract write function call.
31
+ *
32
+ * - Docs: https://viem.sh/docs/contract/estimateContractGas.html
33
+ *
34
+ * @remarks
35
+ * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).
36
+ *
37
+ * @param client - Client to use
38
+ * @param parameters - {@link EstimateContractGasParameters}
39
+ * @returns The gas estimate (in wei). {@link EstimateContractGasReturnType}
40
+ *
41
+ * @example
42
+ * import { createPublicClient, http, parseAbi } from 'viem'
43
+ * import { mainnet } from 'viem/chains'
44
+ * import { estimateContractGas } from 'viem/contract'
45
+ *
46
+ * const client = createPublicClient({
47
+ * chain: mainnet,
48
+ * transport: http(),
49
+ * })
50
+ * const gas = await estimateContractGas(client, {
51
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
52
+ * abi: parseAbi(['function mint() public']),
53
+ * functionName: 'mint',
54
+ * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
55
+ * })
56
+ */
29
57
  export async function estimateContractGas<
30
58
  TAbi extends Abi | readonly unknown[],
31
59
  TFunctionName extends string,
@@ -49,7 +49,10 @@ export type EstimateGasParameters<
49
49
  }
50
50
  | {
51
51
  blockNumber?: never
52
- /** The balance of the account at a block tag. */
52
+ /**
53
+ * The balance of the account at a block tag.
54
+ * @default 'latest'
55
+ */
53
56
  blockTag?: BlockTag
54
57
  }
55
58
  )
@@ -57,7 +60,29 @@ export type EstimateGasParameters<
57
60
  export type EstimateGasReturnType = bigint
58
61
 
59
62
  /**
60
- * @description Estimates the gas necessary to complete a transaction without submitting it to the network.
63
+ * Estimates the gas necessary to complete a transaction without submitting it to the network.
64
+ *
65
+ * - Docs: https://viem.sh/docs/actions/public/estimateGas.html
66
+ * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)
67
+ *
68
+ * @param client - Client to use
69
+ * @param parameters - {@link EstimateGasParameters}
70
+ * @returns The gas estimate (in wei). {@link EstimateGasReturnType}
71
+ *
72
+ * @example
73
+ * import { createPublicClient, http, parseEther } from 'viem'
74
+ * import { mainnet } from 'viem/chains'
75
+ * import { estimateGas } from 'viem/public'
76
+ *
77
+ * const client = createPublicClient({
78
+ * chain: mainnet,
79
+ * transport: http(),
80
+ * })
81
+ * const gasEstimate = await estimateGas(client, {
82
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
83
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
84
+ * value: parseEther('1'),
85
+ * })
61
86
  */
62
87
  export async function estimateGas<
63
88
  TChain extends Chain | undefined,
@@ -21,7 +21,40 @@ export type GetBalanceParameters = {
21
21
  export type GetBalanceReturnType = bigint
22
22
 
23
23
  /**
24
- * @description Returns the balance of an address in wei.
24
+ * Returns the balance of an address in wei.
25
+ *
26
+ * - Docs: https://viem.sh/docs/actions/public/getBalance.html
27
+ * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)
28
+ *
29
+ * @remarks
30
+ * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther.html).
31
+ *
32
+ * ```ts
33
+ * const balance = await getBalance(client, {
34
+ * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
35
+ * blockTag: 'safe'
36
+ * })
37
+ * const balanceAsEther = formatEther(balance)
38
+ * // "6.942"
39
+ * ```
40
+ *
41
+ * @param client - Client to use
42
+ * @param parameters - {@link GetBalanceParameters}
43
+ * @returns The balance of the address in wei. {@link GetBalanceReturnType}
44
+ *
45
+ * @example
46
+ * import { createPublicClient, http } from 'viem'
47
+ * import { mainnet } from 'viem/chains'
48
+ * import { getBalance } from 'viem/public'
49
+ *
50
+ * const client = createPublicClient({
51
+ * chain: mainnet,
52
+ * transport: http(),
53
+ * })
54
+ * const balance = await getBalance(client, {
55
+ * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
56
+ * })
57
+ * // 10000000000000000000000n (wei)
25
58
  */
26
59
  export async function getBalance<TChain extends Chain | undefined>(
27
60
  client: PublicClient<Transport, TChain>,