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
@@ -10,6 +10,26 @@ export type RevertParameters = {
10
10
  id: Quantity
11
11
  }
12
12
 
13
+ /**
14
+ * Revert the state of the blockchain at the current block.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/revert.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters – {@link RevertParameters}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { revert } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * await revert(client, { id: '0x…' })
32
+ */
13
33
  export async function revert<TChain extends Chain | undefined>(
14
34
  client: TestClient<TestClientMode, Transport, TChain>,
15
35
  { id }: RevertParameters,
@@ -10,6 +10,31 @@ export type SendUnsignedTransactionParameters = TransactionRequest
10
10
 
11
11
  export type SendUnsignedTransactionReturnType = Hash
12
12
 
13
+ /**
14
+ * 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.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters – {@link SendUnsignedTransactionParameters}
20
+ * @returns The transaction hash. {@link SendUnsignedTransactionReturnType}
21
+ *
22
+ * @example
23
+ * import { createTestClient, http } from 'viem'
24
+ * import { foundry } from 'viem/chains'
25
+ * import { sendUnsignedTransaction } from 'viem/test'
26
+ *
27
+ * const client = createTestClient({
28
+ * mode: 'anvil',
29
+ * chain: 'foundry',
30
+ * transport: http(),
31
+ * })
32
+ * const hash = await sendUnsignedTransaction(client, {
33
+ * from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
34
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
35
+ * value: 1000000000000000000n,
36
+ * })
37
+ */
13
38
  export async function sendUnsignedTransaction<
14
39
  TChain extends Chain | undefined,
15
40
  >(
@@ -5,6 +5,25 @@ import type {
5
5
  } from '../../clients/index.js'
6
6
  import type { Chain } from '../../types/index.js'
7
7
 
8
+ /**
9
+ * Enables or disables the automatic mining of new blocks with each new transaction submitted to the network.
10
+ *
11
+ * - Docs: https://viem.sh/docs/actions/test/setAutomine.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 { setAutomine } from 'viem/test'
19
+ *
20
+ * const client = createTestClient({
21
+ * mode: 'anvil',
22
+ * chain: 'foundry',
23
+ * transport: http(),
24
+ * })
25
+ * await setAutomine(client)
26
+ */
8
27
  export async function setAutomine<TChain extends Chain | undefined>(
9
28
  client: TestClient<TestClientMode, Transport, TChain>,
10
29
  enabled: boolean,
@@ -13,6 +13,29 @@ export type SetBalanceParameters = {
13
13
  value: bigint
14
14
  }
15
15
 
16
+ /**
17
+ * Modifies the balance of an account.
18
+ *
19
+ * - Docs: https://viem.sh/docs/actions/test/setBalance.html
20
+ *
21
+ * @param client - Client to use
22
+ * @param parameters – {@link SetBalanceParameters}
23
+ *
24
+ * @example
25
+ * import { createTestClient, http, parseEther } from 'viem'
26
+ * import { foundry } from 'viem/chains'
27
+ * import { setBalance } from 'viem/test'
28
+ *
29
+ * const client = createTestClient({
30
+ * mode: 'anvil',
31
+ * chain: 'foundry',
32
+ * transport: http(),
33
+ * })
34
+ * await setBalance(client, {
35
+ * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
36
+ * value: parseEther('1'),
37
+ * })
38
+ */
16
39
  export async function setBalance<TChain extends Chain | undefined>(
17
40
  client: TestClient<TestClientMode, Transport, TChain>,
18
41
  { address, value }: SetBalanceParameters,
@@ -11,6 +11,26 @@ export type SetBlockGasLimitParameters = {
11
11
  gasLimit: bigint
12
12
  }
13
13
 
14
+ /**
15
+ * Sets the block's gas limit.
16
+ *
17
+ * - Docs: https://viem.sh/docs/actions/test/setBlockGasLimit.html
18
+ *
19
+ * @param client - Client to use
20
+ * @param parameters – {@link SetBlockGasLimitParameters}
21
+ *
22
+ * @example
23
+ * import { createTestClient, http } from 'viem'
24
+ * import { foundry } from 'viem/chains'
25
+ * import { setBlockGasLimit } from 'viem/test'
26
+ *
27
+ * const client = createTestClient({
28
+ * mode: 'anvil',
29
+ * chain: 'foundry',
30
+ * transport: http(),
31
+ * })
32
+ * await setBlockGasLimit(client, { gasLimit: 420_000n })
33
+ */
14
34
  export async function setBlockGasLimit<TChain extends Chain | undefined>(
15
35
  client: TestClient<TestClientMode, Transport, TChain>,
16
36
  { gasLimit }: SetBlockGasLimitParameters,
@@ -10,6 +10,26 @@ export type SetBlockTimestampIntervalParameters = {
10
10
  interval: number
11
11
  }
12
12
 
13
+ /**
14
+ * Similar to [`increaseTime`](https://viem.sh/docs/actions/test/increaseTime), but sets a block timestamp `interval`. The timestamp of future blocks will be computed as `lastBlock_timestamp` + `interval`.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/setBlockTimestampInterval.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters – {@link SetBlockTimestampIntervalParameters}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { setBlockTimestampInterval } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * await setBlockTimestampInterval(client, { interval: 5 })
32
+ */
13
33
  export async function setBlockTimestampInterval<
14
34
  TChain extends Chain | undefined,
15
35
  >(
@@ -12,6 +12,29 @@ export type SetCodeParameters = {
12
12
  bytecode: Hex
13
13
  }
14
14
 
15
+ /**
16
+ * Modifies the bytecode stored at an account's address.
17
+ *
18
+ * - Docs: https://viem.sh/docs/actions/test/setCode.html
19
+ *
20
+ * @param client - Client to use
21
+ * @param parameters – {@link SetCodeParameters}
22
+ *
23
+ * @example
24
+ * import { createTestClient, http } from 'viem'
25
+ * import { foundry } from 'viem/chains'
26
+ * import { setCode } from 'viem/test'
27
+ *
28
+ * const client = createTestClient({
29
+ * mode: 'anvil',
30
+ * chain: 'foundry',
31
+ * transport: http(),
32
+ * })
33
+ * await setCode(client, {
34
+ * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',
35
+ * bytecode: '0x60806040526000600355600019600955600c80546001600160a01b031916737a250d5630b4cf539739df…',
36
+ * })
37
+ */
15
38
  export async function setCode<TChain extends Chain | undefined>(
16
39
  client: TestClient<TestClientMode, Transport, TChain>,
17
40
  { address, bytecode }: SetCodeParameters,
@@ -10,6 +10,28 @@ export type SetCoinbaseParameters = {
10
10
  address: Address
11
11
  }
12
12
 
13
+ /**
14
+ * Sets the coinbase address to be used in new blocks.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/setCoinbase.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters – {@link SetCoinbaseParameters}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { setCoinbase } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * await setCoinbase(client, {
32
+ * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',
33
+ * })
34
+ */
13
35
  export async function setCoinbase<TChain extends Chain | undefined>(
14
36
  client: TestClient<TestClientMode, Transport, TChain>,
15
37
  { address }: SetCoinbaseParameters,
@@ -10,6 +10,26 @@ export type SetIntervalMiningParameters = {
10
10
  interval: number
11
11
  }
12
12
 
13
+ /**
14
+ * Sets the automatic mining interval (in seconds) of blocks. Setting the interval to 0 will disable automatic mining.
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/setIntervalMining.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters – {@link SetIntervalMiningParameters}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { setIntervalMining } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * await setIntervalMining(client, { interval: 5 })
32
+ */
13
33
  export async function setIntervalMining<TChain extends Chain | undefined>(
14
34
  client: TestClient<TestClientMode, Transport, TChain>,
15
35
  { interval }: SetIntervalMiningParameters,
@@ -5,6 +5,25 @@ import type {
5
5
  } from '../../clients/index.js'
6
6
  import type { Chain } from '../../types/index.js'
7
7
 
8
+ /**
9
+ * Enable or disable logging on the test node network.
10
+ *
11
+ * - Docs: https://viem.sh/docs/actions/test/setLoggingEnabled.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 { setLoggingEnabled } from 'viem/test'
19
+ *
20
+ * const client = createTestClient({
21
+ * mode: 'anvil',
22
+ * chain: 'foundry',
23
+ * transport: http(),
24
+ * })
25
+ * await setLoggingEnabled(client)
26
+ */
8
27
  export async function setLoggingEnabled<TChain extends Chain | undefined>(
9
28
  client: TestClient<TestClientMode, Transport, TChain>,
10
29
  enabled: boolean,
@@ -11,6 +11,30 @@ export type SetMinGasPriceParameters = {
11
11
  gasPrice: bigint
12
12
  }
13
13
 
14
+ /**
15
+ * Change the minimum gas price accepted by the network (in wei).
16
+ *
17
+ * - Docs: https://viem.sh/docs/actions/test/setMinGasPrice.html
18
+ *
19
+ * Note: `setMinGasPrice` can only be used on clients that do not have EIP-1559 enabled.
20
+ *
21
+ * @param client - Client to use
22
+ * @param parameters – {@link SetBlockGasLimitParameters}
23
+ *
24
+ * @example
25
+ * import { createTestClient, http, parseGwei } from 'viem'
26
+ * import { foundry } from 'viem/chains'
27
+ * import { setMinGasPrice } from 'viem/test'
28
+ *
29
+ * const client = createTestClient({
30
+ * mode: 'anvil',
31
+ * chain: 'foundry',
32
+ * transport: http(),
33
+ * })
34
+ * await setMinGasPrice(client, {
35
+ * gasPrice: parseGwei('20'),
36
+ * })
37
+ */
14
38
  export async function setMinGasPrice<TChain extends Chain | undefined>(
15
39
  client: TestClient<TestClientMode, Transport, TChain>,
16
40
  { gasPrice }: SetMinGasPriceParameters,
@@ -11,6 +11,28 @@ export type SetNextBlockBaseFeePerGasParameters = {
11
11
  baseFeePerGas: bigint
12
12
  }
13
13
 
14
+ /**
15
+ * Sets the next block's base fee per gas.
16
+ *
17
+ * - Docs: https://viem.sh/docs/actions/test/setNextBlockBaseFeePerGas.html
18
+ *
19
+ * @param client - Client to use
20
+ * @param parameters – {@link SetNextBlockBaseFeePerGasParameters}
21
+ *
22
+ * @example
23
+ * import { createTestClient, http, parseGwei } from 'viem'
24
+ * import { foundry } from 'viem/chains'
25
+ * import { setNextBlockBaseFeePerGas } from 'viem/test'
26
+ *
27
+ * const client = createTestClient({
28
+ * mode: 'anvil',
29
+ * chain: 'foundry',
30
+ * transport: http(),
31
+ * })
32
+ * await setNextBlockBaseFeePerGas(client, {
33
+ * baseFeePerGas: parseGwei('20'),
34
+ * })
35
+ */
14
36
  export async function setNextBlockBaseFeePerGas<
15
37
  TChain extends Chain | undefined,
16
38
  >(
@@ -11,6 +11,26 @@ export type SetNextBlockTimestampParameters = {
11
11
  timestamp: bigint
12
12
  }
13
13
 
14
+ /**
15
+ * Sets the next block's timestamp.
16
+ *
17
+ * - Docs: https://viem.sh/docs/actions/test/setNextBlockTimestamp.html
18
+ *
19
+ * @param client - Client to use
20
+ * @param parameters – {@link SetNextBlockTimestampParameters}
21
+ *
22
+ * @example
23
+ * import { createTestClient, http } from 'viem'
24
+ * import { foundry } from 'viem/chains'
25
+ * import { setNextBlockTimestamp } from 'viem/test'
26
+ *
27
+ * const client = createTestClient({
28
+ * mode: 'anvil',
29
+ * chain: 'foundry',
30
+ * transport: http(),
31
+ * })
32
+ * await setNextBlockTimestamp(client, { timestamp: 1671744314n })
33
+ */
14
34
  export async function setNextBlockTimestamp<TChain extends Chain | undefined>(
15
35
  client: TestClient<TestClientMode, Transport, TChain>,
16
36
  { timestamp }: SetNextBlockTimestampParameters,
@@ -13,6 +13,29 @@ export type SetNonceParameters = {
13
13
  nonce: number
14
14
  }
15
15
 
16
+ /**
17
+ * Modifies (overrides) the nonce of an account.
18
+ *
19
+ * - Docs: https://viem.sh/docs/actions/test/setNonce.html
20
+ *
21
+ * @param client - Client to use
22
+ * @param parameters – {@link SetNonceParameters}
23
+ *
24
+ * @example
25
+ * import { createTestClient, http } from 'viem'
26
+ * import { foundry } from 'viem/chains'
27
+ * import { setNonce } from 'viem/test'
28
+ *
29
+ * const client = createTestClient({
30
+ * mode: 'anvil',
31
+ * chain: 'foundry',
32
+ * transport: http(),
33
+ * })
34
+ * await setNonce(client, {
35
+ * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
36
+ * nonce: 420,
37
+ * })
38
+ */
16
39
  export async function setNonce<TChain extends Chain | undefined>(
17
40
  client: TestClient<TestClientMode, Transport, TChain>,
18
41
  { address, nonce }: SetNonceParameters,
@@ -5,6 +5,26 @@ import type {
5
5
  } from '../../clients/index.js'
6
6
  import type { Chain } from '../../types/index.js'
7
7
 
8
+ /**
9
+ * Sets the backend RPC URL.
10
+ *
11
+ * - Docs: https://viem.sh/docs/actions/test/setRpcUrl.html
12
+ *
13
+ * @param client - Client to use
14
+ * @param jsonRpcUrl – RPC URL
15
+ *
16
+ * @example
17
+ * import { createTestClient, http } from 'viem'
18
+ * import { foundry } from 'viem/chains'
19
+ * import { setRpcUrl } from 'viem/test'
20
+ *
21
+ * const client = createTestClient({
22
+ * mode: 'anvil',
23
+ * chain: 'foundry',
24
+ * transport: http(),
25
+ * })
26
+ * await setRpcUrl(client, 'https://eth-mainnet.g.alchemy.com/v2')
27
+ */
8
28
  export async function setRpcUrl<TChain extends Chain | undefined>(
9
29
  client: TestClient<TestClientMode, Transport, TChain>,
10
30
  jsonRpcUrl: string,
@@ -15,6 +15,30 @@ export type SetStorageAtParameters = {
15
15
  value: Hex
16
16
  }
17
17
 
18
+ /**
19
+ * Writes to a slot of an account's storage.
20
+ *
21
+ * - Docs: https://viem.sh/docs/actions/test/setStorageAt.html
22
+ *
23
+ * @param client - Client to use
24
+ * @param parameters – {@link SetStorageAtParameters}
25
+ *
26
+ * @example
27
+ * import { createTestClient, http } from 'viem'
28
+ * import { foundry } from 'viem/chains'
29
+ * import { setStorageAt } from 'viem/test'
30
+ *
31
+ * const client = createTestClient({
32
+ * mode: 'anvil',
33
+ * chain: 'foundry',
34
+ * transport: http(),
35
+ * })
36
+ * await setStorageAt(client, {
37
+ * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',
38
+ * index: 2,
39
+ * value: '0x0000000000000000000000000000000000000000000000000000000000000069',
40
+ * })
41
+ */
18
42
  export async function setStorageAt<TChain extends Chain | undefined>(
19
43
  client: TestClient<TestClientMode, Transport, TChain>,
20
44
  { address, index, value }: SetStorageAtParameters,
@@ -5,6 +5,25 @@ import type {
5
5
  } from '../../clients/index.js'
6
6
  import type { Chain } from '../../types/index.js'
7
7
 
8
+ /**
9
+ * Snapshot the state of the blockchain at the current block.
10
+ *
11
+ * - Docs: https://viem.sh/docs/actions/test/snapshot.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 { snapshot } from 'viem/test'
19
+ *
20
+ * const client = createTestClient({
21
+ * mode: 'anvil',
22
+ * chain: 'foundry',
23
+ * transport: http(),
24
+ * })
25
+ * await snapshot(client)
26
+ */
8
27
  export async function snapshot<TChain extends Chain | undefined>(
9
28
  client: TestClient<TestClientMode, Transport, TChain>,
10
29
  ) {
@@ -10,6 +10,28 @@ export type StopImpersonatingAccountParameters = {
10
10
  address: Address
11
11
  }
12
12
 
13
+ /**
14
+ * Stop impersonating an account after having previously used [`impersonateAccount`](https://viem.sh/docs/actions/test/impersonateAccount).
15
+ *
16
+ * - Docs: https://viem.sh/docs/actions/test/stopImpersonatingAccount.html
17
+ *
18
+ * @param client - Client to use
19
+ * @param parameters – {@link StopImpersonatingAccountParameters}
20
+ *
21
+ * @example
22
+ * import { createTestClient, http } from 'viem'
23
+ * import { foundry } from 'viem/chains'
24
+ * import { stopImpersonatingAccount } from 'viem/test'
25
+ *
26
+ * const client = createTestClient({
27
+ * mode: 'anvil',
28
+ * chain: 'foundry',
29
+ * transport: http(),
30
+ * })
31
+ * await stopImpersonatingAccount(client, {
32
+ * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
33
+ * })
34
+ */
13
35
  export async function stopImpersonatingAccount<
14
36
  TChain extends Chain | undefined,
15
37
  >(
@@ -3,9 +3,29 @@ import type { Account, Chain } from '../../types/index.js'
3
3
  import { numberToHex } from '../../utils/index.js'
4
4
 
5
5
  export type AddChainParameters = {
6
+ /** The chain to add to the wallet. */
6
7
  chain: Chain
7
8
  }
8
9
 
10
+ /**
11
+ * Adds an EVM chain to the wallet.
12
+ *
13
+ * - Docs: https://viem.sh/docs/actions/wallet/addChain.html
14
+ * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)
15
+ *
16
+ * @param client - Client to use
17
+ * @param parameters - {@link AddChainParameters}
18
+ *
19
+ * @example
20
+ * import { createWalletClient, custom } from 'viem'
21
+ * import { optimism } from 'viem/chains'
22
+ * import { addChain } from 'viem/wallet'
23
+ *
24
+ * const client = createWalletClient({
25
+ * transport: custom(window.ethereum),
26
+ * })
27
+ * await addChain(client, { chain: optimism })
28
+ */
9
29
  export async function addChain<
10
30
  TChain extends Chain | undefined,
11
31
  TAccount extends Account | undefined,
@@ -47,7 +47,7 @@ export type DeployContractReturnType = SendTransactionReturnType
47
47
  * import { deployContract } from 'viem/contract'
48
48
  *
49
49
  * const client = createWalletClient({
50
- * account = privateKeyToAccount('0x…'),
50
+ * account: privateKeyToAccount('0x…'),
51
51
  * chain: mainnet,
52
52
  * transport: http(),
53
53
  * })
@@ -6,6 +6,26 @@ import { checksumAddress } from '../../utils/address/index.js'
6
6
 
7
7
  export type GetAddressesReturnType = Address[]
8
8
 
9
+ /**
10
+ * Returns a list of account addresses owned by the wallet or client.
11
+ *
12
+ * - Docs: https://viem.sh/docs/actions/wallet/getAddresses.html
13
+ * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)
14
+ *
15
+ * @param client - Client to use
16
+ * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}
17
+ *
18
+ * @example
19
+ * import { createWalletClient, custom } from 'viem'
20
+ * import { mainnet } from 'viem/chains'
21
+ * import { getAddresses } from 'viem/wallet'
22
+ *
23
+ * const client = createWalletClient({
24
+ * chain: mainnet,
25
+ * transport: custom(window.ethereum),
26
+ * })
27
+ * const accounts = await getAddresses(client)
28
+ */
9
29
  export async function getAddresses<
10
30
  TChain extends Chain | undefined,
11
31
  TAccount extends Account | undefined = undefined,
@@ -4,6 +4,26 @@ import type { WalletPermission } from '../../types/eip1193.js'
4
4
 
5
5
  export type GetPermissionsReturnType = WalletPermission[]
6
6
 
7
+ /**
8
+ * Gets the wallets current permissions.
9
+ *
10
+ * - Docs: https://viem.sh/docs/actions/wallet/getPermissions.html
11
+ * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)
12
+ *
13
+ * @param client - Client to use
14
+ * @returns The wallet permissions. {@link GetPermissionsReturnType}
15
+ *
16
+ * @example
17
+ * import { createWalletClient, custom } from 'viem'
18
+ * import { mainnet } from 'viem/chains'
19
+ * import { getPermissions } from 'viem/wallet'
20
+ *
21
+ * const client = createWalletClient({
22
+ * chain: mainnet,
23
+ * transport: custom(window.ethereum),
24
+ * })
25
+ * const permissions = await getPermissions(client)
26
+ */
7
27
  export async function getPermissions<
8
28
  TChain extends Chain | undefined,
9
29
  TAccount extends Account | undefined = undefined,
@@ -6,6 +6,30 @@ import { getAddress } from '../../utils/index.js'
6
6
 
7
7
  export type RequestAddressesReturnType = Address[]
8
8
 
9
+ /**
10
+ * Requests a list of accounts managed by a wallet.
11
+ *
12
+ * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses.html
13
+ * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)
14
+ *
15
+ * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).
16
+ *
17
+ * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.
18
+ *
19
+ * @param client - Client to use
20
+ * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}
21
+ *
22
+ * @example
23
+ * import { createWalletClient, custom } from 'viem'
24
+ * import { mainnet } from 'viem/chains'
25
+ * import { requestAddresses } from 'viem/wallet'
26
+ *
27
+ * const client = createWalletClient({
28
+ * chain: mainnet,
29
+ * transport: custom(window.ethereum),
30
+ * })
31
+ * const accounts = await requestAddresses(client)
32
+ */
9
33
  export async function requestAddresses<
10
34
  TChain extends Chain | undefined,
11
35
  TAccount extends Account | undefined = undefined,