viem 0.3.0-tsc-nodenext-2.20230407T050527 → 0.3.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 (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 +2 -2
  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
@@ -5,43 +5,1038 @@ import type { Chain, ContractFunctionConfig, FilterType, MaybeExtractEventArgsFr
5
5
  import type { PublicClient } from '../createPublicClient.js';
6
6
  import type { Transport } from '../transports/index.js';
7
7
  export type PublicActions<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined> = {
8
- call: (args: CallParameters<TChain>) => Promise<CallReturnType>;
8
+ /**
9
+ * Executes a new message call immediately without submitting a transaction to the network.
10
+ *
11
+ * - Docs: https://viem.sh/docs/actions/public/call.html
12
+ * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)
13
+ *
14
+ * @param parameters - {@link CallParameters}
15
+ * @returns The call data. {@link CallReturnType}
16
+ *
17
+ * @example
18
+ * import { createPublicClient, http } from 'viem'
19
+ * import { mainnet } from 'viem/chains'
20
+ *
21
+ * const client = createPublicClient({
22
+ * chain: mainnet,
23
+ * transport: http(),
24
+ * })
25
+ * const data = await client.call({
26
+ * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
27
+ * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
28
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
29
+ * })
30
+ */
31
+ call: (parameters: CallParameters<TChain>) => Promise<CallReturnType>;
32
+ /**
33
+ * Creates a Filter to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).
34
+ *
35
+ * - Docs: https://viem.sh/docs/actions/public/createBlockFilter.html
36
+ * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)
37
+ *
38
+ * @returns Filter. {@link CreateBlockFilterReturnType}
39
+ *
40
+ * @example
41
+ * import { createPublicClient, createBlockFilter, http } from 'viem'
42
+ * import { mainnet } from 'viem/chains'
43
+ *
44
+ * const client = createPublicClient({
45
+ * chain: mainnet,
46
+ * transport: http(),
47
+ * })
48
+ * const filter = await createBlockFilter(client)
49
+ * // { id: "0x345a6572337856574a76364e457a4366", type: 'block' }
50
+ */
9
51
  createBlockFilter: () => Promise<CreateBlockFilterReturnType>;
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 parameters - {@link CreateContractEventFilterParameters}
58
+ * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateContractEventFilterReturnType}
59
+ *
60
+ * @example
61
+ * import { createPublicClient, http, parseAbi } from 'viem'
62
+ * import { mainnet } from 'viem/chains'
63
+ *
64
+ * const client = createPublicClient({
65
+ * chain: mainnet,
66
+ * transport: http(),
67
+ * })
68
+ * const filter = await client.createContractEventFilter({
69
+ * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
70
+ * })
71
+ */
10
72
  createContractEventFilter: <TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>) => Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>>;
73
+ /**
74
+ * 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).
75
+ *
76
+ * - Docs: https://viem.sh/docs/actions/public/createEventFilter.html
77
+ * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)
78
+ *
79
+ * @param parameters - {@link CreateEventFilterParameters}
80
+ * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateEventFilterReturnType}
81
+ *
82
+ * @example
83
+ * import { createPublicClient, http } from 'viem'
84
+ * import { mainnet } from 'viem/chains'
85
+ *
86
+ * const client = createPublicClient({
87
+ * chain: mainnet,
88
+ * transport: http(),
89
+ * })
90
+ * const filter = await client.createEventFilter({
91
+ * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',
92
+ * })
93
+ */
11
94
  createEventFilter: <TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(args?: CreateEventFilterParameters<TAbiEvent, TAbi, TEventName, TArgs>) => Promise<CreateEventFilterReturnType<TAbiEvent, TAbi, TEventName, TArgs>>;
95
+ /**
96
+ * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).
97
+ *
98
+ * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter.html
99
+ * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)
100
+ *
101
+ * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateBlockFilterReturnType}
102
+ *
103
+ * @example
104
+ * import { createPublicClient, http } from 'viem'
105
+ * import { mainnet } from 'viem/chains'
106
+ *
107
+ * const client = createPublicClient({
108
+ * chain: mainnet,
109
+ * transport: http(),
110
+ * })
111
+ * const filter = await client.createPendingTransactionFilter()
112
+ * // { id: "0x345a6572337856574a76364e457a4366", type: 'transaction' }
113
+ */
12
114
  createPendingTransactionFilter: () => Promise<CreatePendingTransactionFilterReturnType>;
115
+ /**
116
+ * Estimates the gas required to successfully execute a contract write function call.
117
+ *
118
+ * - Docs: https://viem.sh/docs/contract/estimateContractGas.html
119
+ *
120
+ * @remarks
121
+ * 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).
122
+ *
123
+ * @param parameters - {@link EstimateContractGasParameters}
124
+ * @returns The gas estimate (in wei). {@link EstimateContractGasReturnType}
125
+ *
126
+ * @example
127
+ * import { createPublicClient, http, parseAbi } from 'viem'
128
+ * import { mainnet } from 'viem/chains'
129
+ *
130
+ * const client = createPublicClient({
131
+ * chain: mainnet,
132
+ * transport: http(),
133
+ * })
134
+ * const gas = await client.estimateContractGas({
135
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
136
+ * abi: parseAbi(['function mint() public']),
137
+ * functionName: 'mint',
138
+ * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
139
+ * })
140
+ */
13
141
  estimateContractGas: <TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string>(args: EstimateContractGasParameters<TAbi, TFunctionName, TChain>) => Promise<EstimateContractGasReturnType>;
142
+ /**
143
+ * Estimates the gas necessary to complete a transaction without submitting it to the network.
144
+ *
145
+ * - Docs: https://viem.sh/docs/actions/public/estimateGas.html
146
+ * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)
147
+ *
148
+ * @param parameters - {@link EstimateGasParameters}
149
+ * @returns The gas estimate (in wei). {@link EstimateGasReturnType}
150
+ *
151
+ * @example
152
+ * import { createPublicClient, http, parseEther } from 'viem'
153
+ * import { mainnet } from 'viem/chains'
154
+ *
155
+ * const client = createPublicClient({
156
+ * chain: mainnet,
157
+ * transport: http(),
158
+ * })
159
+ * const gasEstimate = await client.estimateGas({
160
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
161
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
162
+ * value: parseEther('1'),
163
+ * })
164
+ */
14
165
  estimateGas: (args: EstimateGasParameters<TChain>) => Promise<EstimateGasReturnType>;
166
+ /**
167
+ * Returns the balance of an address in wei.
168
+ *
169
+ * - Docs: https://viem.sh/docs/actions/public/getBalance.html
170
+ * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)
171
+ *
172
+ * @remarks
173
+ * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther.html).
174
+ *
175
+ * ```ts
176
+ * const balance = await getBalance(client, {
177
+ * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
178
+ * blockTag: 'safe'
179
+ * })
180
+ * const balanceAsEther = formatEther(balance)
181
+ * // "6.942"
182
+ * ```
183
+ *
184
+ * @param parameters - {@link GetBalanceParameters}
185
+ * @returns The balance of the address in wei. {@link GetBalanceReturnType}
186
+ *
187
+ * @example
188
+ * import { createPublicClient, http } from 'viem'
189
+ * import { mainnet } from 'viem/chains'
190
+ *
191
+ * const client = createPublicClient({
192
+ * chain: mainnet,
193
+ * transport: http(),
194
+ * })
195
+ * const balance = await client.getBalance({
196
+ * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
197
+ * })
198
+ * // 10000000000000000000000n (wei)
199
+ */
15
200
  getBalance: (args: GetBalanceParameters) => Promise<GetBalanceReturnType>;
201
+ /**
202
+ * Returns information about a block at a block number, hash, or tag.
203
+ *
204
+ * - Docs: https://viem.sh/docs/actions/public/getBlock.html
205
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/blocks/fetching-blocks
206
+ * - JSON-RPC Methods:
207
+ * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.
208
+ * - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.
209
+ *
210
+ * @param parameters - {@link GetBlockParameters}
211
+ * @returns Information about the block. {@link GetBlockReturnType}
212
+ *
213
+ * @example
214
+ * import { createPublicClient, http } from 'viem'
215
+ * import { mainnet } from 'viem/chains'
216
+ *
217
+ * const client = createPublicClient({
218
+ * chain: mainnet,
219
+ * transport: http(),
220
+ * })
221
+ * const block = await client.getBlock()
222
+ */
16
223
  getBlock: (args?: GetBlockParameters) => Promise<GetBlockReturnType<TChain>>;
224
+ /**
225
+ * Returns the number of the most recent block seen.
226
+ *
227
+ * - Docs: https://viem.sh/docs/actions/public/getBlockNumber.html
228
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/blocks/fetching-blocks
229
+ * - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)
230
+ *
231
+ * @param parameters - {@link GetBlockNumberParameters}
232
+ * @returns The number of the block. {@link GetBlockNumberReturnType}
233
+ *
234
+ * @example
235
+ * import { createPublicClient, http } from 'viem'
236
+ * import { mainnet } from 'viem/chains'
237
+ *
238
+ * const client = createPublicClient({
239
+ * chain: mainnet,
240
+ * transport: http(),
241
+ * })
242
+ * const blockNumber = await client.getBlockNumber()
243
+ * // 69420n
244
+ */
17
245
  getBlockNumber: (args?: GetBlockNumberParameters) => Promise<GetBlockNumberReturnType>;
246
+ /**
247
+ * Returns the number of Transactions at a block number, hash, or tag.
248
+ *
249
+ * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount.html
250
+ * - JSON-RPC Methods:
251
+ * - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.
252
+ * - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.
253
+ *
254
+ * @param parameters - {@link GetBlockTransactionCountParameters}
255
+ * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}
256
+ *
257
+ * @example
258
+ * import { createPublicClient, http } from 'viem'
259
+ * import { mainnet } from 'viem/chains'
260
+ *
261
+ * const client = createPublicClient({
262
+ * chain: mainnet,
263
+ * transport: http(),
264
+ * })
265
+ * const count = await client.getBlockTransactionCount()
266
+ */
18
267
  getBlockTransactionCount: (args?: GetBlockTransactionCountParameters) => Promise<GetBlockTransactionCountReturnType>;
268
+ /**
269
+ * Retrieves the bytecode at an address.
270
+ *
271
+ * - Docs: https://viem.sh/docs/contract/getBytecode.html
272
+ * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)
273
+ *
274
+ * @param parameters - {@link GetBytecodeParameters}
275
+ * @returns The contract's bytecode. {@link GetBytecodeReturnType}
276
+ *
277
+ * @example
278
+ * import { createPublicClient, http } from 'viem'
279
+ * import { mainnet } from 'viem/chains'
280
+ *
281
+ * const client = createPublicClient({
282
+ * chain: mainnet,
283
+ * transport: http(),
284
+ * })
285
+ * const code = await client.getBytecode({
286
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
287
+ * })
288
+ */
19
289
  getBytecode: (args: GetBytecodeParameters) => Promise<GetBytecodeReturnType>;
290
+ /**
291
+ * Returns the chain ID associated with the current network.
292
+ *
293
+ * - Docs: https://viem.sh/docs/actions/public/getChainId.html
294
+ * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)
295
+ *
296
+ * @returns The current chain ID. {@link GetChainIdReturnType}
297
+ *
298
+ * @example
299
+ * import { createPublicClient, http } from 'viem'
300
+ * import { mainnet } from 'viem/chains'
301
+ *
302
+ * const client = createPublicClient({
303
+ * chain: mainnet,
304
+ * transport: http(),
305
+ * })
306
+ * const chainId = await client.getChainId()
307
+ * // 1
308
+ */
20
309
  getChainId: () => Promise<GetChainIdReturnType>;
310
+ /**
311
+ * Gets address for ENS name.
312
+ *
313
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress.html
314
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
315
+ *
316
+ * @remarks
317
+ * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
318
+ *
319
+ * 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.
320
+ *
321
+ * @param parameters - {@link GetEnsAddressParameters}
322
+ * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}
323
+ *
324
+ * @example
325
+ * import { createPublicClient, http } from 'viem'
326
+ * import { mainnet } from 'viem/chains'
327
+ * import { normalize } from 'viem/ens'
328
+ *
329
+ * const client = createPublicClient({
330
+ * chain: mainnet,
331
+ * transport: http(),
332
+ * })
333
+ * const ensAddress = await client.getEnsAddress({
334
+ * name: normalize('wagmi-dev.eth'),
335
+ * })
336
+ * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
337
+ */
21
338
  getEnsAddress: (args: GetEnsAddressParameters) => Promise<GetEnsAddressReturnType>;
339
+ /**
340
+ * Gets the avatar of an ENS name.
341
+ *
342
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar.html
343
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
344
+ *
345
+ * @remarks
346
+ * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText.html) with `key` set to `'avatar'`.
347
+ *
348
+ * 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.
349
+ *
350
+ * @param parameters - {@link GetEnsAvatarParameters}
351
+ * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}
352
+ *
353
+ * @example
354
+ * import { createPublicClient, http } from 'viem'
355
+ * import { mainnet } from 'viem/chains'
356
+ * import { normalize } from 'viem/ens'
357
+ *
358
+ * const client = createPublicClient({
359
+ * chain: mainnet,
360
+ * transport: http(),
361
+ * })
362
+ * const ensAvatar = await client.getEnsAvatar({
363
+ * name: normalize('wagmi-dev.eth'),
364
+ * })
365
+ * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'
366
+ */
22
367
  getEnsAvatar: (args: GetEnsAvatarParameters) => Promise<GetEnsAvatarReturnType>;
368
+ /**
369
+ * Gets primary name for specified address.
370
+ *
371
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsName.html
372
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
373
+ *
374
+ * @remarks
375
+ * Calls `reverse(bytes)` on ENS Universal Resolver Contract to "reverse resolve" the address to the primary ENS name.
376
+ *
377
+ * @param parameters - {@link GetEnsNameParameters}
378
+ * @returns Name or `null` if not found. {@link GetEnsNameReturnType}
379
+ *
380
+ * @example
381
+ * import { createPublicClient, http } from 'viem'
382
+ * import { mainnet } from 'viem/chains'
383
+ *
384
+ * const client = createPublicClient({
385
+ * chain: mainnet,
386
+ * transport: http(),
387
+ * })
388
+ * const ensName = await client.getEnsName({
389
+ * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
390
+ * })
391
+ * // 'wagmi-dev.eth'
392
+ */
23
393
  getEnsName: (args: GetEnsNameParameters) => Promise<GetEnsNameReturnType>;
394
+ /**
395
+ * Gets resolver for ENS name.
396
+ *
397
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html
398
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
399
+ *
400
+ * @remarks
401
+ * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.
402
+ *
403
+ * 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.
404
+ *
405
+ * @param parameters - {@link GetEnsResolverParameters}
406
+ * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}
407
+ *
408
+ * @example
409
+ * import { createPublicClient, http } from 'viem'
410
+ * import { mainnet } from 'viem/chains'
411
+ * import { normalize } from 'viem/ens'
412
+ *
413
+ * const client = createPublicClient({
414
+ * chain: mainnet,
415
+ * transport: http(),
416
+ * })
417
+ * const resolverAddress = await client.getEnsResolver({
418
+ * name: normalize('wagmi-dev.eth'),
419
+ * })
420
+ * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'
421
+ */
24
422
  getEnsResolver: (args: GetEnsResolverParameters) => Promise<GetEnsResolverReturnType>;
423
+ /**
424
+ * Gets a text record for specified ENS name.
425
+ *
426
+ * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html
427
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
428
+ *
429
+ * @remarks
430
+ * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
431
+ *
432
+ * 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.
433
+ *
434
+ * @param parameters - {@link GetEnsTextParameters}
435
+ * @returns Address for ENS resolver. {@link GetEnsTextReturnType}
436
+ *
437
+ * @example
438
+ * import { createPublicClient, http } from 'viem'
439
+ * import { mainnet } from 'viem/chains'
440
+ * import { normalize } from 'viem/ens'
441
+ *
442
+ * const client = createPublicClient({
443
+ * chain: mainnet,
444
+ * transport: http(),
445
+ * })
446
+ * const twitterRecord = await client.getEnsText({
447
+ * name: normalize('wagmi-dev.eth'),
448
+ * key: 'com.twitter',
449
+ * })
450
+ * // 'wagmi_sh'
451
+ */
25
452
  getEnsText: (args: GetEnsTextParameters) => Promise<GetEnsTextReturnType>;
453
+ /**
454
+ * Returns a collection of historical gas information.
455
+ *
456
+ * - Docs: https://viem.sh/docs/actions/public/getFeeHistory.html
457
+ * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)
458
+ *
459
+ * @param parameters - {@link GetFeeHistoryParameters}
460
+ * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}
461
+ *
462
+ * @example
463
+ * import { createPublicClient, http } from 'viem'
464
+ * import { mainnet } from 'viem/chains'
465
+ *
466
+ * const client = createPublicClient({
467
+ * chain: mainnet,
468
+ * transport: http(),
469
+ * })
470
+ * const feeHistory = await client.getFeeHistory({
471
+ * blockCount: 4,
472
+ * rewardPercentiles: [25, 75],
473
+ * })
474
+ */
26
475
  getFeeHistory: (args: GetFeeHistoryParameters) => Promise<GetFeeHistoryReturnType>;
476
+ /**
477
+ * Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.
478
+ *
479
+ * - Docs: https://viem.sh/docs/actions/public/getFilterChanges.html
480
+ * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)
481
+ *
482
+ * @remarks
483
+ * A Filter can be created from the following actions:
484
+ *
485
+ * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)
486
+ * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter)
487
+ * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)
488
+ * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)
489
+ *
490
+ * Depending on the type of filter, the return value will be different:
491
+ *
492
+ * - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.
493
+ * - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.
494
+ * - If the filter was created with `createBlockFilter`, it returns a list of block hashes.
495
+ *
496
+ * @param parameters - {@link GetFilterChangesParameters}
497
+ * @returns Logs or hashes. {@link GetFilterChangesReturnType}
498
+ *
499
+ * @example
500
+ * // Blocks
501
+ * import { createPublicClient, http } from 'viem'
502
+ * import { mainnet } from 'viem/chains'
503
+ *
504
+ * const client = createPublicClient({
505
+ * chain: mainnet,
506
+ * transport: http(),
507
+ * })
508
+ * const filter = await client.createBlockFilter()
509
+ * const hashes = await client.getFilterChanges({ filter })
510
+ *
511
+ * @example
512
+ * // Contract Events
513
+ * import { createPublicClient, http, parseAbi } from 'viem'
514
+ * import { mainnet } from 'viem/chains'
515
+ *
516
+ * const client = createPublicClient({
517
+ * chain: mainnet,
518
+ * transport: http(),
519
+ * })
520
+ * const filter = await client.createContractEventFilter({
521
+ * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
522
+ * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
523
+ * eventName: 'Transfer',
524
+ * })
525
+ * const logs = await client.getFilterChanges({ filter })
526
+ *
527
+ * @example
528
+ * // Raw Events
529
+ * import { createPublicClient, http, parseAbiItem } from 'viem'
530
+ * import { mainnet } from 'viem/chains'
531
+ *
532
+ * const client = createPublicClient({
533
+ * chain: mainnet,
534
+ * transport: http(),
535
+ * })
536
+ * const filter = await client.createEventFilter({
537
+ * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
538
+ * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
539
+ * })
540
+ * const logs = await client.getFilterChanges({ filter })
541
+ *
542
+ * @example
543
+ * // Transactions
544
+ * import { createPublicClient, http } from 'viem'
545
+ * import { mainnet } from 'viem/chains'
546
+ *
547
+ * const client = createPublicClient({
548
+ * chain: mainnet,
549
+ * transport: http(),
550
+ * })
551
+ * const filter = await client.createPendingTransactionFilter()
552
+ * const hashes = await client.getFilterChanges({ filter })
553
+ */
27
554
  getFilterChanges: <TFilterType extends FilterType, TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(args: GetFilterChangesParameters<TFilterType, TAbiEvent, TAbi, TEventName>) => Promise<GetFilterChangesReturnType<TFilterType, TAbiEvent, TAbi, TEventName>>;
555
+ /**
556
+ * Returns a list of event logs since the filter was created.
557
+ *
558
+ * - Docs: https://viem.sh/docs/actions/public/getFilterLogs.html
559
+ * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)
560
+ *
561
+ * @remarks
562
+ * `getFilterLogs` is only compatible with **event filters**.
563
+ *
564
+ * @param parameters - {@link GetFilterLogsParameters}
565
+ * @returns A list of event logs. {@link GetFilterLogsReturnType}
566
+ *
567
+ * @example
568
+ * import { createPublicClient, http, parseAbiItem } from 'viem'
569
+ * import { mainnet } from 'viem/chains'
570
+ *
571
+ * const client = createPublicClient({
572
+ * chain: mainnet,
573
+ * transport: http(),
574
+ * })
575
+ * const filter = await client.createEventFilter({
576
+ * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
577
+ * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
578
+ * })
579
+ * const logs = await client.getFilterLogs({ filter })
580
+ */
28
581
  getFilterLogs: <TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(args: GetFilterLogsParameters<TAbiEvent, TAbi, TEventName>) => Promise<GetFilterLogsReturnType<TAbiEvent, TAbi, TEventName>>;
582
+ /**
583
+ * Returns the current price of gas (in wei).
584
+ *
585
+ * - Docs: https://viem.sh/docs/actions/public/getGasPrice.html
586
+ * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)
587
+ *
588
+ * @returns The gas price (in wei). {@link GetGasPriceReturnType}
589
+ *
590
+ * @example
591
+ * import { createPublicClient, http } from 'viem'
592
+ * import { mainnet } from 'viem/chains'
593
+ *
594
+ * const client = createPublicClient({
595
+ * chain: mainnet,
596
+ * transport: http(),
597
+ * })
598
+ * const gasPrice = await client.getGasPrice()
599
+ */
29
600
  getGasPrice: () => Promise<GetGasPriceReturnType>;
601
+ /**
602
+ * Returns a list of event logs matching the provided parameters.
603
+ *
604
+ * - Docs: https://viem.sh/docs/actions/public/getLogs.html
605
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/filters-and-logs/event-logs
606
+ * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)
607
+ *
608
+ * @param parameters - {@link GetLogsParameters}
609
+ * @returns A list of event logs. {@link GetLogsReturnType}
610
+ *
611
+ * @example
612
+ * import { createPublicClient, http, parseAbiItem } from 'viem'
613
+ * import { mainnet } from 'viem/chains'
614
+ *
615
+ * const client = createPublicClient({
616
+ * chain: mainnet,
617
+ * transport: http(),
618
+ * })
619
+ * const logs = await client.getLogs()
620
+ */
30
621
  getLogs: <TAbiEvent extends AbiEvent | undefined>(args?: GetLogsParameters<TAbiEvent>) => Promise<GetLogsReturnType<TAbiEvent>>;
622
+ /**
623
+ * Returns the value from a storage slot at a given address.
624
+ *
625
+ * - Docs: https://viem.sh/docs/contract/getStorageAt.html
626
+ * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)
627
+ *
628
+ * @param parameters - {@link GetStorageAtParameters}
629
+ * @returns The value of the storage slot. {@link GetStorageAtReturnType}
630
+ *
631
+ * @example
632
+ * import { createPublicClient, http } from 'viem'
633
+ * import { mainnet } from 'viem/chains'
634
+ * import { getStorageAt } from 'viem/contract'
635
+ *
636
+ * const client = createPublicClient({
637
+ * chain: mainnet,
638
+ * transport: http(),
639
+ * })
640
+ * const code = await client.getStorageAt({
641
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
642
+ * slot: toHex(0),
643
+ * })
644
+ */
31
645
  getStorageAt: (args: GetStorageAtParameters) => Promise<GetStorageAtReturnType>;
646
+ /**
647
+ * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms#transaction) given a hash or block identifier.
648
+ *
649
+ * - Docs: https://viem.sh/docs/actions/public/getTransaction.html
650
+ * - Example: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/transactions/fetching-transactions
651
+ * - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)
652
+ *
653
+ * @param parameters - {@link GetTransactionParameters}
654
+ * @returns The transaction information. {@link GetTransactionReturnType}
655
+ *
656
+ * @example
657
+ * import { createPublicClient, http } from 'viem'
658
+ * import { mainnet } from 'viem/chains'
659
+ *
660
+ * const client = createPublicClient({
661
+ * chain: mainnet,
662
+ * transport: http(),
663
+ * })
664
+ * const transaction = await client.getTransaction({
665
+ * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
666
+ * })
667
+ */
32
668
  getTransaction: (args: GetTransactionParameters) => Promise<GetTransactionReturnType<TChain>>;
669
+ /**
670
+ * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.
671
+ *
672
+ * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations.html
673
+ * - Example: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/transactions/fetching-transactions
674
+ * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)
675
+ *
676
+ * @param parameters - {@link GetTransactionConfirmationsParameters}
677
+ * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}
678
+ *
679
+ * @example
680
+ * import { createPublicClient, http } from 'viem'
681
+ * import { mainnet } from 'viem/chains'
682
+ *
683
+ * const client = createPublicClient({
684
+ * chain: mainnet,
685
+ * transport: http(),
686
+ * })
687
+ * const confirmations = await client.getTransactionConfirmations({
688
+ * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
689
+ * })
690
+ */
33
691
  getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<TChain>) => Promise<GetTransactionConfirmationsReturnType>;
