viem 0.4.0-main.20230430T213120 → 1.0.1

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 (1657) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +19 -5
  3. package/abi/package.json +5 -0
  4. package/accounts/package.json +5 -0
  5. package/chains/package.json +5 -0
  6. package/contract/package.json +5 -0
  7. package/dist/cjs/abi.js +14 -10
  8. package/dist/cjs/abi.js.map +1 -1
  9. package/dist/cjs/accounts/generatePrivateKey.js +2 -2
  10. package/dist/cjs/accounts/generatePrivateKey.js.map +1 -1
  11. package/dist/cjs/accounts/hdKeyToAccount.js +2 -2
  12. package/dist/cjs/accounts/hdKeyToAccount.js.map +1 -1
  13. package/dist/cjs/accounts/index.js +10 -7
  14. package/dist/cjs/accounts/index.js.map +1 -1
  15. package/dist/cjs/accounts/mnemonicToAccount.js.map +1 -1
  16. package/dist/cjs/accounts/privateKeyToAccount.js +10 -7
  17. package/dist/cjs/accounts/privateKeyToAccount.js.map +1 -1
  18. package/dist/cjs/accounts/toAccount.js +6 -6
  19. package/dist/cjs/accounts/toAccount.js.map +1 -1
  20. package/dist/cjs/accounts/utils/parseAccount.js.map +1 -1
  21. package/dist/cjs/accounts/utils/publicKeyToAddress.js +4 -4
  22. package/dist/cjs/accounts/utils/publicKeyToAddress.js.map +1 -1
  23. package/dist/cjs/accounts/utils/sign.js +3 -3
  24. package/dist/cjs/accounts/utils/sign.js.map +1 -1
  25. package/dist/cjs/accounts/utils/signMessage.js +2 -2
  26. package/dist/cjs/accounts/utils/signMessage.js.map +1 -1
  27. package/dist/cjs/accounts/utils/signTransaction.js +4 -3
  28. package/dist/cjs/accounts/utils/signTransaction.js.map +1 -1
  29. package/dist/cjs/accounts/utils/signTypedData.js +2 -2
  30. package/dist/cjs/accounts/utils/signTypedData.js.map +1 -1
  31. package/dist/cjs/accounts/utils/signatureToHex.js +3 -2
  32. package/dist/cjs/accounts/utils/signatureToHex.js.map +1 -1
  33. package/dist/cjs/actions/ens/getEnsAddress.js +43 -27
  34. package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
  35. package/dist/cjs/actions/ens/getEnsAvatar.js +2 -2
  36. package/dist/cjs/actions/ens/getEnsAvatar.js.map +1 -1
  37. package/dist/cjs/actions/ens/getEnsName.js +11 -10
  38. package/dist/cjs/actions/ens/getEnsName.js.map +1 -1
  39. package/dist/cjs/actions/ens/getEnsResolver.js +7 -6
  40. package/dist/cjs/actions/ens/getEnsResolver.js.map +1 -1
  41. package/dist/cjs/actions/ens/getEnsText.js +13 -9
  42. package/dist/cjs/actions/ens/getEnsText.js.map +1 -1
  43. package/dist/cjs/actions/getContract.js +33 -23
  44. package/dist/cjs/actions/getContract.js.map +1 -1
  45. package/dist/cjs/actions/public/call.js +41 -25
  46. package/dist/cjs/actions/public/call.js.map +1 -1
  47. package/dist/cjs/actions/public/createBlockFilter.js.map +1 -1
  48. package/dist/cjs/actions/public/createContractEventFilter.js +7 -5
  49. package/dist/cjs/actions/public/createContractEventFilter.js.map +1 -1
  50. package/dist/cjs/actions/public/createEventFilter.js +7 -5
  51. package/dist/cjs/actions/public/createEventFilter.js.map +1 -1
  52. package/dist/cjs/actions/public/createPendingTransactionFilter.js.map +1 -1
  53. package/dist/cjs/actions/public/estimateContractGas.js +6 -4
  54. package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
  55. package/dist/cjs/actions/public/estimateGas.js +22 -13
  56. package/dist/cjs/actions/public/estimateGas.js.map +1 -1
  57. package/dist/cjs/actions/public/getBalance.js +2 -2
  58. package/dist/cjs/actions/public/getBalance.js.map +1 -1
  59. package/dist/cjs/actions/public/getBlock.js +8 -6
  60. package/dist/cjs/actions/public/getBlock.js.map +1 -1
  61. package/dist/cjs/actions/public/getBlockNumber.js +3 -3
  62. package/dist/cjs/actions/public/getBlockNumber.js.map +1 -1
  63. package/dist/cjs/actions/public/getBlockTransactionCount.js +5 -4
  64. package/dist/cjs/actions/public/getBlockTransactionCount.js.map +1 -1
  65. package/dist/cjs/actions/public/getBytecode.js +2 -2
  66. package/dist/cjs/actions/public/getBytecode.js.map +1 -1
  67. package/dist/cjs/actions/public/getChainId.js +5 -3
  68. package/dist/cjs/actions/public/getChainId.js.map +1 -1
  69. package/dist/cjs/actions/public/getFeeHistory.js +5 -5
  70. package/dist/cjs/actions/public/getFeeHistory.js.map +1 -1
  71. package/dist/cjs/actions/public/getFilterChanges.js +16 -4
  72. package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
  73. package/dist/cjs/actions/public/getFilterLogs.js +16 -4
  74. package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
  75. package/dist/cjs/actions/public/getGasPrice.js.map +1 -1
  76. package/dist/cjs/actions/public/getLogs.js +22 -8
  77. package/dist/cjs/actions/public/getLogs.js.map +1 -1
  78. package/dist/cjs/actions/public/getStorageAt.js +2 -2
  79. package/dist/cjs/actions/public/getStorageAt.js.map +1 -1
  80. package/dist/cjs/actions/public/getTransaction.js +6 -5
  81. package/dist/cjs/actions/public/getTransaction.js.map +1 -1
  82. package/dist/cjs/actions/public/getTransactionConfirmations.js.map +1 -1
  83. package/dist/cjs/actions/public/getTransactionCount.js +4 -3
  84. package/dist/cjs/actions/public/getTransactionCount.js.map +1 -1
  85. package/dist/cjs/actions/public/getTransactionReceipt.js +4 -4
  86. package/dist/cjs/actions/public/getTransactionReceipt.js.map +1 -1
  87. package/dist/cjs/actions/public/multicall.js +15 -11
  88. package/dist/cjs/actions/public/multicall.js.map +1 -1
  89. package/dist/cjs/actions/public/readContract.js +6 -4
  90. package/dist/cjs/actions/public/readContract.js.map +1 -1
  91. package/dist/cjs/actions/public/simulateContract.js +8 -5
  92. package/dist/cjs/actions/public/simulateContract.js.map +1 -1
  93. package/dist/cjs/actions/public/uninstallFilter.js.map +1 -1
  94. package/dist/cjs/actions/public/verifyHash.js +31 -0
  95. package/dist/cjs/actions/public/verifyHash.js.map +1 -0
  96. package/dist/cjs/actions/public/verifyMessage.js +16 -0
  97. package/dist/cjs/actions/public/verifyMessage.js.map +1 -0
  98. package/dist/cjs/actions/public/verifyTypedData.js +16 -0
  99. package/dist/cjs/actions/public/verifyTypedData.js.map +1 -0
  100. package/dist/cjs/actions/public/waitForTransactionReceipt.js +30 -15
  101. package/dist/cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
  102. package/dist/cjs/actions/public/watchBlockNumber.js +4 -3
  103. package/dist/cjs/actions/public/watchBlockNumber.js.map +1 -1
  104. package/dist/cjs/actions/public/watchBlocks.js +2 -1
  105. package/dist/cjs/actions/public/watchBlocks.js.map +1 -1
  106. package/dist/cjs/actions/public/watchContractEvent.js +7 -4
  107. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  108. package/dist/cjs/actions/public/watchEvent.js +5 -2
  109. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  110. package/dist/cjs/actions/public/watchPendingTransactions.js +2 -1
  111. package/dist/cjs/actions/public/watchPendingTransactions.js.map +1 -1
  112. package/dist/cjs/actions/test/dropTransaction.js.map +1 -1
  113. package/dist/cjs/actions/test/getAutomine.js +4 -0
  114. package/dist/cjs/actions/test/getAutomine.js.map +1 -1
  115. package/dist/cjs/actions/test/getTxpoolContent.js.map +1 -1
  116. package/dist/cjs/actions/test/getTxpoolStatus.js +3 -3
  117. package/dist/cjs/actions/test/getTxpoolStatus.js.map +1 -1
  118. package/dist/cjs/actions/test/impersonateAccount.js.map +1 -1
  119. package/dist/cjs/actions/test/increaseTime.js +2 -2
  120. package/dist/cjs/actions/test/increaseTime.js.map +1 -1
  121. package/dist/cjs/actions/test/inspectTxpool.js.map +1 -1
  122. package/dist/cjs/actions/test/mine.js +11 -5
  123. package/dist/cjs/actions/test/mine.js.map +1 -1
  124. package/dist/cjs/actions/test/revert.js.map +1 -1
  125. package/dist/cjs/actions/test/sendUnsignedTransaction.js +2 -2
  126. package/dist/cjs/actions/test/sendUnsignedTransaction.js.map +1 -1
  127. package/dist/cjs/actions/test/setAutomine.js +11 -4
  128. package/dist/cjs/actions/test/setAutomine.js.map +1 -1
  129. package/dist/cjs/actions/test/setBalance.js +11 -5
  130. package/dist/cjs/actions/test/setBalance.js.map +1 -1
  131. package/dist/cjs/actions/test/setBlockGasLimit.js +2 -2
  132. package/dist/cjs/actions/test/setBlockGasLimit.js.map +1 -1
  133. package/dist/cjs/actions/test/setCode.js.map +1 -1
  134. package/dist/cjs/actions/test/setCoinbase.js.map +1 -1
  135. package/dist/cjs/actions/test/setMinGasPrice.js +2 -2
  136. package/dist/cjs/actions/test/setMinGasPrice.js.map +1 -1
  137. package/dist/cjs/actions/test/setNextBlockBaseFeePerGas.js +2 -2
  138. package/dist/cjs/actions/test/setNextBlockBaseFeePerGas.js.map +1 -1
  139. package/dist/cjs/actions/test/setNextBlockTimestamp.js +2 -2
  140. package/dist/cjs/actions/test/setNextBlockTimestamp.js.map +1 -1
  141. package/dist/cjs/actions/test/setNonce.js +2 -2
  142. package/dist/cjs/actions/test/setNonce.js.map +1 -1
  143. package/dist/cjs/actions/test/setStorageAt.js +2 -2
  144. package/dist/cjs/actions/test/setStorageAt.js.map +1 -1
  145. package/dist/cjs/actions/test/stopImpersonatingAccount.js.map +1 -1
  146. package/dist/cjs/actions/wallet/addChain.js +2 -2
  147. package/dist/cjs/actions/wallet/addChain.js.map +1 -1
  148. package/dist/cjs/actions/wallet/deployContract.js +4 -4
  149. package/dist/cjs/actions/wallet/deployContract.js.map +1 -1
  150. package/dist/cjs/actions/wallet/getAddresses.js +2 -2
  151. package/dist/cjs/actions/wallet/getAddresses.js.map +1 -1
  152. package/dist/cjs/actions/wallet/getPermissions.js.map +1 -1
  153. package/dist/cjs/actions/wallet/requestAddresses.js +2 -2
  154. package/dist/cjs/actions/wallet/requestAddresses.js.map +1 -1
  155. package/dist/cjs/actions/wallet/requestPermissions.js.map +1 -1
  156. package/dist/cjs/actions/wallet/sendTransaction.js +27 -16
  157. package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
  158. package/dist/cjs/actions/wallet/signMessage.js +13 -5
  159. package/dist/cjs/actions/wallet/signMessage.js.map +1 -1
  160. package/dist/cjs/actions/wallet/signTypedData.js +9 -6
  161. package/dist/cjs/actions/wallet/signTypedData.js.map +1 -1
  162. package/dist/cjs/actions/wallet/switchChain.js +2 -2
  163. package/dist/cjs/actions/wallet/switchChain.js.map +1 -1
  164. package/dist/cjs/actions/wallet/watchAsset.js.map +1 -1
  165. package/dist/cjs/actions/wallet/writeContract.js +2 -2
  166. package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
  167. package/dist/cjs/chains.js +106 -90
  168. package/dist/cjs/chains.js.map +1 -1
  169. package/dist/cjs/clients/createClient.js +1 -1
  170. package/dist/cjs/clients/createClient.js.map +1 -1
  171. package/dist/cjs/clients/createPublicClient.js +2 -2
  172. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  173. package/dist/cjs/clients/createTestClient.js +2 -2
  174. package/dist/cjs/clients/createTestClient.js.map +1 -1
  175. package/dist/cjs/clients/createWalletClient.js +4 -4
  176. package/dist/cjs/clients/createWalletClient.js.map +1 -1
  177. package/dist/cjs/clients/decorators/public.js +80 -40
  178. package/dist/cjs/clients/decorators/public.js.map +1 -1
  179. package/dist/cjs/clients/decorators/test.js +56 -29
  180. package/dist/cjs/clients/decorators/test.js.map +1 -1
  181. package/dist/cjs/clients/decorators/wallet.js +26 -14
  182. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  183. package/dist/cjs/clients/transports/createTransport.js +2 -2
  184. package/dist/cjs/clients/transports/createTransport.js.map +1 -1
  185. package/dist/cjs/clients/transports/custom.js.map +1 -1
  186. package/dist/cjs/clients/transports/fallback.js.map +1 -1
  187. package/dist/cjs/clients/transports/http.js +28 -10
  188. package/dist/cjs/clients/transports/http.js.map +1 -1
  189. package/dist/cjs/clients/transports/webSocket.js +24 -16
  190. package/dist/cjs/clients/transports/webSocket.js.map +1 -1
  191. package/dist/cjs/constants/abis.js +36 -1
  192. package/dist/cjs/constants/abis.js.map +1 -1
  193. package/dist/cjs/constants/contracts.js +5 -0
  194. package/dist/cjs/constants/contracts.js.map +1 -0
  195. package/dist/cjs/contract.js +49 -28
  196. package/dist/cjs/contract.js.map +1 -1
  197. package/dist/cjs/ens.js +15 -10
  198. package/dist/cjs/ens.js.map +1 -1
  199. package/dist/cjs/errors/abi.js +27 -14
  200. package/dist/cjs/errors/abi.js.map +1 -1
  201. package/dist/cjs/errors/block.js.map +1 -1
  202. package/dist/cjs/errors/ccip.js +2 -1
  203. package/dist/cjs/errors/ccip.js.map +1 -1
  204. package/dist/cjs/errors/chain.js.map +1 -1
  205. package/dist/cjs/errors/contract.js +23 -17
  206. package/dist/cjs/errors/contract.js.map +1 -1
  207. package/dist/cjs/errors/data.js +13 -1
  208. package/dist/cjs/errors/data.js.map +1 -1
  209. package/dist/cjs/errors/encoding.js.map +1 -1
  210. package/dist/cjs/errors/estimateGas.js +6 -5
  211. package/dist/cjs/errors/estimateGas.js.map +1 -1
  212. package/dist/cjs/errors/node.js +5 -5
  213. package/dist/cjs/errors/node.js.map +1 -1
  214. package/dist/cjs/errors/request.js +5 -5
  215. package/dist/cjs/errors/request.js.map +1 -1
  216. package/dist/cjs/errors/rpc.js +8 -2
  217. package/dist/cjs/errors/rpc.js.map +1 -1
  218. package/dist/cjs/errors/transaction.js +6 -5
  219. package/dist/cjs/errors/transaction.js.map +1 -1
  220. package/dist/cjs/errors/utils.js.map +1 -1
  221. package/dist/cjs/errors/version.js +1 -1
  222. package/dist/cjs/errors/version.js.map +1 -1
  223. package/dist/cjs/index.js +318 -213
  224. package/dist/cjs/index.js.map +1 -1
  225. package/dist/cjs/public.js +53 -28
  226. package/dist/cjs/public.js.map +1 -1
  227. package/dist/cjs/test.js +56 -29
  228. package/dist/cjs/test.js.map +1 -1
  229. package/dist/cjs/types/eip1193.js +3 -3
  230. package/dist/cjs/types/eip1193.js.map +1 -1
  231. package/dist/cjs/utils/abi/decodeAbiParameters.js +40 -30
  232. package/dist/cjs/utils/abi/decodeAbiParameters.js.map +1 -1
  233. package/dist/cjs/utils/abi/decodeDeployData.js +4 -4
  234. package/dist/cjs/utils/abi/decodeDeployData.js.map +1 -1
  235. package/dist/cjs/utils/abi/decodeErrorResult.js +10 -10
  236. package/dist/cjs/utils/abi/decodeErrorResult.js.map +1 -1
  237. package/dist/cjs/utils/abi/decodeEventLog.js +41 -28
  238. package/dist/cjs/utils/abi/decodeEventLog.js.map +1 -1
  239. package/dist/cjs/utils/abi/decodeFunctionData.js +7 -7
  240. package/dist/cjs/utils/abi/decodeFunctionData.js.map +1 -1
  241. package/dist/cjs/utils/abi/decodeFunctionResult.js +16 -11
  242. package/dist/cjs/utils/abi/decodeFunctionResult.js.map +1 -1
  243. package/dist/cjs/utils/abi/encodeAbiParameters.js +37 -33
  244. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  245. package/dist/cjs/utils/abi/encodeDeployData.js +6 -6
  246. package/dist/cjs/utils/abi/encodeDeployData.js.map +1 -1
  247. package/dist/cjs/utils/abi/encodeErrorResult.js +21 -16
  248. package/dist/cjs/utils/abi/encodeErrorResult.js.map +1 -1
  249. package/dist/cjs/utils/abi/encodeEventTopics.js +34 -22
  250. package/dist/cjs/utils/abi/encodeEventTopics.js.map +1 -1
  251. package/dist/cjs/utils/abi/encodeFunctionData.js +22 -15
  252. package/dist/cjs/utils/abi/encodeFunctionData.js.map +1 -1
  253. package/dist/cjs/utils/abi/encodeFunctionResult.js +21 -8
  254. package/dist/cjs/utils/abi/encodeFunctionResult.js.map +1 -1
  255. package/dist/cjs/utils/abi/encodePacked.js +18 -16
  256. package/dist/cjs/utils/abi/encodePacked.js.map +1 -1
  257. package/dist/cjs/utils/abi/formatAbiItem.js +2 -2
  258. package/dist/cjs/utils/abi/formatAbiItem.js.map +1 -1
  259. package/dist/cjs/utils/abi/formatAbiItemWithArgs.js +2 -2
  260. package/dist/cjs/utils/abi/formatAbiItemWithArgs.js.map +1 -1
  261. package/dist/cjs/utils/abi/getAbiItem.js +4 -2
  262. package/dist/cjs/utils/abi/getAbiItem.js.map +1 -1
  263. package/dist/cjs/utils/address/getAddress.js +5 -5
  264. package/dist/cjs/utils/address/getAddress.js.map +1 -1
  265. package/dist/cjs/utils/address/getContractAddress.js +15 -11
  266. package/dist/cjs/utils/address/getContractAddress.js.map +1 -1
  267. package/dist/cjs/utils/address/isAddressEqual.js +3 -3
  268. package/dist/cjs/utils/address/isAddressEqual.js.map +1 -1
  269. package/dist/cjs/utils/buildRequest.js +23 -22
  270. package/dist/cjs/utils/buildRequest.js.map +1 -1
  271. package/dist/cjs/utils/ccip.js +17 -14
  272. package/dist/cjs/utils/ccip.js.map +1 -1
  273. package/dist/cjs/utils/chain.js +11 -4
  274. package/dist/cjs/utils/chain.js.map +1 -1
  275. package/dist/cjs/utils/data/isBytesEqual.js +12 -0
  276. package/dist/cjs/utils/data/isBytesEqual.js.map +1 -0
  277. package/dist/cjs/utils/data/isHex.js +2 -2
  278. package/dist/cjs/utils/data/isHex.js.map +1 -1
  279. package/dist/cjs/utils/data/pad.js +3 -3
  280. package/dist/cjs/utils/data/pad.js.map +1 -1
  281. package/dist/cjs/utils/data/size.js +1 -1
  282. package/dist/cjs/utils/data/size.js.map +1 -1
  283. package/dist/cjs/utils/data/slice.js +37 -12
  284. package/dist/cjs/utils/data/slice.js.map +1 -1
  285. package/dist/cjs/utils/data/trim.js +1 -1
  286. package/dist/cjs/utils/data/trim.js.map +1 -1
  287. package/dist/cjs/utils/encoding/fromBytes.js +3 -4
  288. package/dist/cjs/utils/encoding/fromBytes.js.map +1 -1
  289. package/dist/cjs/utils/encoding/fromHex.js +8 -8
  290. package/dist/cjs/utils/encoding/fromHex.js.map +1 -1
  291. package/dist/cjs/utils/encoding/fromRlp.js +7 -7
  292. package/dist/cjs/utils/encoding/fromRlp.js.map +1 -1
  293. package/dist/cjs/utils/encoding/toBytes.js +2 -2
  294. package/dist/cjs/utils/encoding/toBytes.js.map +1 -1
  295. package/dist/cjs/utils/encoding/toHex.js +6 -6
  296. package/dist/cjs/utils/encoding/toHex.js.map +1 -1
  297. package/dist/cjs/utils/encoding/toRlp.js +2 -2
  298. package/dist/cjs/utils/encoding/toRlp.js.map +1 -1
  299. package/dist/cjs/utils/ens/avatar/parseAvatarRecord.js.map +1 -1
  300. package/dist/cjs/utils/ens/avatar/utils.js +14 -14
  301. package/dist/cjs/utils/ens/avatar/utils.js.map +1 -1
  302. package/dist/cjs/utils/ens/encodeLabelhash.js +8 -0
  303. package/dist/cjs/utils/ens/encodeLabelhash.js.map +1 -0
  304. package/dist/cjs/utils/ens/encodedLabelToLabelhash.js +18 -0
  305. package/dist/cjs/utils/ens/encodedLabelToLabelhash.js.map +1 -0
  306. package/dist/cjs/utils/ens/labelhash.js +6 -4
  307. package/dist/cjs/utils/ens/labelhash.js.map +1 -1
  308. package/dist/cjs/utils/ens/namehash.js +12 -7
  309. package/dist/cjs/utils/ens/namehash.js.map +1 -1
  310. package/dist/cjs/utils/ens/packetToBytes.js +11 -10
  311. package/dist/cjs/utils/ens/packetToBytes.js.map +1 -1
  312. package/dist/cjs/utils/errors/getCallError.js +2 -2
  313. package/dist/cjs/utils/errors/getCallError.js.map +1 -1
  314. package/dist/cjs/utils/errors/getContractError.js +9 -6
  315. package/dist/cjs/utils/errors/getContractError.js.map +1 -1
  316. package/dist/cjs/utils/errors/getEstimateGasError.js +2 -2
  317. package/dist/cjs/utils/errors/getEstimateGasError.js.map +1 -1
  318. package/dist/cjs/utils/errors/getNodeError.js +30 -29
  319. package/dist/cjs/utils/errors/getNodeError.js.map +1 -1
  320. package/dist/cjs/utils/errors/getTransactionError.js +2 -2
  321. package/dist/cjs/utils/errors/getTransactionError.js.map +1 -1
  322. package/dist/cjs/utils/filters/createFilterRequestScope.js.map +1 -1
  323. package/dist/cjs/utils/formatters/block.js.map +1 -1
  324. package/dist/cjs/utils/formatters/feeHistory.js.map +1 -1
  325. package/dist/cjs/utils/formatters/format.js.map +1 -1
  326. package/dist/cjs/utils/formatters/log.js +2 -2
  327. package/dist/cjs/utils/formatters/log.js.map +1 -1
  328. package/dist/cjs/utils/formatters/transaction.js +3 -3
  329. package/dist/cjs/utils/formatters/transaction.js.map +1 -1
  330. package/dist/cjs/utils/formatters/transactionReceipt.js +2 -2
  331. package/dist/cjs/utils/formatters/transactionReceipt.js.map +1 -1
  332. package/dist/cjs/utils/formatters/transactionRequest.js +7 -7
  333. package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
  334. package/dist/cjs/utils/hash/getEventSelector.js.map +1 -1
  335. package/dist/cjs/utils/hash/getFunctionSelector.js +2 -2
  336. package/dist/cjs/utils/hash/getFunctionSelector.js.map +1 -1
  337. package/dist/cjs/utils/hash/hashFunction.js +5 -7
  338. package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
  339. package/dist/cjs/utils/hash/isHash.js +3 -2
  340. package/dist/cjs/utils/hash/isHash.js.map +1 -1
  341. package/dist/cjs/utils/hash/keccak256.js +5 -4
  342. package/dist/cjs/utils/hash/keccak256.js.map +1 -1
  343. package/dist/cjs/utils/index.js +187 -126
  344. package/dist/cjs/utils/index.js.map +1 -1
  345. package/dist/cjs/utils/promise/createBatchScheduler.js.map +1 -1
  346. package/dist/cjs/utils/promise/withCache.js +8 -4
  347. package/dist/cjs/utils/promise/withCache.js.map +1 -1
  348. package/dist/cjs/utils/rpc.js +69 -65
  349. package/dist/cjs/utils/rpc.js.map +1 -1
  350. package/dist/cjs/utils/signature/hashMessage.js +11 -5
  351. package/dist/cjs/utils/signature/hashMessage.js.map +1 -1
  352. package/dist/cjs/utils/signature/hashTypedData.js +13 -13
  353. package/dist/cjs/utils/signature/hashTypedData.js.map +1 -1
  354. package/dist/cjs/utils/signature/recoverAddress.js +2 -2
  355. package/dist/cjs/utils/signature/recoverAddress.js.map +1 -1
  356. package/dist/cjs/utils/signature/recoverMessageAddress.js.map +1 -1
  357. package/dist/cjs/utils/signature/recoverPublicKey.js +8 -5
  358. package/dist/cjs/utils/signature/recoverPublicKey.js.map +1 -1
  359. package/dist/cjs/utils/signature/recoverTypedDataAddress.js.map +1 -1
  360. package/dist/cjs/utils/signature/verifyMessage.js +4 -2
  361. package/dist/cjs/utils/signature/verifyMessage.js.map +1 -1
  362. package/dist/cjs/utils/signature/verifyTypedData.js +3 -2
  363. package/dist/cjs/utils/signature/verifyTypedData.js.map +1 -1
  364. package/dist/cjs/utils/transaction/assertRequest.js +11 -10
  365. package/dist/cjs/utils/transaction/assertRequest.js.map +1 -1
  366. package/dist/cjs/utils/transaction/assertTransaction.js +22 -19
  367. package/dist/cjs/utils/transaction/assertTransaction.js.map +1 -1
  368. package/dist/cjs/utils/transaction/getSerializedTransactionType.js +4 -4
  369. package/dist/cjs/utils/transaction/getSerializedTransactionType.js.map +1 -1
  370. package/dist/cjs/utils/transaction/getTransactionType.js.map +1 -1
  371. package/dist/cjs/utils/transaction/parseTransaction.js +58 -55
  372. package/dist/cjs/utils/transaction/parseTransaction.js.map +1 -1
  373. package/dist/cjs/utils/transaction/prepareRequest.js +17 -14
  374. package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
  375. package/dist/cjs/utils/transaction/serializeTransaction.js +35 -32
  376. package/dist/cjs/utils/transaction/serializeTransaction.js.map +1 -1
  377. package/dist/cjs/utils/typedData.js +11 -10
  378. package/dist/cjs/utils/typedData.js.map +1 -1
  379. package/dist/cjs/utils/unit/formatEther.js +2 -2
  380. package/dist/cjs/utils/unit/formatEther.js.map +1 -1
  381. package/dist/cjs/utils/unit/formatGwei.js +2 -2
  382. package/dist/cjs/utils/unit/formatGwei.js.map +1 -1
  383. package/dist/cjs/utils/unit/parseEther.js +2 -2
  384. package/dist/cjs/utils/unit/parseEther.js.map +1 -1
  385. package/dist/cjs/utils/unit/parseGwei.js +2 -2
  386. package/dist/cjs/utils/unit/parseGwei.js.map +1 -1
  387. package/dist/cjs/utils/unit/parseUnits.js +14 -3
  388. package/dist/cjs/utils/unit/parseUnits.js.map +1 -1
  389. package/dist/cjs/wallet.js +20 -11
  390. package/dist/cjs/wallet.js.map +1 -1
  391. package/dist/esm/abi.js +5 -1
  392. package/dist/esm/abi.js.map +1 -1
  393. package/dist/esm/accounts/generatePrivateKey.js +1 -1
  394. package/dist/esm/accounts/generatePrivateKey.js.map +1 -1
  395. package/dist/esm/accounts/hdKeyToAccount.js +1 -1
  396. package/dist/esm/accounts/hdKeyToAccount.js.map +1 -1
  397. package/dist/esm/accounts/index.js +5 -3
  398. package/dist/esm/accounts/index.js.map +1 -1
  399. package/dist/esm/accounts/mnemonicToAccount.js.map +1 -1
  400. package/dist/esm/accounts/privateKeyToAccount.js +5 -2
  401. package/dist/esm/accounts/privateKeyToAccount.js.map +1 -1
  402. package/dist/esm/accounts/toAccount.js +2 -2
  403. package/dist/esm/accounts/toAccount.js.map +1 -1
  404. package/dist/esm/accounts/utils/parseAccount.js.map +1 -1
  405. package/dist/esm/accounts/utils/publicKeyToAddress.js +2 -2
  406. package/dist/esm/accounts/utils/publicKeyToAddress.js.map +1 -1
  407. package/dist/esm/accounts/utils/sign.js +1 -1
  408. package/dist/esm/accounts/utils/sign.js.map +1 -1
  409. package/dist/esm/accounts/utils/signMessage.js +1 -1
  410. package/dist/esm/accounts/utils/signMessage.js.map +1 -1
  411. package/dist/esm/accounts/utils/signTransaction.js +2 -1
  412. package/dist/esm/accounts/utils/signTransaction.js.map +1 -1
  413. package/dist/esm/accounts/utils/signTypedData.js +1 -1
  414. package/dist/esm/accounts/utils/signTypedData.js.map +1 -1
  415. package/dist/esm/accounts/utils/signatureToHex.js +2 -1
  416. package/dist/esm/accounts/utils/signatureToHex.js.map +1 -1
  417. package/dist/esm/actions/ens/getEnsAddress.js +42 -26
  418. package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
  419. package/dist/esm/actions/ens/getEnsAvatar.js +1 -1
  420. package/dist/esm/actions/ens/getEnsAvatar.js.map +1 -1
  421. package/dist/esm/actions/ens/getEnsName.js +6 -5
  422. package/dist/esm/actions/ens/getEnsName.js.map +1 -1
  423. package/dist/esm/actions/ens/getEnsResolver.js +4 -3
  424. package/dist/esm/actions/ens/getEnsResolver.js.map +1 -1
  425. package/dist/esm/actions/ens/getEnsText.js +7 -3
  426. package/dist/esm/actions/ens/getEnsText.js.map +1 -1
  427. package/dist/esm/actions/getContract.js +28 -18
  428. package/dist/esm/actions/getContract.js.map +1 -1
  429. package/dist/esm/actions/public/call.js +22 -6
  430. package/dist/esm/actions/public/call.js.map +1 -1
  431. package/dist/esm/actions/public/createBlockFilter.js.map +1 -1
  432. package/dist/esm/actions/public/createContractEventFilter.js +4 -2
  433. package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
  434. package/dist/esm/actions/public/createEventFilter.js +4 -2
  435. package/dist/esm/actions/public/createEventFilter.js.map +1 -1
  436. package/dist/esm/actions/public/createPendingTransactionFilter.js.map +1 -1
  437. package/dist/esm/actions/public/estimateContractGas.js +4 -2
  438. package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
  439. package/dist/esm/actions/public/estimateGas.js +15 -6
  440. package/dist/esm/actions/public/estimateGas.js.map +1 -1
  441. package/dist/esm/actions/public/getBalance.js +1 -1
  442. package/dist/esm/actions/public/getBalance.js.map +1 -1
  443. package/dist/esm/actions/public/getBlock.js +4 -2
  444. package/dist/esm/actions/public/getBlock.js.map +1 -1
  445. package/dist/esm/actions/public/getBlockNumber.js +1 -1
  446. package/dist/esm/actions/public/getBlockNumber.js.map +1 -1
  447. package/dist/esm/actions/public/getBlockTransactionCount.js +3 -2
  448. package/dist/esm/actions/public/getBlockTransactionCount.js.map +1 -1
  449. package/dist/esm/actions/public/getBytecode.js +1 -1
  450. package/dist/esm/actions/public/getBytecode.js.map +1 -1
  451. package/dist/esm/actions/public/getChainId.js +4 -2
  452. package/dist/esm/actions/public/getChainId.js.map +1 -1
  453. package/dist/esm/actions/public/getFeeHistory.js +2 -2
  454. package/dist/esm/actions/public/getFeeHistory.js.map +1 -1
  455. package/dist/esm/actions/public/getFilterChanges.js +15 -3
  456. package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
  457. package/dist/esm/actions/public/getFilterLogs.js +15 -3
  458. package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
  459. package/dist/esm/actions/public/getGasPrice.js.map +1 -1
  460. package/dist/esm/actions/public/getLogs.js +18 -4
  461. package/dist/esm/actions/public/getLogs.js.map +1 -1
  462. package/dist/esm/actions/public/getStorageAt.js +1 -1
  463. package/dist/esm/actions/public/getStorageAt.js.map +1 -1
  464. package/dist/esm/actions/public/getTransaction.js +3 -2
  465. package/dist/esm/actions/public/getTransaction.js.map +1 -1
  466. package/dist/esm/actions/public/getTransactionConfirmations.js.map +1 -1
  467. package/dist/esm/actions/public/getTransactionCount.js +2 -1
  468. package/dist/esm/actions/public/getTransactionCount.js.map +1 -1
  469. package/dist/esm/actions/public/getTransactionReceipt.js +3 -3
  470. package/dist/esm/actions/public/getTransactionReceipt.js.map +1 -1
  471. package/dist/esm/actions/public/multicall.js +7 -3
  472. package/dist/esm/actions/public/multicall.js.map +1 -1
  473. package/dist/esm/actions/public/readContract.js +3 -1
  474. package/dist/esm/actions/public/readContract.js.map +1 -1
  475. package/dist/esm/actions/public/simulateContract.js +4 -1
  476. package/dist/esm/actions/public/simulateContract.js.map +1 -1
  477. package/dist/esm/actions/public/uninstallFilter.js.map +1 -1
  478. package/dist/esm/actions/public/verifyHash.js +27 -0
  479. package/dist/esm/actions/public/verifyHash.js.map +1 -0
  480. package/dist/esm/actions/public/verifyMessage.js +12 -0
  481. package/dist/esm/actions/public/verifyMessage.js.map +1 -0
  482. package/dist/esm/actions/public/verifyTypedData.js +12 -0
  483. package/dist/esm/actions/public/verifyTypedData.js.map +1 -0
  484. package/dist/esm/actions/public/waitForTransactionReceipt.js +27 -12
  485. package/dist/esm/actions/public/waitForTransactionReceipt.js.map +1 -1
  486. package/dist/esm/actions/public/watchBlockNumber.js +4 -3
  487. package/dist/esm/actions/public/watchBlockNumber.js.map +1 -1
  488. package/dist/esm/actions/public/watchBlocks.js +2 -1
  489. package/dist/esm/actions/public/watchBlocks.js.map +1 -1
  490. package/dist/esm/actions/public/watchContractEvent.js +7 -4
  491. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  492. package/dist/esm/actions/public/watchEvent.js +6 -3
  493. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  494. package/dist/esm/actions/public/watchPendingTransactions.js +2 -1
  495. package/dist/esm/actions/public/watchPendingTransactions.js.map +1 -1
  496. package/dist/esm/actions/test/dropTransaction.js.map +1 -1
  497. package/dist/esm/actions/test/getAutomine.js +4 -0
  498. package/dist/esm/actions/test/getAutomine.js.map +1 -1
  499. package/dist/esm/actions/test/getTxpoolContent.js.map +1 -1
  500. package/dist/esm/actions/test/getTxpoolStatus.js +1 -1
  501. package/dist/esm/actions/test/getTxpoolStatus.js.map +1 -1
  502. package/dist/esm/actions/test/impersonateAccount.js.map +1 -1
  503. package/dist/esm/actions/test/increaseTime.js +1 -1
  504. package/dist/esm/actions/test/increaseTime.js.map +1 -1
  505. package/dist/esm/actions/test/inspectTxpool.js.map +1 -1
  506. package/dist/esm/actions/test/mine.js +11 -5
  507. package/dist/esm/actions/test/mine.js.map +1 -1
  508. package/dist/esm/actions/test/revert.js.map +1 -1
  509. package/dist/esm/actions/test/sendUnsignedTransaction.js +1 -1
  510. package/dist/esm/actions/test/sendUnsignedTransaction.js.map +1 -1
  511. package/dist/esm/actions/test/setAutomine.js +11 -4
  512. package/dist/esm/actions/test/setAutomine.js.map +1 -1
  513. package/dist/esm/actions/test/setBalance.js +11 -5
  514. package/dist/esm/actions/test/setBalance.js.map +1 -1
  515. package/dist/esm/actions/test/setBlockGasLimit.js +1 -1
  516. package/dist/esm/actions/test/setBlockGasLimit.js.map +1 -1
  517. package/dist/esm/actions/test/setCode.js.map +1 -1
  518. package/dist/esm/actions/test/setCoinbase.js.map +1 -1
  519. package/dist/esm/actions/test/setMinGasPrice.js +1 -1
  520. package/dist/esm/actions/test/setMinGasPrice.js.map +1 -1
  521. package/dist/esm/actions/test/setNextBlockBaseFeePerGas.js +1 -1
  522. package/dist/esm/actions/test/setNextBlockBaseFeePerGas.js.map +1 -1
  523. package/dist/esm/actions/test/setNextBlockTimestamp.js +1 -1
  524. package/dist/esm/actions/test/setNextBlockTimestamp.js.map +1 -1
  525. package/dist/esm/actions/test/setNonce.js +1 -1
  526. package/dist/esm/actions/test/setNonce.js.map +1 -1
  527. package/dist/esm/actions/test/setStorageAt.js +1 -1
  528. package/dist/esm/actions/test/setStorageAt.js.map +1 -1
  529. package/dist/esm/actions/test/stopImpersonatingAccount.js.map +1 -1
  530. package/dist/esm/actions/wallet/addChain.js +1 -1
  531. package/dist/esm/actions/wallet/addChain.js.map +1 -1
  532. package/dist/esm/actions/wallet/deployContract.js +2 -2
  533. package/dist/esm/actions/wallet/deployContract.js.map +1 -1
  534. package/dist/esm/actions/wallet/getAddresses.js +1 -1
  535. package/dist/esm/actions/wallet/getAddresses.js.map +1 -1
  536. package/dist/esm/actions/wallet/getPermissions.js.map +1 -1
  537. package/dist/esm/actions/wallet/requestAddresses.js +1 -1
  538. package/dist/esm/actions/wallet/requestAddresses.js.map +1 -1
  539. package/dist/esm/actions/wallet/requestPermissions.js.map +1 -1
  540. package/dist/esm/actions/wallet/sendTransaction.js +19 -8
  541. package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
  542. package/dist/esm/actions/wallet/signMessage.js +11 -3
  543. package/dist/esm/actions/wallet/signMessage.js.map +1 -1
  544. package/dist/esm/actions/wallet/signTypedData.js +5 -2
  545. package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
  546. package/dist/esm/actions/wallet/switchChain.js +1 -1
  547. package/dist/esm/actions/wallet/switchChain.js.map +1 -1
  548. package/dist/esm/actions/wallet/watchAsset.js.map +1 -1
  549. package/dist/esm/actions/wallet/writeContract.js +2 -2
  550. package/dist/esm/actions/wallet/writeContract.js.map +1 -1
  551. package/dist/esm/chains.js +17 -1
  552. package/dist/esm/chains.js.map +1 -1
  553. package/dist/esm/clients/createClient.js +1 -1
  554. package/dist/esm/clients/createClient.js.map +1 -1
  555. package/dist/esm/clients/createPublicClient.js +1 -1
  556. package/dist/esm/clients/createPublicClient.js.map +1 -1
  557. package/dist/esm/clients/createTestClient.js +1 -1
  558. package/dist/esm/clients/createTestClient.js.map +1 -1
  559. package/dist/esm/clients/createWalletClient.js +2 -2
  560. package/dist/esm/clients/createWalletClient.js.map +1 -1
  561. package/dist/esm/clients/decorators/public.js +42 -2
  562. package/dist/esm/clients/decorators/public.js.map +1 -1
  563. package/dist/esm/clients/decorators/test.js +28 -1
  564. package/dist/esm/clients/decorators/test.js.map +1 -1
  565. package/dist/esm/clients/decorators/wallet.js +13 -1
  566. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  567. package/dist/esm/clients/transports/createTransport.js +1 -1
  568. package/dist/esm/clients/transports/createTransport.js.map +1 -1
  569. package/dist/esm/clients/transports/custom.js +1 -1
  570. package/dist/esm/clients/transports/custom.js.map +1 -1
  571. package/dist/esm/clients/transports/fallback.js +1 -1
  572. package/dist/esm/clients/transports/fallback.js.map +1 -1
  573. package/dist/esm/clients/transports/http.js +28 -10
  574. package/dist/esm/clients/transports/http.js.map +1 -1
  575. package/dist/esm/clients/transports/webSocket.js +24 -16
  576. package/dist/esm/clients/transports/webSocket.js.map +1 -1
  577. package/dist/esm/constants/abis.js +35 -0
  578. package/dist/esm/constants/abis.js.map +1 -1
  579. package/dist/esm/constants/contracts.js +2 -0
  580. package/dist/esm/constants/contracts.js.map +1 -0
  581. package/dist/esm/contract.js +25 -3
  582. package/dist/esm/contract.js.map +1 -1
  583. package/dist/esm/ens.js +7 -2
  584. package/dist/esm/ens.js.map +1 -1
  585. package/dist/esm/errors/abi.js +23 -10
  586. package/dist/esm/errors/abi.js.map +1 -1
  587. package/dist/esm/errors/block.js.map +1 -1
  588. package/dist/esm/errors/ccip.js +2 -1
  589. package/dist/esm/errors/ccip.js.map +1 -1
  590. package/dist/esm/errors/chain.js.map +1 -1
  591. package/dist/esm/errors/contract.js +11 -5
  592. package/dist/esm/errors/contract.js.map +1 -1
  593. package/dist/esm/errors/data.js +11 -0
  594. package/dist/esm/errors/data.js.map +1 -1
  595. package/dist/esm/errors/encoding.js.map +1 -1
  596. package/dist/esm/errors/estimateGas.js +2 -1
  597. package/dist/esm/errors/estimateGas.js.map +1 -1
  598. package/dist/esm/errors/node.js +1 -1
  599. package/dist/esm/errors/node.js.map +1 -1
  600. package/dist/esm/errors/request.js +1 -1
  601. package/dist/esm/errors/request.js.map +1 -1
  602. package/dist/esm/errors/rpc.js +8 -2
  603. package/dist/esm/errors/rpc.js.map +1 -1
  604. package/dist/esm/errors/transaction.js +2 -1
  605. package/dist/esm/errors/transaction.js.map +1 -1
  606. package/dist/esm/errors/utils.js.map +1 -1
  607. package/dist/esm/errors/version.js +1 -1
  608. package/dist/esm/errors/version.js.map +1 -1
  609. package/dist/esm/index.js +148 -6
  610. package/dist/esm/index.js.map +1 -1
  611. package/dist/esm/public.js +26 -1
  612. package/dist/esm/public.js.map +1 -1
  613. package/dist/esm/test.js +28 -1
  614. package/dist/esm/test.js.map +1 -1
  615. package/dist/esm/types/account.js +1 -1
  616. package/dist/esm/types/account.js.map +1 -1
  617. package/dist/esm/types/eip1193.js +1 -1
  618. package/dist/esm/types/eip1193.js.map +1 -1
  619. package/dist/esm/utils/abi/decodeAbiParameters.js +28 -18
  620. package/dist/esm/utils/abi/decodeAbiParameters.js.map +1 -1
  621. package/dist/esm/utils/abi/decodeDeployData.js +1 -1
  622. package/dist/esm/utils/abi/decodeDeployData.js.map +1 -1
  623. package/dist/esm/utils/abi/decodeErrorResult.js +4 -4
  624. package/dist/esm/utils/abi/decodeErrorResult.js.map +1 -1
  625. package/dist/esm/utils/abi/decodeEventLog.js +37 -24
  626. package/dist/esm/utils/abi/decodeEventLog.js.map +1 -1
  627. package/dist/esm/utils/abi/decodeFunctionData.js +3 -3
  628. package/dist/esm/utils/abi/decodeFunctionData.js.map +1 -1
  629. package/dist/esm/utils/abi/decodeFunctionResult.js +16 -11
  630. package/dist/esm/utils/abi/decodeFunctionResult.js.map +1 -1
  631. package/dist/esm/utils/abi/encodeAbiParameters.js +8 -4
  632. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  633. package/dist/esm/utils/abi/encodeDeployData.js +2 -2
  634. package/dist/esm/utils/abi/encodeDeployData.js.map +1 -1
  635. package/dist/esm/utils/abi/encodeErrorResult.js +19 -14
  636. package/dist/esm/utils/abi/encodeErrorResult.js.map +1 -1
  637. package/dist/esm/utils/abi/encodeEventTopics.js +31 -19
  638. package/dist/esm/utils/abi/encodeEventTopics.js.map +1 -1
  639. package/dist/esm/utils/abi/encodeFunctionData.js +20 -13
  640. package/dist/esm/utils/abi/encodeFunctionData.js.map +1 -1
  641. package/dist/esm/utils/abi/encodeFunctionResult.js +21 -8
  642. package/dist/esm/utils/abi/encodeFunctionResult.js.map +1 -1
  643. package/dist/esm/utils/abi/encodePacked.js +6 -4
  644. package/dist/esm/utils/abi/encodePacked.js.map +1 -1
  645. package/dist/esm/utils/abi/formatAbiItem.js +1 -1
  646. package/dist/esm/utils/abi/formatAbiItem.js.map +1 -1
  647. package/dist/esm/utils/abi/formatAbiItemWithArgs.js +1 -1
  648. package/dist/esm/utils/abi/formatAbiItemWithArgs.js.map +1 -1
  649. package/dist/esm/utils/abi/getAbiItem.js +3 -1
  650. package/dist/esm/utils/abi/getAbiItem.js.map +1 -1
  651. package/dist/esm/utils/address/getAddress.js +3 -3
  652. package/dist/esm/utils/address/getAddress.js.map +1 -1
  653. package/dist/esm/utils/address/getContractAddress.js +7 -3
  654. package/dist/esm/utils/address/getContractAddress.js.map +1 -1
  655. package/dist/esm/utils/address/isAddressEqual.js +1 -1
  656. package/dist/esm/utils/address/isAddressEqual.js.map +1 -1
  657. package/dist/esm/utils/buildRequest.js +4 -3
  658. package/dist/esm/utils/buildRequest.js.map +1 -1
  659. package/dist/esm/utils/ccip.js +8 -4
  660. package/dist/esm/utils/ccip.js.map +1 -1
  661. package/dist/esm/utils/chain.js +7 -1
  662. package/dist/esm/utils/chain.js.map +1 -1
  663. package/dist/esm/utils/data/isBytesEqual.js +8 -0
  664. package/dist/esm/utils/data/isBytesEqual.js.map +1 -0
  665. package/dist/esm/utils/data/isHex.js +2 -2
  666. package/dist/esm/utils/data/isHex.js.map +1 -1
  667. package/dist/esm/utils/data/pad.js +1 -1
  668. package/dist/esm/utils/data/pad.js.map +1 -1
  669. package/dist/esm/utils/data/size.js +1 -1
  670. package/dist/esm/utils/data/size.js.map +1 -1
  671. package/dist/esm/utils/data/slice.js +37 -12
  672. package/dist/esm/utils/data/slice.js.map +1 -1
  673. package/dist/esm/utils/data/trim.js +1 -1
  674. package/dist/esm/utils/data/trim.js.map +1 -1
  675. package/dist/esm/utils/encoding/fromBytes.js +1 -2
  676. package/dist/esm/utils/encoding/fromBytes.js.map +1 -1
  677. package/dist/esm/utils/encoding/fromHex.js +4 -4
  678. package/dist/esm/utils/encoding/fromHex.js.map +1 -1
  679. package/dist/esm/utils/encoding/fromRlp.js +1 -1
  680. package/dist/esm/utils/encoding/fromRlp.js.map +1 -1
  681. package/dist/esm/utils/encoding/toBytes.js +1 -1
  682. package/dist/esm/utils/encoding/toBytes.js.map +1 -1
  683. package/dist/esm/utils/encoding/toHex.js +2 -2
  684. package/dist/esm/utils/encoding/toHex.js.map +1 -1
  685. package/dist/esm/utils/encoding/toRlp.js +1 -1
  686. package/dist/esm/utils/encoding/toRlp.js.map +1 -1
  687. package/dist/esm/utils/ens/avatar/parseAvatarRecord.js.map +1 -1
  688. package/dist/esm/utils/ens/avatar/utils.js +2 -2
  689. package/dist/esm/utils/ens/avatar/utils.js.map +1 -1
  690. package/dist/esm/utils/ens/encodeLabelhash.js +4 -0
  691. package/dist/esm/utils/ens/encodeLabelhash.js.map +1 -0
  692. package/dist/esm/utils/ens/encodedLabelToLabelhash.js +14 -0
  693. package/dist/esm/utils/ens/encodedLabelToLabelhash.js.map +1 -0
  694. package/dist/esm/utils/ens/labelhash.js +5 -3
  695. package/dist/esm/utils/ens/labelhash.js.map +1 -1
  696. package/dist/esm/utils/ens/namehash.js +9 -4
  697. package/dist/esm/utils/ens/namehash.js.map +1 -1
  698. package/dist/esm/utils/ens/packetToBytes.js +11 -10
  699. package/dist/esm/utils/ens/packetToBytes.js.map +1 -1
  700. package/dist/esm/utils/errors/getCallError.js +1 -1
  701. package/dist/esm/utils/errors/getCallError.js.map +1 -1
  702. package/dist/esm/utils/errors/getContractError.js +7 -4
  703. package/dist/esm/utils/errors/getContractError.js.map +1 -1
  704. package/dist/esm/utils/errors/getEstimateGasError.js +1 -1
  705. package/dist/esm/utils/errors/getEstimateGasError.js.map +1 -1
  706. package/dist/esm/utils/errors/getNodeError.js +3 -2
  707. package/dist/esm/utils/errors/getNodeError.js.map +1 -1
  708. package/dist/esm/utils/errors/getTransactionError.js +1 -1
  709. package/dist/esm/utils/errors/getTransactionError.js.map +1 -1
  710. package/dist/esm/utils/filters/createFilterRequestScope.js.map +1 -1
  711. package/dist/esm/utils/formatters/block.js +1 -1
  712. package/dist/esm/utils/formatters/block.js.map +1 -1
  713. package/dist/esm/utils/formatters/feeHistory.js.map +1 -1
  714. package/dist/esm/utils/formatters/format.js.map +1 -1
  715. package/dist/esm/utils/formatters/log.js +2 -2
  716. package/dist/esm/utils/formatters/log.js.map +1 -1
  717. package/dist/esm/utils/formatters/transaction.js +2 -2
  718. package/dist/esm/utils/formatters/transaction.js.map +1 -1
  719. package/dist/esm/utils/formatters/transactionReceipt.js +2 -2
  720. package/dist/esm/utils/formatters/transactionReceipt.js.map +1 -1
  721. package/dist/esm/utils/formatters/transactionRequest.js +2 -2
  722. package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
  723. package/dist/esm/utils/hash/getEventSelector.js.map +1 -1
  724. package/dist/esm/utils/hash/getFunctionSelector.js +1 -1
  725. package/dist/esm/utils/hash/getFunctionSelector.js.map +1 -1
  726. package/dist/esm/utils/hash/hashFunction.js +3 -5
  727. package/dist/esm/utils/hash/hashFunction.js.map +1 -1
  728. package/dist/esm/utils/hash/isHash.js +2 -1
  729. package/dist/esm/utils/hash/isHash.js.map +1 -1
  730. package/dist/esm/utils/hash/keccak256.js +4 -3
  731. package/dist/esm/utils/hash/keccak256.js.map +1 -1
  732. package/dist/esm/utils/index.js +74 -14
  733. package/dist/esm/utils/index.js.map +1 -1
  734. package/dist/esm/utils/promise/createBatchScheduler.js.map +1 -1
  735. package/dist/esm/utils/promise/withCache.js +8 -4
  736. package/dist/esm/utils/promise/withCache.js.map +1 -1
  737. package/dist/esm/utils/rpc.js +62 -58
  738. package/dist/esm/utils/rpc.js.map +1 -1
  739. package/dist/esm/utils/signature/hashMessage.js +10 -4
  740. package/dist/esm/utils/signature/hashMessage.js.map +1 -1
  741. package/dist/esm/utils/signature/hashTypedData.js +4 -4
  742. package/dist/esm/utils/signature/hashTypedData.js.map +1 -1
  743. package/dist/esm/utils/signature/recoverAddress.js +1 -1
  744. package/dist/esm/utils/signature/recoverAddress.js.map +1 -1
  745. package/dist/esm/utils/signature/recoverMessageAddress.js.map +1 -1
  746. package/dist/esm/utils/signature/recoverPublicKey.js +6 -3
  747. package/dist/esm/utils/signature/recoverPublicKey.js.map +1 -1
  748. package/dist/esm/utils/signature/recoverTypedDataAddress.js.map +1 -1
  749. package/dist/esm/utils/signature/verifyMessage.js +3 -1
  750. package/dist/esm/utils/signature/verifyMessage.js.map +1 -1
  751. package/dist/esm/utils/signature/verifyTypedData.js +3 -2
  752. package/dist/esm/utils/signature/verifyTypedData.js.map +1 -1
  753. package/dist/esm/utils/transaction/assertRequest.js +4 -3
  754. package/dist/esm/utils/transaction/assertRequest.js.map +1 -1
  755. package/dist/esm/utils/transaction/assertTransaction.js +5 -2
  756. package/dist/esm/utils/transaction/assertTransaction.js.map +1 -1
  757. package/dist/esm/utils/transaction/getSerializedTransactionType.js +2 -2
  758. package/dist/esm/utils/transaction/getSerializedTransactionType.js.map +1 -1
  759. package/dist/esm/utils/transaction/getTransactionType.js.map +1 -1
  760. package/dist/esm/utils/transaction/parseTransaction.js +10 -7
  761. package/dist/esm/utils/transaction/parseTransaction.js.map +1 -1
  762. package/dist/esm/utils/transaction/prepareRequest.js +8 -5
  763. package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
  764. package/dist/esm/utils/transaction/serializeTransaction.js +9 -6
  765. package/dist/esm/utils/transaction/serializeTransaction.js.map +1 -1
  766. package/dist/esm/utils/typedData.js +5 -4
  767. package/dist/esm/utils/typedData.js.map +1 -1
  768. package/dist/esm/utils/unit/formatEther.js +1 -1
  769. package/dist/esm/utils/unit/formatEther.js.map +1 -1
  770. package/dist/esm/utils/unit/formatGwei.js +1 -1
  771. package/dist/esm/utils/unit/formatGwei.js.map +1 -1
  772. package/dist/esm/utils/unit/parseEther.js +1 -1
  773. package/dist/esm/utils/unit/parseEther.js.map +1 -1
  774. package/dist/esm/utils/unit/parseGwei.js +1 -1
  775. package/dist/esm/utils/unit/parseGwei.js.map +1 -1
  776. package/dist/esm/utils/unit/parseUnits.js +14 -3
  777. package/dist/esm/utils/unit/parseUnits.js.map +1 -1
  778. package/dist/esm/wallet.js +10 -1
  779. package/dist/esm/wallet.js.map +1 -1
  780. package/dist/types/abi.d.ts +5 -2
  781. package/dist/types/abi.d.ts.map +1 -1
  782. package/dist/types/accounts/generatePrivateKey.d.ts +1 -1
  783. package/dist/types/accounts/generatePrivateKey.d.ts.map +1 -1
  784. package/dist/types/accounts/hdKeyToAccount.d.ts.map +1 -1
  785. package/dist/types/accounts/index.d.ts +6 -4
  786. package/dist/types/accounts/index.d.ts.map +1 -1
  787. package/dist/types/accounts/privateKeyToAccount.d.ts +1 -1
  788. package/dist/types/accounts/privateKeyToAccount.d.ts.map +1 -1
  789. package/dist/types/accounts/toAccount.d.ts +1 -1
  790. package/dist/types/accounts/toAccount.d.ts.map +1 -1
  791. package/dist/types/accounts/types.d.ts +4 -2
  792. package/dist/types/accounts/types.d.ts.map +1 -1
  793. package/dist/types/accounts/utils/parseAccount.d.ts +1 -1
  794. package/dist/types/accounts/utils/parseAccount.d.ts.map +1 -1
  795. package/dist/types/accounts/utils/publicKeyToAddress.d.ts +2 -1
  796. package/dist/types/accounts/utils/publicKeyToAddress.d.ts.map +1 -1
  797. package/dist/types/accounts/utils/sign.d.ts +1 -1
  798. package/dist/types/accounts/utils/sign.d.ts.map +1 -1
  799. package/dist/types/accounts/utils/signMessage.d.ts +2 -2
  800. package/dist/types/accounts/utils/signMessage.d.ts.map +1 -1
  801. package/dist/types/accounts/utils/signTransaction.d.ts +3 -2
  802. package/dist/types/accounts/utils/signTransaction.d.ts.map +1 -1
  803. package/dist/types/accounts/utils/signTypedData.d.ts +2 -1
  804. package/dist/types/accounts/utils/signTypedData.d.ts.map +1 -1
  805. package/dist/types/accounts/utils/signatureToHex.d.ts +1 -1
  806. package/dist/types/accounts/utils/signatureToHex.d.ts.map +1 -1
  807. package/dist/types/actions/ens/getEnsAddress.d.ts +6 -3
  808. package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
  809. package/dist/types/actions/ens/getEnsAvatar.d.ts +6 -3
  810. package/dist/types/actions/ens/getEnsAvatar.d.ts.map +1 -1
  811. package/dist/types/actions/ens/getEnsName.d.ts +6 -3
  812. package/dist/types/actions/ens/getEnsName.d.ts.map +1 -1
  813. package/dist/types/actions/ens/getEnsResolver.d.ts +6 -3
  814. package/dist/types/actions/ens/getEnsResolver.d.ts.map +1 -1
  815. package/dist/types/actions/ens/getEnsText.d.ts +6 -3
  816. package/dist/types/actions/ens/getEnsText.d.ts.map +1 -1
  817. package/dist/types/actions/getContract.d.ts +78 -25
  818. package/dist/types/actions/getContract.d.ts.map +1 -1
  819. package/dist/types/actions/public/call.d.ts +12 -3
  820. package/dist/types/actions/public/call.d.ts.map +1 -1
  821. package/dist/types/actions/public/createBlockFilter.d.ts +5 -3
  822. package/dist/types/actions/public/createBlockFilter.d.ts.map +1 -1
  823. package/dist/types/actions/public/createContractEventFilter.d.ts +16 -7
  824. package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
  825. package/dist/types/actions/public/createEventFilter.d.ts +26 -9
  826. package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
  827. package/dist/types/actions/public/createPendingTransactionFilter.d.ts +5 -3
  828. package/dist/types/actions/public/createPendingTransactionFilter.d.ts.map +1 -1
  829. package/dist/types/actions/public/estimateContractGas.d.ts +10 -6
  830. package/dist/types/actions/public/estimateContractGas.d.ts.map +1 -1
  831. package/dist/types/actions/public/estimateGas.d.ts +11 -3
  832. package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
  833. package/dist/types/actions/public/getBalance.d.ts +5 -2
  834. package/dist/types/actions/public/getBalance.d.ts.map +1 -1
  835. package/dist/types/actions/public/getBlock.d.ts +8 -3
  836. package/dist/types/actions/public/getBlock.d.ts.map +1 -1
  837. package/dist/types/actions/public/getBlockNumber.d.ts +3 -2
  838. package/dist/types/actions/public/getBlockNumber.d.ts.map +1 -1
  839. package/dist/types/actions/public/getBlockTransactionCount.d.ts +5 -2
  840. package/dist/types/actions/public/getBlockTransactionCount.d.ts.map +1 -1
  841. package/dist/types/actions/public/getBytecode.d.ts +6 -2
  842. package/dist/types/actions/public/getBytecode.d.ts.map +1 -1
  843. package/dist/types/actions/public/getChainId.d.ts +5 -2
  844. package/dist/types/actions/public/getChainId.d.ts.map +1 -1
  845. package/dist/types/actions/public/getFeeHistory.d.ts +5 -2
  846. package/dist/types/actions/public/getFeeHistory.d.ts.map +1 -1
  847. package/dist/types/actions/public/getFilterChanges.d.ts +19 -11
  848. package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
  849. package/dist/types/actions/public/getFilterLogs.d.ts +10 -7
  850. package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
  851. package/dist/types/actions/public/getGasPrice.d.ts +5 -2
  852. package/dist/types/actions/public/getGasPrice.d.ts.map +1 -1
  853. package/dist/types/actions/public/getLogs.d.ts +18 -7
  854. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  855. package/dist/types/actions/public/getStorageAt.d.ts +6 -2
  856. package/dist/types/actions/public/getStorageAt.d.ts.map +1 -1
  857. package/dist/types/actions/public/getTransaction.d.ts +7 -4
  858. package/dist/types/actions/public/getTransaction.d.ts.map +1 -1
  859. package/dist/types/actions/public/getTransactionConfirmations.d.ts +5 -3
  860. package/dist/types/actions/public/getTransactionConfirmations.d.ts.map +1 -1
  861. package/dist/types/actions/public/getTransactionCount.d.ts +8 -3
  862. package/dist/types/actions/public/getTransactionCount.d.ts.map +1 -1
  863. package/dist/types/actions/public/getTransactionReceipt.d.ts +8 -6
  864. package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
  865. package/dist/types/actions/public/multicall.d.ts +7 -5
  866. package/dist/types/actions/public/multicall.d.ts.map +1 -1
  867. package/dist/types/actions/public/readContract.d.ts +7 -5
  868. package/dist/types/actions/public/readContract.d.ts.map +1 -1
  869. package/dist/types/actions/public/simulateContract.d.ts +11 -7
  870. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  871. package/dist/types/actions/public/uninstallFilter.d.ts +7 -5
  872. package/dist/types/actions/public/uninstallFilter.d.ts.map +1 -1
  873. package/dist/types/actions/public/verifyHash.d.ts +24 -0
  874. package/dist/types/actions/public/verifyHash.d.ts.map +1 -0
  875. package/dist/types/actions/public/verifyMessage.d.ts +28 -0
  876. package/dist/types/actions/public/verifyMessage.d.ts.map +1 -0
  877. package/dist/types/actions/public/verifyTypedData.d.ts +27 -0
  878. package/dist/types/actions/public/verifyTypedData.d.ts.map +1 -0
  879. package/dist/types/actions/public/waitForTransactionReceipt.d.ts +6 -3
  880. package/dist/types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
  881. package/dist/types/actions/public/watchBlockNumber.d.ts +5 -3
  882. package/dist/types/actions/public/watchBlockNumber.d.ts.map +1 -1
  883. package/dist/types/actions/public/watchBlocks.d.ts +6 -3
  884. package/dist/types/actions/public/watchBlocks.d.ts.map +1 -1
  885. package/dist/types/actions/public/watchContractEvent.d.ts +17 -9
  886. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  887. package/dist/types/actions/public/watchEvent.d.ts +19 -10
  888. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  889. package/dist/types/actions/public/watchPendingTransactions.d.ts +5 -2
  890. package/dist/types/actions/public/watchPendingTransactions.d.ts.map +1 -1
  891. package/dist/types/actions/test/dropTransaction.d.ts +4 -2
  892. package/dist/types/actions/test/dropTransaction.d.ts.map +1 -1
  893. package/dist/types/actions/test/getAutomine.d.ts +3 -2
  894. package/dist/types/actions/test/getAutomine.d.ts.map +1 -1
  895. package/dist/types/actions/test/getTxpoolContent.d.ts +4 -2
  896. package/dist/types/actions/test/getTxpoolContent.d.ts.map +1 -1
  897. package/dist/types/actions/test/getTxpoolStatus.d.ts +3 -2
  898. package/dist/types/actions/test/getTxpoolStatus.d.ts.map +1 -1
  899. package/dist/types/actions/test/impersonateAccount.d.ts +4 -2
  900. package/dist/types/actions/test/impersonateAccount.d.ts.map +1 -1
  901. package/dist/types/actions/test/increaseTime.d.ts +3 -2
  902. package/dist/types/actions/test/increaseTime.d.ts.map +1 -1
  903. package/dist/types/actions/test/inspectTxpool.d.ts +4 -2
  904. package/dist/types/actions/test/inspectTxpool.d.ts.map +1 -1
  905. package/dist/types/actions/test/mine.d.ts +3 -2
  906. package/dist/types/actions/test/mine.d.ts.map +1 -1
  907. package/dist/types/actions/test/removeBlockTimestampInterval.d.ts +3 -2
  908. package/dist/types/actions/test/removeBlockTimestampInterval.d.ts.map +1 -1
  909. package/dist/types/actions/test/reset.d.ts +3 -2
  910. package/dist/types/actions/test/reset.d.ts.map +1 -1
  911. package/dist/types/actions/test/revert.d.ts +4 -2
  912. package/dist/types/actions/test/revert.d.ts.map +1 -1
  913. package/dist/types/actions/test/sendUnsignedTransaction.d.ts +5 -2
  914. package/dist/types/actions/test/sendUnsignedTransaction.d.ts.map +1 -1
  915. package/dist/types/actions/test/setAutomine.d.ts +3 -2
  916. package/dist/types/actions/test/setAutomine.d.ts.map +1 -1
  917. package/dist/types/actions/test/setBalance.d.ts +4 -2
  918. package/dist/types/actions/test/setBalance.d.ts.map +1 -1
  919. package/dist/types/actions/test/setBlockGasLimit.d.ts +3 -2
  920. package/dist/types/actions/test/setBlockGasLimit.d.ts.map +1 -1
  921. package/dist/types/actions/test/setBlockTimestampInterval.d.ts +4 -3
  922. package/dist/types/actions/test/setBlockTimestampInterval.d.ts.map +1 -1
  923. package/dist/types/actions/test/setCode.d.ts +5 -2
  924. package/dist/types/actions/test/setCode.d.ts.map +1 -1
  925. package/dist/types/actions/test/setCoinbase.d.ts +4 -2
  926. package/dist/types/actions/test/setCoinbase.d.ts.map +1 -1
  927. package/dist/types/actions/test/setIntervalMining.d.ts +3 -2
  928. package/dist/types/actions/test/setIntervalMining.d.ts.map +1 -1
  929. package/dist/types/actions/test/setLoggingEnabled.d.ts +3 -2
  930. package/dist/types/actions/test/setLoggingEnabled.d.ts.map +1 -1
  931. package/dist/types/actions/test/setMinGasPrice.d.ts +3 -2
  932. package/dist/types/actions/test/setMinGasPrice.d.ts.map +1 -1
  933. package/dist/types/actions/test/setNextBlockBaseFeePerGas.d.ts +3 -2
  934. package/dist/types/actions/test/setNextBlockBaseFeePerGas.d.ts.map +1 -1
  935. package/dist/types/actions/test/setNextBlockTimestamp.d.ts +3 -2
  936. package/dist/types/actions/test/setNextBlockTimestamp.d.ts.map +1 -1
  937. package/dist/types/actions/test/setNonce.d.ts +4 -2
  938. package/dist/types/actions/test/setNonce.d.ts.map +1 -1
  939. package/dist/types/actions/test/setRpcUrl.d.ts +3 -2
  940. package/dist/types/actions/test/setRpcUrl.d.ts.map +1 -1
  941. package/dist/types/actions/test/setStorageAt.d.ts +5 -2
  942. package/dist/types/actions/test/setStorageAt.d.ts.map +1 -1
  943. package/dist/types/actions/test/snapshot.d.ts +3 -2
  944. package/dist/types/actions/test/snapshot.d.ts.map +1 -1
  945. package/dist/types/actions/test/stopImpersonatingAccount.d.ts +5 -3
  946. package/dist/types/actions/test/stopImpersonatingAccount.d.ts.map +1 -1
  947. package/dist/types/actions/wallet/addChain.d.ts +4 -2
  948. package/dist/types/actions/wallet/addChain.d.ts.map +1 -1
  949. package/dist/types/actions/wallet/deployContract.d.ts +8 -4
  950. package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
  951. package/dist/types/actions/wallet/getAddresses.d.ts +4 -2
  952. package/dist/types/actions/wallet/getAddresses.d.ts.map +1 -1
  953. package/dist/types/actions/wallet/getPermissions.d.ts +4 -2
  954. package/dist/types/actions/wallet/getPermissions.d.ts.map +1 -1
  955. package/dist/types/actions/wallet/requestAddresses.d.ts +4 -2
  956. package/dist/types/actions/wallet/requestAddresses.d.ts.map +1 -1
  957. package/dist/types/actions/wallet/requestPermissions.d.ts +5 -2
  958. package/dist/types/actions/wallet/requestPermissions.d.ts.map +1 -1
  959. package/dist/types/actions/wallet/sendTransaction.d.ts +11 -3
  960. package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
  961. package/dist/types/actions/wallet/signMessage.d.ts +9 -5
  962. package/dist/types/actions/wallet/signMessage.d.ts.map +1 -1
  963. package/dist/types/actions/wallet/signTypedData.d.ts +8 -3
  964. package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
  965. package/dist/types/actions/wallet/switchChain.d.ts +4 -2
  966. package/dist/types/actions/wallet/switchChain.d.ts.map +1 -1
  967. package/dist/types/actions/wallet/watchAsset.d.ts +4 -2
  968. package/dist/types/actions/wallet/watchAsset.d.ts.map +1 -1
  969. package/dist/types/actions/wallet/writeContract.d.ts +10 -6
  970. package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
  971. package/dist/types/chains.d.ts +374 -26
  972. package/dist/types/chains.d.ts.map +1 -1
  973. package/dist/types/clients/createClient.d.ts +6 -6
  974. package/dist/types/clients/createClient.d.ts.map +1 -1
  975. package/dist/types/clients/createPublicClient.d.ts +8 -7
  976. package/dist/types/clients/createPublicClient.d.ts.map +1 -1
  977. package/dist/types/clients/createTestClient.d.ts +9 -9
  978. package/dist/types/clients/createTestClient.d.ts.map +1 -1
  979. package/dist/types/clients/createWalletClient.d.ts +10 -7
  980. package/dist/types/clients/createWalletClient.d.ts.map +1 -1
  981. package/dist/types/clients/decorators/public.d.ts +75 -33
  982. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  983. package/dist/types/clients/decorators/test.d.ts +28 -5
  984. package/dist/types/clients/decorators/test.d.ts.map +1 -1
  985. package/dist/types/clients/decorators/wallet.d.ts +22 -9
  986. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  987. package/dist/types/clients/transports/createTransport.d.ts +6 -9
  988. package/dist/types/clients/transports/createTransport.d.ts.map +1 -1
  989. package/dist/types/clients/transports/custom.d.ts +2 -2
  990. package/dist/types/clients/transports/custom.d.ts.map +1 -1
  991. package/dist/types/clients/transports/fallback.d.ts +2 -2
  992. package/dist/types/clients/transports/fallback.d.ts.map +1 -1
  993. package/dist/types/clients/transports/http.d.ts +13 -2
  994. package/dist/types/clients/transports/http.d.ts.map +1 -1
  995. package/dist/types/clients/transports/webSocket.d.ts +3 -3
  996. package/dist/types/clients/transports/webSocket.d.ts.map +1 -1
  997. package/dist/types/constants/abis.d.ts +33 -0
  998. package/dist/types/constants/abis.d.ts.map +1 -1
  999. package/dist/types/constants/contracts.d.ts +2 -0
  1000. package/dist/types/constants/contracts.d.ts.map +1 -0
  1001. package/dist/types/contract.d.ts +25 -6
  1002. package/dist/types/contract.d.ts.map +1 -1
  1003. package/dist/types/ens.d.ts +7 -3
  1004. package/dist/types/ens.d.ts.map +1 -1
  1005. package/dist/types/errors/abi.d.ts +13 -10
  1006. package/dist/types/errors/abi.d.ts.map +1 -1
  1007. package/dist/types/errors/block.d.ts +1 -1
  1008. package/dist/types/errors/block.d.ts.map +1 -1
  1009. package/dist/types/errors/ccip.d.ts +1 -1
  1010. package/dist/types/errors/ccip.d.ts.map +1 -1
  1011. package/dist/types/errors/chain.d.ts +1 -1
  1012. package/dist/types/errors/chain.d.ts.map +1 -1
  1013. package/dist/types/errors/contract.d.ts +11 -6
  1014. package/dist/types/errors/contract.d.ts.map +1 -1
  1015. package/dist/types/errors/data.d.ts +8 -0
  1016. package/dist/types/errors/data.d.ts.map +1 -1
  1017. package/dist/types/errors/encoding.d.ts +1 -1
  1018. package/dist/types/errors/encoding.d.ts.map +1 -1
  1019. package/dist/types/errors/estimateGas.d.ts +3 -2
  1020. package/dist/types/errors/estimateGas.d.ts.map +1 -1
  1021. package/dist/types/errors/node.d.ts.map +1 -1
  1022. package/dist/types/errors/request.d.ts +16 -8
  1023. package/dist/types/errors/request.d.ts.map +1 -1
  1024. package/dist/types/errors/rpc.d.ts +12 -8
  1025. package/dist/types/errors/rpc.d.ts.map +1 -1
  1026. package/dist/types/errors/transaction.d.ts +6 -2
  1027. package/dist/types/errors/transaction.d.ts.map +1 -1
  1028. package/dist/types/errors/utils.d.ts.map +1 -1
  1029. package/dist/types/errors/version.d.ts +1 -1
  1030. package/dist/types/errors/version.d.ts.map +1 -1
  1031. package/dist/types/index.d.ts +181 -11
  1032. package/dist/types/index.d.ts.map +1 -1
  1033. package/dist/types/public.d.ts +26 -2
  1034. package/dist/types/public.d.ts.map +1 -1
  1035. package/dist/types/test.d.ts +28 -2
  1036. package/dist/types/test.d.ts.map +1 -1
  1037. package/dist/types/types/account.d.ts +3 -2
  1038. package/dist/types/types/account.d.ts.map +1 -1
  1039. package/dist/types/types/block.d.ts.map +1 -1
  1040. package/dist/types/types/chain.d.ts.map +1 -1
  1041. package/dist/types/types/contract.d.ts +16 -37
  1042. package/dist/types/types/contract.d.ts.map +1 -1
  1043. package/dist/types/types/eip1193.d.ts +1046 -831
  1044. package/dist/types/types/eip1193.d.ts.map +1 -1
  1045. package/dist/types/types/filter.d.ts +12 -3
  1046. package/dist/types/types/filter.d.ts.map +1 -1
  1047. package/dist/types/types/log.d.ts +36 -23
  1048. package/dist/types/types/log.d.ts.map +1 -1
  1049. package/dist/types/types/misc.d.ts +4 -0
  1050. package/dist/types/types/misc.d.ts.map +1 -1
  1051. package/dist/types/types/multicall.d.ts.map +1 -1
  1052. package/dist/types/types/transaction.d.ts +4 -3
  1053. package/dist/types/types/transaction.d.ts.map +1 -1
  1054. package/dist/types/types/transport.d.ts +1 -1
  1055. package/dist/types/types/transport.d.ts.map +1 -1
  1056. package/dist/types/types/utils.d.ts +11 -0
  1057. package/dist/types/types/utils.d.ts.map +1 -1
  1058. package/dist/types/utils/abi/decodeAbiParameters.d.ts +1 -1
  1059. package/dist/types/utils/abi/decodeAbiParameters.d.ts.map +1 -1
  1060. package/dist/types/utils/abi/decodeDeployData.d.ts +7 -7
  1061. package/dist/types/utils/abi/decodeDeployData.d.ts.map +1 -1
  1062. package/dist/types/utils/abi/decodeErrorResult.d.ts +13 -10
  1063. package/dist/types/utils/abi/decodeErrorResult.d.ts.map +1 -1
  1064. package/dist/types/utils/abi/decodeEventLog.d.ts +13 -6
  1065. package/dist/types/utils/abi/decodeEventLog.d.ts.map +1 -1
  1066. package/dist/types/utils/abi/decodeFunctionData.d.ts +2 -1
  1067. package/dist/types/utils/abi/decodeFunctionData.d.ts.map +1 -1
  1068. package/dist/types/utils/abi/decodeFunctionResult.d.ts +12 -8
  1069. package/dist/types/utils/abi/decodeFunctionResult.d.ts.map +1 -1
  1070. package/dist/types/utils/abi/encodeAbiParameters.d.ts +1 -1
  1071. package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
  1072. package/dist/types/utils/abi/encodeDeployData.d.ts +2 -1
  1073. package/dist/types/utils/abi/encodeDeployData.d.ts.map +1 -1
  1074. package/dist/types/utils/abi/encodeErrorResult.d.ts +8 -5
  1075. package/dist/types/utils/abi/encodeErrorResult.d.ts.map +1 -1
  1076. package/dist/types/utils/abi/encodeEventTopics.d.ts +9 -5
  1077. package/dist/types/utils/abi/encodeEventTopics.d.ts.map +1 -1
  1078. package/dist/types/utils/abi/encodeFunctionData.d.ts +8 -5
  1079. package/dist/types/utils/abi/encodeFunctionData.d.ts.map +1 -1
  1080. package/dist/types/utils/abi/encodeFunctionResult.d.ts +9 -5
  1081. package/dist/types/utils/abi/encodeFunctionResult.d.ts.map +1 -1
  1082. package/dist/types/utils/abi/encodePacked.d.ts +1 -1
  1083. package/dist/types/utils/abi/encodePacked.d.ts.map +1 -1
  1084. package/dist/types/utils/abi/formatAbiItem.d.ts +1 -1
  1085. package/dist/types/utils/abi/formatAbiItem.d.ts.map +1 -1
  1086. package/dist/types/utils/abi/formatAbiItemWithArgs.d.ts +1 -1
  1087. package/dist/types/utils/abi/formatAbiItemWithArgs.d.ts.map +1 -1
  1088. package/dist/types/utils/abi/getAbiItem.d.ts +1 -1
  1089. package/dist/types/utils/abi/getAbiItem.d.ts.map +1 -1
  1090. package/dist/types/utils/address/getAddress.d.ts +1 -1
  1091. package/dist/types/utils/address/getAddress.d.ts.map +1 -1
  1092. package/dist/types/utils/address/getContractAddress.d.ts +2 -1
  1093. package/dist/types/utils/address/getContractAddress.d.ts.map +1 -1
  1094. package/dist/types/utils/address/isAddress.d.ts +1 -1
  1095. package/dist/types/utils/address/isAddress.d.ts.map +1 -1
  1096. package/dist/types/utils/address/isAddressEqual.d.ts +1 -1
  1097. package/dist/types/utils/address/isAddressEqual.d.ts.map +1 -1
  1098. package/dist/types/utils/buildRequest.d.ts.map +1 -1
  1099. package/dist/types/utils/ccip.d.ts +5 -3
  1100. package/dist/types/utils/ccip.d.ts.map +1 -1
  1101. package/dist/types/utils/chain.d.ts +7 -1
  1102. package/dist/types/utils/chain.d.ts.map +1 -1
  1103. package/dist/types/utils/data/concat.d.ts +1 -1
  1104. package/dist/types/utils/data/concat.d.ts.map +1 -1
  1105. package/dist/types/utils/data/isBytes.d.ts +1 -1
  1106. package/dist/types/utils/data/isBytes.d.ts.map +1 -1
  1107. package/dist/types/utils/data/isBytesEqual.d.ts +3 -0
  1108. package/dist/types/utils/data/isBytesEqual.d.ts.map +1 -0
  1109. package/dist/types/utils/data/isHex.d.ts +4 -2
  1110. package/dist/types/utils/data/isHex.d.ts.map +1 -1
  1111. package/dist/types/utils/data/pad.d.ts +1 -1
  1112. package/dist/types/utils/data/pad.d.ts.map +1 -1
  1113. package/dist/types/utils/data/size.d.ts +1 -1
  1114. package/dist/types/utils/data/size.d.ts.map +1 -1
  1115. package/dist/types/utils/data/slice.d.ts +10 -4
  1116. package/dist/types/utils/data/slice.d.ts.map +1 -1
  1117. package/dist/types/utils/data/trim.d.ts +1 -1
  1118. package/dist/types/utils/data/trim.d.ts.map +1 -1
  1119. package/dist/types/utils/encoding/fromBytes.d.ts +2 -3
  1120. package/dist/types/utils/encoding/fromBytes.d.ts.map +1 -1
  1121. package/dist/types/utils/encoding/fromHex.d.ts +2 -2
  1122. package/dist/types/utils/encoding/fromHex.d.ts.map +1 -1
  1123. package/dist/types/utils/encoding/fromRlp.d.ts +1 -1
  1124. package/dist/types/utils/encoding/fromRlp.d.ts.map +1 -1
  1125. package/dist/types/utils/encoding/toBytes.d.ts +2 -2
  1126. package/dist/types/utils/encoding/toBytes.d.ts.map +1 -1
  1127. package/dist/types/utils/encoding/toHex.d.ts +1 -1
  1128. package/dist/types/utils/encoding/toHex.d.ts.map +1 -1
  1129. package/dist/types/utils/encoding/toRlp.d.ts +1 -1
  1130. package/dist/types/utils/encoding/toRlp.d.ts.map +1 -1
  1131. package/dist/types/utils/ens/avatar/parseAvatarRecord.d.ts +4 -2
  1132. package/dist/types/utils/ens/avatar/parseAvatarRecord.d.ts.map +1 -1
  1133. package/dist/types/utils/ens/avatar/utils.d.ts +5 -2
  1134. package/dist/types/utils/ens/avatar/utils.d.ts.map +1 -1
  1135. package/dist/types/utils/ens/encodeLabelhash.d.ts +3 -0
  1136. package/dist/types/utils/ens/encodeLabelhash.d.ts.map +1 -0
  1137. package/dist/types/utils/ens/encodedLabelToLabelhash.d.ts +3 -0
  1138. package/dist/types/utils/ens/encodedLabelToLabelhash.d.ts.map +1 -0
  1139. package/dist/types/utils/ens/labelhash.d.ts.map +1 -1
  1140. package/dist/types/utils/ens/namehash.d.ts.map +1 -1
  1141. package/dist/types/utils/ens/packetToBytes.d.ts +1 -1
  1142. package/dist/types/utils/ens/packetToBytes.d.ts.map +1 -1
  1143. package/dist/types/utils/errors/getCallError.d.ts +4 -4
  1144. package/dist/types/utils/errors/getCallError.d.ts.map +1 -1
  1145. package/dist/types/utils/errors/getContractError.d.ts +3 -4
  1146. package/dist/types/utils/errors/getContractError.d.ts.map +1 -1
  1147. package/dist/types/utils/errors/getEstimateGasError.d.ts +5 -4
  1148. package/dist/types/utils/errors/getEstimateGasError.d.ts.map +1 -1
  1149. package/dist/types/utils/errors/getNodeError.d.ts +3 -3
  1150. package/dist/types/utils/errors/getNodeError.d.ts.map +1 -1
  1151. package/dist/types/utils/errors/getTransactionError.d.ts +5 -4
  1152. package/dist/types/utils/errors/getTransactionError.d.ts.map +1 -1
  1153. package/dist/types/utils/filters/createFilterRequestScope.d.ts +10 -5
  1154. package/dist/types/utils/filters/createFilterRequestScope.d.ts.map +1 -1
  1155. package/dist/types/utils/formatters/block.d.ts +5 -2
  1156. package/dist/types/utils/formatters/block.d.ts.map +1 -1
  1157. package/dist/types/utils/formatters/extract.d.ts +1 -1
  1158. package/dist/types/utils/formatters/extract.d.ts.map +1 -1
  1159. package/dist/types/utils/formatters/feeHistory.d.ts +2 -1
  1160. package/dist/types/utils/formatters/feeHistory.d.ts.map +1 -1
  1161. package/dist/types/utils/formatters/format.d.ts +3 -1
  1162. package/dist/types/utils/formatters/format.d.ts.map +1 -1
  1163. package/dist/types/utils/formatters/log.d.ts +3 -12
  1164. package/dist/types/utils/formatters/log.d.ts.map +1 -1
  1165. package/dist/types/utils/formatters/transaction.d.ts +6 -3
  1166. package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
  1167. package/dist/types/utils/formatters/transactionReceipt.d.ts +5 -2
  1168. package/dist/types/utils/formatters/transactionReceipt.d.ts.map +1 -1
  1169. package/dist/types/utils/formatters/transactionRequest.d.ts +6 -3
  1170. package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
  1171. package/dist/types/utils/hash/getEventSelector.d.ts +1 -1
  1172. package/dist/types/utils/hash/getEventSelector.d.ts.map +1 -1
  1173. package/dist/types/utils/hash/getFunctionSelector.d.ts.map +1 -1
  1174. package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
  1175. package/dist/types/utils/hash/isHash.d.ts +1 -1
  1176. package/dist/types/utils/hash/isHash.d.ts.map +1 -1
  1177. package/dist/types/utils/hash/keccak256.d.ts +1 -1
  1178. package/dist/types/utils/hash/keccak256.d.ts.map +1 -1
  1179. package/dist/types/utils/index.d.ts +74 -21
  1180. package/dist/types/utils/index.d.ts.map +1 -1
  1181. package/dist/types/utils/promise/createBatchScheduler.d.ts +6 -4
  1182. package/dist/types/utils/promise/createBatchScheduler.d.ts.map +1 -1
  1183. package/dist/types/utils/promise/withCache.d.ts.map +1 -1
  1184. package/dist/types/utils/rpc.d.ts +18 -10
  1185. package/dist/types/utils/rpc.d.ts.map +1 -1
  1186. package/dist/types/utils/signature/hashMessage.d.ts +2 -2
  1187. package/dist/types/utils/signature/hashMessage.d.ts.map +1 -1
  1188. package/dist/types/utils/signature/hashTypedData.d.ts +2 -1
  1189. package/dist/types/utils/signature/hashTypedData.d.ts.map +1 -1
  1190. package/dist/types/utils/signature/recoverAddress.d.ts +2 -1
  1191. package/dist/types/utils/signature/recoverAddress.d.ts.map +1 -1
  1192. package/dist/types/utils/signature/recoverMessageAddress.d.ts +3 -2
  1193. package/dist/types/utils/signature/recoverMessageAddress.d.ts.map +1 -1
  1194. package/dist/types/utils/signature/recoverPublicKey.d.ts +1 -1
  1195. package/dist/types/utils/signature/recoverPublicKey.d.ts.map +1 -1
  1196. package/dist/types/utils/signature/recoverTypedDataAddress.d.ts +3 -2
  1197. package/dist/types/utils/signature/recoverTypedDataAddress.d.ts.map +1 -1
  1198. package/dist/types/utils/signature/verifyMessage.d.ts +16 -1
  1199. package/dist/types/utils/signature/verifyMessage.d.ts.map +1 -1
  1200. package/dist/types/utils/signature/verifyTypedData.d.ts +16 -1
  1201. package/dist/types/utils/signature/verifyTypedData.d.ts.map +1 -1
  1202. package/dist/types/utils/transaction/assertRequest.d.ts +2 -2
  1203. package/dist/types/utils/transaction/assertRequest.d.ts.map +1 -1
  1204. package/dist/types/utils/transaction/assertTransaction.d.ts +1 -1
  1205. package/dist/types/utils/transaction/assertTransaction.d.ts.map +1 -1
  1206. package/dist/types/utils/transaction/getTransactionType.d.ts +1 -1
  1207. package/dist/types/utils/transaction/getTransactionType.d.ts.map +1 -1
  1208. package/dist/types/utils/transaction/parseTransaction.d.ts +2 -2
  1209. package/dist/types/utils/transaction/parseTransaction.d.ts.map +1 -1
  1210. package/dist/types/utils/transaction/prepareRequest.d.ts +9 -4
  1211. package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
  1212. package/dist/types/utils/transaction/serializeTransaction.d.ts +3 -2
  1213. package/dist/types/utils/transaction/serializeTransaction.d.ts.map +1 -1
  1214. package/dist/types/utils/typedData.d.ts +1 -1
  1215. package/dist/types/utils/typedData.d.ts.map +1 -1
  1216. package/dist/types/utils/unit/formatEther.d.ts.map +1 -1
  1217. package/dist/types/utils/unit/formatGwei.d.ts.map +1 -1
  1218. package/dist/types/utils/unit/parseEther.d.ts.map +1 -1
  1219. package/dist/types/utils/unit/parseGwei.d.ts.map +1 -1
  1220. package/dist/types/utils/unit/parseUnits.d.ts.map +1 -1
  1221. package/dist/types/wallet.d.ts +10 -2
  1222. package/dist/types/wallet.d.ts.map +1 -1
  1223. package/ens/package.json +5 -0
  1224. package/package.json +17 -15
  1225. package/public/package.json +5 -0
  1226. package/src/abi.ts +15 -11
  1227. package/src/accounts/generatePrivateKey.ts +2 -2
  1228. package/src/accounts/hdKeyToAccount.ts +2 -1
  1229. package/src/accounts/index.ts +11 -20
  1230. package/src/accounts/mnemonicToAccount.ts +1 -1
  1231. package/src/accounts/privateKeyToAccount.ts +7 -8
  1232. package/src/accounts/toAccount.ts +5 -3
  1233. package/src/accounts/types.ts +6 -7
  1234. package/src/accounts/utils/parseAccount.ts +2 -1
  1235. package/src/accounts/utils/publicKeyToAddress.ts +5 -3
  1236. package/src/accounts/utils/sign.ts +2 -2
  1237. package/src/accounts/utils/signMessage.ts +4 -3
  1238. package/src/accounts/utils/signTransaction.ts +6 -4
  1239. package/src/accounts/utils/signTypedData.ts +7 -3
  1240. package/src/accounts/utils/signatureToHex.ts +3 -2
  1241. package/src/actions/ens/getEnsAddress.ts +53 -33
  1242. package/src/actions/ens/getEnsAvatar.ts +8 -5
  1243. package/src/actions/ens/getEnsName.ts +18 -9
  1244. package/src/actions/ens/getEnsResolver.ts +13 -6
  1245. package/src/actions/ens/getEnsText.ts +15 -10
  1246. package/src/actions/getContract.ts +169 -93
  1247. package/src/actions/public/call.ts +36 -32
  1248. package/src/actions/public/createBlockFilter.ts +5 -3
  1249. package/src/actions/public/createContractEventFilter.ts +34 -15
  1250. package/src/actions/public/createEventFilter.ts +49 -26
  1251. package/src/actions/public/createPendingTransactionFilter.ts +5 -3
  1252. package/src/actions/public/estimateContractGas.ts +22 -18
  1253. package/src/actions/public/estimateGas.ts +27 -32
  1254. package/src/actions/public/getBalance.ts +7 -3
  1255. package/src/actions/public/getBlock.ts +18 -17
  1256. package/src/actions/public/getBlockNumber.ts +4 -3
  1257. package/src/actions/public/getBlockTransactionCount.ts +9 -4
  1258. package/src/actions/public/getBytecode.ts +8 -3
  1259. package/src/actions/public/getChainId.ts +9 -8
  1260. package/src/actions/public/getFeeHistory.ts +7 -5
  1261. package/src/actions/public/getFilterChanges.ts +51 -30
  1262. package/src/actions/public/getFilterLogs.ts +47 -25
  1263. package/src/actions/public/getGasPrice.ts +6 -7
  1264. package/src/actions/public/getLogs.ts +54 -26
  1265. package/src/actions/public/getStorageAt.ts +8 -3
  1266. package/src/actions/public/getTransaction.ts +13 -13
  1267. package/src/actions/public/getTransactionConfirmations.ts +6 -3
  1268. package/src/actions/public/getTransactionCount.ts +12 -9
  1269. package/src/actions/public/getTransactionReceipt.ts +12 -10
  1270. package/src/actions/public/multicall.ts +20 -20
  1271. package/src/actions/public/readContract.ts +19 -15
  1272. package/src/actions/public/simulateContract.ts +20 -18
  1273. package/src/actions/public/uninstallFilter.ts +7 -5
  1274. package/src/actions/public/verifyHash.ts +62 -0
  1275. package/src/actions/public/verifyMessage.ts +42 -0
  1276. package/src/actions/public/verifyTypedData.ts +51 -0
  1277. package/src/actions/public/waitForTransactionReceipt.ts +48 -16
  1278. package/src/actions/public/watchBlockNumber.ts +12 -6
  1279. package/src/actions/public/watchBlocks.ts +9 -5
  1280. package/src/actions/public/watchContractEvent.ts +37 -22
  1281. package/src/actions/public/watchEvent.ts +34 -16
  1282. package/src/actions/public/watchPendingTransactions.ts +9 -8
  1283. package/src/actions/test/dropTransaction.ts +4 -3
  1284. package/src/actions/test/getAutomine.ts +7 -3
  1285. package/src/actions/test/getTxpoolContent.ts +5 -3
  1286. package/src/actions/test/getTxpoolStatus.ts +4 -4
  1287. package/src/actions/test/impersonateAccount.ts +5 -3
  1288. package/src/actions/test/increaseTime.ts +4 -4
  1289. package/src/actions/test/inspectTxpool.ts +5 -3
  1290. package/src/actions/test/mine.ts +14 -8
  1291. package/src/actions/test/removeBlockTimestampInterval.ts +3 -3
  1292. package/src/actions/test/reset.ts +3 -3
  1293. package/src/actions/test/revert.ts +4 -3
  1294. package/src/actions/test/sendUnsignedTransaction.ts +6 -4
  1295. package/src/actions/test/setAutomine.ts +11 -7
  1296. package/src/actions/test/setBalance.ts +16 -8
  1297. package/src/actions/test/setBlockGasLimit.ts +4 -4
  1298. package/src/actions/test/setBlockTimestampInterval.ts +4 -4
  1299. package/src/actions/test/setCode.ts +6 -3
  1300. package/src/actions/test/setCoinbase.ts +5 -3
  1301. package/src/actions/test/setIntervalMining.ts +3 -3
  1302. package/src/actions/test/setLoggingEnabled.ts +3 -3
  1303. package/src/actions/test/setMinGasPrice.ts +4 -4
  1304. package/src/actions/test/setNextBlockBaseFeePerGas.ts +4 -4
  1305. package/src/actions/test/setNextBlockTimestamp.ts +4 -4
  1306. package/src/actions/test/setNonce.ts +6 -4
  1307. package/src/actions/test/setRpcUrl.ts +3 -3
  1308. package/src/actions/test/setStorageAt.ts +7 -4
  1309. package/src/actions/test/snapshot.ts +3 -3
  1310. package/src/actions/test/stopImpersonatingAccount.ts +6 -4
  1311. package/src/actions/wallet/addChain.ts +5 -3
  1312. package/src/actions/wallet/deployContract.ts +15 -15
  1313. package/src/actions/wallet/getAddresses.ts +5 -3
  1314. package/src/actions/wallet/getPermissions.ts +4 -2
  1315. package/src/actions/wallet/requestAddresses.ts +5 -3
  1316. package/src/actions/wallet/requestPermissions.ts +5 -2
  1317. package/src/actions/wallet/sendTransaction.ts +29 -31
  1318. package/src/actions/wallet/signMessage.ts +20 -13
  1319. package/src/actions/wallet/signTypedData.ts +14 -16
  1320. package/src/actions/wallet/switchChain.ts +5 -3
  1321. package/src/actions/wallet/watchAsset.ts +4 -2
  1322. package/src/actions/wallet/writeContract.ts +18 -18
  1323. package/src/chains.ts +22 -9
  1324. package/src/clients/createClient.ts +14 -11
  1325. package/src/clients/createPublicClient.ts +8 -9
  1326. package/src/clients/createTestClient.ts +9 -11
  1327. package/src/clients/createWalletClient.ts +12 -16
  1328. package/src/clients/decorators/public.ts +232 -123
  1329. package/src/clients/decorators/test.ts +71 -40
  1330. package/src/clients/decorators/wallet.ts +56 -32
  1331. package/src/clients/transports/createTransport.ts +7 -11
  1332. package/src/clients/transports/custom.ts +5 -6
  1333. package/src/clients/transports/fallback.ts +7 -4
  1334. package/src/clients/transports/http.ts +51 -11
  1335. package/src/clients/transports/webSocket.ts +32 -20
  1336. package/src/constants/abis.ts +42 -0
  1337. package/src/constants/contracts.ts +2 -0
  1338. package/src/contract.ts +84 -49
  1339. package/src/ens.ts +22 -20
  1340. package/src/errors/abi.ts +27 -13
  1341. package/src/errors/block.ts +2 -1
  1342. package/src/errors/ccip.ts +5 -2
  1343. package/src/errors/chain.ts +2 -1
  1344. package/src/errors/contract.ts +30 -23
  1345. package/src/errors/data.ts +15 -0
  1346. package/src/errors/encoding.ts +2 -1
  1347. package/src/errors/estimateGas.ts +6 -3
  1348. package/src/errors/node.ts +2 -1
  1349. package/src/errors/request.ts +6 -5
  1350. package/src/errors/rpc.ts +43 -15
  1351. package/src/errors/transaction.ts +9 -10
  1352. package/src/errors/utils.ts +1 -0
  1353. package/src/errors/version.ts +1 -1
  1354. package/src/index.ts +631 -414
  1355. package/src/public.ts +99 -55
  1356. package/src/test.ts +56 -37
  1357. package/src/types/account.ts +15 -13
  1358. package/src/types/block.ts +1 -0
  1359. package/src/types/chain.ts +1 -0
  1360. package/src/types/contract.ts +35 -90
  1361. package/src/types/eip1193.ts +1093 -832
  1362. package/src/types/filter.ts +16 -3
  1363. package/src/types/log.ts +101 -33
  1364. package/src/types/misc.ts +6 -0
  1365. package/src/types/multicall.ts +1 -0
  1366. package/src/types/transaction.ts +6 -3
  1367. package/src/types/transport.ts +1 -1
  1368. package/src/types/utils.ts +15 -0
  1369. package/src/utils/abi/decodeAbiParameters.ts +45 -21
  1370. package/src/utils/abi/decodeDeployData.ts +13 -10
  1371. package/src/utils/abi/decodeErrorResult.ts +35 -16
  1372. package/src/utils/abi/decodeEventLog.ts +78 -35
  1373. package/src/utils/abi/decodeFunctionData.ts +6 -4
  1374. package/src/utils/abi/decodeFunctionResult.ts +45 -25
  1375. package/src/utils/abi/encodeAbiParameters.ts +10 -7
  1376. package/src/utils/abi/encodeDeployData.ts +5 -3
  1377. package/src/utils/abi/encodeErrorResult.ts +38 -21
  1378. package/src/utils/abi/encodeEventTopics.ts +46 -28
  1379. package/src/utils/abi/encodeFunctionData.ts +38 -24
  1380. package/src/utils/abi/encodeFunctionResult.ts +40 -19
  1381. package/src/utils/abi/encodePacked.ts +9 -6
  1382. package/src/utils/abi/formatAbiItem.ts +2 -2
  1383. package/src/utils/abi/formatAbiItemWithArgs.ts +3 -2
  1384. package/src/utils/abi/getAbiItem.ts +4 -2
  1385. package/src/utils/address/getAddress.ts +6 -4
  1386. package/src/utils/address/getContractAddress.ts +11 -4
  1387. package/src/utils/address/isAddress.ts +1 -1
  1388. package/src/utils/address/isAddressEqual.ts +4 -2
  1389. package/src/utils/buildRequest.ts +14 -11
  1390. package/src/utils/ccip.ts +16 -10
  1391. package/src/utils/chain.ts +21 -2
  1392. package/src/utils/data/concat.ts +1 -1
  1393. package/src/utils/data/isBytes.ts +1 -1
  1394. package/src/utils/data/isBytesEqual.ts +8 -0
  1395. package/src/utils/data/isHex.ts +6 -3
  1396. package/src/utils/data/pad.ts +2 -2
  1397. package/src/utils/data/size.ts +3 -2
  1398. package/src/utils/data/slice.ts +46 -16
  1399. package/src/utils/data/trim.ts +4 -2
  1400. package/src/utils/encoding/fromBytes.ts +3 -4
  1401. package/src/utils/encoding/fromHex.ts +7 -6
  1402. package/src/utils/encoding/fromRlp.ts +3 -2
  1403. package/src/utils/encoding/toBytes.ts +4 -4
  1404. package/src/utils/encoding/toHex.ts +4 -3
  1405. package/src/utils/encoding/toRlp.ts +3 -2
  1406. package/src/utils/ens/avatar/parseAvatarRecord.ts +5 -2
  1407. package/src/utils/ens/avatar/utils.ts +8 -4
  1408. package/src/utils/ens/encodeLabelhash.ts +5 -0
  1409. package/src/utils/ens/encodedLabelToLabelhash.ts +11 -0
  1410. package/src/utils/ens/labelhash.ts +5 -3
  1411. package/src/utils/ens/namehash.ts +9 -4
  1412. package/src/utils/ens/packetToBytes.ts +14 -10
  1413. package/src/utils/errors/getCallError.ts +5 -4
  1414. package/src/utils/errors/getContractError.ts +9 -9
  1415. package/src/utils/errors/getEstimateGasError.ts +6 -4
  1416. package/src/utils/errors/getNodeError.ts +8 -5
  1417. package/src/utils/errors/getTransactionError.ts +6 -4
  1418. package/src/utils/filters/createFilterRequestScope.ts +16 -7
  1419. package/src/utils/formatters/block.ts +10 -9
  1420. package/src/utils/formatters/extract.ts +1 -1
  1421. package/src/utils/formatters/feeHistory.ts +2 -1
  1422. package/src/utils/formatters/format.ts +3 -1
  1423. package/src/utils/formatters/log.ts +4 -3
  1424. package/src/utils/formatters/transaction.ts +11 -10
  1425. package/src/utils/formatters/transactionReceipt.ts +11 -10
  1426. package/src/utils/formatters/transactionRequest.ts +11 -10
  1427. package/src/utils/hash/getEventSelector.ts +2 -1
  1428. package/src/utils/hash/getFunctionSelector.ts +2 -1
  1429. package/src/utils/hash/hashFunction.ts +4 -4
  1430. package/src/utils/hash/isHash.ts +3 -2
  1431. package/src/utils/hash/keccak256.ts +7 -4
  1432. package/src/utils/index.ts +191 -165
  1433. package/src/utils/promise/createBatchScheduler.ts +24 -7
  1434. package/src/utils/promise/withCache.ts +11 -9
  1435. package/src/utils/rpc.ts +115 -103
  1436. package/src/utils/signature/hashMessage.ts +10 -6
  1437. package/src/utils/signature/hashTypedData.ts +6 -5
  1438. package/src/utils/signature/recoverAddress.ts +5 -2
  1439. package/src/utils/signature/recoverMessageAddress.ts +5 -2
  1440. package/src/utils/signature/recoverPublicKey.ts +6 -4
  1441. package/src/utils/signature/recoverTypedDataAddress.ts +5 -7
  1442. package/src/utils/signature/verifyMessage.ts +21 -2
  1443. package/src/utils/signature/verifyTypedData.ts +24 -4
  1444. package/src/utils/transaction/assertRequest.ts +6 -9
  1445. package/src/utils/transaction/assertTransaction.ts +6 -9
  1446. package/src/utils/transaction/getSerializedTransactionType.ts +2 -2
  1447. package/src/utils/transaction/getTransactionType.ts +4 -1
  1448. package/src/utils/transaction/parseTransaction.ts +16 -11
  1449. package/src/utils/transaction/prepareRequest.ts +19 -23
  1450. package/src/utils/transaction/serializeTransaction.ts +16 -13
  1451. package/src/utils/typedData.ts +8 -5
  1452. package/src/utils/unit/formatEther.ts +2 -1
  1453. package/src/utils/unit/formatGwei.ts +2 -1
  1454. package/src/utils/unit/parseEther.ts +2 -1
  1455. package/src/utils/unit/parseGwei.ts +2 -1
  1456. package/src/utils/unit/parseUnits.ts +19 -5
  1457. package/src/wallet.ts +32 -19
  1458. package/test/package.json +5 -0
  1459. package/utils/package.json +5 -0
  1460. package/wallet/package.json +5 -0
  1461. package/window/package.json +5 -0
  1462. package/dist/cjs/accounts/utils/index.js +0 -16
  1463. package/dist/cjs/accounts/utils/index.js.map +0 -1
  1464. package/dist/cjs/actions/ens/index.js +0 -14
  1465. package/dist/cjs/actions/ens/index.js.map +0 -1
  1466. package/dist/cjs/actions/index.js +0 -85
  1467. package/dist/cjs/actions/index.js.map +0 -1
  1468. package/dist/cjs/actions/public/index.js +0 -71
  1469. package/dist/cjs/actions/public/index.js.map +0 -1
  1470. package/dist/cjs/actions/test/index.js +0 -60
  1471. package/dist/cjs/actions/test/index.js.map +0 -1
  1472. package/dist/cjs/actions/wallet/index.js +0 -30
  1473. package/dist/cjs/actions/wallet/index.js.map +0 -1
  1474. package/dist/cjs/adapters/ethers.js +0 -49
  1475. package/dist/cjs/adapters/ethers.js.map +0 -1
  1476. package/dist/cjs/clients/decorators/index.js +0 -10
  1477. package/dist/cjs/clients/decorators/index.js.map +0 -1
  1478. package/dist/cjs/clients/index.js +0 -18
  1479. package/dist/cjs/clients/index.js.map +0 -1
  1480. package/dist/cjs/clients/transports/index.js +0 -14
  1481. package/dist/cjs/clients/transports/index.js.map +0 -1
  1482. package/dist/cjs/constants/index.js +0 -18
  1483. package/dist/cjs/constants/index.js.map +0 -1
  1484. package/dist/cjs/errors/index.js +0 -128
  1485. package/dist/cjs/errors/index.js.map +0 -1
  1486. package/dist/cjs/ethers.js +0 -6
  1487. package/dist/cjs/ethers.js.map +0 -1
  1488. package/dist/cjs/types/index.js +0 -3
  1489. package/dist/cjs/types/index.js.map +0 -1
  1490. package/dist/cjs/utils/abi/index.js +0 -40
  1491. package/dist/cjs/utils/abi/index.js.map +0 -1
  1492. package/dist/cjs/utils/address/index.js +0 -15
  1493. package/dist/cjs/utils/address/index.js.map +0 -1
  1494. package/dist/cjs/utils/contract/index.js +0 -9
  1495. package/dist/cjs/utils/contract/index.js.map +0 -1
  1496. package/dist/cjs/utils/data/index.js +0 -24
  1497. package/dist/cjs/utils/data/index.js.map +0 -1
  1498. package/dist/cjs/utils/encoding/index.js +0 -32
  1499. package/dist/cjs/utils/encoding/index.js.map +0 -1
  1500. package/dist/cjs/utils/ens/avatar/index.js +0 -6
  1501. package/dist/cjs/utils/ens/avatar/index.js.map +0 -1
  1502. package/dist/cjs/utils/ens/index.js +0 -12
  1503. package/dist/cjs/utils/ens/index.js.map +0 -1
  1504. package/dist/cjs/utils/errors/index.js +0 -15
  1505. package/dist/cjs/utils/errors/index.js.map +0 -1
  1506. package/dist/cjs/utils/formatters/index.js +0 -24
  1507. package/dist/cjs/utils/formatters/index.js.map +0 -1
  1508. package/dist/cjs/utils/hash/index.js +0 -12
  1509. package/dist/cjs/utils/hash/index.js.map +0 -1
  1510. package/dist/cjs/utils/promise/index.js +0 -13
  1511. package/dist/cjs/utils/promise/index.js.map +0 -1
  1512. package/dist/cjs/utils/signature/index.js +0 -20
  1513. package/dist/cjs/utils/signature/index.js.map +0 -1
  1514. package/dist/cjs/utils/transaction/index.js +0 -20
  1515. package/dist/cjs/utils/transaction/index.js.map +0 -1
  1516. package/dist/cjs/utils/unit/index.js +0 -16
  1517. package/dist/cjs/utils/unit/index.js.map +0 -1
  1518. package/dist/esm/accounts/utils/index.js +0 -7
  1519. package/dist/esm/accounts/utils/index.js.map +0 -1
  1520. package/dist/esm/actions/ens/index.js +0 -6
  1521. package/dist/esm/actions/ens/index.js.map +0 -1
  1522. package/dist/esm/actions/index.js +0 -6
  1523. package/dist/esm/actions/index.js.map +0 -1
  1524. package/dist/esm/actions/public/index.js +0 -34
  1525. package/dist/esm/actions/public/index.js.map +0 -1
  1526. package/dist/esm/actions/test/index.js +0 -29
  1527. package/dist/esm/actions/test/index.js.map +0 -1
  1528. package/dist/esm/actions/wallet/index.js +0 -14
  1529. package/dist/esm/actions/wallet/index.js.map +0 -1
  1530. package/dist/esm/adapters/ethers.js +0 -45
  1531. package/dist/esm/adapters/ethers.js.map +0 -1
  1532. package/dist/esm/clients/decorators/index.js +0 -4
  1533. package/dist/esm/clients/decorators/index.js.map +0 -1
  1534. package/dist/esm/clients/index.js +0 -6
  1535. package/dist/esm/clients/index.js.map +0 -1
  1536. package/dist/esm/clients/transports/index.js +0 -6
  1537. package/dist/esm/clients/transports/index.js.map +0 -1
  1538. package/dist/esm/constants/index.js +0 -6
  1539. package/dist/esm/constants/index.js.map +0 -1
  1540. package/dist/esm/errors/index.js +0 -19
  1541. package/dist/esm/errors/index.js.map +0 -1
  1542. package/dist/esm/ethers.js +0 -2
  1543. package/dist/esm/ethers.js.map +0 -1
  1544. package/dist/esm/types/index.js +0 -2
  1545. package/dist/esm/types/index.js.map +0 -1
  1546. package/dist/esm/utils/abi/index.js +0 -17
  1547. package/dist/esm/utils/abi/index.js.map +0 -1
  1548. package/dist/esm/utils/address/index.js +0 -5
  1549. package/dist/esm/utils/address/index.js.map +0 -1
  1550. package/dist/esm/utils/contract/index.js +0 -2
  1551. package/dist/esm/utils/contract/index.js.map +0 -1
  1552. package/dist/esm/utils/data/index.js +0 -8
  1553. package/dist/esm/utils/data/index.js.map +0 -1
  1554. package/dist/esm/utils/encoding/index.js +0 -7
  1555. package/dist/esm/utils/encoding/index.js.map +0 -1
  1556. package/dist/esm/utils/ens/avatar/index.js +0 -2
  1557. package/dist/esm/utils/ens/avatar/index.js.map +0 -1
  1558. package/dist/esm/utils/ens/index.js +0 -5
  1559. package/dist/esm/utils/ens/index.js.map +0 -1
  1560. package/dist/esm/utils/errors/index.js +0 -6
  1561. package/dist/esm/utils/errors/index.js.map +0 -1
  1562. package/dist/esm/utils/formatters/index.js +0 -8
  1563. package/dist/esm/utils/formatters/index.js.map +0 -1
  1564. package/dist/esm/utils/hash/index.js +0 -5
  1565. package/dist/esm/utils/hash/index.js.map +0 -1
  1566. package/dist/esm/utils/promise/index.js +0 -5
  1567. package/dist/esm/utils/promise/index.js.map +0 -1
  1568. package/dist/esm/utils/signature/index.js +0 -9
  1569. package/dist/esm/utils/signature/index.js.map +0 -1
  1570. package/dist/esm/utils/transaction/index.js +0 -8
  1571. package/dist/esm/utils/transaction/index.js.map +0 -1
  1572. package/dist/esm/utils/unit/index.js +0 -7
  1573. package/dist/esm/utils/unit/index.js.map +0 -1
  1574. package/dist/types/accounts/utils/index.d.ts +0 -10
  1575. package/dist/types/accounts/utils/index.d.ts.map +0 -1
  1576. package/dist/types/actions/ens/index.d.ts +0 -6
  1577. package/dist/types/actions/ens/index.d.ts.map +0 -1
  1578. package/dist/types/actions/index.d.ts +0 -11
  1579. package/dist/types/actions/index.d.ts.map +0 -1
  1580. package/dist/types/actions/public/index.d.ts +0 -67
  1581. package/dist/types/actions/public/index.d.ts.map +0 -1
  1582. package/dist/types/actions/test/index.d.ts +0 -52
  1583. package/dist/types/actions/test/index.d.ts.map +0 -1
  1584. package/dist/types/actions/wallet/index.d.ts +0 -27
  1585. package/dist/types/actions/wallet/index.d.ts.map +0 -1
  1586. package/dist/types/adapters/ethers.d.ts +0 -27
  1587. package/dist/types/adapters/ethers.d.ts.map +0 -1
  1588. package/dist/types/clients/decorators/index.d.ts +0 -7
  1589. package/dist/types/clients/decorators/index.d.ts.map +0 -1
  1590. package/dist/types/clients/index.d.ts +0 -11
  1591. package/dist/types/clients/index.d.ts.map +0 -1
  1592. package/dist/types/clients/transports/index.d.ts +0 -11
  1593. package/dist/types/clients/transports/index.d.ts.map +0 -1
  1594. package/dist/types/constants/index.d.ts +0 -6
  1595. package/dist/types/constants/index.d.ts.map +0 -1
  1596. package/dist/types/errors/index.d.ts +0 -19
  1597. package/dist/types/errors/index.d.ts.map +0 -1
  1598. package/dist/types/ethers.d.ts +0 -2
  1599. package/dist/types/ethers.d.ts.map +0 -1
  1600. package/dist/types/types/index.d.ts +0 -19
  1601. package/dist/types/types/index.d.ts.map +0 -1
  1602. package/dist/types/utils/abi/index.d.ts +0 -30
  1603. package/dist/types/utils/abi/index.d.ts.map +0 -1
  1604. package/dist/types/utils/address/index.d.ts +0 -6
  1605. package/dist/types/utils/address/index.d.ts.map +0 -1
  1606. package/dist/types/utils/contract/index.d.ts +0 -2
  1607. package/dist/types/utils/contract/index.d.ts.map +0 -1
  1608. package/dist/types/utils/data/index.d.ts +0 -8
  1609. package/dist/types/utils/data/index.d.ts.map +0 -1
  1610. package/dist/types/utils/encoding/index.d.ts +0 -8
  1611. package/dist/types/utils/encoding/index.d.ts.map +0 -1
  1612. package/dist/types/utils/ens/avatar/index.d.ts +0 -2
  1613. package/dist/types/utils/ens/avatar/index.d.ts.map +0 -1
  1614. package/dist/types/utils/ens/index.d.ts +0 -5
  1615. package/dist/types/utils/ens/index.d.ts.map +0 -1
  1616. package/dist/types/utils/errors/index.d.ts +0 -6
  1617. package/dist/types/utils/errors/index.d.ts.map +0 -1
  1618. package/dist/types/utils/formatters/index.d.ts +0 -13
  1619. package/dist/types/utils/formatters/index.d.ts.map +0 -1
  1620. package/dist/types/utils/hash/index.d.ts +0 -5
  1621. package/dist/types/utils/hash/index.d.ts.map +0 -1
  1622. package/dist/types/utils/promise/index.d.ts +0 -5
  1623. package/dist/types/utils/promise/index.d.ts.map +0 -1
  1624. package/dist/types/utils/signature/index.d.ts +0 -16
  1625. package/dist/types/utils/signature/index.d.ts.map +0 -1
  1626. package/dist/types/utils/transaction/index.d.ts +0 -10
  1627. package/dist/types/utils/transaction/index.d.ts.map +0 -1
  1628. package/dist/types/utils/unit/index.d.ts +0 -7
  1629. package/dist/types/utils/unit/index.d.ts.map +0 -1
  1630. package/src/accounts/utils/index.ts +0 -23
  1631. package/src/actions/ens/index.ts +0 -29
  1632. package/src/actions/index.ts +0 -211
  1633. package/src/actions/public/index.ts +0 -183
  1634. package/src/actions/test/index.ts +0 -81
  1635. package/src/actions/wallet/index.ts +0 -60
  1636. package/src/adapters/ethers.ts +0 -92
  1637. package/src/clients/decorators/index.ts +0 -8
  1638. package/src/clients/index.ts +0 -41
  1639. package/src/clients/transports/index.ts +0 -20
  1640. package/src/constants/index.ts +0 -9
  1641. package/src/errors/index.ts +0 -141
  1642. package/src/ethers.ts +0 -1
  1643. package/src/types/index.ts +0 -131
  1644. package/src/utils/abi/index.ts +0 -63
  1645. package/src/utils/address/index.ts +0 -16
  1646. package/src/utils/contract/index.ts +0 -6
  1647. package/src/utils/data/index.ts +0 -13
  1648. package/src/utils/encoding/index.ts +0 -36
  1649. package/src/utils/ens/avatar/index.ts +0 -1
  1650. package/src/utils/ens/index.ts +0 -7
  1651. package/src/utils/errors/index.ts +0 -9
  1652. package/src/utils/formatters/index.ts +0 -37
  1653. package/src/utils/hash/index.ts +0 -7
  1654. package/src/utils/promise/index.ts +0 -4
  1655. package/src/utils/signature/index.ts +0 -43
  1656. package/src/utils/transaction/index.ts +0 -19
  1657. package/src/utils/unit/index.ts +0 -6
