viem 0.3.0 → 0.3.2

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 (365) hide show
  1. package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
  2. package/dist/cjs/actions/ens/getEnsAvatar.js.map +1 -1
  3. package/dist/cjs/actions/ens/getEnsName.js.map +1 -1
  4. package/dist/cjs/actions/ens/getEnsResolver.js.map +1 -1
  5. package/dist/cjs/actions/ens/getEnsText.js.map +1 -1
  6. package/dist/cjs/actions/getContract.js.map +1 -1
  7. package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
  8. package/dist/cjs/actions/public/getBalance.js.map +1 -1
  9. package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
  10. package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
  11. package/dist/cjs/actions/public/getLogs.js.map +1 -1
  12. package/dist/cjs/actions/public/readContract.js.map +1 -1
  13. package/dist/cjs/actions/public/simulateContract.js.map +1 -1
  14. package/dist/cjs/actions/public/uninstallFilter.js.map +1 -1
  15. package/dist/cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
  16. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  17. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  18. package/dist/cjs/actions/public/watchPendingTransactions.js.map +1 -1
  19. package/dist/cjs/actions/test/dropTransaction.js.map +1 -1
  20. package/dist/cjs/actions/test/getAutomine.js.map +1 -1
  21. package/dist/cjs/actions/test/getTxpoolContent.js.map +1 -1
  22. package/dist/cjs/actions/test/getTxpoolStatus.js.map +1 -1
  23. package/dist/cjs/actions/test/impersonateAccount.js.map +1 -1
  24. package/dist/cjs/actions/test/increaseTime.js.map +1 -1
  25. package/dist/cjs/actions/test/inspectTxpool.js.map +1 -1
  26. package/dist/cjs/actions/test/mine.js.map +1 -1
  27. package/dist/cjs/actions/test/removeBlockTimestampInterval.js.map +1 -1
  28. package/dist/cjs/actions/test/reset.js.map +1 -1
  29. package/dist/cjs/actions/test/revert.js.map +1 -1
  30. package/dist/cjs/actions/test/sendUnsignedTransaction.js.map +1 -1
  31. package/dist/cjs/actions/test/setAutomine.js.map +1 -1
  32. package/dist/cjs/actions/test/setBalance.js.map +1 -1
  33. package/dist/cjs/actions/test/setBlockGasLimit.js.map +1 -1
  34. package/dist/cjs/actions/test/setBlockTimestampInterval.js.map +1 -1
  35. package/dist/cjs/actions/test/setCode.js.map +1 -1
  36. package/dist/cjs/actions/test/setCoinbase.js.map +1 -1
  37. package/dist/cjs/actions/test/setIntervalMining.js.map +1 -1
  38. package/dist/cjs/actions/test/setLoggingEnabled.js.map +1 -1
  39. package/dist/cjs/actions/test/setMinGasPrice.js.map +1 -1
  40. package/dist/cjs/actions/test/setNextBlockBaseFeePerGas.js.map +1 -1
  41. package/dist/cjs/actions/test/setNextBlockTimestamp.js.map +1 -1
  42. package/dist/cjs/actions/test/setNonce.js.map +1 -1
  43. package/dist/cjs/actions/test/setRpcUrl.js.map +1 -1
  44. package/dist/cjs/actions/test/setStorageAt.js.map +1 -1
  45. package/dist/cjs/actions/test/snapshot.js.map +1 -1
  46. package/dist/cjs/actions/test/stopImpersonatingAccount.js.map +1 -1
  47. package/dist/cjs/actions/wallet/addChain.js.map +1 -1
  48. package/dist/cjs/actions/wallet/getAddresses.js.map +1 -1
  49. package/dist/cjs/actions/wallet/getPermissions.js.map +1 -1
  50. package/dist/cjs/actions/wallet/requestAddresses.js.map +1 -1
  51. package/dist/cjs/actions/wallet/requestPermissions.js.map +1 -1
  52. package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
  53. package/dist/cjs/actions/wallet/signMessage.js.map +1 -1
  54. package/dist/cjs/actions/wallet/signTypedData.js.map +1 -1
  55. package/dist/cjs/actions/wallet/switchChain.js.map +1 -1
  56. package/dist/cjs/actions/wallet/watchAsset.js.map +1 -1
  57. package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
  58. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  59. package/dist/cjs/clients/createTestClient.js.map +1 -1
  60. package/dist/cjs/clients/createWalletClient.js.map +1 -1
  61. package/dist/cjs/clients/decorators/test.js.map +1 -1
  62. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  63. package/dist/cjs/errors/version.js +1 -1
  64. package/dist/cjs/index.js +2 -1
  65. package/dist/cjs/index.js.map +1 -1
  66. package/dist/cjs/utils/abi/getAbiItem.js.map +1 -1
  67. package/dist/cjs/utils/index.js +2 -1
  68. package/dist/cjs/utils/index.js.map +1 -1
  69. package/dist/cjs/utils/rpc.js +3 -6
  70. package/dist/cjs/utils/rpc.js.map +1 -1
  71. package/dist/cjs/utils/signature/index.js +3 -1
  72. package/dist/cjs/utils/signature/index.js.map +1 -1
  73. package/dist/cjs/utils/signature/recoverAddress.js +2 -11
  74. package/dist/cjs/utils/signature/recoverAddress.js.map +1 -1
  75. package/dist/cjs/utils/signature/recoverPublicKey.js +18 -0
  76. package/dist/cjs/utils/signature/recoverPublicKey.js.map +1 -0
  77. package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
  78. package/dist/esm/actions/ens/getEnsAvatar.js.map +1 -1
  79. package/dist/esm/actions/ens/getEnsName.js.map +1 -1
  80. package/dist/esm/actions/ens/getEnsResolver.js.map +1 -1
  81. package/dist/esm/actions/ens/getEnsText.js.map +1 -1
  82. package/dist/esm/actions/getContract.js.map +1 -1
  83. package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
  84. package/dist/esm/actions/public/getBalance.js.map +1 -1
  85. package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
  86. package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
  87. package/dist/esm/actions/public/getLogs.js.map +1 -1
  88. package/dist/esm/actions/public/readContract.js.map +1 -1
  89. package/dist/esm/actions/public/simulateContract.js.map +1 -1
  90. package/dist/esm/actions/public/uninstallFilter.js.map +1 -1
  91. package/dist/esm/actions/public/waitForTransactionReceipt.js.map +1 -1
  92. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  93. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  94. package/dist/esm/actions/public/watchPendingTransactions.js.map +1 -1
  95. package/dist/esm/actions/test/dropTransaction.js.map +1 -1
  96. package/dist/esm/actions/test/getAutomine.js.map +1 -1
  97. package/dist/esm/actions/test/getTxpoolContent.js.map +1 -1
  98. package/dist/esm/actions/test/getTxpoolStatus.js.map +1 -1
  99. package/dist/esm/actions/test/impersonateAccount.js.map +1 -1
  100. package/dist/esm/actions/test/increaseTime.js.map +1 -1
  101. package/dist/esm/actions/test/inspectTxpool.js.map +1 -1
  102. package/dist/esm/actions/test/mine.js.map +1 -1
  103. package/dist/esm/actions/test/removeBlockTimestampInterval.js.map +1 -1
  104. package/dist/esm/actions/test/reset.js.map +1 -1
  105. package/dist/esm/actions/test/revert.js.map +1 -1
  106. package/dist/esm/actions/test/sendUnsignedTransaction.js.map +1 -1
  107. package/dist/esm/actions/test/setAutomine.js.map +1 -1
  108. package/dist/esm/actions/test/setBalance.js.map +1 -1
  109. package/dist/esm/actions/test/setBlockGasLimit.js.map +1 -1
  110. package/dist/esm/actions/test/setBlockTimestampInterval.js.map +1 -1
  111. package/dist/esm/actions/test/setCode.js.map +1 -1
  112. package/dist/esm/actions/test/setCoinbase.js.map +1 -1
  113. package/dist/esm/actions/test/setIntervalMining.js.map +1 -1
  114. package/dist/esm/actions/test/setLoggingEnabled.js.map +1 -1
  115. package/dist/esm/actions/test/setMinGasPrice.js.map +1 -1
  116. package/dist/esm/actions/test/setNextBlockBaseFeePerGas.js.map +1 -1
  117. package/dist/esm/actions/test/setNextBlockTimestamp.js.map +1 -1
  118. package/dist/esm/actions/test/setNonce.js.map +1 -1
  119. package/dist/esm/actions/test/setRpcUrl.js.map +1 -1
  120. package/dist/esm/actions/test/setStorageAt.js.map +1 -1
  121. package/dist/esm/actions/test/snapshot.js.map +1 -1
  122. package/dist/esm/actions/test/stopImpersonatingAccount.js.map +1 -1
  123. package/dist/esm/actions/wallet/addChain.js.map +1 -1
  124. package/dist/esm/actions/wallet/getAddresses.js.map +1 -1
  125. package/dist/esm/actions/wallet/getPermissions.js.map +1 -1
  126. package/dist/esm/actions/wallet/requestAddresses.js.map +1 -1
  127. package/dist/esm/actions/wallet/requestPermissions.js.map +1 -1
  128. package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
  129. package/dist/esm/actions/wallet/signMessage.js.map +1 -1
  130. package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
  131. package/dist/esm/actions/wallet/switchChain.js.map +1 -1
  132. package/dist/esm/actions/wallet/watchAsset.js.map +1 -1
  133. package/dist/esm/actions/wallet/writeContract.js.map +1 -1
  134. package/dist/esm/clients/createPublicClient.js.map +1 -1
  135. package/dist/esm/clients/createTestClient.js.map +1 -1
  136. package/dist/esm/clients/createWalletClient.js.map +1 -1
  137. package/dist/esm/clients/decorators/test.js.map +1 -1
  138. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  139. package/dist/esm/errors/version.js +1 -1
  140. package/dist/esm/index.js +1 -1
  141. package/dist/esm/index.js.map +1 -1
  142. package/dist/esm/utils/abi/getAbiItem.js.map +1 -1
  143. package/dist/esm/utils/index.js +1 -1
  144. package/dist/esm/utils/index.js.map +1 -1
  145. package/dist/esm/utils/rpc.js +1 -1
  146. package/dist/esm/utils/rpc.js.map +1 -1
  147. package/dist/esm/utils/signature/index.js +1 -0
  148. package/dist/esm/utils/signature/index.js.map +1 -1
  149. package/dist/esm/utils/signature/recoverAddress.js +2 -11
  150. package/dist/esm/utils/signature/recoverAddress.js.map +1 -1
  151. package/dist/esm/utils/signature/recoverPublicKey.js +14 -0
  152. package/dist/esm/utils/signature/recoverPublicKey.js.map +1 -0
  153. package/dist/types/actions/ens/getEnsAddress.d.ts +0 -1
  154. package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
  155. package/dist/types/actions/ens/getEnsAvatar.d.ts +0 -1
  156. package/dist/types/actions/ens/getEnsAvatar.d.ts.map +1 -1
  157. package/dist/types/actions/ens/getEnsName.d.ts +0 -1
  158. package/dist/types/actions/ens/getEnsName.d.ts.map +1 -1
  159. package/dist/types/actions/ens/getEnsResolver.d.ts +0 -1
  160. package/dist/types/actions/ens/getEnsResolver.d.ts.map +1 -1
  161. package/dist/types/actions/ens/getEnsText.d.ts +0 -1
  162. package/dist/types/actions/ens/getEnsText.d.ts.map +1 -1
  163. package/dist/types/actions/getContract.d.ts +104 -2
  164. package/dist/types/actions/getContract.d.ts.map +1 -1
  165. package/dist/types/actions/public/estimateContractGas.d.ts +0 -1
  166. package/dist/types/actions/public/estimateContractGas.d.ts.map +1 -1
  167. package/dist/types/actions/public/getBalance.d.ts +0 -1
  168. package/dist/types/actions/public/getBalance.d.ts.map +1 -1
  169. package/dist/types/actions/public/getFilterChanges.d.ts +0 -1
  170. package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
  171. package/dist/types/actions/public/getFilterLogs.d.ts +0 -1
  172. package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
  173. package/dist/types/actions/public/getLogs.d.ts +2 -2
  174. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  175. package/dist/types/actions/public/readContract.d.ts +2 -3
  176. package/dist/types/actions/public/readContract.d.ts.map +1 -1
  177. package/dist/types/actions/public/simulateContract.d.ts +1 -2
  178. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  179. package/dist/types/actions/public/uninstallFilter.d.ts +0 -1
  180. package/dist/types/actions/public/uninstallFilter.d.ts.map +1 -1
  181. package/dist/types/actions/public/waitForTransactionReceipt.d.ts +0 -1
  182. package/dist/types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
  183. package/dist/types/actions/public/watchContractEvent.d.ts +0 -1
  184. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  185. package/dist/types/actions/public/watchEvent.d.ts +0 -1
  186. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  187. package/dist/types/actions/public/watchPendingTransactions.d.ts +0 -1
  188. package/dist/types/actions/public/watchPendingTransactions.d.ts.map +1 -1
  189. package/dist/types/actions/test/dropTransaction.d.ts +22 -0
  190. package/dist/types/actions/test/dropTransaction.d.ts.map +1 -1
  191. package/dist/types/actions/test/getAutomine.d.ts +20 -0
  192. package/dist/types/actions/test/getAutomine.d.ts.map +1 -1
  193. package/dist/types/actions/test/getTxpoolContent.d.ts +22 -0
  194. package/dist/types/actions/test/getTxpoolContent.d.ts.map +1 -1
  195. package/dist/types/actions/test/getTxpoolStatus.d.ts +20 -0
  196. package/dist/types/actions/test/getTxpoolStatus.d.ts.map +1 -1
  197. package/dist/types/actions/test/impersonateAccount.d.ts +22 -0
  198. package/dist/types/actions/test/impersonateAccount.d.ts.map +1 -1
  199. package/dist/types/actions/test/increaseTime.d.ts +22 -0
  200. package/dist/types/actions/test/increaseTime.d.ts.map +1 -1
  201. package/dist/types/actions/test/inspectTxpool.d.ts +20 -0
  202. package/dist/types/actions/test/inspectTxpool.d.ts.map +1 -1
  203. package/dist/types/actions/test/mine.d.ts +20 -0
  204. package/dist/types/actions/test/mine.d.ts.map +1 -1
  205. package/dist/types/actions/test/removeBlockTimestampInterval.d.ts +19 -0
  206. package/dist/types/actions/test/removeBlockTimestampInterval.d.ts.map +1 -1
  207. package/dist/types/actions/test/reset.d.ts +20 -0
  208. package/dist/types/actions/test/reset.d.ts.map +1 -1
  209. package/dist/types/actions/test/revert.d.ts +20 -0
  210. package/dist/types/actions/test/revert.d.ts.map +1 -1
  211. package/dist/types/actions/test/sendUnsignedTransaction.d.ts +25 -0
  212. package/dist/types/actions/test/sendUnsignedTransaction.d.ts.map +1 -1
  213. package/dist/types/actions/test/setAutomine.d.ts +19 -0
  214. package/dist/types/actions/test/setAutomine.d.ts.map +1 -1
  215. package/dist/types/actions/test/setBalance.d.ts +23 -0
  216. package/dist/types/actions/test/setBalance.d.ts.map +1 -1
  217. package/dist/types/actions/test/setBlockGasLimit.d.ts +20 -0
  218. package/dist/types/actions/test/setBlockGasLimit.d.ts.map +1 -1
  219. package/dist/types/actions/test/setBlockTimestampInterval.d.ts +20 -0
  220. package/dist/types/actions/test/setBlockTimestampInterval.d.ts.map +1 -1
  221. package/dist/types/actions/test/setCode.d.ts +23 -0
  222. package/dist/types/actions/test/setCode.d.ts.map +1 -1
  223. package/dist/types/actions/test/setCoinbase.d.ts +22 -0
  224. package/dist/types/actions/test/setCoinbase.d.ts.map +1 -1
  225. package/dist/types/actions/test/setIntervalMining.d.ts +20 -0
  226. package/dist/types/actions/test/setIntervalMining.d.ts.map +1 -1
  227. package/dist/types/actions/test/setLoggingEnabled.d.ts +19 -0
  228. package/dist/types/actions/test/setLoggingEnabled.d.ts.map +1 -1
  229. package/dist/types/actions/test/setMinGasPrice.d.ts +24 -0
  230. package/dist/types/actions/test/setMinGasPrice.d.ts.map +1 -1
  231. package/dist/types/actions/test/setNextBlockBaseFeePerGas.d.ts +22 -0
  232. package/dist/types/actions/test/setNextBlockBaseFeePerGas.d.ts.map +1 -1
  233. package/dist/types/actions/test/setNextBlockTimestamp.d.ts +20 -0
  234. package/dist/types/actions/test/setNextBlockTimestamp.d.ts.map +1 -1
  235. package/dist/types/actions/test/setNonce.d.ts +23 -0
  236. package/dist/types/actions/test/setNonce.d.ts.map +1 -1
  237. package/dist/types/actions/test/setRpcUrl.d.ts +20 -0
  238. package/dist/types/actions/test/setRpcUrl.d.ts.map +1 -1
  239. package/dist/types/actions/test/setStorageAt.d.ts +24 -0
  240. package/dist/types/actions/test/setStorageAt.d.ts.map +1 -1
  241. package/dist/types/actions/test/snapshot.d.ts +19 -0
  242. package/dist/types/actions/test/snapshot.d.ts.map +1 -1
  243. package/dist/types/actions/test/stopImpersonatingAccount.d.ts +22 -0
  244. package/dist/types/actions/test/stopImpersonatingAccount.d.ts.map +1 -1
  245. package/dist/types/actions/wallet/addChain.d.ts +20 -0
  246. package/dist/types/actions/wallet/addChain.d.ts.map +1 -1
  247. package/dist/types/actions/wallet/deployContract.d.ts +1 -1
  248. package/dist/types/actions/wallet/getAddresses.d.ts +20 -0
  249. package/dist/types/actions/wallet/getAddresses.d.ts.map +1 -1
  250. package/dist/types/actions/wallet/getPermissions.d.ts +20 -0
  251. package/dist/types/actions/wallet/getPermissions.d.ts.map +1 -1
  252. package/dist/types/actions/wallet/requestAddresses.d.ts +24 -0
  253. package/dist/types/actions/wallet/requestAddresses.d.ts.map +1 -1
  254. package/dist/types/actions/wallet/requestPermissions.d.ts +26 -3
  255. package/dist/types/actions/wallet/requestPermissions.d.ts.map +1 -1
  256. package/dist/types/actions/wallet/sendTransaction.d.ts +45 -0
  257. package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
  258. package/dist/types/actions/wallet/signMessage.d.ts +46 -0
  259. package/dist/types/actions/wallet/signMessage.d.ts.map +1 -1
  260. package/dist/types/actions/wallet/signTypedData.d.ts +98 -0
  261. package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
  262. package/dist/types/actions/wallet/switchChain.d.ts +21 -0
  263. package/dist/types/actions/wallet/switchChain.d.ts.map +1 -1
  264. package/dist/types/actions/wallet/watchAsset.d.ts +28 -0
  265. package/dist/types/actions/wallet/watchAsset.d.ts.map +1 -1
  266. package/dist/types/actions/wallet/writeContract.d.ts +50 -0
  267. package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
  268. package/dist/types/clients/createPublicClient.d.ts +17 -1
  269. package/dist/types/clients/createPublicClient.d.ts.map +1 -1
  270. package/dist/types/clients/createTestClient.d.ts +20 -0
  271. package/dist/types/clients/createTestClient.d.ts.map +1 -1
  272. package/dist/types/clients/createWalletClient.d.ts +34 -1
  273. package/dist/types/clients/createWalletClient.d.ts.map +1 -1
  274. package/dist/types/clients/decorators/public.d.ts +37 -37
  275. package/dist/types/clients/decorators/test.d.ts +536 -0
  276. package/dist/types/clients/decorators/test.d.ts.map +1 -1
  277. package/dist/types/clients/decorators/wallet.d.ts +389 -2
  278. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  279. package/dist/types/errors/version.d.ts +1 -1
  280. package/dist/types/index.d.ts +2 -2
  281. package/dist/types/index.d.ts.map +1 -1
  282. package/dist/types/utils/abi/getAbiItem.d.ts +1 -1
  283. package/dist/types/utils/abi/getAbiItem.d.ts.map +1 -1
  284. package/dist/types/utils/index.d.ts +2 -2
  285. package/dist/types/utils/index.d.ts.map +1 -1
  286. package/dist/types/utils/rpc.d.ts +1 -1
  287. package/dist/types/utils/rpc.d.ts.map +1 -1
  288. package/dist/types/utils/signature/index.d.ts +2 -0
  289. package/dist/types/utils/signature/index.d.ts.map +1 -1
  290. package/dist/types/utils/signature/recoverAddress.d.ts.map +1 -1
  291. package/dist/types/utils/signature/recoverPublicKey.d.ts +8 -0
  292. package/dist/types/utils/signature/recoverPublicKey.d.ts.map +1 -0
  293. package/package.json +1 -1
  294. package/src/actions/ens/getEnsAddress.ts +0 -1
  295. package/src/actions/ens/getEnsAvatar.ts +0 -1
  296. package/src/actions/ens/getEnsName.ts +0 -1
  297. package/src/actions/ens/getEnsResolver.ts +0 -1
  298. package/src/actions/ens/getEnsText.ts +0 -1
  299. package/src/actions/getContract.ts +104 -2
  300. package/src/actions/public/estimateContractGas.ts +0 -1
  301. package/src/actions/public/getBalance.ts +0 -1
  302. package/src/actions/public/getFilterChanges.ts +0 -1
  303. package/src/actions/public/getFilterLogs.ts +0 -1
  304. package/src/actions/public/getLogs.ts +3 -3
  305. package/src/actions/public/readContract.ts +2 -3
  306. package/src/actions/public/simulateContract.ts +1 -2
  307. package/src/actions/public/uninstallFilter.ts +0 -1
  308. package/src/actions/public/waitForTransactionReceipt.ts +0 -1
  309. package/src/actions/public/watchContractEvent.ts +0 -1
  310. package/src/actions/public/watchEvent.ts +0 -1
  311. package/src/actions/public/watchPendingTransactions.ts +0 -1
  312. package/src/actions/test/dropTransaction.ts +22 -0
  313. package/src/actions/test/getAutomine.ts +20 -0
  314. package/src/actions/test/getTxpoolContent.ts +22 -0
  315. package/src/actions/test/getTxpoolStatus.ts +20 -0
  316. package/src/actions/test/impersonateAccount.ts +22 -0
  317. package/src/actions/test/increaseTime.ts +22 -0
  318. package/src/actions/test/inspectTxpool.ts +20 -0
  319. package/src/actions/test/mine.ts +20 -0
  320. package/src/actions/test/removeBlockTimestampInterval.ts +19 -0
  321. package/src/actions/test/reset.ts +20 -0
  322. package/src/actions/test/revert.ts +20 -0
  323. package/src/actions/test/sendUnsignedTransaction.ts +25 -0
  324. package/src/actions/test/setAutomine.ts +19 -0
  325. package/src/actions/test/setBalance.ts +23 -0
  326. package/src/actions/test/setBlockGasLimit.ts +20 -0
  327. package/src/actions/test/setBlockTimestampInterval.ts +20 -0
  328. package/src/actions/test/setCode.ts +23 -0
  329. package/src/actions/test/setCoinbase.ts +22 -0
  330. package/src/actions/test/setIntervalMining.ts +20 -0
  331. package/src/actions/test/setLoggingEnabled.ts +19 -0
  332. package/src/actions/test/setMinGasPrice.ts +24 -0
  333. package/src/actions/test/setNextBlockBaseFeePerGas.ts +22 -0
  334. package/src/actions/test/setNextBlockTimestamp.ts +20 -0
  335. package/src/actions/test/setNonce.ts +23 -0
  336. package/src/actions/test/setRpcUrl.ts +20 -0
  337. package/src/actions/test/setStorageAt.ts +24 -0
  338. package/src/actions/test/snapshot.ts +19 -0
  339. package/src/actions/test/stopImpersonatingAccount.ts +22 -0
  340. package/src/actions/wallet/addChain.ts +20 -0
  341. package/src/actions/wallet/deployContract.ts +1 -1
  342. package/src/actions/wallet/getAddresses.ts +20 -0
  343. package/src/actions/wallet/getPermissions.ts +20 -0
  344. package/src/actions/wallet/requestAddresses.ts +24 -0
  345. package/src/actions/wallet/requestPermissions.ts +31 -6
  346. package/src/actions/wallet/sendTransaction.ts +45 -0
  347. package/src/actions/wallet/signMessage.ts +46 -0
  348. package/src/actions/wallet/signTypedData.ts +98 -0
  349. package/src/actions/wallet/switchChain.ts +24 -1
  350. package/src/actions/wallet/watchAsset.ts +28 -0
  351. package/src/actions/wallet/writeContract.ts +50 -0
  352. package/src/clients/createPublicClient.ts +17 -1
  353. package/src/clients/createTestClient.ts +20 -0
  354. package/src/clients/createWalletClient.ts +34 -1
  355. package/src/clients/decorators/public.ts +37 -37
  356. package/src/clients/decorators/test.ts +536 -0
  357. package/src/clients/decorators/wallet.ts +389 -2
  358. package/src/errors/version.ts +1 -1
  359. package/src/index.ts +3 -0
  360. package/src/utils/abi/getAbiItem.ts +9 -8
  361. package/src/utils/index.ts +3 -0
  362. package/src/utils/rpc.ts +2 -2
  363. package/src/utils/signature/index.ts +6 -0
  364. package/src/utils/signature/recoverAddress.ts +2 -17
  365. package/src/utils/signature/recoverPublicKey.ts +30 -0