692
+ /**
693
+ * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has broadcast / sent.
694
+ *
695
+ * - Docs: https://viem.sh/docs/actions/public/getTransactionCount.html
696
+ * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)
697
+ *
698
+ * @param parameters - {@link GetTransactionCountParameters}
699
+ * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}
700
+ *
701
+ * @example
702
+ * import { createPublicClient, http } from 'viem'
703
+ * import { mainnet } from 'viem/chains'
704
+ *
705
+ * const client = createPublicClient({
706
+ * chain: mainnet,
707
+ * transport: http(),
708
+ * })
709
+ * const transactionCount = await client.getTransactionCount({
710
+ * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
711
+ * })
712
+ */
34
713
  getTransactionCount: (args: GetTransactionCountParameters) => Promise<GetTransactionCountReturnType>;
714
+ /**
715
+ * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.
716
+ *
717
+ * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt.html
718
+ * - Example: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/transactions/fetching-transactions
719
+ * - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt)
720
+ *
721
+ * @param parameters - {@link GetTransactionReceiptParameters}
722
+ * @returns The transaction receipt. {@link GetTransactionReceiptReturnType}
723
+ *
724
+ * @example
725
+ * import { createPublicClient, http } from 'viem'
726
+ * import { mainnet } from 'viem/chains'
727
+ *
728
+ * const client = createPublicClient({
729
+ * chain: mainnet,
730
+ * transport: http(),
731
+ * })
732
+ * const transactionReceipt = await client.getTransactionReceipt({
733
+ * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
734
+ * })
735
+ */
35
736
  getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise<GetTransactionReceiptReturnType<TChain>>;