@@ -1,28 +1,34 @@
1
1
  import type { Address } from 'abitype'
2
+
2
3
  import type { BlockTag } from './block.js'
3
4
  import type { Hash, Hex, LogTopic } from './misc.js'
4
5
  import type {
6
+ Quantity,
5
7
  RpcBlock as Block,
6
8
  RpcBlockIdentifier as BlockIdentifier,
7
9
  RpcBlockNumber as BlockNumber,
8
10
  RpcFeeHistory as FeeHistory,
9
11
  RpcLog as Log,
10
- Quantity,
11
12
  RpcTransaction as Transaction,
12
13
  RpcTransactionReceipt as TransactionReceipt,
13
14
  RpcTransactionRequest as TransactionRequest,
14
15
  RpcUncle as Uncle,
15
16
  } from './rpc.js'
17
+ import type { Prettify } from './utils.js'
16
18
 
17
19
  //////////////////////////////////////////////////
18
20
  // Provider
19
21
 
20
- export type EIP1193Provider = Requests & Events
22
+ export type EIP1474Methods = [...PublicRpcSchema, ...WalletRpcSchema]
23
+
24
+ export type EIP1193Provider = EIP1193Events & {
25
+ request: EIP1193RequestFn<EIP1474Methods>
26
+ }
21
27
 