@@ -19,7 +19,6 @@ export type GetEnsAvatarReturnType = string | null
19
19
  * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar.html
20
20
  * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
21
21
  *
22
- * @remarks
23
22
  * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText.html) with `key` set to `'avatar'`.
24
23
  *
25
24
  * 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.
@@ -25,7 +25,6 @@ export type GetEnsNameReturnType = string | null
25
25
  * - Docs: https://viem.sh/docs/ens/actions/getEnsName.html
26
26
  * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
27
27
  *
28
- * @remarks
29
28
  * Calls `reverse(bytes)` on ENS Universal Resolver Contract to "reverse resolve" the address to the primary ENS name.
30
29
  *
31
30
  * @param client - Client to use
@@ -22,7 +22,6 @@ export type GetEnsResolverReturnType = Address
22
22
  * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html
23
23
  * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
24
24
  *
25
- * @remarks
26
25
  * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.
27
26
  *
28
27
  * 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,7 +30,6 @@ export type GetEnsTextReturnType = string | null
30
30
  * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html
31
31
  * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens
32
32
  *
33
- * @remarks
34
33
  * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
35
34
  *
36
35
  * 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.
@@ -114,6 +114,24 @@ export type GetContractReturnType<
114
114
  * 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.
115
115
  *
116
116
  * Internally, `read` uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).