737
+ /**
738
+ * Similar to [`readContract`](https://viem.sh/docs/contract/readContract), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall).
739
+ *
740
+ * - Docs: https://viem.sh/docs/contract/multicall.html
741
+ *
742
+ * @param parameters - {@link MulticallParameters}
743
+ * @returns An array of results with accompanying status. {@link MulticallReturnType}
744
+ *
745
+ * @example
746
+ * import { createPublicClient, http, parseAbi } from 'viem'
747
+ * import { mainnet } from 'viem/chains'
748
+ *
749
+ * const client = createPublicClient({
750
+ * chain: mainnet,
751
+ * transport: http(),
752
+ * })
753
+ * const abi = parseAbi([
754
+ * 'function balanceOf(address) view returns (uint256)',
755
+ * 'function totalSupply() view returns (uint256)',
756
+ * ])
757
+ * const results = await client.multicall({
758
+ * contracts: [
759
+ * {
760
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
761
+ * abi,
762
+ * functionName: 'balanceOf',
763
+ * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
764
+ * },
765
+ * {
766
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
767
+ * abi,
768
+ * functionName: 'totalSupply',
769
+ * },
770
+ * ],
771
+ * })
772
+ * // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]
773
+ */
36
774
  multicall: <TContracts extends ContractFunctionConfig[], TAllowFailure extends boolean = true>(args: MulticallParameters<TContracts, TAllowFailure>) => Promise<MulticallReturnType<TContracts, TAllowFailure>>;