22
28
  //////////////////////////////////////////////////
23
29
  // Errors
24
30
 
25
- export class RpcError extends Error {
31
+ export class ProviderRpcError extends Error {
26
32
  code: number
27
33
  details: string
28
34
 
@@ -45,12 +51,12 @@ export type ProviderMessage = {
45
51
  data: unknown
46
52
  }
47
53
 
48
- export type Events = {
54
+ export type EIP1193Events = {
49
55
  on(
50
56
  event: 'connect',
51
57
  listener: (connectInfo: ProviderConnectInfo) => void,
52
58
  ): void
53
- on(event: 'disconnect', listener: (error: RpcError) => void): void
59
+ on(event: 'disconnect', listener: (error: ProviderRpcError) => void): void
54
60
  on(event: 'chainChanged', listener: (chainId: string) => void): void
55
61
  on(event: 'accountsChanged', listener: (accounts: string[]) => void): void
56
62
  on(event: 'message', listener: (message: ProviderMessage) => void): void
@@ -59,7 +65,10 @@ export type Events = {
59
65
  event: 'connect',
60
66
  listener: (connectInfo: ProviderConnectInfo) => void,
61
67
  ): void
62
- removeListener(event: 'disconnect', listener: (error: RpcError) => void): void
68
+ removeListener(
69
+ event: 'disconnect',
70
+ listener: (error: ProviderRpcError) => void,
71
+ ): void
63
72
  removeListener(
64
73
  event: 'chainChanged',
65
74
  listener: (chainId: string) => void,
@@ -77,7 +86,7 @@ export type Events = {
77
86
  //////////////////////////////////////////////////
78
87
  // Provider Requests
79
88
 
80
- export type Chain = {
89
+ export type AddEthereumChainParameter = {
81
90
  /** A 0x-prefixed hexadecimal string */
82
91
  chainId: string
83
92
  /** The chain name. */
@@ -130,130 +139,153 @@ export type WatchAssetParams = {
130
139
  }
131
140
  }
132
141
 
133
- export type PublicRequests = {
134
- request(args: {
135
- /**
136
- * @description Returns the version of the current client
137
- * @link https://eips.ethereum.org/EIPS/eip-1474
138
- * @example
139
- * provider.request({ method: 'web3_clientVersion' })
140
- * // => 'MetaMask/v1.0.0'
141
- */
142
- method: 'web3_clientVersion'
143
- params?: never
144
- }): Promise<string>
145
- request(args: {
146
- /**
147
- * @description Hashes data using the Keccak-256 algorithm
148
- * @link https://eips.ethereum.org/EIPS/eip-1474
149
- * @example
150
- * provider.request({ method: 'web3_sha3', params: ['0x68656c6c6f20776f726c64'] })
151
- * // => '0xc94770007dda54cF92009BFF0dE90c06F603a09f'
152
- */
153
- method: 'web3_sha3'
154
- params: [data: Hash]
155
- }): Promise<string>
156
- request(args: {
157
- /**
158
- * @description Determines if this client is listening for new network connections
159
- * @link https://eips.ethereum.org/EIPS/eip-1474
160
- * @example
161
- * provider.request({ method: 'net_listening' })
162
- * // => true
163
- */
164
- method: 'net_listening'
165
- params?: never
166
- }): Promise<boolean>
167
- request(args: {
168
- /**
169
- * @description Returns the number of peers currently connected to this client
170
- * @link https://eips.ethereum.org/EIPS/eip-1474
171
- * @example
172
- * provider.request({ method: 'net_peerCount' })
173
- * // => '0x1'
174
- */
175
- method: 'net_peerCount'
176
- params?: never
177
- }): Promise<Quantity>
178
- request(args: {
179
- /**
180
- * @description Returns the chain ID associated with the current network
181
- * @link https://eips.ethereum.org/EIPS/eip-1474
182
- * @example
183
- * provider.request({ method: 'net_version' })
184
- * // => '1'
185
- */
186
- method: 'net_version'
187
- params?: never
188
- }): Promise<Quantity>
189
- request(args: {
190
- /**
191
- * @description Returns the number of the most recent block seen by this client
192
- * @link https://eips.ethereum.org/EIPS/eip-1474
193
- * @example
194
- * provider.request({ method: 'eth_blockNumber' })
195
- * // => '0x1b4'
196
- * */
197
- method: 'eth_blockNumber'
198
- params?: never
199
- }): Promise<Quantity>
200
- request(args: {
201
- /**
202
- * @description Executes a new message call immediately without submitting a transaction to the network
203
- * @link https://eips.ethereum.org/EIPS/eip-1474
204
- * @example
205
- * provider.request({ method: 'eth_call', params: [{ to: '0x...', data: '0x...' }] })
206
- * // => '0x...'
207
- */
208
- method: 'eth_call'
209
- params: [
210
- request: Partial<TransactionRequest>,
211
- block: BlockNumber | BlockTag | BlockIdentifier,
212
- ]
213
- }): Promise<Hex>
214
- request(args: {
215
- /**
216
- * @description Returns the chain ID associated with the current network
217
- * @example
218
- * provider.request({ method: 'eth_chainId' })
219
- * // => '1'
220
- */
221
- method: 'eth_chainId'
222
- params?: never
223
- }): Promise<Quantity>
224
- request(args: { method: 'eth_coinbase'; params?: never }): Promise<Address>
225
- request(args: {
226
- /**
227
- * @description Estimates the gas necessary to complete a transaction without submitting it to the network
228
- * @link https://eips.ethereum.org/EIPS/eip-1474
229
- * @example
230
- * provider.request({
231
- * method: 'eth_estimateGas',
232
- * params: [{ from: '0x...', to: '0x...', value: '0x...' }]
233
- * })
234
- * // => '0x5208'
235
- * */
236
- method: 'eth_estimateGas'
237
- params: [parameters: TransactionRequest, block: BlockNumber | BlockTag]
238
- }): Promise<Quantity>
239
- request(args: {
240
- /**
241
- * @description Returns a collection of historical gas information
242
- * @link https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md
243
- * @example
244
- * provider.request({
245
- * method: 'eth_feeHistory',
246
- * params: ['4', 'latest', ['25', '75']]
247
- * })
248
- * // => {
249
- * // oldestBlock: '0x1',
250
- * // baseFeePerGas: ['0x1', '0x2', '0x3', '0x4'],
251
- * // gasUsedRatio: ['0x1', '0x2', '0x3', '0x4'],
252
- * // reward: [['0x1', '0x2'], ['0x3', '0x4'], ['0x5', '0x6'], ['0x7', '0x8']]
253
- * // }
254
- * */
255
- method: 'eth_feeHistory'
256
- params: [
142
+ export type PublicRpcSchema = [
143
+ /**
144
+ * @description Returns the version of the current client
145
+ *
146
+ * @example
147
+ * provider.request({ method: 'web3_clientVersion' })
148
+ * // => 'MetaMask/v1.0.0'
149
+ */
150
+ {
151
+ Method: 'web3_clientVersion'
152
+ Parameters?: never
153
+ ReturnType: string
154
+ },
155
+ /**
156
+ * @description Hashes data using the Keccak-256 algorithm
157
+ *
158
+ * @example
159
+ * provider.request({ method: 'web3_sha3', params: ['0x68656c6c6f20776f726c64'] })
160
+ * // => '0xc94770007dda54cF92009BFF0dE90c06F603a09f'
161
+ */
162
+ {
163
+ Method: 'web3_sha3'
164
+ Parameters: [data: Hash]
165
+ ReturnType: string
166
+ },
167
+ /**
168
+ * @description Determines if this client is listening for new network connections
169
+ *
170
+ * @example
171
+ * provider.request({ method: 'net_listening' })
172
+ * // => true
173
+ */
174
+ {
175
+ Method: 'net_listening'
176
+ Parameters?: never
177
+ ReturnType: boolean
178
+ },
179
+ /**
180
+ * @description Returns the number of peers currently connected to this client
181
+ *
182
+ * @example
183
+ * provider.request({ method: 'net_peerCount' })
184
+ * // => '0x1'
185
+ */
186
+ {
187
+ Method: 'net_peerCount'
188
+ Parameters?: never
189
+ ReturnType: Quantity
190
+ },
191
+ /**
192
+ * @description Returns the chain ID associated with the current network
193
+ *
194
+ * @example
195
+ * provider.request({ method: 'net_version' })
196
+ * // => '1'
197
+ */
198
+ {
199
+ Method: 'net_version'
200
+ Parameters?: never
201
+ ReturnType: Quantity
202
+ },
203
+ /**
204
+ * @description Returns the number of the most recent block seen by this client
205
+ *
206
+ * @example
207
+ * provider.request({ method: 'eth_blockNumber' })
208
+ * // => '0x1b4'
209
+ */
210
+ {
211
+ Method: 'eth_blockNumber'
212
+ Parameters?: never
213
+ ReturnType: Quantity
214
+ },
215
+ /**
216
+ * @description Executes a new message call immediately without submitting a transaction to the network
217
+ *
218
+ * @example
219
+ * provider.request({ method: 'eth_call', params: [{ to: '0x...', data: '0x...' }] })
220
+ * // => '0x...'
221
+ */
222
+ {
223
+ Method: 'eth_call'
224
+ Parameters:
225
+ | [transaction: Partial<TransactionRequest>]
226
+ | [
227
+ transaction: Partial<TransactionRequest>,
228
+ block: BlockNumber | BlockTag | BlockIdentifier,
229
+ ]
230
+ ReturnType: Hex
231
+ },
232
+ /**
233
+ * @description Returns the chain ID associated with the current network
234
+ * @example
235
+ * provider.request({ method: 'eth_chainId' })
236
+ * // => '1'
237
+ */
238
+ {
239
+ Method: 'eth_chainId'
240
+ Parameters?: never
241
+ ReturnType: Quantity
242
+ },
243
+ /**
244
+ * @description Returns the client coinbase address.
245
+ * @example
246
+ * provider.request({ method: 'eth_coinbase' })
247
+ * // => '0x...'
248
+ */
249
+ {
250
+ Method: 'eth_coinbase'
251
+ Parameters?: never
252
+ ReturnType: Address
253
+ },
254
+ /**
255
+ * @description Estimates the gas necessary to complete a transaction without submitting it to the network
256
+ *
257
+ * @example
258
+ * provider.request({
259
+ * method: 'eth_estimateGas',
260
+ * params: [{ from: '0x...', to: '0x...', value: '0x...' }]
261
+ * })
262
+ * // => '0x5208'
263
+ */
264
+ {
265
+ Method: 'eth_estimateGas'
266
+ Parameters:
267
+ | [transaction: TransactionRequest]
268
+ | [transaction: TransactionRequest, block: BlockNumber | BlockTag]
269
+ ReturnType: Quantity
270
+ },
271
+ /**
272
+ * @description Returns a collection of historical gas information
273
+ *
274
+ * @example
275
+ * provider.request({
276
+ * method: 'eth_feeHistory',
277
+ * params: ['4', 'latest', ['25', '75']]
278
+ * })
279
+ * // => {
280
+ * // oldestBlock: '0x1',
281
+ * // baseFeePerGas: ['0x1', '0x2', '0x3', '0x4'],
282
+ * // gasUsedRatio: ['0x1', '0x2', '0x3', '0x4'],
283
+ * // reward: [['0x1', '0x2'], ['0x3', '0x4'], ['0x5', '0x6'], ['0x7', '0x8']]
284
+ * // }
285
+ * */
286
+ {
287
+ Method: 'eth_feeHistory'
288
+ Parameters: [
257
289
  /** Number of blocks in the requested range. Between 1 and 1024 blocks can be requested in a single query. Less than requested may be returned if not all blocks are available. */
258
290
  blockCount: Quantity,
259
291
  /** Highest number block of the requested range. */
@@ -261,137 +293,153 @@ export type PublicRequests = {
261
293
  /** A monotonically increasing list of percentile values to sample from each block's effective priority fees per gas in ascending order, weighted by gas used. */
262
294
  rewardPercentiles: number[] | undefined,
263
295
  ]
264
- }): Promise<FeeHistory>
265
- request(args: {
266
- /**
267
- * @description Returns the current price of gas expressed in wei
268
- * @link https://eips.ethereum.org/EIPS/eip-1474
269
- * @example
270
- * provider.request({ method: 'eth_gasPrice' })
271
- * // => '0x09184e72a000'
272
- * */
273
- method: 'eth_gasPrice'
274
- params?: never
275
- }): Promise<Quantity>
276
- request(args: {
277
- /**
278
- * @description Returns the balance of an address in wei
279
- * @link https://eips.ethereum.org/EIPS/eip-1474
280
- * @example
281
- * provider.request({ method: 'eth_getBalance', params: ['0x...', 'latest'] })
282
- * // => '0x12a05...'
283
- * */
284
- method: 'eth_getBalance'
285
- params: [address: Address, block: BlockNumber | BlockTag | BlockIdentifier]
286
- }): Promise<Quantity>
287
- request(args: {
288
- /**
289
- * @description Returns information about a block specified by hash
290
- * @link https://eips.ethereum.org/EIPS/eip-1474
291
- * @example
292
- * provider.request({ method: 'eth_getBlockByHash', params: ['0x...', true] })
293
- * // => {
294
- * // number: '0x1b4',
295
- * // hash: '0x...',
296
- * // parentHash: '0x...',
297
- * // ...
298
- * // }
299
- * */
300
- method: 'eth_getBlockByHash'
301
- params: [
296
+ ReturnType: FeeHistory
297
+ },
298
+ /**
299
+ * @description Returns the current price of gas expressed in wei
300
+ *
301
+ * @example
302
+ * provider.request({ method: 'eth_gasPrice' })
303
+ * // => '0x09184e72a000'
304
+ */
305
+ {
306
+ Method: 'eth_gasPrice'
307
+ Parameters?: never
308
+ ReturnType: Quantity
309
+ },
310
+ /**
311
+ * @description Returns the balance of an address in wei
312
+ *
313
+ * @example
314
+ * provider.request({ method: 'eth_getBalance', params: ['0x...', 'latest'] })
315
+ * // => '0x12a05...'
316
+ */
317
+ {
318
+ Method: 'eth_getBalance'
319
+ Parameters: [
320
+ address: Address,
321
+ block: BlockNumber | BlockTag | BlockIdentifier,
322
+ ]
323
+ ReturnType: Quantity
324
+ },
325
+ /**
326
+ * @description Returns information about a block specified by hash
327
+ * @link https://eips.ethereum.org/EIPS/eip-1474
328
+ * @example
329
+ * provider.request({ method: 'eth_getBlockByHash', params: ['0x...', true] })
330
+ * // => {
331
+ * // number: '0x1b4',
332
+ * // hash: '0x...',
333
+ * // parentHash: '0x...',
334
+ * // ...
335
+ * // }
336
+ */
337
+ {
338
+ Method: 'eth_getBlockByHash'
339
+ Parameters: [
302
340
  /** hash of a block */
303
341
  hash: Hash,
304
342
  /** true will pull full transaction objects, false will pull transaction hashes */
305
343
  includeTransactionObjects: boolean,
306
344
  ]
307
- }): Promise<Block | null>
308
- request(args: {
309
- /**
310
- * @description Returns information about a block specified by number
311
- * @link https://eips.ethereum.org/EIPS/eip-1474
312
- * @example
313
- * provider.request({ method: 'eth_getBlockByNumber', params: ['0x1b4', true] })
314
- * // => {
315
- * // number: '0x1b4',
316
- * // hash: '0x...',
317
- * // parentHash: '0x...',
318
- * // ...
319
- * // }
320
- * */
321
- method: 'eth_getBlockByNumber'
322
- params: [
345
+ ReturnType: Block | null
346
+ },
347
+ /**
348
+ * @description Returns information about a block specified by number
349
+ * @link https://eips.ethereum.org/EIPS/eip-1474
350
+ * @example
351
+ * provider.request({ method: 'eth_getBlockByNumber', params: ['0x1b4', true] })
352
+ * // => {
353
+ * // number: '0x1b4',
354
+ * // hash: '0x...',
355
+ * // parentHash: '0x...',
356
+ * // ...
357
+ * // }
358
+ */
359
+ {
360
+ Method: 'eth_getBlockByNumber'
361
+ Parameters: [
323
362
  /** block number, or one of "latest", "safe", "finalized", "earliest" or "pending" */
324
363
  block: BlockNumber | BlockTag,
325
364
  /** true will pull full transaction objects, false will pull transaction hashes */
326
365
  includeTransactionObjects: boolean,
327
366
  ]
328
- }): Promise<Block | null>
329
- request(args: {
330
- /**
331
- * @description Returns the number of transactions in a block specified by block hash
332
- * @link https://eips.ethereum.org/EIPS/eip-1474
333
- * @example
334
- * provider.request({ method: 'eth_getBlockTransactionCountByHash', params: ['0x...'] })
335
- * // => '0x1'
336
- * */
337
- method: 'eth_getBlockTransactionCountByHash'
338
- params: [hash: Hash]
339
- }): Promise<Quantity>
340
- request(args: {
341
- /**
342
- * @description Returns the number of transactions in a block specified by block number
343
- * @link https://eips.ethereum.org/EIPS/eip-1474
344
- * @example
345
- * provider.request({ method: 'eth_getBlockTransactionCountByNumber', params: ['0x1b4'] })
346
- * // => '0x1'
347
- * */
348
- method: 'eth_getBlockTransactionCountByNumber'
349
- params: [block: BlockNumber | BlockTag]
350
- }): Promise<Quantity>
351
- request(args: {
352
- /**
353
- * @description Returns the contract code stored at a given address
354
- * @link https://eips.ethereum.org/EIPS/eip-1474
355
- * @example
356
- * provider.request({ method: 'eth_getCode', params: ['0x...', 'latest'] })
357
- * // => '0x...'
358
- * */
359
- method: 'eth_getCode'
360
- params: [address: Address, block: BlockNumber | BlockTag | BlockIdentifier]
361
- }): Promise<Hex>
362
- request(args: {
363
- /**
364
- * @description Returns a list of all logs based on filter ID since the last log retrieval
365
- * @link https://eips.ethereum.org/EIPS/eip-1474
366
- * @example
367
- * provider.request({ method: 'eth_getFilterChanges', params: ['0x...'] })
368
- * // => [{ ... }, { ... }]
369
- * */
370
- method: 'eth_getFilterChanges'
371
- params: [filterId: Quantity]
372
- }): Promise<Log[] | Hex[]>
373
- request(args: {
374
- /**
375
- * @description Returns a list of all logs based on filter ID
376
- * @link https://eips.ethereum.org/EIPS/eip-1474
377
- * @example
378
- * provider.request({ method: 'eth_getFilterLogs', params: ['0x...'] })
379
- * // => [{ ... }, { ... }]
380
- * */
381
- method: 'eth_getFilterLogs'
382
- params: [filterId: Quantity]
383
- }): Promise<Log[]>
384
- request(args: {
385
- /**
386
- * @description Returns a list of all logs based on a filter object
387
- * @link https://eips.ethereum.org/EIPS/eip-1474
388
- * @example
389
- * provider.request({ method: 'eth_getLogs', params: [{ fromBlock: '0x...', toBlock: '0x...', address: '0x...', topics: ['0x...'] }] })
390
- * // => [{ ... }, { ... }]
391
- * */
392
- method: 'eth_getLogs'
393
- params: [
394
- parameters: {
367
+ ReturnType: Block | null
368
+ },
369
+ /**
370
+ * @description Returns the number of transactions in a block specified by block hash
371
+ * @link https://eips.ethereum.org/EIPS/eip-1474
372
+ * @example
373
+ * provider.request({ method: 'eth_getBlockTransactionCountByHash', params: ['0x...'] })
374
+ * // => '0x1'
375
+ */
376
+ {
377
+ Method: 'eth_getBlockTransactionCountByHash'
378
+ Parameters: [hash: Hash]
379
+ ReturnType: Quantity
380
+ },
381
+ /**
382
+ * @description Returns the number of transactions in a block specified by block number
383
+ * @link https://eips.ethereum.org/EIPS/eip-1474
384
+ * @example
385
+ * provider.request({ method: 'eth_getBlockTransactionCountByNumber', params: ['0x1b4'] })
386
+ * // => '0x1'
387
+ */
388
+ {
389
+ Method: 'eth_getBlockTransactionCountByNumber'
390
+ Parameters: [block: BlockNumber | BlockTag]
391
+ ReturnType: Quantity
392
+ },
393
+ /**
394
+ * @description Returns the contract code stored at a given address
395
+ * @link https://eips.ethereum.org/EIPS/eip-1474
396
+ * @example
397
+ * provider.request({ method: 'eth_getCode', params: ['0x...', 'latest'] })
398
+ * // => '0x...'
399
+ */
400
+ {
401
+ Method: 'eth_getCode'
402
+ Parameters: [
403
+ address: Address,
404
+ block: BlockNumber | BlockTag | BlockIdentifier,
405
+ ]
406
+ ReturnType: Hex
407
+ },
408
+ /**
409
+ * @description Returns a list of all logs based on filter ID since the last log retrieval
410
+ * @link https://eips.ethereum.org/EIPS/eip-1474
411
+ * @example
412
+ * provider.request({ method: 'eth_getFilterChanges', params: ['0x...'] })
413
+ * // => [{ ... }, { ... }]
414
+ */
415
+ {
416
+ Method: 'eth_getFilterChanges'
417
+ Parameters: [filterId: Quantity]
418
+ ReturnType: Log[] | Hex[]
419
+ },
420
+ /**
421
+ * @description Returns a list of all logs based on filter ID
422
+ * @link https://eips.ethereum.org/EIPS/eip-1474
423
+ * @example
424
+ * provider.request({ method: 'eth_getFilterLogs', params: ['0x...'] })
425
+ * // => [{ ... }, { ... }]
426
+ */
427
+ {
428
+ Method: 'eth_getFilterLogs'
429
+ Parameters: [filterId: Quantity]
430
+ ReturnType: Log[]
431
+ },
432
+ /**
433
+ * @description Returns a list of all logs based on a filter object
434
+ * @link https://eips.ethereum.org/EIPS/eip-1474
435
+ * @example
436
+ * provider.request({ method: 'eth_getLogs', params: [{ fromBlock: '0x...', toBlock: '0x...', address: '0x...', topics: ['0x...'] }] })
437
+ * // => [{ ... }, { ... }]
438
+ */
439
+ {
440
+ Method: 'eth_getLogs'
441
+ Parameters: [
442
+ {
395
443
  address?: Address | Address[]
396
444
  topics?: LogTopic[]
397
445
  } & (
@@ -407,142 +455,157 @@ export type PublicRequests = {
407
455
  }
408
456
  ),
409
457
  ]
410
- }): Promise<Log[]>
411
- request(args: {
412
- /**
413
- * @description Returns the value from a storage position at an address
414
- * @link https://eips.ethereum.org/EIPS/eip-1474
415
- * @example
416
- * provider.request({ method: 'eth_getStorageAt', params: ['0x...', '0x...', 'latest'] })
417
- * // => '0x...'
418
- * */
419
- method: 'eth_getStorageAt'
420
- params: [
458
+ ReturnType: Log[]
459
+ },
460
+ /**
461
+ * @description Returns the value from a storage position at an address
462
+ * @link https://eips.ethereum.org/EIPS/eip-1474
463
+ * @example
464
+ * provider.request({ method: 'eth_getStorageAt', params: ['0x...', '0x...', 'latest'] })
465
+ * // => '0x...'
466
+ */
467
+ {
468
+ Method: 'eth_getStorageAt'
469
+ Parameters: [
421
470
  address: Address,
422
471
  index: Quantity,
423
472
  block: BlockNumber | BlockTag | BlockIdentifier,
424
473
  ]
425
- }): Promise<Hex>
426
- request(args: {
427
- /**
428
- * @description Returns information about a transaction specified by block hash and transaction index
429
- * @link https://eips.ethereum.org/EIPS/eip-1474
430
- * @example
431
- * provider.request({ method: 'eth_getTransactionByBlockHashAndIndex', params: ['0x...', '0x...'] })
432
- * // => { ... }
433
- * */
434
- method: 'eth_getTransactionByBlockHashAndIndex'
435
- params: [hash: Hash, index: Quantity]
436
- }): Promise<Transaction | null>
437
- request(args: {
438
- /**
439
- * @description Returns information about a transaction specified by block number and transaction index
440
- * @link https://eips.ethereum.org/EIPS/eip-1474
441
- * @example
442
- * provider.request({ method: 'eth_getTransactionByBlockNumberAndIndex', params: ['0x...', '0x...'] })
443
- * // => { ... }
444
- * */
445
- method: 'eth_getTransactionByBlockNumberAndIndex'
446
- params: [block: BlockNumber | BlockTag, index: Quantity]
447
- }): Promise<Transaction | null>
448
- request(args: {
449
- /**
450
- * @description Returns information about a transaction specified by hash
451
- * @link https://eips.ethereum.org/EIPS/eip-1474
452
- * @example
453
- * provider.request({ method: 'eth_getTransactionByHash', params: ['0x...'] })
454
- * // => { ... }
455
- * */
456
- method: 'eth_getTransactionByHash'
457
- params: [hash: Hash]
458
- }): Promise<Transaction | null>
459
- request(args: {
460
- /**
461
- * @description Returns the number of transactions sent from an address
462
- * @link https://eips.ethereum.org/EIPS/eip-1474
463
- * @example
464
- * provider.request({ method: 'eth_getTransactionCount', params: ['0x...', 'latest'] })
465
- * // => '0x1'
466
- * */
467
- method: 'eth_getTransactionCount'
468
- params: [address: Address, block: BlockNumber | BlockTag | BlockIdentifier]
469
- }): Promise<Quantity>
470
- request(args: {
471
- /**
472
- * @description Returns the receipt of a transaction specified by hash
473
- * @link https://eips.ethereum.org/EIPS/eip-1474
474
- * @example
475
- * provider.request({ method: 'eth_getTransactionReceipt', params: ['0x...'] })
476
- * // => { ... }
477
- * */
478
- method: 'eth_getTransactionReceipt'
479
- params: [hash: Hash]
480
- }): Promise<TransactionReceipt | null>
481
- request(args: {
482
- /**
483
- * @description Returns information about an uncle specified by block hash and uncle index position
484
- * @link https://eips.ethereum.org/EIPS/eip-1474
485
- * @example
486
- * provider.request({ method: 'eth_getUncleByBlockHashAndIndex', params: ['0x...', '0x...'] })
487
- * // => { ... }
488
- * */
489
- method: 'eth_getUncleByBlockHashAndIndex'
490
- params: [hash: Hash, index: Quantity]
491
- }): Promise<Uncle | null>
492
- request(args: {
493
- /**
494
- * @description Returns information about an uncle specified by block number and uncle index position
495
- * @link https://eips.ethereum.org/EIPS/eip-1474
496
- * @example
497
- * provider.request({ method: 'eth_getUncleByBlockNumberAndIndex', params: ['0x...', '0x...'] })
498
- * // => { ... }
499
- * */
500
- method: 'eth_getUncleByBlockNumberAndIndex'
501
- params: [block: BlockNumber | BlockTag, index: Quantity]
502
- }): Promise<Uncle | null>
503
- request(args: {
504
- /**
505
- * @description Returns the number of uncles in a block specified by block hash
506
- * @link https://eips.ethereum.org/EIPS/eip-1474
507
- * @example
508
- * provider.request({ method: 'eth_getUncleCountByBlockHash', params: ['0x...'] })
509
- * // => '0x1'
510
- * */
511
- method: 'eth_getUncleCountByBlockHash'
512
- params: [hash: Hash]
513
- }): Promise<Quantity>
514
- request(args: {
515
- /**
516
- * @description Returns the number of uncles in a block specified by block number
517
- * @link https://eips.ethereum.org/EIPS/eip-1474
518
- * @example
519
- * provider.request({ method: 'eth_getUncleCountByBlockNumber', params: ['0x...'] })
520
- * // => '0x1'
521
- * */
522
- method: 'eth_getUncleCountByBlockNumber'
523
- params: [block: BlockNumber | BlockTag]
524
- }): Promise<Quantity>
525
- request(args: {
526
- /**
527
- * @description Creates a filter to listen for new blocks that can be used with `eth_getFilterChanges`
528
- * @link https://eips.ethereum.org/EIPS/eip-1474
529
- * @example
530
- * provider.request({ method: 'eth_newBlockFilter' })
531
- * // => '0x1'
532
- * */
533
- method: 'eth_newBlockFilter'
534
- params?: never
535
- }): Promise<Quantity>
536
- request(args: {
537
- /**
538
- * @description Creates a filter to listen for specific state changes that can then be used with `eth_getFilterChanges`
539
- * @link https://eips.ethereum.org/EIPS/eip-1474
540
- * @example
541
- * provider.request({ method: 'eth_newFilter', params: [{ fromBlock: '0x...', toBlock: '0x...', address: '0x...', topics: ['0x...'] }] })
542
- * // => '0x1'
543
- * */
544
- method: 'eth_newFilter'
545
- params: [
474
+ ReturnType: Hex
475
+ },
476
+ /**
477
+ * @description Returns information about a transaction specified by block hash and transaction index
478
+ * @link https://eips.ethereum.org/EIPS/eip-1474
479
+ * @example
480
+ * provider.request({ method: 'eth_getTransactionByBlockHashAndIndex', params: ['0x...', '0x...'] })
481
+ * // => { ... }
482
+ */
483
+ {
484
+ Method: 'eth_getTransactionByBlockHashAndIndex'
485
+ Parameters: [hash: Hash, index: Quantity]
486
+ ReturnType: Transaction | null
487
+ },
488
+ /**
489
+ * @description Returns information about a transaction specified by block number and transaction index
490
+ * @link https://eips.ethereum.org/EIPS/eip-1474
491
+ * @example
492
+ * provider.request({ method: 'eth_getTransactionByBlockNumberAndIndex', params: ['0x...', '0x...'] })
493
+ * // => { ... }
494
+ */
495
+ {
496
+ Method: 'eth_getTransactionByBlockNumberAndIndex'
497
+ Parameters: [block: BlockNumber | BlockTag, index: Quantity]
498
+ ReturnType: Transaction | null
499
+ },
500
+ /**
501
+ * @description Returns information about a transaction specified by hash
502
+ * @link https://eips.ethereum.org/EIPS/eip-1474
503
+ * @example
504
+ * provider.request({ method: 'eth_getTransactionByHash', params: ['0x...'] })
505
+ * // => { ... }
506
+ */
507
+ {
508
+ Method: 'eth_getTransactionByHash'
509
+ Parameters: [hash: Hash]
510
+ ReturnType: Transaction | null
511
+ },
512
+ /**
513
+ * @description Returns the number of transactions sent from an address
514
+ * @link https://eips.ethereum.org/EIPS/eip-1474
515
+ * @example
516
+ * provider.request({ method: 'eth_getTransactionCount', params: ['0x...', 'latest'] })
517
+ * // => '0x1'
518
+ */
519
+ {
520
+ Method: 'eth_getTransactionCount'
521
+ Parameters: [
522
+ address: Address,
523
+ block: BlockNumber | BlockTag | BlockIdentifier,
524
+ ]
525
+ ReturnType: Quantity
526
+ },
527
+ /**
528
+ * @description Returns the receipt of a transaction specified by hash
529
+ * @link https://eips.ethereum.org/EIPS/eip-1474
530
+ * @example
531
+ * provider.request({ method: 'eth_getTransactionReceipt', params: ['0x...'] })
532
+ * // => { ... }
533
+ */
534
+ {
535
+ Method: 'eth_getTransactionReceipt'
536
+ Parameters: [hash: Hash]
537
+ ReturnType: TransactionReceipt | null
538
+ },
539
+ /**
540
+ * @description Returns information about an uncle specified by block hash and uncle index position
541
+ * @link https://eips.ethereum.org/EIPS/eip-1474
542
+ * @example
543
+ * provider.request({ method: 'eth_getUncleByBlockHashAndIndex', params: ['0x...', '0x...'] })
544
+ * // => { ... }
545
+ */
546
+ {
547
+ Method: 'eth_getUncleByBlockHashAndIndex'
548
+ Parameters: [hash: Hash, index: Quantity]
549
+ ReturnType: Uncle | null
550
+ },
551
+ /**
552
+ * @description Returns information about an uncle specified by block number and uncle index position
553
+ * @link https://eips.ethereum.org/EIPS/eip-1474
554
+ * @example
555
+ * provider.request({ method: 'eth_getUncleByBlockNumberAndIndex', params: ['0x...', '0x...'] })
556
+ * // => { ... }
557
+ */
558
+ {
559
+ Method: 'eth_getUncleByBlockNumberAndIndex'
560
+ Parameters: [block: BlockNumber | BlockTag, index: Quantity]
561
+ ReturnType: Uncle | null
562
+ },
563
+ /**
564
+ * @description Returns the number of uncles in a block specified by block hash
565
+ * @link https://eips.ethereum.org/EIPS/eip-1474
566
+ * @example
567
+ * provider.request({ method: 'eth_getUncleCountByBlockHash', params: ['0x...'] })
568
+ * // => '0x1'
569
+ */
570
+ {
571
+ Method: 'eth_getUncleCountByBlockHash'
572
+ Parameters: [hash: Hash]
573
+ ReturnType: Quantity
574
+ },
575
+ /**
576
+ * @description Returns the number of uncles in a block specified by block number
577
+ * @link https://eips.ethereum.org/EIPS/eip-1474
578
+ * @example
579
+ * provider.request({ method: 'eth_getUncleCountByBlockNumber', params: ['0x...'] })
580
+ * // => '0x1'
581
+ */
582
+ {
583
+ Method: 'eth_getUncleCountByBlockNumber'
584
+ Parameters: [block: BlockNumber | BlockTag]
585
+ ReturnType: Quantity
586
+ },
587
+ /**
588
+ * @description Creates a filter to listen for new blocks that can be used with `eth_getFilterChanges`
589
+ * @link https://eips.ethereum.org/EIPS/eip-1474
590
+ * @example
591
+ * provider.request({ method: 'eth_newBlockFilter' })
592
+ * // => '0x1'
593
+ */
594
+ {
595
+ Method: 'eth_newBlockFilter'
596
+ Parameters?: never
597
+ ReturnType: Quantity
598
+ },
599
+ /**
600
+ * @description Creates a filter to listen for specific state changes that can then be used with `eth_getFilterChanges`
601
+ * @link https://eips.ethereum.org/EIPS/eip-1474
602
+ * @example
603
+ * provider.request({ method: 'eth_newFilter', params: [{ fromBlock: '0x...', toBlock: '0x...', address: '0x...', topics: ['0x...'] }] })
604
+ * // => '0x1'
605
+ */
606
+ {
607
+ Method: 'eth_newFilter'
608
+ Parameters: [
546
609
  filter: {
547
610
  fromBlock?: BlockNumber | BlockTag
548
611
  toBlock?: BlockNumber | BlockTag
@@ -550,204 +613,222 @@ export type PublicRequests = {
550
613
  topics?: LogTopic[]
551
614
  },
552
615
  ]
553
- }): Promise<Quantity>
554
- request(args: {
555
- /**
556
- * @description Creates a filter to listen for new pending transactions that can be used with `eth_getFilterChanges`
557
- * @link https://eips.ethereum.org/EIPS/eip-1474
558
- * @example
559
- * provider.request({ method: 'eth_newPendingTransactionFilter' })
560
- * // => '0x1'
561
- * */
562
- method: 'eth_newPendingTransactionFilter'
563
- params?: never
564
- }): Promise<Quantity>
565
- request(args: {
566
- /**
567
- * @description Returns the current Ethereum protocol version
568
- * @link https://eips.ethereum.org/EIPS/eip-1474
569
- * @example
570
- * provider.request({ method: 'eth_protocolVersion' })
571
- * // => '54'
572
- * */
573
- method: 'eth_protocolVersion'
574
- params?: never
575
- }): Promise<string>
576
- request(args: {
577
- /**
578
- * @description Sends and already-signed transaction to the network
579
- * @link https://eips.ethereum.org/EIPS/eip-1474
580
- * @example
581
- * provider.request({ method: 'eth_sendRawTransaction', params: ['0x...'] })
582
- * // => '0x...'
583
- * */
584
- method: 'eth_sendRawTransaction'
585
- params: [signedTransaction: Hex]
586
- }): Promise<Hex>
587
- request(args: {
588
- /**
589
- * @description Destroys a filter based on filter ID
590
- * @link https://eips.ethereum.org/EIPS/eip-1474
591
- * @example
592
- * provider.request({ method: 'eth_uninstallFilter', params: ['0x1'] })
593
- * // => true
594
- * */
595
- method: 'eth_uninstallFilter'
596
- params: [
597
- /** ID of the filter to destroy */
598
- filterId: Quantity,
599
- ]
600
- }): Promise<boolean>
601
- }
616
+ ReturnType: Quantity
617
+ },
618
+ /**
619
+ * @description Creates a filter to listen for new pending transactions that can be used with `eth_getFilterChanges`
620
+ * @link https://eips.ethereum.org/EIPS/eip-1474
621
+ * @example
622
+ * provider.request({ method: 'eth_newPendingTransactionFilter' })
623
+ * // => '0x1'
624
+ */
625
+ {
626
+ Method: 'eth_newPendingTransactionFilter'
627
+ Parameters?: never
628
+ ReturnType: Quantity
629
+ },
630
+ /**
631
+ * @description Returns the current Ethereum protocol version
632
+ * @link https://eips.ethereum.org/EIPS/eip-1474
633
+ * @example
634
+ * provider.request({ method: 'eth_protocolVersion' })
635
+ * // => '54'
636
+ */
637
+ {
638
+ Method: 'eth_protocolVersion'
639
+ Parameters?: never
640
+ ReturnType: string
641
+ },
642
+ /**
643
+ * @description Sends and already-signed transaction to the network
644
+ * @link https://eips.ethereum.org/EIPS/eip-1474
645
+ * @example
646
+ * provider.request({ method: 'eth_sendRawTransaction', params: ['0x...'] })
647
+ * // => '0x...'
648
+ */
649
+ {
650
+ Method: 'eth_sendRawTransaction'
651
+ Parameters: [signedTransaction: Hex]
652
+ ReturnType: Hash
653
+ },
654
+ /**
655
+ * @description Destroys a filter based on filter ID
656
+ * @link https://eips.ethereum.org/EIPS/eip-1474
657
+ * @example
658
+ * provider.request({ method: 'eth_uninstallFilter', params: ['0x1'] })
659
+ * // => true
660
+ */
661
+ {
662
+ Method: 'eth_uninstallFilter'
663
+ Parameters: [filterId: Quantity]
664
+ ReturnType: boolean
665
+ },
666
+ ]
602
667
 
603
- export type TestRequests<Name extends string> = {
604
- request(args: {
605
- /**
606
- * @description Add information about compiled contracts
607
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult
608
- */
609
- method: `${Name}_addCompilationResult`
610
- params: any[]
611
- }): Promise<any>
612
- request(args: {
613
- /**
614
- * @description Remove a transaction from the mempool
615
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_droptransaction
616
- */
617
- method: `${Name}_dropTransaction`
618
- params: [hash: Hash]
619
- }): Promise<void>
620
- request(args: {
621
- /**
622
- * @description Turn on call traces for transactions that are returned to the user when they execute a transaction (instead of just txhash/receipt).
623
- */
624
- method: `${Name}_enableTraces`
625
- params?: never
626
- }): Promise<void>
627
- request(args: {
628
- /**
629
- * @description Impersonate an account or contract address.
630
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_impersonateaccount
631
- */
632
- method: `${Name}_impersonateAccount`
633
- params: [address: Address]
634
- }): Promise<void>
635
- request(args: {
636
- /**
637
- * @description Returns true if automatic mining is enabled, and false otherwise. See [Mining Modes](https://hardhat.org/hardhat-network/explanation/mining-modes) to learn more.
638
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_getautomine
639
- */
640
- method: `${Name}_getAutomine`
641
- }): Promise<boolean>
642
- request(args: {
643
- /**
644
- * @description Advance the block number of the network by a certain number of blocks
645
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_mine
646
- */
647
- method: `${Name}_mine`
648
- params: [
668
+ export type TestRpcSchema<TMode extends string> = [
669
+ /**
670
+ * @description Add information about compiled contracts
671
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult
672
+ */
673
+ {
674
+ Method: `${TMode}_addCompilationResult`
675
+ Parameters: any[]
676
+ ReturnType: any
677
+ },
678
+ /**
679
+ * @description Remove a transaction from the mempool
680
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_droptransaction
681
+ */
682
+ {
683
+ Method: `${TMode}_dropTransaction`
684
+ Parameters: [hash: Hash]
685
+ ReturnType: void
686
+ },
687
+ /**
688
+ * @description Turn on call traces for transactions that are returned to the user when they execute a transaction (instead of just txhash/receipt).
689
+ */
690
+ {
691
+ Method: `${TMode}_enableTraces`
692
+ Parameters?: never
693
+ ReturnType: void
694
+ },
695
+ /**
696
+ * @description Impersonate an account or contract address.
697
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_impersonateaccount
698
+ */
699
+ {
700
+ Method: `${TMode}_impersonateAccount`
701
+ Parameters: [address: Address]
702
+ ReturnType: void
703
+ },
704
+ /**
705
+ * @description Returns true if automatic mining is enabled, and false otherwise. See [Mining Modes](https://hardhat.org/hardhat-network/explanation/mining-modes) to learn more.
706
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_getautomine
707
+ */
708
+ {
709
+ Method: `${TMode}_getAutomine`
710
+ Parameters?: never
711
+ ReturnType: boolean
712
+ },
713
+ /**
714
+ * @description Advance the block number of the network by a certain number of blocks
715
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_mine
716
+ */
717
+ {
718
+ Method: `${TMode}_mine`
719
+ Parameters: [
649
720
  /** Number of blocks to mine. */
650
721
  count: Hex,
651
722
  /** Interval between each block in seconds. */
652
723
  interval: Hex | undefined,
653
724
  ]
654
- }): Promise<void>
655
- request(args: {
656
- /**
657
- * @description Resets the fork.
658
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_reset
659
- */
660
- method: `${Name}_reset`
661
- params: any[]
662
- }): Promise<void>
663
- request(args: {
664
- /**
665
- * @description Modifies the balance of an account.
666
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setbalance
667
- */
668
- method: `${Name}_setBalance`
669
- params: [
725
+ ReturnType: void
726
+ },
727
+ /**
728
+ * @description Resets the fork.
729
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_reset
730
+ */
731
+ {
732
+ Method: `${TMode}_reset`
733
+ Parameters: any[]
734
+ ReturnType: void
735
+ },
736
+ /**
737
+ * @description Modifies the balance of an account.
738
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setbalance
739
+ */
740
+ {
741
+ Method: `${TMode}_setBalance`
742
+ Parameters: [
670
743
  /** The address of the target account. */
671
744
  address: Address,
672
745
  /** Amount to send in wei. */
673
- value: Quantity,
746
+ balance: Quantity,
674
747
  ]
675
- }): Promise<void>
676
- request(args: {
677
- /**
678
- * @description Modifies the bytecode stored at an account's address.
679
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcode
680
- */
681
- method: `${Name}_setCode`
682
- params: [
748
+ ReturnType: void
749
+ },
750
+ /**
751
+ * @description Modifies the bytecode stored at an account's address.
752
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcode
753
+ */
754
+ {
755
+ Method: `${TMode}_setCode`
756
+ Parameters: [
683
757
  /** The address of the contract. */
684
758
  address: Address,
685
759
  /** Data bytecode. */
686
760
  data: string,
687
761
  ]
688
- }): Promise<void>
689
- request(args: {
690
- /**
691
- * @description Sets the coinbase address to be used in new blocks.
692
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcoinbase
693
- */
694
- method: `${Name}_setCoinbase`
695
- params: [
762
+ ReturnType: void
763
+ },
764
+ /**
765
+ * @description Sets the coinbase address to be used in new blocks.
766
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcoinbase
767
+ */
768
+ {
769
+ Method: `${TMode}_setCoinbase`
770
+ Parameters: [
696
771
  /** The address to set as the coinbase address. */
697
772
  address: Address,
698
773
  ]
699
- }): Promise<void>
700
- request(args: {
701
- /**
702
- * @description Enable or disable logging on the test node network.
703
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcoinbase
704
- */
705
- method: `${Name}_setLoggingEnabled`
706
- params: [enabled: boolean]
707
- }): Promise<void>
708
- request(args: {
709
- /**
710
- * @description Change the minimum gas price accepted by the network (in wei).
711
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setmingasprice
712
- */
713
- method: `${Name}_setMinGasPrice`
714
- params: [gasPrice: Quantity]
715
- }): Promise<void>
716
- request(args: {
717
- /**
718
- * @description Sets the base fee of the next block.
719
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setnextblockbasefeepergas
720
- */
721
- method: `${Name}_setNextBlockBaseFeePerGas`
722
- params: [baseFeePerGas: Quantity]
723
- }): Promise<void>
724
- request(args: {
725
- /**
726
- * @description Modifies an account's nonce by overwriting it.
727
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setnonce
728
- */
729
- method: `${Name}_setNonce`
730
- params: [
774
+ ReturnType: void
775
+ },
776
+ /**
777
+ * @description Enable or disable logging on the test node network.
778
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcoinbase
779
+ */
780
+ {
781
+ Method: `${TMode}_setLoggingEnabled`
782
+ Parameters: [enabled: boolean]
783
+ ReturnType: void
784
+ },
785
+ /**
786
+ * @description Change the minimum gas price accepted by the network (in wei).
787
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setmingasprice
788
+ */
789
+ {
790
+ Method: `${TMode}_setMinGasPrice`
791
+ Parameters: [gasPrice: Quantity]
792
+ ReturnType: void
793
+ },
794
+ /**
795
+ * @description Sets the base fee of the next block.
796
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setnextblockbasefeepergas
797
+ */
798
+ {
799
+ Method: `${TMode}_setNextBlockBaseFeePerGas`
800
+ Parameters: [baseFeePerGas: Quantity]
801
+ ReturnType: void
802
+ },
803
+ /**
804
+ * @description Modifies an account's nonce by overwriting it.
805
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setnonce
806
+ */
807
+ {
808
+ Method: `${TMode}_setNonce`
809
+ Parameters: [
731
810
  /** The account address. */
732
811
  address: Address,
733
812
  /** The new nonce. */
734
813
  nonce: Quantity,
735
814
  ]
736
- }): Promise<void>
737
- request(args: {
738
- /**
739
- * @description Sets the backend RPC URL.
740
- */
741
- method: `${Name}_setRpcUrl`
742
- params: [url: string]
743
- }): Promise<void>
744
- request(args: {
745
- /**
746
- * @description Writes a single position of an account's storage.
747
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setstorageat
748
- */
749
- method: `${Name}_setStorageAt`
750
- params: [
815
+ ReturnType: void
816
+ },
817
+ /**
818
+ * @description Sets the backend RPC URL.
819
+ */
820
+ {
821
+ Method: `${TMode}_setRpcUrl`
822
+ Parameters: [url: string]
823
+ ReturnType: void
824
+ },
825
+ /**
826
+ * @description Writes a single position of an account's storage.
827
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setstorageat
828
+ */
829
+ {
830
+ Method: `${TMode}_setStorageAt`
831
+ Parameters: [
751
832
  /** The account address. */
752
833
  address: Address,
753
834
  /** The storage position index. */
@@ -755,302 +836,482 @@ export type TestRequests<Name extends string> = {
755
836
  /** The storage value. */
756
837
  value: Quantity,
757
838
  ]
758
- }): Promise<void>
759
- request(args: {
760
- /**
761
- * @description Use this method to stop impersonating an account after having previously used impersonateAccount.
762
- * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_stopimpersonatingaccount
763
- */
764
- method: `${Name}_stopImpersonatingAccount`
765
- params: [
839
+ ReturnType: void
840
+ },
841
+ /**
842
+ * @description Use this method to stop impersonating an account after having previously used impersonateAccount.
843
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_stopimpersonatingaccount
844
+ */
845
+ {
846
+ Method: `${TMode}_stopImpersonatingAccount`
847
+ Parameters: [
766
848
  /** The address to stop impersonating. */
767
849
  address: Address,
768
850
  ]
769
- }): Promise<void>
770
- request(args: {
771
- /**
772
- * @description Jump forward in time by the given amount of time, in seconds.
773
- * @link https://github.com/trufflesuite/ganache/blob/ef1858d5d6f27e4baeb75cccd57fb3dc77a45ae8/src/chains/ethereum/ethereum/RPC-METHODS.md#evm_increasetime
774
- */
775
- method: 'evm_increaseTime'
776
- params: [seconds: Quantity]
777
- }): Promise<Quantity>
778
- request(args: {
779
- /**
780
- * @description Enables or disables, based on the single boolean argument, the automatic mining of new blocks with each new transaction submitted to the network.
781
- * @link https://hardhat.org/hardhat-network/docs/reference#evm_setautomine
782
- */
783
- method: 'evm_setAutomine'
784
- params: [boolean]
785
- }): Promise<void>
786
- request(args: {
787
- /**
788
- * @description Sets the block's gas limit.
789
- * @link https://hardhat.org/hardhat-network/docs/reference#evm_setblockgaslimit
790
- */
791
- method: 'evm_setBlockGasLimit'
792
- params: [gasLimit: Quantity]
793
- }): Promise<void>
794
- request(args: {
795
- /**
796
- * @description Similar to `evm_increaseTime` but sets a block timestamp `interval`.
797
- * The timestamp of the next block will be computed as `lastBlock_timestamp` + `interval`
798
- */
799
- method: `${Name}_setBlockTimestampInterval`
800
- params: [seconds: number]
801
- }): Promise<void>
802
- request(args: {
803
- /**
804
- * @description Removes `setBlockTimestampInterval` if it exists
805
- */
806
- method: `${Name}_removeBlockTimestampInterval`
807
- }): Promise<void>
808
- request(args: {
809
- /**
810
- * @description Enables (with a numeric argument greater than 0) or disables (with a numeric argument equal to 0), the automatic mining of blocks at a regular interval of milliseconds, each of which will include all pending transactions.
811
- * @link https://hardhat.org/hardhat-network/docs/reference#evm_setintervalmining
812
- */
813
- method: 'evm_setIntervalMining'
814
- params: [number]
815
- }): Promise<void>
816
- request(args: {
817
- /**
818
- * @description Set the timestamp of the next block.
819
- * @link https://hardhat.org/hardhat-network/docs/reference#evm_setnextblocktimestamp
820
- */
821
- method: 'evm_setNextBlockTimestamp'
822
- params: [Quantity]
823
- }): Promise<void>
824
- request(args: {
825
- /**
826
- * @description Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the id of the snapshot that was created.
827
- * @link https://hardhat.org/hardhat-network/docs/reference#evm_snapshot
828
- */
829
- method: 'evm_snapshot'
830
- params?: never
831
- }): Promise<Quantity>
832
- request(args: {
833
- /**
834
- * @description Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to.
835
- */
836
- method: 'evm_revert'
837
- params?: [id: Quantity]
838
- }): Promise<void>
839
- request(args: {
840
- /**
841
- * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-content
842
- */
843
- method: 'txpool_content'
844
- params?: never
845
- }): Promise<{
846
- pending: Record<Address, Record<string, Transaction>>
847
- queued: Record<Address, Record<string, Transaction>>
848
- }>
849
- request(args: {
850
- /**
851
- * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-inspect
852
- */
853
- method: 'txpool_inspect'
854
- params?: never
855
- }): Promise<{
856
- pending: Record<Address, Record<string, string>>
857
- queued: Record<Address, Record<string, string>>
858
- }>
859
- request(args: {
860
- /**
861
- * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-inspect
862
- */
863
- method: 'txpool_status'
864
- params?: never
865
- }): Promise<{
866
- pending: Quantity
867
- queued: Quantity
868
- }>
869
- request(args: {
870
- /**
871
- * @description Creates, signs, and sends a new transaction to the network regardless of the signature.
872
- * @link https://eips.ethereum.org/EIPS/eip-1474
873
- * @example
874
- * provider.request({ method: 'eth_sendTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
875
- * // => '0x...'
876
- * */
877
- method: 'eth_sendUnsignedTransaction'
878
- params: [request: TransactionRequest]
879
- }): Promise<Hash>
880
- }
851
+ ReturnType: void
852
+ },
853
+ /**
854
+ * @description Jump forward in time by the given amount of time, in seconds.
855
+ * @link https://github.com/trufflesuite/ganache/blob/ef1858d5d6f27e4baeb75cccd57fb3dc77a45ae8/src/chains/ethereum/ethereum/RPC-METHODS.md#evm_increasetime
856
+ */
857
+ {
858
+ Method: `${TMode}_increaseTime`
859
+ Parameters: [seconds: number]
860
+ ReturnType: Quantity
861
+ },
862
+ /**
863
+ * @description Modifies the balance of an account.
864
+ * @link https://ganache.dev/#evm_setAccountBalance
865
+ */
866
+ {
867
+ Method: `evm_setAccountBalance`
868
+ Parameters: [
869
+ /** The address of the target account. */
870
+ address: Address,
871
+ /** Amount to send in wei. */
872
+ value: Quantity,
873
+ ]
874
+ ReturnType: void
875
+ },
876
+ /**
877
+ * @description Enables or disables, based on the single boolean argument, the automatic mining of new blocks with each new transaction submitted to the network.
878
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setautomine
879
+ */
880
+ {
881
+ Method: `evm_setAutomine`
882
+ Parameters: [boolean]
883
+ ReturnType: void
884
+ },
885
+ /**
886
+ * @description Sets the block's gas limit.
887
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setblockgaslimit
888
+ */
889
+ {
890
+ Method: 'evm_setBlockGasLimit'
891
+ Parameters: [gasLimit: Quantity]
892
+ ReturnType: void
893
+ },
894
+ /**
895
+ * @description Jump forward in time by the given amount of time, in seconds.
896
+ * @link https://github.com/trufflesuite/ganache/blob/ef1858d5d6f27e4baeb75cccd57fb3dc77a45ae8/src/chains/ethereum/ethereum/RPC-METHODS.md#evm_increasetime
897
+ */
898
+ {
899
+ Method: `evm_increaseTime`
900
+ Parameters: [seconds: Quantity]
901
+ ReturnType: Quantity
902
+ },
903
+ /**
904
+ * @description Similar to `evm_increaseTime` but sets a block timestamp `interval`.
905
+ * The timestamp of the next block will be computed as `lastBlock_timestamp` + `interval`
906
+ */
907
+ {
908
+ Method: `${TMode}_setBlockTimestampInterval`
909
+ Parameters: [seconds: number]
910
+ ReturnType: void
911
+ },
912
+ /**
913
+ * @description Removes `setBlockTimestampInterval` if it exists
914
+ */
915
+ {
916
+ Method: `${TMode}_removeBlockTimestampInterval`
917
+ Parameters?: never
918
+ ReturnType: void
919
+ },
920
+ /**
921
+ * @description Enables (with a numeric argument greater than 0) or disables (with a numeric argument equal to 0), the automatic mining of blocks at a regular interval of milliseconds, each of which will include all pending transactions.
922
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setintervalmining
923
+ */
924
+ {
925
+ Method: 'evm_setIntervalMining'
926
+ Parameters: [number]
927
+ ReturnType: void
928
+ },
929
+ /**
930
+ * @description Set the timestamp of the next block.
931
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setnextblocktimestamp
932
+ */
933
+ {
934
+ Method: 'evm_setNextBlockTimestamp'
935
+ Parameters: [Quantity]
936
+ ReturnType: void
937
+ },
938
+ /**
939
+ * @description Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the id of the snapshot that was created.
940
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_snapshot
941
+ */
942
+ {
943
+ Method: 'evm_snapshot'
944
+ Parameters?: never
945
+ ReturnType: Quantity
946
+ },
947
+ /**
948
+ * @description Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to.
949
+ */
950
+ {
951
+ Method: 'evm_revert'
952
+ Parameters?: [id: Quantity]
953
+ ReturnType: void
954
+ },
955
+ /**
956
+ * @description Enables the automatic mining of new blocks with each new transaction submitted to the network.
957
+ * @link https://ganache.dev/#miner_start
958
+ */
959
+ {
960
+ Method: 'miner_start'
961
+ Parameters?: never
962
+ ReturnType: void
963
+ },
964
+ /**
965
+ * @description Disables the automatic mining of new blocks with each new transaction submitted to the network.
966
+ * @link https://ganache.dev/#miner_stop
967
+ */
968
+ {
969
+ Method: 'miner_stop'
970
+ Parameters?: never
971
+ ReturnType: void
972
+ },
973
+ /**
974
+ * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-content
975
+ */
976
+ {
977
+ Method: 'txpool_content'
978
+ Parameters?: never
979
+ ReturnType: {
980
+ pending: Record<Address, Record<string, Transaction>>
981
+ queued: Record<Address, Record<string, Transaction>>
982
+ }
983
+ },
984
+ /**
985
+ * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-inspect
986
+ */
987
+ {
988
+ Method: 'txpool_inspect'
989
+ Parameters?: never
990
+ ReturnType: {
991
+ pending: Record<Address, Record<string, string>>
992
+ queued: Record<Address, Record<string, string>>
993
+ }
994
+ },
995
+ /**
996
+ * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-inspect
997
+ */
998
+ {
999
+ Method: 'txpool_status'
1000
+ Parameters?: never
1001
+ ReturnType: {
1002
+ pending: Quantity
1003
+ queued: Quantity
1004
+ }
1005
+ },
1006
+ /**
1007
+ * @description Returns whether the client is actively mining new blocks.
1008
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1009
+ * @example
1010
+ * provider.request({ method: 'eth_mining' })
1011
+ * // => true
1012
+ */
1013
+ {
1014
+ Method: 'eth_mining'
1015
+ Parameters?: never
1016
+ ReturnType: boolean
1017
+ },
1018
+ /**
1019
+ * @description Advance the block number of the network by a certain number of blocks.
1020
+ * @link https://ganache.dev/#evm_mine
1021
+ */
1022
+ {
1023
+ Method: 'evm_mine'
1024
+ Parameters?: [
1025
+ {
1026
+ /** Number of blocks to mine. */
1027
+ blocks: Hex
1028
+ },
1029
+ ]
1030
+ ReturnType: void
1031
+ },
1032
+ /**
1033
+ * @description Creates, signs, and sends a new transaction to the network regardless of the signature.
1034
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1035
+ * @example
1036
+ * provider.request({ method: 'eth_sendTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
1037
+ * // => '0x...'
1038
+ */
1039
+ {
1040
+ Method: 'eth_sendUnsignedTransaction'
1041
+ Parameters: [transaction: TransactionRequest]
1042
+ ReturnType: Hash
1043
+ },
1044
+ ]
881
1045
 
882
- export type SignableRequests = {
883
- request(args: {
884
- /**
885
- * @description Creates, signs, and sends a new transaction to the network
886
- * @link https://eips.ethereum.org/EIPS/eip-1474
887
- * @example
888
- * provider.request({ method: 'eth_sendTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
889
- * // => '0x...'
890
- * */
891
- method: 'eth_sendTransaction'
892
- params: [request: TransactionRequest]
893
- }): Promise<Hash>
894
- request(args: {
895
- /**
896
- * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
897
- * @link https://eips.ethereum.org/EIPS/eip-1474
898
- * @example
899
- * provider.request({ method: 'eth_sign', params: ['0x...', '0x...'] })
900
- * // => '0x...'
901
- * */
902
- method: 'eth_sign'
903
- params: [
1046
+ export type WalletRpcSchema = [
1047
+ /**
1048
+ * @description Returns a list of addresses owned by this client
1049
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1050
+ * @example
1051
+ * provider.request({ method: 'eth_accounts' })
1052
+ * // => ['0x0fB69...']
1053
+ */
1054
+ {
1055
+ Method: 'eth_accounts'
1056
+ Parameters?: never
1057
+ ReturnType: Address[]
1058
+ },
1059
+ /**
1060
+ * @description Returns the current chain ID associated with the wallet.
1061
+ * @example
1062
+ * provider.request({ method: 'eth_chainId' })
1063
+ * // => '1'
1064
+ */
1065
+ {
1066
+ Method: 'eth_chainId'
1067
+ Parameters?: never
1068
+ ReturnType: Quantity
1069
+ },
1070
+ /**
1071
+ * @description Estimates the gas necessary to complete a transaction without submitting it to the network
1072
+ *
1073
+ * @example
1074
+ * provider.request({
1075
+ * method: 'eth_estimateGas',
1076
+ * params: [{ from: '0x...', to: '0x...', value: '0x...' }]
1077
+ * })
1078
+ * // => '0x5208'
1079
+ */
1080
+ {
1081
+ Method: 'eth_estimateGas'
1082
+ Parameters:
1083
+ | [transaction: TransactionRequest]
1084
+ | [transaction: TransactionRequest, block: BlockNumber | BlockTag]
1085
+ ReturnType: Quantity
1086
+ },
1087
+ /**
1088
+ * @description Requests that the user provides an Ethereum address to be identified by. Typically causes a browser extension popup to appear.
1089
+ * @link https://eips.ethereum.org/EIPS/eip-1102
1090
+ * @example
1091
+ * provider.request({ method: 'eth_requestAccounts' }] })
1092
+ * // => ['0x...', '0x...']
1093
+ */
1094
+ {
1095
+ Method: 'eth_requestAccounts'
1096
+ Parameters?: never
1097
+ ReturnType: Address[]
1098
+ },
1099
+ /**
1100
+ * @description Creates, signs, and sends a new transaction to the network
1101
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1102
+ * @example
1103
+ * provider.request({ method: 'eth_sendTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
1104
+ * // => '0x...'
1105
+ */
1106
+ {
1107
+ Method: 'eth_sendTransaction'
1108
+ Parameters: [transaction: TransactionRequest]
1109
+ ReturnType: Hash
1110
+ },
1111
+ /**
1112
+ * @description Sends and already-signed transaction to the network
1113
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1114
+ * @example
1115
+ * provider.request({ method: 'eth_sendRawTransaction', params: ['0x...'] })
1116
+ * // => '0x...'
1117
+ */
1118
+ {
1119
+ Method: 'eth_sendRawTransaction'
1120
+ Parameters: [signedTransaction: Hex]
1121
+ ReturnType: Hash
1122
+ },
1123
+ /**
1124
+ * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
1125
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1126
+ * @example
1127
+ * provider.request({ method: 'eth_sign', params: ['0x...', '0x...'] })
1128
+ * // => '0x...'
1129
+ */
1130
+ {
1131
+ Method: 'eth_sign'
1132
+ Parameters: [
904
1133
  /** Address to use for signing */
905
1134
  address: Address,
906
1135
  /** Data to sign */
907
1136
  data: Hex,
908
1137
  ]
909
- }): Promise<Hex>
910
- request(args: {
911
- /**
912
- * @description Signs a transaction that can be submitted to the network at a later time using with `eth_sendRawTransaction`
913
- * @link https://eips.ethereum.org/EIPS/eip-1474
914
- * @example
915
- * provider.request({ method: 'eth_signTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
916
- * // => '0x...'
917
- * */
918
- method: 'eth_signTransaction'
919
- params: [request: TransactionRequest]
920
- }): Promise<Hex>
921
- request(args: {
922
- /**
923
- * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
924
- * @link https://eips.ethereum.org/EIPS/eip-1474
925
- * @example
926
- * provider.request({ method: 'eth_signTypedData_v4', params: [{ from: '0x...', data: [{ type: 'string', name: 'message', value: 'hello world' }] }] })
927
- * // => '0x...'
928
- * */
929
- method: 'eth_signTypedData_v4'
930
- params: [
1138
+ ReturnType: Hex
1139
+ },
1140
+ /**
1141
+ * @description Signs a transaction that can be submitted to the network at a later time using with `eth_sendRawTransaction`
1142
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1143
+ * @example
1144
+ * provider.request({ method: 'eth_signTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
1145
+ * // => '0x...'
1146
+ */
1147
+ {
1148
+ Method: 'eth_signTransaction'
1149
+ Parameters: [request: TransactionRequest]
1150
+ ReturnType: Hex
1151
+ },
1152
+ /**
1153
+ * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
1154
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1155
+ * @example
1156
+ * provider.request({ method: 'eth_signTypedData_v4', params: [{ from: '0x...', data: [{ type: 'string', name: 'message', value: 'hello world' }] }] })
1157
+ * // => '0x...'
1158
+ */
1159
+ {
1160
+ Method: 'eth_signTypedData_v4'
1161
+ Parameters: [
931
1162
  /** Address to use for signing */
932
1163
  address: Address,
933
1164
  /** Message to sign containing type information, a domain separator, and data */
934
1165
  message: string,
935
1166
  ]
936
- }): Promise<Hex>
937
- request(args: {
938
- /**
939
- * @description Returns information about the status of this client’s network synchronization
940
- * @link https://eips.ethereum.org/EIPS/eip-1474
941
- * @example
942
- * provider.request({ method: 'eth_syncing' })
943
- * // => { startingBlock: '0x...', currentBlock: '0x...', highestBlock: '0x...' }
944
- * */
945
- method: 'eth_syncing'
946
- params?: never
947
- }): Promise<NetworkSync | false>
948
- request(args: {
949
- /**
950
- * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
951
- * @link https://eips.ethereum.org/EIPS/eip-1474
952
- * @example
953
- * provider.request({ method: 'personal_sign', params: ['0x...', '0x...'] })
954
- * // => '0x...'
955
- * */
956
- method: 'personal_sign'
957
- params: [
1167
+ ReturnType: Hex
1168
+ },
1169
+ /**
1170
+ * @description Returns information about the status of this client’s network synchronization
1171
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1172
+ * @example
1173
+ * provider.request({ method: 'eth_syncing' })
1174
+ * // => { startingBlock: '0x...', currentBlock: '0x...', highestBlock: '0x...' }
1175
+ */
1176
+ {
1177
+ Method: 'eth_syncing'
1178
+ Parameters?: never
1179
+ ReturnType: NetworkSync | false
1180
+ },
1181
+ /**
1182
+ * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
1183
+ * @link https://eips.ethereum.org/EIPS/eip-1474
1184
+ * @example
1185
+ * provider.request({ method: 'personal_sign', params: ['0x...', '0x...'] })
1186
+ * // => '0x...'
1187
+ */
1188
+ {
1189
+ Method: 'personal_sign'
1190
+ Parameters: [
958
1191
  /** Data to sign */
959
1192
  data: Hex,
960
1193
  /** Address to use for signing */
961
1194
  address: Address,
962
1195
  ]
963
- }): Promise<Hex>
964
- }
965
-
966
- export type WalletRequests = {
967
- request(args: {
968
- /**
969
- * @description Returns a list of addresses owned by this client
970
- * @link https://eips.ethereum.org/EIPS/eip-1474
971
- * @example
972
- * provider.request({ method: 'eth_accounts' })
973
- * // => ['0x0fB69...']
974
- * */
975
- method: 'eth_accounts'
976
- params?: never
977
- }): Promise<Address[]>
978
- request(args: {
979
- /**
980
- * @description Returns the current chain ID associated with the wallet.
981
- * @example
982
- * provider.request({ method: 'eth_chainId' })
983
- * // => '1'
984
- */
985
- method: 'eth_chainId'
986
- params?: never
987
- }): Promise<Quantity>
988
- request(args: {
989
- /**
990
- * @description Requests that the user provides an Ethereum address to be identified by. Typically causes a browser extension popup to appear.
991
- * @link https://eips.ethereum.org/EIPS/eip-1102
992
- * @example
993
- * provider.request({ method: 'eth_requestAccounts' })
994
- * // => ['0x...', '0x...']
995
- * */
996
- method: 'eth_requestAccounts'
997
- params?: never
998
- }): Promise<Address[]>
999
- request(args: {
1000
- /**
1001
- * @description Requests the given permissions from the user.
1002
- * @link https://eips.ethereum.org/EIPS/eip-2255
1003
- * @example
1004
- * provider.request({ method: 'wallet_requestPermissions', params: [{ eth_accounts: {} }] })
1005
- * // => { ... }
1006
- * */
1007
- method: 'wallet_requestPermissions'
1008
- params: [permissions: { eth_accounts: Record<string, any> }]
1009
- }): Promise<WalletPermission[]>
1010
- request(args: {
1011
- /**
1012
- * @description Gets the wallets current permissions.
1013
- * @link https://eips.ethereum.org/EIPS/eip-2255
1014
- * @example
1015
- * provider.request({ method: 'wallet_getPermissions' })
1016
- * // => { ... }
1017
- * */
1018
- method: 'wallet_getPermissions'
1019
- params?: never
1020
- }): Promise<WalletPermission[]>
1021
- request(args: {
1022
- /**
1023
- * @description Add an Ethereum chain to the wallet.
1024
- * @link https://eips.ethereum.org/EIPS/eip-3085
1025
- * @example
1026
- * provider.request({ method: 'wallet_addEthereumChain', params: [{ chainId: 1, rpcUrl: 'https://mainnet.infura.io/v3/...' }] })
1027
- * // => { ... }
1028
- */
1029
- method: 'wallet_addEthereumChain'
1030
- params: [chain: Chain]
1031
- }): Promise<null>
1032
- request(args: {
1033
- /**
1034
- * @description Switch the wallet to the given Ethereum chain.
1035
- * @link https://eips.ethereum.org/EIPS/eip-3326
1036
- * @example
1037
- * provider.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: '0xf00' }] })
1038
- * // => { ... }
1039
- * */
1040
- method: 'wallet_switchEthereumChain'
1041
- params: [chain: { chainId: string }]
1042
- }): Promise<null>
1196
+ ReturnType: Hex
1197
+ },
1198
+ /**
1199
+ * @description Add an Ethereum chain to the wallet.
1200
+ * @link https://eips.ethereum.org/EIPS/eip-3085
1201
+ * @example
1202
+ * provider.request({ method: 'wallet_addEthereumChain', params: [{ chainId: 1, rpcUrl: 'https://mainnet.infura.io/v3/...' }] })
1203
+ * // => { ... }
1204
+ */
1205
+ {
1206
+ Method: 'wallet_addEthereumChain'
1207
+ Parameters: [chain: AddEthereumChainParameter]
1208
+ ReturnType: null
1209
+ },
1210
+ /**
1211
+ * @description Gets the wallets current permissions.
1212
+ * @link https://eips.ethereum.org/EIPS/eip-2255
1213
+ * @example
1214
+ * provider.request({ method: 'wallet_getPermissions' })
1215
+ * // => { ... }
1216
+ */
1217
+ {
1218
+ Method: 'wallet_getPermissions'
1219
+ Parameters?: never
1220
+ ReturnType: WalletPermission[]
1221
+ },
1222
+ /**
1223
+ * @description Requests the given permissions from the user.
1224
+ * @link https://eips.ethereum.org/EIPS/eip-2255
1225
+ * @example
1226
+ * provider.request({ method: 'wallet_requestPermissions', params: [{ eth_accounts: {} }] })
1227
+ * // => { ... }
1228
+ */
1229
+ {
1230
+ Method: 'wallet_requestPermissions'
1231
+ Parameters: [permissions: { eth_accounts: Record<string, any> }]
1232
+ ReturnType: WalletPermission[]
1233
+ },
1234
+ /**
1235
+ * @description Switch the wallet to the given Ethereum chain.
1236
+ * @link https://eips.ethereum.org/EIPS/eip-3326
1237
+ * @example
1238
+ * provider.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: '0xf00' }] })
1239
+ * // => { ... }
1240
+ */
1241
+ {
1242
+ Method: 'wallet_switchEthereumChain'
1243
+ Parameters: [chain: { chainId: string }]
1244
+ ReturnType: null
1245
+ },
1043
1246
  /**
1044
1247
  * @description Requests that the user tracks the token in their wallet. Returns a boolean indicating if the token was successfully added.
1045
1248
  * @link https://eips.ethereum.org/EIPS/eip-747
1046
1249
  * @example
1047
1250
  * provider.request({ method: 'wallet_watchAsset' }] })
1048
1251
  * // => true
1049
- * */
1050
- request(args: {
1051
- method: 'wallet_watchAsset'
1052
- params: WatchAssetParams
1053
- }): Promise<boolean>
1054
- }
1252
+ */
1253
+ {
1254
+ Method: 'wallet_watchAsset'
1255
+ Parameters: WatchAssetParams
1256
+ ReturnType: boolean
1257
+ },
1258
+ ]
1259
+
1260
+ ///////////////////////////////////////////////////////////////////////////
1261
+ // Utils
1262
+
1263
+ export type RpcSchema = readonly {
1264
+ Method: string
1265
+ Parameters?: unknown
1266
+ ReturnType: unknown
1267
+ }[]
1268
+
1269
+ export type RpcSchemaOverride = Omit<RpcSchema[number], 'Method'>
1270
+
1271
+ export type EIP1193Parameters<
1272
+ TRpcSchema extends RpcSchema | undefined = undefined,
1273
+ > = TRpcSchema extends RpcSchema
1274
+ ? {
1275
+ [K in keyof TRpcSchema]: Prettify<
1276
+ {
1277
+ method: TRpcSchema[K] extends TRpcSchema[number]
1278
+ ? TRpcSchema[K]['Method']
1279
+ : never
1280
+ } & (TRpcSchema[K] extends TRpcSchema[number]
1281
+ ? TRpcSchema[K]['Parameters'] extends undefined
1282
+ ? { params?: never }
1283
+ : { params: TRpcSchema[K]['Parameters'] }
1284
+ : never)
1285
+ >
1286
+ }[number]
1287
+ : {
1288
+ method: string
1289
+ params?: unknown
1290
+ }
1291
+
1292
+ type DerivedRpcSchema<
1293
+ TRpcSchema extends RpcSchema | undefined,
1294
+ TRpcSchemaOverride extends RpcSchemaOverride | undefined,
1295
+ > = TRpcSchemaOverride extends RpcSchemaOverride
1296
+ ? [TRpcSchemaOverride & { Method: string }]
1297
+ : TRpcSchema
1055
1298
 
1056
- export type Requests = PublicRequests & SignableRequests & WalletRequests
1299
+ export type EIP1193RequestFn<
1300
+ TRpcSchema extends RpcSchema | undefined = undefined,
1301
+ > = <
1302
+ TRpcSchemaOverride extends RpcSchemaOverride | undefined = undefined,
1303
+ TParameters extends EIP1193Parameters<
1304
+ DerivedRpcSchema<TRpcSchema, TRpcSchemaOverride>
1305
+ > = EIP1193Parameters<DerivedRpcSchema<TRpcSchema, TRpcSchemaOverride>>,
1306
+ _ReturnType = DerivedRpcSchema<
1307
+ TRpcSchema,
1308
+ TRpcSchemaOverride
1309
+ > extends RpcSchema
1310
+ ? Extract<
1311
+ DerivedRpcSchema<TRpcSchema, TRpcSchemaOverride>[number],
1312
+ { Method: TParameters['method'] }
1313
+ >['ReturnType']
1314
+ : unknown,
1315
+ >(
1316
+ args: TParameters,
1317
+ ) => Promise<_ReturnType>