117
+ *
118
+ * @example
119
+ * import { createPublicClient, getContract, http, parseAbi } from 'viem'
120
+ * import { mainnet } from 'viem/chains'
121
+ *
122
+ * const publicClient = createPublicClient({
123
+ * chain: mainnet,
124
+ * transport: http(),
125
+ * })
126
+ * const contract = getContract({
127
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
128
+ * abi: parseAbi([
129
+ * 'function balanceOf(address owner) view returns (uint256)',
130
+ * ]),
131
+ * publicClient,
132
+ * })
133
+ * const result = await contract.read.balanceOf(['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'])
134
+ * // 424122n
117
135
  */
118
136
  read: {
119
137
  [FunctionName in _ReadFunctionNames]: GetReadFunction<
@@ -128,6 +146,23 @@ export type GetContractReturnType<
128
146
  : {
129
147
  /**
130
148
  * Estimates the gas necessary to complete a transaction without submitting it to the network.
149
+ *
150
+ * @example
151
+ * import { createPublicClient, getContract, http, parseAbi } from 'viem'
152
+ * import { mainnet } from 'viem/chains'
153
+ *
154
+ * const client = createPublicClient({
155
+ * chain: mainnet,
156
+ * transport: http(),
157
+ * })
158
+ * const contract = getContract({
159
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
160
+ * abi: parseAbi(['function mint() public']),
161
+ * publicClient,
162
+ * })
163
+ * const gas = await contract.estimateGas.mint({
164
+ * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
165
+ * })
131
166
  */
132
167
  estimateGas: {
133
168
  [FunctionName in _WriteFunctionNames]: GetEstimateFunction<
@@ -145,6 +180,23 @@ export type GetContractReturnType<
145
180
  * 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.html), but also supports contract write functions.
146
181
  *
147
182
  * Internally, `simulate` uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).
183
+ *
184
+ * @example
185
+ * import { createPublicClient, getContract, http, parseAbi } from 'viem'
186
+ * import { mainnet } from 'viem/chains'
187
+ *
188
+ * const client = createPublicClient({
189
+ * chain: mainnet,
190
+ * transport: http(),
191
+ * })
192
+ * const contract = getContract({
193
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
194
+ * abi: parseAbi(['function mint() public']),
195
+ * publicClient,
196
+ * })
197
+ * const result = await contract.simulate.mint({
198
+ * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
199
+ * })
148
200
  */
149
201
  simulate: {
150
202
  [FunctionName in _WriteFunctionNames]: GetSimulateFunction<
@@ -162,6 +214,21 @@ export type GetContractReturnType<
162
214
  : {
163
215
  /**
164
216
  * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs.html).
217
+ *
218
+ * @example
219
+ * import { createPublicClient, getContract, http, parseAbi } from 'viem'
220
+ * import { mainnet } from 'viem/chains'
221
+ *
222
+ * const client = createPublicClient({
223
+ * chain: mainnet,
224
+ * transport: http(),
225
+ * })
226
+ * const contract = getContract({
227
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
228
+ * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
229
+ * publicClient,
230
+ * })
231
+ * const filter = await contract.createEventFilter.Transfer()
165
232
  */
166
233
  createEventFilter: {
167
234
  [EventName in _EventNames]: GetEventFilter<
@@ -176,6 +243,25 @@ export type GetContractReturnType<
176
243
  * 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).
177
244
  *
178
245
  * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter.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.html) instead.
246
+ *
247
+ * @example
248
+ * import { createPublicClient, getContract, http, parseAbi } from 'viem'
249
+ * import { mainnet } from 'viem/chains'
250
+ *
251
+ * const client = createPublicClient({
252
+ * chain: mainnet,
253
+ * transport: http(),
254
+ * })
255
+ * const contract = getContract({
256
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
257
+ * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
258
+ * publicClient,
259
+ * })
260
+ * const filter = await contract.createEventFilter.Transfer()
261
+ * const unwatch = contract.watchEvent.Transfer(
262
+ * { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },
263
+ * { onLogs: (logs) => console.log(logs) },
264
+ * )
179
265
  */
180
266
  watchEvent: {
181
267
  [EventName in _EventNames]: GetWatchEvent<
@@ -197,7 +283,24 @@ export type GetContractReturnType<
197
283
  *
198
284
  * Internally, `write` uses a [Wallet Client](https://viem.sh/docs/clients/wallet.html) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).
199
285
  *
200
- * Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract.html#usage) before you execute it.
286
+ * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract.html#usage) before you execute it.__
287
+ *
288
+ * @example
289
+ * import { createWalletClient, getContract, http, parseAbi } from 'viem'
290
+ * import { mainnet } from 'viem/chains'
291
+ *
292
+ * const client = createWalletClient({
293
+ * chain: mainnet,
294
+ * transport: http(),
295
+ * })
296
+ * const contract = getContract({
297
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
298
+ * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
299
+ * publicClient,
300
+ * })
301
+ * const hash = await contract.write.min([69420], {
302
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
303
+ * })
201
304
  */
202
305
  write: {
203
306
  [FunctionName in _WriteFunctionNames]: GetWriteFunction<
@@ -221,7 +324,6 @@ export type GetContractReturnType<
221
324
  *
222
325
  * - Docs https://viem.sh/docs/contract/getContract.html
223
326
  *
224
- * @remarks
225
327
  * 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
328
  *
227
329
  * @example
@@ -31,7 +31,6 @@ export type EstimateContractGasReturnType = bigint
31
31
  *
32
32
  * - Docs: https://viem.sh/docs/contract/estimateContractGas.html
33
33
  *
34
- * @remarks
35
34
  * 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
35
  *
37
36
  * @param client - Client to use
@@ -26,7 +26,6 @@ export type GetBalanceReturnType = bigint
26
26
  * - Docs: https://viem.sh/docs/actions/public/getBalance.html
27
27
  * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)
28
28
  *
29
- * @remarks
30
29
  * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther.html).
31
30
  *
32
31
  * ```ts
@@ -36,7 +36,6 @@ export type GetFilterChangesReturnType<
36
36
  * - Docs: https://viem.sh/docs/actions/public/getFilterChanges.html
37
37
  * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)
38
38
  *
39
- * @remarks
40
39
  * A Filter can be created from the following actions:
41
40
  *
42
41
  * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)
@@ -29,7 +29,6 @@ export type GetFilterLogsReturnType<
29
29
  * - Docs: https://viem.sh/docs/actions/public/getFilterLogs.html
30
30
  * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)
31
31
  *
32
- * @remarks
33
32
  * `getFilterLogs` is only compatible with **event filters**.
34
33
  *
35
34
  * @param client - Client to use
@@ -1,4 +1,4 @@
1
- import type { AbiEvent } from 'abitype'
1
+ import type { AbiEvent, Narrow } from 'abitype'
2
2
  import type { PublicClient, Transport } from '../../clients/index.js'
3
3
  import type {
4
4
  Address,
@@ -28,7 +28,7 @@ export type GetLogsParameters<
28
28
  address?: Address | Address[]
29
29
  } & (
30
30
  | {
31
- event: TAbiEvent
31
+ event: Narrow<TAbiEvent>
32
32
  args?: MaybeExtractEventArgsFromAbi<[TAbiEvent], TEventName>
33
33
  }
34
34
  | {
@@ -97,7 +97,7 @@ export async function getLogs<
97
97
  if (event)
98
98
  topics = encodeEventTopics({
99
99
  abi: [event],
100
- eventName: event.name,
100
+ eventName: (event as AbiEvent).name,
101
101
  args,
102
102
  } as EncodeEventTopicsParameters)
103
103
 
@@ -36,7 +36,6 @@ export type ReadContractReturnType<
36
36
  * - Docs: https://viem.sh/docs/contract/readContract.html
37
37
  * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/reading-contracts
38
38
  *
39
- * @remarks
40
39
  * 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.
41
40
  *
42
41
  * 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).
@@ -46,7 +45,7 @@ export type ReadContractReturnType<
46
45
  * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}
47
46
  *
48
47
  * @example
49
- * import { createPublicClient, http } from 'viem'
48
+ * import { createPublicClient, http, parseAbi } from 'viem'
50
49
  * import { mainnet } from 'viem/chains'
51
50
  * import { readContract } from 'viem/contract'
52
51
  *
@@ -54,7 +53,7 @@ export type ReadContractReturnType<
54
53
  * chain: mainnet,
55
54
  * transport: http(),
56
55
  * })
57
- * const results = await readContract(client, {
56
+ * const result = await readContract(client, {
58
57
  * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
59
58
  * abi: parseAbi(['function balanceOf(address) view returns (uint256)']),
60
59
  * functionName: 'balanceOf',
@@ -63,7 +63,6 @@ export type SimulateContractReturnType<
63
63
  * - Docs: https://viem.sh/docs/contract/simulateContract.html
64
64
  * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/writing-to-contracts
65
65
  *
66
- * @remarks
67
66
  * 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.
68
67
  *
69
68
  * 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).
@@ -81,7 +80,7 @@ export type SimulateContractReturnType<
81
80
  * chain: mainnet,
82
81
  * transport: http(),
83
82
  * })
84
- * const results = await simulateContract(client, {
83
+ * const result = await simulateContract(client, {
85
84
  * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
86
85
  * abi: parseAbi(['function mint(uint32) view returns (uint32)']),
87
86
  * functionName: 'mint',
@@ -12,7 +12,6 @@ export type UninstallFilterReturnType = boolean
12
12
  * - Docs: https://viem.sh/docs/actions/public/uninstallFilter.html
13
13
  * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)
14
14
  *
15
- * @remarks
16
15
  * Destroys a Filter that was created from one of the following Actions:
17
16
  * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)
18
17
  * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)
@@ -60,7 +60,6 @@ export type WaitForTransactionReceiptParameters<
60
60
  * - Checks if one of the Transactions is a replacement
61
61
  * - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).
62
62
  *
63
- * @remarks
64
63
  * The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).
65
64
  *
66
65
  * 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.
@@ -59,7 +59,6 @@ export type WatchContractEventReturnType = () => void
59
59
  *
60
60
  * - Docs: https://viem.sh/docs/contract/watchContractEvent.html
61
61
  *
62
- * @remarks
63
62
  * 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).
64
63
  *
65
64
  * `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.
@@ -67,7 +67,6 @@ export type WatchEventReturnType = () => void
67
67
  * - **RPC Provider does not support `eth_newFilter`:**
68
68
  * - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.
69
69
  *
70
- * @remarks
71
70
  * 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).
72
71
  *
73
72
  * `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.
@@ -68,7 +68,6 @@ export type WatchPendingTransactionsReturnType = () => void
68
68
  * - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.
69
69
  * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newPendingTransactions"` event.
70
70
  *
71
- * @remarks
72
71
  * 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).
73
72
  *
74
73
  * @param client - Client to use
@@ -10,6 +10,28 @@ export type DropTransactionParameters = {
10
10
  hash: Hash
11
11
  }
12
12
 
13
+ /**
14
+ * Removes a transaction from the mempool.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/dropTransaction.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters - {@link DropTransactionParameters}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { dropTransaction } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * await dropTransaction(client, {
32
+ * hash: '0xe58dceb6b20b03965bb678e27d141e151d7d4efc2334c2d6a49b9fac523f7364'
33
+ * })
34
+ */
13
35
  export async function dropTransaction<TChain extends Chain | undefined>(
14
36
  client: TestClient<TestClientMode, Transport, TChain>,
15
37
  { hash }: DropTransactionParameters,
@@ -7,6 +7,26 @@ import type { Chain } from '../../types/index.js'
7
7
 
8
8
  export type GetAutomineReturnType = boolean
9
9
 
10
+ /**
11
+ * Returns the automatic mining status of the node.
12
+ *
13
+ * - Docs: https://viem.sh/docs/actions/test/getAutomine.html
14
+ *
15
+ * @param client - Client to use
16
+ * @returns Whether or not the node is auto mining. {@link GetAutomineReturnType}
17
+ *
18
+ * @example
19
+ * import { createTestClient, http } from 'viem'
20
+ * import { foundry } from 'viem/chains'
21
+ * import { getAutomine } from 'viem/test'
22
+ *
23
+ * const client = createTestClient({
24
+ * mode: 'anvil',
25
+ * chain: 'foundry',
26
+ * transport: http(),
27
+ * })
28
+ * const isAutomining = await getAutomine(client)
29
+ */
10
30
  export async function getAutomine<TChain extends Chain | undefined>(
11
31
  client: TestClient<TestClientMode, Transport, TChain>,
12
32
  ): Promise<GetAutomineReturnType> {
@@ -7,10 +7,32 @@ import type {
7
7
  import type { Chain, RpcTransaction } from '../../types/index.js'
8
8
 
9
9
  export type GetTxpoolContentReturnType = {
10
+ /** Pending transactions in the pool */
10
11
  pending: Record<Address, Record<string, RpcTransaction>>
12
+ /** Queued transactions in the pool */
11
13
  queued: Record<Address, Record<string, RpcTransaction>>
12
14
  }
13
15
 
16
+ /**
17
+ * Returns the details of all transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
18
+ *
19
+ * - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html
20
+ *
21
+ * @param client - Client to use
22
+ * @returns Transaction pool content. {@link GetTxpoolContentReturnType}
23
+ *
24
+ * @example
25
+ * import { createTestClient, http } from 'viem'
26
+ * import { foundry } from 'viem/chains'
27
+ * import { getTxpoolContent } from 'viem/test'
28
+ *
29
+ * const client = createTestClient({
30
+ * mode: 'anvil',
31
+ * chain: 'foundry',
32
+ * transport: http(),
33
+ * })
34
+ * const content = await getTxpoolContent(client)
35
+ */
14
36
  export async function getTxpoolContent<TChain extends Chain | undefined>(
15
37
  client: TestClient<TestClientMode, Transport, TChain>,
16
38
  ): Promise<GetTxpoolContentReturnType> {
@@ -11,6 +11,26 @@ export type GetTxpoolStatusReturnType = {
11
11
  queued: number
12
12
  }
13
13
 
14
+ /**
15
+ * Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
16
+ *
17
+ * - Docs: https://viem.sh/docs/actions/test/getTxpoolStatus.html
18
+ *
19
+ * @param client - Client to use
20
+ * @returns Transaction pool status. {@link GetTxpoolStatusReturnType}
21
+ *
22
+ * @example
23
+ * import { createTestClient, http } from 'viem'
24
+ * import { foundry } from 'viem/chains'
25
+ * import { getTxpoolStatus } from 'viem/test'
26
+ *
27
+ * const client = createTestClient({
28
+ * mode: 'anvil',
29
+ * chain: 'foundry',
30
+ * transport: http(),
31
+ * })
32
+ * const status = await getTxpoolStatus(client)
33
+ */
14
34
  export async function getTxpoolStatus<TChain extends Chain | undefined>(
15
35
  client: TestClient<TestClientMode, Transport, TChain>,
16
36
  ): Promise<GetTxpoolStatusReturnType> {
@@ -10,6 +10,28 @@ export type ImpersonateAccountParameters = {
10
10
  address: Address
11
11
  }
12
12
 
13
+ /**
14
+ * Impersonate an account or contract address. This lets you send transactions from that account even if you don't have access to its private key.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/impersonateAccount.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters - {@link ImpersonateAccountParameters}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { impersonateAccount } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * const content = await impersonateAccount(client, {
32
+ * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
33
+ * })
34
+ */
13
35
  export async function impersonateAccount<TChain extends Chain | undefined>(
14
36
  client: TestClient<TestClientMode, Transport, TChain>,
15
37
  { address }: ImpersonateAccountParameters,
@@ -11,6 +11,28 @@ export type IncreaseTimeParameters = {
11
11
  seconds: number
12
12
  }
13
13
 
14
+ /**
15
+ * Jump forward in time by the given amount of time, in seconds.
16
+ *
17
+ * - Docs: https://viem.sh/docs/actions/test/increaseTime.html
18
+ *
19
+ * @param client - Client to use
20
+ * @param parameters – {@link IncreaseTimeParameters}
21
+ *
22
+ * @example
23
+ * import { createTestClient, http } from 'viem'
24
+ * import { foundry } from 'viem/chains'
25
+ * import { increaseTime } from 'viem/test'
26
+ *
27
+ * const client = createTestClient({
28
+ * mode: 'anvil',
29
+ * chain: 'foundry',
30
+ * transport: http(),
31
+ * })
32
+ * await increaseTime(client, {
33
+ * seconds: 420,
34
+ * })
35
+ */
14
36
  export async function increaseTime<TChain extends Chain | undefined>(
15
37
  client: TestClient<TestClientMode, Transport, TChain>,
16
38
  { seconds }: IncreaseTimeParameters,
@@ -10,6 +10,26 @@ export type InspectTxpoolReturnType = {
10
10
  queued: Record<Address, Record<string, string>>
11
11
  }
12
12
 
13
+ /**
14
+ * Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/inspectTxpool.html
17
+ *
18
+ * @param client - Client to use
19
+ * @returns Transaction pool inspection data. {@link InspectTxpoolReturnType}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { inspectTxpool } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * const data = await inspectTxpool(client)
32
+ */
13
33
  export async function inspectTxpool<TChain extends Chain | undefined>(
14
34
  client: TestClient<TestClientMode, Transport, TChain>,
15
35
  ): Promise<InspectTxpoolReturnType> {
@@ -13,6 +13,26 @@ export type MineParameters = {
13
13
  interval?: number
14
14
  }
15
15
 
16
+ /**
17
+ * Mine a specified number of blocks.
18
+ *
19
+ * - Docs: https://viem.sh/docs/actions/test/mine.html
20
+ *
21
+ * @param client - Client to use
22
+ * @param parameters – {@link MineParameters}
23
+ *
24
+ * @example
25
+ * import { createTestClient, http } from 'viem'
26
+ * import { foundry } from 'viem/chains'
27
+ * import { mine } from 'viem/test'
28
+ *
29
+ * const client = createTestClient({
30
+ * mode: 'anvil',
31
+ * chain: 'foundry',
32
+ * transport: http(),
33
+ * })
34
+ * await mine(client, { blocks: 1 })
35
+ */
16
36
  export async function mine<TChain extends Chain | undefined>(
17
37
  client: TestClient<TestClientMode, Transport, TChain>,
18
38
  { blocks, interval }: MineParameters,
@@ -5,6 +5,25 @@ import type {
5
5
  Transport,
6
6
  } from '../../clients/index.js'
7
7
 
8
+ /**
9
+ * Removes [`setBlockTimestampInterval`](https://viem.sh/docs/actions/test/setBlockTimestampInterval.html) if it exists.
10
+ *
11
+ * - Docs: https://viem.sh/docs/actions/test/removeBlockTimestampInterval.html
12
+ *
13
+ * @param client - Client to use
14
+ *
15
+ * @example
16
+ * import { createTestClient, http } from 'viem'
17
+ * import { foundry } from 'viem/chains'
18
+ * import { removeBlockTimestampInterval } from 'viem/test'
19
+ *
20
+ * const client = createTestClient({
21
+ * mode: 'anvil',
22
+ * chain: 'foundry',
23
+ * transport: http(),
24
+ * })
25
+ * await removeBlockTimestampInterval(client)
26
+ */
8
27
  export async function removeBlockTimestampInterval<
9
28
  TChain extends Chain | undefined,
10
29
  >(client: TestClient<TestClientMode, Transport, TChain>) {
@@ -12,6 +12,26 @@ export type ResetParameters = {
12
12
  jsonRpcUrl?: string
13
13
  }
14
14
 
15
+ /**
16
+ * Resets fork back to its original state.
17
+ *
18
+ * - Docs: https://viem.sh/docs/actions/test/reset.html
19
+ *
20
+ * @param client - Client to use
21
+ * @param parameters – {@link ResetParameters}
22
+ *
23
+ * @example
24
+ * import { createTestClient, http } from 'viem'
25
+ * import { foundry } from 'viem/chains'
26
+ * import { reset } from 'viem/test'
27
+ *
28
+ * const client = createTestClient({
29
+ * mode: 'anvil',
30
+ * chain: 'foundry',
31
+ * transport: http(),
32
+ * })
33
+ * await reset(client, { blockNumber: 69420n })
34
+ */
15
35
  export async function reset<TChain extends Chain | undefined>(
16
36
  client: TestClient<TestClientMode, Transport, TChain>,
17
37
  { blockNumber, jsonRpcUrl }: ResetParameters = {},