775
+ /**
776
+ * Calls a read-only function on a contract, and returns the response.
777
+ *
778
+ * - Docs: https://viem.sh/docs/contract/readContract.html
779
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/reading-contracts
780
+ *
781
+ * @remarks
782
+ * A "read-only" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.
783
+ *
784
+ * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).
785
+ *
786
+ * @param parameters - {@link ReadContractParameters}
787
+ * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}
788
+ *
789
+ * @example
790
+ * import { createPublicClient, http, parseAbi } from 'viem'
791
+ * import { mainnet } from 'viem/chains'
792
+ * import { readContract } from 'viem/contract'
793
+ *
794
+ * const client = createPublicClient({
795
+ * chain: mainnet,
796
+ * transport: http(),
797
+ * })
798
+ * const results = await client.readContract({
799
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
800
+ * abi: parseAbi(['function balanceOf(address) view returns (uint256)']),
801
+ * functionName: 'balanceOf',
802
+ * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
803
+ * })
804
+ * // 424122n
805
+ */
37
806
  readContract: <TAbi extends Abi | readonly unknown[], TFunctionName extends string>(args: ReadContractParameters<TAbi, TFunctionName>) => Promise<ReadContractReturnType<TAbi, TFunctionName>>;
807
+ /**
808
+ * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.
809
+ *
810
+ * - Docs: https://viem.sh/docs/contract/simulateContract.html
811
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/writing-to-contracts
812
+ *
813
+ * @remarks
814
+ * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.
815
+ *
816
+ * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).
817
+ *
818
+ * @param parameters - {@link SimulateContractParameters}
819
+ * @returns The simulation result and write request. {@link SimulateContractReturnType}
820
+ *
821
+ * @example
822
+ * import { createPublicClient, http } from 'viem'
823
+ * import { mainnet } from 'viem/chains'
824
+ *
825
+ * const client = createPublicClient({
826
+ * chain: mainnet,
827
+ * transport: http(),
828
+ * })
829
+ * const results = await client.simulateContract({
830
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
831
+ * abi: parseAbi(['function mint(uint32) view returns (uint32)']),
832
+ * functionName: 'mint',
833
+ * args: ['69420'],
834
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
835
+ * })
836
+ */
38
837
  simulateContract: <TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any, TChainOverride extends Chain | undefined = undefined>(args: SimulateContractParameters<TAbi, TFunctionName, TChain, TChainOverride>) => Promise<SimulateContractReturnType<TAbi, TFunctionName, TChain, TChainOverride>>;
838
+ /**
839
+ * Destroys a Filter that was created from one of the following Actions:
840
+ *
841
+ * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)
842
+ * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)
843
+ * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)
844
+ *
845
+ * - Docs: https://viem.sh/docs/actions/public/uninstallFilter.html
846
+ * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)
847
+ *
848
+ * @param parameters - {@link UninstallFilterParameters}
849
+ * @returns A boolean indicating if the Filter was successfully uninstalled. {@link UninstallFilterReturnType}
850
+ *
851
+ * @example
852
+ * import { createPublicClient, http } from 'viem'
853
+ * import { mainnet } from 'viem/chains'
854
+ * import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'
855
+ *
856
+ * const filter = await client.createPendingTransactionFilter()
857
+ * const uninstalled = await client.uninstallFilter({ filter })
858
+ * // true
859
+ */
39
860
  uninstallFilter: (args: UninstallFilterParameters) => Promise<UninstallFilterReturnType>;
861
+ /**
862
+ * Waits for the [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms.html#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms.html#transaction-receipt). If the Transaction reverts, then the action will throw an error.
863
+ *
864
+ * - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt.html
865
+ * - Example: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/transactions/sending-transactions
866
+ * - JSON-RPC Methods:
867
+ * - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.
868
+ * - If a Transaction has been replaced:
869
+ * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions
870
+ * - Checks if one of the Transactions is a replacement
871
+ * - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).
872
+ *
873
+ * @remarks
874
+ * The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).
875
+ *
876
+ * Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.
877
+ *
878
+ * There are 3 types of Transaction Replacement reasons:
879
+ *
880
+ * - `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)
881
+ * - `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)
882
+ * - `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)
883
+ *
884
+ * @param parameters - {@link WaitForTransactionReceiptParameters}
885
+ * @returns The transaction receipt. {@link WaitForTransactionReceiptReturnType}
886
+ *
887
+ * @example
888
+ * import { createPublicClient, http } from 'viem'
889
+ * import { mainnet } from 'viem/chains'
890
+ *
891
+ * const client = createPublicClient({
892
+ * chain: mainnet,
893
+ * transport: http(),
894
+ * })
895
+ * const transactionReceipt = await client.waitForTransactionReceipt({
896
+ * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
897
+ * })
898
+ */
40
899
  waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<TChain>) => Promise<WaitForTransactionReceiptReturnType<TChain>>;
900
+ /**
901
+ * Watches and returns incoming block numbers.
902
+ *
903
+ * - Docs: https://viem.sh/docs/actions/public/watchBlockNumber.html
904
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/blocks/watching-blocks
905
+ * - JSON-RPC Methods:
906
+ * - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.
907
+ * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newHeads"` event.
908
+ *
909
+ * @param parameters - {@link WatchBlockNumberParameters}
910
+ * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}
911
+ *
912
+ * @example
913
+ * import { createPublicClient, http } from 'viem'
914
+ * import { mainnet } from 'viem/chains'
915
+ *
916
+ * const client = createPublicClient({
917
+ * chain: mainnet,
918
+ * transport: http(),
919
+ * })
920
+ * const unwatch = await client.watchBlockNumber({
921
+ * onBlockNumber: (blockNumber) => console.log(blockNumber),
922
+ * })
923
+ */
41
924
  watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType;
925
+ /**
926
+ * Watches and returns information for incoming blocks.
927
+ *
928
+ * - Docs: https://viem.sh/docs/actions/public/watchBlocks.html
929
+ * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/blocks/watching-blocks
930
+ * - JSON-RPC Methods:
931
+ * - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.
932
+ * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newHeads"` event.
933
+ *
934
+ * @param parameters - {@link WatchBlocksParameters}
935
+ * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}
936
+ *
937
+ * @example
938
+ * import { createPublicClient, http } from 'viem'
939
+ * import { mainnet } from 'viem/chains'
940
+ *
941
+ * const client = createPublicClient({
942
+ * chain: mainnet,
943
+ * transport: http(),
944
+ * })
945
+ * const unwatch = await client.watchBlocks({
946
+ * onBlock: (block) => console.log(block),
947
+ * })
948
+ */
42
949
  watchBlocks: (args: WatchBlocksParameters<TTransport, TChain>) => WatchBlocksReturnType;
950
+ /**
951
+ * Watches and returns emitted contract event logs.
952
+ *
953
+ * - Docs: https://viem.sh/docs/contract/watchContractEvent.html
954
+ *
955
+ * @remarks
956
+ * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent.html#onLogs).
957
+ *
958
+ * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.
959
+ *
960
+ * @param parameters - {@link WatchContractEventParameters}
961
+ * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}
962
+ *
963
+ * @example
964
+ * import { createPublicClient, http, parseAbi } from 'viem'
965
+ * import { mainnet } from 'viem/chains'
966
+ *
967
+ * const client = createPublicClient({
968
+ * chain: mainnet,
969
+ * transport: http(),
970
+ * })
971
+ * const unwatch = client.watchContractEvent({
972
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
973
+ * abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),
974
+ * eventName: 'Transfer',
975
+ * args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },
976
+ * onLogs: (logs) => console.log(logs),
977
+ * })
978
+ */
43
979
  watchContractEvent: <TAbi extends Abi | readonly unknown[], TEventName extends string>(args: WatchContractEventParameters<TAbi, TEventName>) => WatchContractEventReturnType;
980
+ /**
981
+ * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).
982
+ *
983
+ * - Docs: https://viem.sh/docs/actions/public/watchEvent.html
984
+ * - JSON-RPC Methods:
985
+ * - **RPC Provider supports `eth_newFilter`:**
986
+ * - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).
987
+ * - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).
988
+ * - **RPC Provider does not support `eth_newFilter`:**
989
+ * - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.
990
+ *
991
+ * @remarks
992
+ * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent.html#onLogs).
993
+ *
994
+ * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter.html) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.
995
+ *
996
+ * @param parameters - {@link WatchEventParameters}
997
+ * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}
998
+ *
999
+ * @example
1000
+ * import { createPublicClient, http } from 'viem'
1001
+ * import { mainnet } from 'viem/chains'
1002
+ *
1003
+ * const client = createPublicClient({
1004
+ * chain: mainnet,
1005
+ * transport: http(),
1006
+ * })
1007
+ * const unwatch = client.watchEvent({
1008
+ * onLogs: (logs) => console.log(logs),
1009
+ * })
1010
+ */
44
1011
  watchEvent: <TAbiEvent extends AbiEvent | undefined>(args: WatchEventParameters<TAbiEvent>) => WatchEventReturnType;
1012
+ /**
1013
+ * Watches and returns pending transaction hashes.
1014
+ *
1015
+ * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions.html
1016
+ * - JSON-RPC Methods:
1017
+ * - When `poll: true`
1018
+ * - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.
1019
+ * - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.
1020
+ * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newPendingTransactions"` event.
1021
+ *
1022
+ * @remarks
1023
+ * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#ontransactions).
1024
+ *
1025
+ * @param parameters - {@link WatchPendingTransactionsParameters}
1026
+ * @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}
1027
+ *
1028
+ * @example
1029
+ * import { createPublicClient, http } from 'viem'
1030
+ * import { mainnet } from 'viem/chains'
1031
+ *
1032
+ * const client = createPublicClient({
1033
+ * chain: mainnet,
1034
+ * transport: http(),
1035
+ * })
1036
+ * const unwatch = await client.watchPendingTransactions({
1037
+ * onTransactions: (hashes) => console.log(hashes),
1038
+ * })
1039
+ */
45
1040
  watchPendingTransactions: (args: WatchPendingTransactionsParameters<TTransport>) => WatchPendingTransactionsReturnType;
46
1041
  };
47
1042
  export declare const publicActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: PublicClient<TTransport, TChain>) => PublicActions<TTransport, TChain>;