viem 0.0.1-cjs.10 → 0.0.1-sushi.26

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 (532) hide show
  1. package/contract/package.json +4 -0
  2. package/dist/call-ac509982.d.ts +23 -0
  3. package/dist/chain-c4ccb458.d.ts +5 -0
  4. package/dist/{rpc-b77c5aee.d.ts → chain-f16512e8.d.ts} +97 -17
  5. package/dist/chains.d.ts +1303 -74
  6. package/dist/chains.js +81 -85
  7. package/dist/chains.js.map +1 -0
  8. package/dist/chains.mjs +121 -125
  9. package/dist/chains.mjs.map +1 -0
  10. package/dist/chunk-2PFNLP3F.js +192 -0
  11. package/dist/chunk-2PFNLP3F.js.map +1 -0
  12. package/dist/chunk-5ND4P6QL.mjs +192 -0
  13. package/dist/chunk-5ND4P6QL.mjs.map +1 -0
  14. package/dist/{chunk-5ZBNF5WM.js → chunk-NXCI5KQC.js} +769 -359
  15. package/dist/chunk-NXCI5KQC.js.map +1 -0
  16. package/dist/{chunk-HLVCJ7RV.mjs → chunk-O7T5NQLB.mjs} +484 -477
  17. package/dist/chunk-O7T5NQLB.mjs.map +1 -0
  18. package/dist/{chunk-2FDH6XP5.mjs → chunk-SD5X7F4U.mjs} +777 -367
  19. package/dist/chunk-SD5X7F4U.mjs.map +1 -0
  20. package/dist/{chunk-46ZFLVHC.js → chunk-UTL6F7UN.js} +519 -512
  21. package/dist/chunk-UTL6F7UN.js.map +1 -0
  22. package/dist/contract-9e76e561.d.ts +166 -0
  23. package/dist/contract.d.ts +123 -0
  24. package/dist/contract.js +53 -0
  25. package/dist/contract.js.map +1 -0
  26. package/dist/contract.mjs +53 -0
  27. package/dist/contract.mjs.map +1 -0
  28. package/dist/createClient-68ee4bb4.d.ts +62 -0
  29. package/dist/createPublicClient-b732194e.d.ts +19 -0
  30. package/dist/createTestClient-dedf321e.d.ts +34 -0
  31. package/dist/createWalletClient-75813d83.d.ts +30 -0
  32. package/dist/decodeErrorResult-0b934d23.d.ts +16 -0
  33. package/dist/{eip1193-020a6f13.d.ts → eip1193-6f9ba163.d.ts} +12 -9
  34. package/dist/ens.d.ts +82 -0
  35. package/dist/ens.js +216 -0
  36. package/dist/ens.js.map +1 -0
  37. package/dist/ens.mjs +216 -0
  38. package/dist/ens.mjs.map +1 -0
  39. package/dist/getAbiItem-c8e6e7d4.d.ts +97 -0
  40. package/dist/index.d.ts +128 -33
  41. package/dist/index.js +240 -244
  42. package/dist/index.js.map +1 -0
  43. package/dist/index.mjs +257 -261
  44. package/dist/index.mjs.map +1 -0
  45. package/dist/public.d.ts +353 -0
  46. package/dist/public.js +58 -0
  47. package/dist/public.js.map +1 -0
  48. package/dist/public.mjs +58 -0
  49. package/dist/public.mjs.map +1 -0
  50. package/dist/readContract-4f6e2692.d.ts +10 -0
  51. package/dist/rpc-a5a7f376.d.ts +121 -0
  52. package/dist/sendTransaction-e713f90c.d.ts +12 -0
  53. package/dist/test.d.ts +161 -0
  54. package/dist/test.js +264 -0
  55. package/dist/test.js.map +1 -0
  56. package/dist/test.mjs +264 -0
  57. package/dist/test.mjs.map +1 -0
  58. package/dist/transactionReceipt-2a86c7c7.d.ts +26 -0
  59. package/dist/transactionRequest-c7794f5e.d.ts +15 -0
  60. package/dist/utils/index.d.ts +238 -24
  61. package/dist/utils/index.js +27 -2
  62. package/dist/utils/index.js.map +1 -0
  63. package/dist/utils/index.mjs +30 -5
  64. package/dist/utils/index.mjs.map +1 -0
  65. package/dist/wallet.d.ts +42 -0
  66. package/dist/wallet.js +24 -0
  67. package/dist/wallet.js.map +1 -0
  68. package/dist/wallet.mjs +24 -0
  69. package/dist/wallet.mjs.map +1 -0
  70. package/dist/watchEvent-c346c12d.d.ts +41 -0
  71. package/dist/window.d.ts +3 -2
  72. package/dist/window.js +1 -1
  73. package/dist/window.js.map +1 -0
  74. package/dist/window.mjs +1 -0
  75. package/dist/window.mjs.map +1 -0
  76. package/ens/package.json +4 -0
  77. package/package.json +40 -72
  78. package/src/_test/abis.ts +1420 -0
  79. package/src/_test/bench.ts +15 -0
  80. package/src/_test/constants.ts +63 -0
  81. package/src/_test/generated.ts +128 -0
  82. package/src/_test/globalSetup.ts +11 -0
  83. package/src/_test/index.ts +25 -0
  84. package/src/_test/setup.ts +8 -0
  85. package/src/_test/utils.ts +155 -0
  86. package/src/actions/ens/getEnsAddress.bench.ts +26 -0
  87. package/src/actions/ens/getEnsAddress.test.ts +97 -0
  88. package/src/actions/ens/getEnsAddress.ts +122 -0
  89. package/src/actions/ens/getEnsName.bench.ts +30 -0
  90. package/src/actions/ens/getEnsName.test.ts +101 -0
  91. package/src/actions/ens/getEnsName.ts +106 -0
  92. package/src/actions/ens/index.test.ts +12 -0
  93. package/src/actions/ens/index.ts +3 -0
  94. package/src/actions/index.test.ts +81 -0
  95. package/src/actions/index.ts +182 -0
  96. package/src/actions/public/call.bench.ts +48 -0
  97. package/src/actions/public/call.test.ts +99 -0
  98. package/src/actions/public/call.ts +97 -0
  99. package/src/actions/public/createBlockFilter.bench.ts +11 -0
  100. package/src/actions/public/createBlockFilter.test.ts +9 -0
  101. package/src/actions/public/createBlockFilter.ts +14 -0
  102. package/src/actions/public/createContractEventFilter.test.ts +119 -0
  103. package/src/actions/public/createContractEventFilter.ts +69 -0
  104. package/src/actions/public/createEventFilter.test.ts +277 -0
  105. package/src/actions/public/createEventFilter.ts +93 -0
  106. package/src/actions/public/createPendingTransactionFilter.bench.ts +11 -0
  107. package/src/actions/public/createPendingTransactionFilter.test.ts +9 -0
  108. package/src/actions/public/createPendingTransactionFilter.ts +14 -0
  109. package/src/actions/public/estimateGas.bench.ts +46 -0
  110. package/src/actions/public/estimateGas.test.ts +92 -0
  111. package/src/actions/public/estimateGas.ts +61 -0
  112. package/src/actions/public/getBalance.test.ts +83 -0
  113. package/src/actions/public/getBalance.ts +37 -0
  114. package/src/actions/public/getBlock.bench.ts +28 -0
  115. package/src/actions/public/getBlock.test.ts +575 -0
  116. package/src/actions/public/getBlock.ts +65 -0
  117. package/src/actions/public/getBlockNumber.bench.ts +28 -0
  118. package/src/actions/public/getBlockNumber.test.ts +27 -0
  119. package/src/actions/public/getBlockNumber.ts +32 -0
  120. package/src/actions/public/getBlockTransactionCount.bench.ts +15 -0
  121. package/src/actions/public/getBlockTransactionCount.test.ts +57 -0
  122. package/src/actions/public/getBlockTransactionCount.ts +52 -0
  123. package/src/actions/public/getBytecode.test.ts +27 -0
  124. package/src/actions/public/getBytecode.ts +32 -0
  125. package/src/actions/public/getChainId.bench.ts +15 -0
  126. package/src/actions/public/getChainId.test.ts +8 -0
  127. package/src/actions/public/getChainId.ts +7 -0
  128. package/src/actions/public/getFeeHistory.bench.ts +18 -0
  129. package/src/actions/public/getFeeHistory.test.ts +137 -0
  130. package/src/actions/public/getFeeHistory.ts +44 -0
  131. package/src/actions/public/getFilterChanges.bench.ts +13 -0
  132. package/src/actions/public/getFilterChanges.test.ts +383 -0
  133. package/src/actions/public/getFilterChanges.ts +23 -0
  134. package/src/actions/public/getFilterLogs.test.ts +297 -0
  135. package/src/actions/public/getFilterLogs.ts +20 -0
  136. package/src/actions/public/getGasPrice.bench.ts +19 -0
  137. package/src/actions/public/getGasPrice.test.ts +8 -0
  138. package/src/actions/public/getGasPrice.ts +15 -0
  139. package/src/actions/public/getLogs.test.ts +306 -0
  140. package/src/actions/public/getLogs.ts +84 -0
  141. package/src/actions/public/getStorageAt.test.ts +34 -0
  142. package/src/actions/public/getStorageAt.ts +32 -0
  143. package/src/actions/public/getTransaction.bench.ts +33 -0
  144. package/src/actions/public/getTransaction.test.ts +311 -0
  145. package/src/actions/public/getTransaction.ts +95 -0
  146. package/src/actions/public/getTransactionConfirmations.test.ts +69 -0
  147. package/src/actions/public/getTransactionConfirmations.ts +38 -0
  148. package/src/actions/public/getTransactionCount.test.ts +56 -0
  149. package/src/actions/public/getTransactionCount.ts +34 -0
  150. package/src/actions/public/getTransactionReceipt.bench.ts +33 -0
  151. package/src/actions/public/getTransactionReceipt.test.ts +179 -0
  152. package/src/actions/public/getTransactionReceipt.ts +34 -0
  153. package/src/actions/public/index.test.ts +43 -0
  154. package/src/actions/public/index.ts +146 -0
  155. package/src/actions/public/multicall.test.ts +452 -0
  156. package/src/actions/public/multicall.ts +108 -0
  157. package/src/actions/public/readContract.test.ts +328 -0
  158. package/src/actions/public/readContract.ts +73 -0
  159. package/src/actions/public/simulateContract.bench.ts +41 -0
  160. package/src/actions/public/simulateContract.test.ts +410 -0
  161. package/src/actions/public/simulateContract.ts +91 -0
  162. package/src/actions/public/uninstallFilter.bench.ts +13 -0
  163. package/src/actions/public/uninstallFilter.test.ts +65 -0
  164. package/src/actions/public/uninstallFilter.ts +17 -0
  165. package/src/actions/public/waitForTransactionReceipt.test.ts +322 -0
  166. package/src/actions/public/waitForTransactionReceipt.ts +170 -0
  167. package/src/actions/public/watchBlockNumber.test.ts +166 -0
  168. package/src/actions/public/watchBlockNumber.ts +79 -0
  169. package/src/actions/public/watchBlocks.test.ts +210 -0
  170. package/src/actions/public/watchBlocks.ts +114 -0
  171. package/src/actions/public/watchContractEvent.test.ts +305 -0
  172. package/src/actions/public/watchContractEvent.ts +108 -0
  173. package/src/actions/public/watchEvent.test.ts +195 -0
  174. package/src/actions/public/watchEvent.ts +95 -0
  175. package/src/actions/public/watchPendingTransactions.test.ts +116 -0
  176. package/src/actions/public/watchPendingTransactions.ts +74 -0
  177. package/src/actions/test/dropTransaction.test.ts +34 -0
  178. package/src/actions/test/dropTransaction.ts +17 -0
  179. package/src/actions/test/getAutomine.test.ts +14 -0
  180. package/src/actions/test/getAutomine.ts +11 -0
  181. package/src/actions/test/getTxpoolContent.test.ts +45 -0
  182. package/src/actions/test/getTxpoolContent.ts +7 -0
  183. package/src/actions/test/getTxpoolStatus.test.ts +41 -0
  184. package/src/actions/test/getTxpoolStatus.ts +12 -0
  185. package/src/actions/test/impersonateAccount.test.ts +26 -0
  186. package/src/actions/test/impersonateAccount.ts +17 -0
  187. package/src/actions/test/increaseTime.test.ts +18 -0
  188. package/src/actions/test/increaseTime.ts +17 -0
  189. package/src/actions/test/index.test.ts +38 -0
  190. package/src/actions/test/index.ts +77 -0
  191. package/src/actions/test/inspectTxpool.test.ts +50 -0
  192. package/src/actions/test/inspectTxpool.ts +7 -0
  193. package/src/actions/test/mine.test.ts +20 -0
  194. package/src/actions/test/mine.ts +16 -0
  195. package/src/actions/test/removeBlockTimestampInterval.test.ts +23 -0
  196. package/src/actions/test/removeBlockTimestampInterval.ts +7 -0
  197. package/src/actions/test/reset.test.ts +19 -0
  198. package/src/actions/test/reset.ts +18 -0
  199. package/src/actions/test/revert.test.ts +39 -0
  200. package/src/actions/test/revert.ts +14 -0
  201. package/src/actions/test/sendUnsignedTransaction.test.ts +52 -0
  202. package/src/actions/test/sendUnsignedTransaction.ts +19 -0
  203. package/src/actions/test/setAutomine.test.ts +14 -0
  204. package/src/actions/test/setAutomine.ts +8 -0
  205. package/src/actions/test/setBalance.test.ts +29 -0
  206. package/src/actions/test/setBalance.ts +20 -0
  207. package/src/actions/test/setBlockGasLimit.test.ts +21 -0
  208. package/src/actions/test/setBlockGasLimit.ts +17 -0
  209. package/src/actions/test/setBlockTimestampInterval.test.ts +23 -0
  210. package/src/actions/test/setBlockTimestampInterval.ts +16 -0
  211. package/src/actions/test/setCode.test.ts +26 -0
  212. package/src/actions/test/setCode.ts +19 -0
  213. package/src/actions/test/setCoinbase.test.ts +11 -0
  214. package/src/actions/test/setCoinbase.ts +17 -0
  215. package/src/actions/test/setIntervalMining.test.ts +30 -0
  216. package/src/actions/test/setIntervalMining.ts +16 -0
  217. package/src/actions/test/setLoggingEnabled.test.ts +10 -0
  218. package/src/actions/test/setLoggingEnabled.ts +8 -0
  219. package/src/actions/test/setMinGasPrice.test.ts +22 -0
  220. package/src/actions/test/setMinGasPrice.ts +17 -0
  221. package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +23 -0
  222. package/src/actions/test/setNextBlockBaseFeePerGas.ts +17 -0
  223. package/src/actions/test/setNextBlockTimestamp.test.ts +19 -0
  224. package/src/actions/test/setNextBlockTimestamp.ts +17 -0
  225. package/src/actions/test/setNonce.test.ts +28 -0
  226. package/src/actions/test/setNonce.ts +20 -0
  227. package/src/actions/test/setRpcUrl.test.ts +9 -0
  228. package/src/actions/test/setRpcUrl.ts +8 -0
  229. package/src/actions/test/setStorageAt.test.ts +36 -0
  230. package/src/actions/test/setStorageAt.ts +26 -0
  231. package/src/actions/test/snapshot.test.ts +18 -0
  232. package/src/actions/test/snapshot.ts +7 -0
  233. package/src/actions/test/stopImpersonatingAccount.test.ts +29 -0
  234. package/src/actions/test/stopImpersonatingAccount.ts +17 -0
  235. package/src/actions/wallet/addChain.test.ts +14 -0
  236. package/src/actions/wallet/addChain.ts +21 -0
  237. package/src/actions/wallet/deployContract.test.ts +55 -0
  238. package/src/actions/wallet/deployContract.ts +38 -0
  239. package/src/actions/wallet/getAccounts.test.ts +22 -0
  240. package/src/actions/wallet/getAccounts.ts +7 -0
  241. package/src/actions/wallet/getPermissions.test.ts +24 -0
  242. package/src/actions/wallet/getPermissions.ts +9 -0
  243. package/src/actions/wallet/index.test.ts +21 -0
  244. package/src/actions/wallet/index.ts +36 -0
  245. package/src/actions/wallet/requestAccounts.test.ts +13 -0
  246. package/src/actions/wallet/requestAccounts.ts +7 -0
  247. package/src/actions/wallet/requestPermissions.test.ts +26 -0
  248. package/src/actions/wallet/requestPermissions.ts +19 -0
  249. package/src/actions/wallet/sendTransaction.bench.ts +57 -0
  250. package/src/actions/wallet/sendTransaction.test.ts +440 -0
  251. package/src/actions/wallet/sendTransaction.ts +77 -0
  252. package/src/actions/wallet/signMessage.test.ts +61 -0
  253. package/src/actions/wallet/signMessage.ts +35 -0
  254. package/src/actions/wallet/switchChain.test.ts +21 -0
  255. package/src/actions/wallet/switchChain.ts +19 -0
  256. package/src/actions/wallet/watchAsset.test.ts +40 -0
  257. package/src/actions/wallet/watchAsset.ts +16 -0
  258. package/src/actions/wallet/writeContract.test.ts +84 -0
  259. package/src/actions/wallet/writeContract.ts +47 -0
  260. package/src/chains.test.ts +439 -0
  261. package/src/chains.ts +99 -0
  262. package/src/clients/createClient.test.ts +295 -0
  263. package/src/clients/createClient.ts +81 -0
  264. package/src/clients/createPublicClient.test.ts +165 -0
  265. package/src/clients/createPublicClient.ts +49 -0
  266. package/src/clients/createTestClient.test.ts +145 -0
  267. package/src/clients/createTestClient.ts +72 -0
  268. package/src/clients/createWalletClient.test.ts +121 -0
  269. package/src/clients/createWalletClient.ts +54 -0
  270. package/src/clients/index.test.ts +19 -0
  271. package/src/clients/index.ts +31 -0
  272. package/src/clients/transports/createTransport.test.ts +58 -0
  273. package/src/clients/transports/createTransport.ts +48 -0
  274. package/src/clients/transports/custom.test.ts +98 -0
  275. package/src/clients/transports/custom.ts +34 -0
  276. package/src/clients/transports/fallback.test.ts +393 -0
  277. package/src/clients/transports/fallback.ts +58 -0
  278. package/src/clients/transports/http.test.ts +109 -0
  279. package/src/clients/transports/http.ts +51 -0
  280. package/src/clients/transports/index.test.ts +15 -0
  281. package/src/clients/transports/index.ts +17 -0
  282. package/src/clients/transports/webSocket.test.ts +164 -0
  283. package/src/clients/transports/webSocket.ts +118 -0
  284. package/src/constants/abis.test.ts +53 -0
  285. package/src/constants/abis.ts +44 -0
  286. package/src/constants/index.test.ts +14 -0
  287. package/src/constants/index.ts +3 -0
  288. package/src/constants/solidity.test.ts +41 -0
  289. package/src/constants/solidity.ts +35 -0
  290. package/src/contract.test.ts +32 -0
  291. package/src/contract.ts +68 -0
  292. package/src/ens.test.ts +15 -0
  293. package/src/ens.ts +8 -0
  294. package/src/errors/abi.test.ts +81 -0
  295. package/src/errors/abi.ts +254 -0
  296. package/src/errors/address.test.ts +14 -0
  297. package/src/errors/address.ts +9 -0
  298. package/src/errors/base.test.ts +114 -0
  299. package/src/errors/base.ts +57 -0
  300. package/src/errors/block.test.ts +24 -0
  301. package/src/errors/block.ts +18 -0
  302. package/src/errors/chain.test.ts +46 -0
  303. package/src/errors/chain.ts +33 -0
  304. package/src/errors/contract.test.ts +233 -0
  305. package/src/errors/contract.ts +178 -0
  306. package/src/errors/data.ts +20 -0
  307. package/src/errors/encoding.ts +60 -0
  308. package/src/errors/index.ts +82 -0
  309. package/src/errors/log.ts +8 -0
  310. package/src/errors/request.test.ts +330 -0
  311. package/src/errors/request.ts +163 -0
  312. package/src/errors/rpc.test.ts +87 -0
  313. package/src/errors/rpc.ts +113 -0
  314. package/src/errors/transaction.test.ts +83 -0
  315. package/src/errors/transaction.ts +54 -0
  316. package/src/errors/transport.test.ts +11 -0
  317. package/src/errors/transport.ts +12 -0
  318. package/src/index.test.ts +116 -0
  319. package/src/index.ts +132 -0
  320. package/src/public.test.ts +36 -0
  321. package/src/public.ts +76 -0
  322. package/src/test.test.ts +38 -0
  323. package/src/test.ts +52 -0
  324. package/src/types/block.ts +71 -0
  325. package/src/types/chain.ts +6 -0
  326. package/src/types/contract.ts +497 -0
  327. package/src/types/eip1193.ts +1041 -0
  328. package/src/types/fee.ts +47 -0
  329. package/src/types/filter.ts +8 -0
  330. package/src/types/formatter.ts +23 -0
  331. package/src/types/index.ts +84 -0
  332. package/src/types/log.ts +22 -0
  333. package/src/types/misc.ts +5 -0
  334. package/src/types/multicall.ts +82 -0
  335. package/src/types/rpc.ts +35 -0
  336. package/src/types/transaction.ts +145 -0
  337. package/src/types/utils.ts +88 -0
  338. package/src/types/window.ts +9 -0
  339. package/src/utils/abi/decodeAbi.bench.ts +135 -0
  340. package/src/utils/abi/decodeAbi.test.ts +1614 -0
  341. package/src/utils/abi/decodeAbi.ts +300 -0
  342. package/src/utils/abi/decodeDeployData.test.ts +151 -0
  343. package/src/utils/abi/decodeDeployData.ts +44 -0
  344. package/src/utils/abi/decodeErrorResult.test.ts +230 -0
  345. package/src/utils/abi/decodeErrorResult.ts +45 -0
  346. package/src/utils/abi/decodeEventLog.test.ts +542 -0
  347. package/src/utils/abi/decodeEventLog.ts +107 -0
  348. package/src/utils/abi/decodeFunctionData.test.ts +138 -0
  349. package/src/utils/abi/decodeFunctionData.ts +32 -0
  350. package/src/utils/abi/decodeFunctionResult.test.ts +333 -0
  351. package/src/utils/abi/decodeFunctionResult.ts +57 -0
  352. package/src/utils/abi/encodeAbi.bench.ts +163 -0
  353. package/src/utils/abi/encodeAbi.test.ts +1447 -0
  354. package/src/utils/abi/encodeAbi.ts +273 -0
  355. package/src/utils/abi/encodeDeployData.test.ts +124 -0
  356. package/src/utils/abi/encodeDeployData.ts +40 -0
  357. package/src/utils/abi/encodeErrorResult.test.ts +192 -0
  358. package/src/utils/abi/encodeErrorResult.ts +47 -0
  359. package/src/utils/abi/encodeEventTopics.test.ts +345 -0
  360. package/src/utils/abi/encodeEventTopics.ts +75 -0
  361. package/src/utils/abi/encodeFunctionData.test.ts +138 -0
  362. package/src/utils/abi/encodeFunctionData.ts +42 -0
  363. package/src/utils/abi/encodeFunctionResult.test.ts +279 -0
  364. package/src/utils/abi/encodeFunctionResult.ts +41 -0
  365. package/src/utils/abi/formatAbiItem.test.ts +335 -0
  366. package/src/utils/abi/formatAbiItem.ts +41 -0
  367. package/src/utils/abi/formatAbiItemWithArgs.test.ts +291 -0
  368. package/src/utils/abi/formatAbiItemWithArgs.ts +27 -0
  369. package/src/utils/abi/getAbiItem.test.ts +547 -0
  370. package/src/utils/abi/getAbiItem.ts +95 -0
  371. package/src/utils/abi/index.test.ts +24 -0
  372. package/src/utils/abi/index.ts +48 -0
  373. package/src/utils/address/getAddress.bench.ts +22 -0
  374. package/src/utils/address/getAddress.test.ts +46 -0
  375. package/src/utils/address/getAddress.ts +28 -0
  376. package/src/utils/address/getContractAddress.bench.ts +20 -0
  377. package/src/utils/address/getContractAddress.test.ts +78 -0
  378. package/src/utils/address/getContractAddress.ts +59 -0
  379. package/src/utils/address/index.test.ts +17 -0
  380. package/src/utils/address/index.ts +16 -0
  381. package/src/utils/address/isAddress.test.ts +10 -0
  382. package/src/utils/address/isAddress.ts +10 -0
  383. package/src/utils/address/isAddressEqual.test.ts +55 -0
  384. package/src/utils/address/isAddressEqual.ts +6 -0
  385. package/src/utils/buildRequest.test.ts +428 -0
  386. package/src/utils/buildRequest.ts +72 -0
  387. package/src/utils/chain.test.ts +43 -0
  388. package/src/utils/chain.ts +8 -0
  389. package/src/utils/contract/extractFunctionParts.test.ts +109 -0
  390. package/src/utils/contract/extractFunctionParts.ts +27 -0
  391. package/src/utils/contract/getContractError.test.ts +282 -0
  392. package/src/utils/contract/getContractError.ts +58 -0
  393. package/src/utils/contract/index.test.ts +15 -0
  394. package/src/utils/contract/index.ts +8 -0
  395. package/src/utils/data/concat.test.ts +35 -0
  396. package/src/utils/data/concat.ts +34 -0
  397. package/src/utils/data/index.test.ts +23 -0
  398. package/src/utils/data/index.ts +13 -0
  399. package/src/utils/data/isBytes.test.ts +9 -0
  400. package/src/utils/data/isBytes.ts +7 -0
  401. package/src/utils/data/isHex.test.ts +13 -0
  402. package/src/utils/data/isHex.ts +5 -0
  403. package/src/utils/data/pad.bench.ts +30 -0
  404. package/src/utils/data/pad.test.ts +367 -0
  405. package/src/utils/data/pad.ts +53 -0
  406. package/src/utils/data/size.test.ts +18 -0
  407. package/src/utils/data/size.ts +13 -0
  408. package/src/utils/data/slice.test.ts +203 -0
  409. package/src/utils/data/slice.ts +60 -0
  410. package/src/utils/data/trim.bench.ts +34 -0
  411. package/src/utils/data/trim.test.ts +175 -0
  412. package/src/utils/data/trim.ts +33 -0
  413. package/src/utils/encoding/decodeBytes.bench.ts +40 -0
  414. package/src/utils/encoding/decodeBytes.test.ts +144 -0
  415. package/src/utils/encoding/decodeBytes.ts +63 -0
  416. package/src/utils/encoding/decodeHex.bench.ts +24 -0
  417. package/src/utils/encoding/decodeHex.test.ts +167 -0
  418. package/src/utils/encoding/decodeHex.ts +76 -0
  419. package/src/utils/encoding/decodeRlp.bench.ts +34 -0
  420. package/src/utils/encoding/decodeRlp.test.ts +350 -0
  421. package/src/utils/encoding/decodeRlp.ts +121 -0
  422. package/src/utils/encoding/encodeBytes.bench.ts +29 -0
  423. package/src/utils/encoding/encodeBytes.test.ts +676 -0
  424. package/src/utils/encoding/encodeBytes.ts +59 -0
  425. package/src/utils/encoding/encodeHex.bench.ts +49 -0
  426. package/src/utils/encoding/encodeHex.test.ts +232 -0
  427. package/src/utils/encoding/encodeHex.ts +104 -0
  428. package/src/utils/encoding/encodeRlp.bench.ts +54 -0
  429. package/src/utils/encoding/encodeRlp.test.ts +254 -0
  430. package/src/utils/encoding/encodeRlp.ts +48 -0
  431. package/src/utils/encoding/index.test.ts +32 -0
  432. package/src/utils/encoding/index.ts +36 -0
  433. package/src/utils/ens/index.test.ts +14 -0
  434. package/src/utils/ens/index.ts +7 -0
  435. package/src/utils/ens/labelhash.test.ts +55 -0
  436. package/src/utils/ens/labelhash.ts +16 -0
  437. package/src/utils/ens/namehash.test.ts +65 -0
  438. package/src/utils/ens/namehash.ts +28 -0
  439. package/src/utils/ens/normalize.bench.ts +14 -0
  440. package/src/utils/ens/normalize.test.ts +35 -0
  441. package/src/utils/ens/normalize.ts +14 -0
  442. package/src/utils/ens/packetToBytes.test.ts +11 -0
  443. package/src/utils/ens/packetToBytes.ts +29 -0
  444. package/src/utils/formatters/block.bench.ts +51 -0
  445. package/src/utils/formatters/block.test.ts +115 -0
  446. package/src/utils/formatters/block.ts +37 -0
  447. package/src/utils/formatters/extract.test.ts +14 -0
  448. package/src/utils/formatters/extract.ts +18 -0
  449. package/src/utils/formatters/feeHistory.test.ts +66 -0
  450. package/src/utils/formatters/feeHistory.ts +12 -0
  451. package/src/utils/formatters/format.test.ts +93 -0
  452. package/src/utils/formatters/format.ts +90 -0
  453. package/src/utils/formatters/index.test.ts +27 -0
  454. package/src/utils/formatters/index.ts +34 -0
  455. package/src/utils/formatters/log.test.ts +79 -0
  456. package/src/utils/formatters/log.ts +12 -0
  457. package/src/utils/formatters/transaction.test.ts +271 -0
  458. package/src/utils/formatters/transaction.ts +63 -0
  459. package/src/utils/formatters/transactionReceipt.bench.ts +73 -0
  460. package/src/utils/formatters/transactionReceipt.test.ts +151 -0
  461. package/src/utils/formatters/transactionReceipt.ts +63 -0
  462. package/src/utils/formatters/transactionRequest.bench.ts +29 -0
  463. package/src/utils/formatters/transactionRequest.test.ts +237 -0
  464. package/src/utils/formatters/transactionRequest.ts +56 -0
  465. package/src/utils/hash/getEventSignature.test.ts +61 -0
  466. package/src/utils/hash/getEventSignature.ts +4 -0
  467. package/src/utils/hash/getFunctionSignature.test.ts +22 -0
  468. package/src/utils/hash/getFunctionSignature.ts +5 -0
  469. package/src/utils/hash/hashFunction.test.ts +65 -0
  470. package/src/utils/hash/hashFunction.ts +12 -0
  471. package/src/utils/hash/index.test.ts +13 -0
  472. package/src/utils/hash/index.ts +5 -0
  473. package/src/utils/hash/keccak256.test.ts +59 -0
  474. package/src/utils/hash/keccak256.ts +21 -0
  475. package/src/utils/index.test.ts +111 -0
  476. package/src/utils/index.ts +142 -0
  477. package/src/utils/observe.test.ts +176 -0
  478. package/src/utils/observe.ts +66 -0
  479. package/src/utils/poll.test.ts +127 -0
  480. package/src/utils/poll.ts +42 -0
  481. package/src/utils/promise/index.test.ts +14 -0
  482. package/src/utils/promise/index.ts +3 -0
  483. package/src/utils/promise/withCache.test.ts +97 -0
  484. package/src/utils/promise/withCache.ts +73 -0
  485. package/src/utils/promise/withRetry.test.ts +231 -0
  486. package/src/utils/promise/withRetry.ts +61 -0
  487. package/src/utils/promise/withTimeout.test.ts +37 -0
  488. package/src/utils/promise/withTimeout.ts +39 -0
  489. package/src/utils/rpc.test.ts +990 -0
  490. package/src/utils/rpc.ts +294 -0
  491. package/src/utils/stringify.test.ts +13 -0
  492. package/src/utils/stringify.ts +5 -0
  493. package/src/utils/uid.ts +14 -0
  494. package/src/utils/unit/constants.test.ts +22 -0
  495. package/src/utils/unit/constants.ts +12 -0
  496. package/src/utils/unit/formatEther.test.ts +75 -0
  497. package/src/utils/unit/formatEther.ts +6 -0
  498. package/src/utils/unit/formatGwei.test.ts +32 -0
  499. package/src/utils/unit/formatGwei.ts +6 -0
  500. package/src/utils/unit/formatUnit.bench.ts +21 -0
  501. package/src/utils/unit/formatUnit.test.ts +40 -0
  502. package/src/utils/unit/formatUnit.ts +16 -0
  503. package/src/utils/unit/index.test.ts +28 -0
  504. package/src/utils/unit/index.ts +7 -0
  505. package/src/utils/unit/parseEther.test.ts +126 -0
  506. package/src/utils/unit/parseEther.ts +6 -0
  507. package/src/utils/unit/parseGwei.test.ts +50 -0
  508. package/src/utils/unit/parseGwei.ts +6 -0
  509. package/src/utils/unit/parseUnit.bench.ts +21 -0
  510. package/src/utils/unit/parseUnit.test.ts +54 -0
  511. package/src/utils/unit/parseUnit.ts +27 -0
  512. package/src/utils/wait.ts +3 -0
  513. package/src/wallet.test.ts +19 -0
  514. package/src/wallet.ts +23 -0
  515. package/src/window.ts +1 -0
  516. package/wallet/package.json +4 -0
  517. package/actions/package.json +0 -4
  518. package/clients/package.json +0 -4
  519. package/dist/actions/index.d.ts +0 -8
  520. package/dist/actions/index.js +0 -125
  521. package/dist/actions/index.mjs +0 -125
  522. package/dist/chunk-CWCWWGBC.mjs +0 -258
  523. package/dist/chunk-SGTIBKHG.js +0 -258
  524. package/dist/clients/index.d.ts +0 -7
  525. package/dist/clients/index.js +0 -23
  526. package/dist/clients/index.mjs +0 -23
  527. package/dist/createWalletClient-d612fe08.d.ts +0 -130
  528. package/dist/parseGwei-7c87ff41.d.ts +0 -278
  529. package/dist/rpc-26932bae.d.ts +0 -61
  530. package/dist/transactionRequest-08d30731.d.ts +0 -132
  531. package/dist/watchAsset-bc6373f4.d.ts +0 -534
  532. package/dist/webSocket-7f88e9e0.d.ts +0 -83
@@ -0,0 +1,1041 @@
1
+ import type { BlockTag } from './block'
2
+ import type { Address, Hash, Hex, LogTopic } from './misc'
3
+ import type {
4
+ RpcBlock as Block,
5
+ RpcBlockIdentifier as BlockIdentifier,
6
+ RpcBlockNumber as BlockNumber,
7
+ RpcEstimateGasParameters as EstimateGasParameters,
8
+ RpcFeeHistory as FeeHistory,
9
+ RpcLog as Log,
10
+ Quantity,
11
+ RpcTransaction as Transaction,
12
+ RpcTransactionReceipt as TransactionReceipt,
13
+ RpcTransactionRequest as TransactionRequest,
14
+ RpcUncle as Uncle,
15
+ } from './rpc'
16
+
17
+ //////////////////////////////////////////////////
18
+ // Errors
19
+
20
+ export class RpcError extends Error {
21
+ code: number
22
+ details: string
23
+
24
+ constructor(code: number, message: string) {
25
+ super(message)
26
+ this.code = code
27
+ this.details = message
28
+ }
29
+ }
30
+
31
+ //////////////////////////////////////////////////
32
+ // Provider Events
33
+
34
+ export type ProviderConnectInfo = {
35
+ chainId: string
36
+ }
37
+
38
+ export type ProviderMessage = {
39
+ type: string
40
+ data: unknown
41
+ }
42
+
43
+ export type Events = {
44
+ on(
45
+ event: 'connect',
46
+ listener: (connectInfo: ProviderConnectInfo) => void,
47
+ ): void
48
+ on(event: 'disconnect', listener: (error: RpcError) => void): void
49
+ on(event: 'chainChanged', listener: (chainId: string) => void): void
50
+ on(event: 'accountsChanged', listener: (accounts: string[]) => void): void
51
+ on(event: 'message', listener: (message: ProviderMessage) => void): void
52
+
53
+ removeListener(
54
+ event: 'connect',
55
+ listener: (connectInfo: ProviderConnectInfo) => void,
56
+ ): void
57
+ removeListener(event: 'disconnect', listener: (error: RpcError) => void): void
58
+ removeListener(
59
+ event: 'chainChanged',
60
+ listener: (chainId: string) => void,
61
+ ): void
62
+ removeListener(
63
+ event: 'accountsChanged',
64
+ listener: (accounts: Address[]) => void,
65
+ ): void
66
+ removeListener(
67
+ event: 'message',
68
+ listener: (message: ProviderMessage) => void,
69
+ ): void
70
+ }
71
+
72
+ //////////////////////////////////////////////////
73
+ // Provider Requests
74
+
75
+ export type Chain = {
76
+ /** A 0x-prefixed hexadecimal string */
77
+ chainId: string
78
+ /** The chain name. */
79
+ chainName: string
80
+ /** Native currency for the chain. */
81
+ nativeCurrency?: {
82
+ name: string
83
+ symbol: string
84
+ decimals: number
85
+ }
86
+ rpcUrls: readonly string[]
87
+ blockExplorerUrls?: string[]
88
+ iconUrls?: string[]
89
+ }
90
+
91
+ export type NetworkSync = {
92
+ /** The current block number */
93
+ currentBlock: Quantity
94
+ /** Number of latest block on the network */
95
+ highestBlock: Quantity
96
+ /** Block number at which syncing started */
97
+ startingBlock: Quantity
98
+ }
99
+
100
+ export type WalletPermissionCaveat = {
101
+ type: string
102
+ value: any
103
+ }
104
+
105
+ export type WalletPermission = {
106
+ caveats: WalletPermissionCaveat[]
107
+ date: number
108
+ id: string
109
+ invoker: `http://${string}` | `https://${string}`
110
+ parentCapability: 'eth_accounts' | string
111
+ }
112
+
113
+ export type WatchAssetParams = {
114
+ /** Token type. */
115
+ type: 'ERC20'
116
+ options: {
117
+ /** The address of the token contract */
118
+ address: string
119
+ /** A ticker symbol or shorthand, up to 11 characters */
120
+ symbol: string
121
+ /** The number of token decimals */
122
+ decimals: number
123
+ /** A string url of the token logo */
124
+ image: string
125
+ }
126
+ }
127
+
128
+ export type PublicRequests = {
129
+ request(args: {
130
+ /**
131
+ * @description Returns the version of the current client
132
+ * @link https://eips.ethereum.org/EIPS/eip-1474
133
+ * @example
134
+ * provider.request({ method: 'web3_clientVersion' })
135
+ * // => 'MetaMask/v1.0.0'
136
+ */
137
+ method: 'web3_clientVersion'
138
+ params?: never
139
+ }): Promise<string>
140
+ request(args: {
141
+ /**
142
+ * @description Hashes data using the Keccak-256 algorithm
143
+ * @link https://eips.ethereum.org/EIPS/eip-1474
144
+ * @example
145
+ * provider.request({ method: 'web3_sha3', params: ['0x68656c6c6f20776f726c64'] })
146
+ * // => '0xc94770007dda54cF92009BFF0dE90c06F603a09f'
147
+ */
148
+ method: 'web3_sha3'
149
+ params: [data: Hash]
150
+ }): Promise<string>
151
+ request(args: {
152
+ /**
153
+ * @description Determines if this client is listening for new network connections
154
+ * @link https://eips.ethereum.org/EIPS/eip-1474
155
+ * @example
156
+ * provider.request({ method: 'net_listening' })
157
+ * // => true
158
+ */
159
+ method: 'net_listening'
160
+ params?: never
161
+ }): Promise<boolean>
162
+ request(args: {
163
+ /**
164
+ * @description Returns the number of peers currently connected to this client
165
+ * @link https://eips.ethereum.org/EIPS/eip-1474
166
+ * @example
167
+ * provider.request({ method: 'net_peerCount' })
168
+ * // => '0x1'
169
+ */
170
+ method: 'net_peerCount'
171
+ params?: never
172
+ }): Promise<Quantity>
173
+ request(args: {
174
+ /**
175
+ * @description Returns the chain ID associated with the current network
176
+ * @link https://eips.ethereum.org/EIPS/eip-1474
177
+ * @example
178
+ * provider.request({ method: 'net_version' })
179
+ * // => '1'
180
+ */
181
+ method: 'net_version'
182
+ params?: never
183
+ }): Promise<Quantity>
184
+ request(args: {
185
+ /**
186
+ * @description Returns the number of the most recent block seen by this client
187
+ * @link https://eips.ethereum.org/EIPS/eip-1474
188
+ * @example
189
+ * provider.request({ method: 'eth_blockNumber' })
190
+ * // => '0x1b4'
191
+ * */
192
+ method: 'eth_blockNumber'
193
+ params?: never
194
+ }): Promise<Quantity>
195
+ request(args: {
196
+ /**
197
+ * @description Executes a new message call immediately without submitting a transaction to the network
198
+ * @link https://eips.ethereum.org/EIPS/eip-1474
199
+ * @example
200
+ * provider.request({ method: 'eth_call', params: [{ to: '0x...', data: '0x...' }] })
201
+ * // => '0x...'
202
+ */
203
+ method: 'eth_call'
204
+ params: [
205
+ request: TransactionRequest,
206
+ block: BlockNumber | BlockTag | BlockIdentifier,
207
+ ]
208
+ }): Promise<Hex>
209
+ request(args: {
210
+ /**
211
+ * @description Returns the chain ID associated with the current network
212
+ * @example
213
+ * provider.request({ method: 'eth_chainId' })
214
+ * // => '1'
215
+ */
216
+ method: 'eth_chainId'
217
+ params?: never
218
+ }): Promise<Quantity>
219
+ request(args: { method: 'eth_coinbase'; params?: never }): Promise<Address>
220
+ request(args: {
221
+ /**
222
+ * @description Estimates the gas necessary to complete a transaction without submitting it to the network
223
+ * @link https://eips.ethereum.org/EIPS/eip-1474
224
+ * @example
225
+ * provider.request({
226
+ * method: 'eth_estimateGas',
227
+ * params: [{ from: '0x...', to: '0x...', value: '0x...' }]
228
+ * })
229
+ * // => '0x5208'
230
+ * */
231
+ method: 'eth_estimateGas'
232
+ params: [parameters: EstimateGasParameters, block: BlockNumber | BlockTag]
233
+ }): Promise<Quantity>
234
+ request(args: {
235
+ /**
236
+ * @description Returns a collection of historical gas information
237
+ * @link https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md
238
+ * @example
239
+ * provider.request({
240
+ * method: 'eth_feeHistory',
241
+ * params: ['4', 'latest', ['25', '75']]
242
+ * })
243
+ * // => {
244
+ * // oldestBlock: '0x1',
245
+ * // baseFeePerGas: ['0x1', '0x2', '0x3', '0x4'],
246
+ * // gasUsedRatio: ['0x1', '0x2', '0x3', '0x4'],
247
+ * // reward: [['0x1', '0x2'], ['0x3', '0x4'], ['0x5', '0x6'], ['0x7', '0x8']]
248
+ * // }
249
+ * */
250
+ method: 'eth_feeHistory'
251
+ params: [
252
+ /** 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. */
253
+ blockCount: Quantity,
254
+ /** Highest number block of the requested range. */
255
+ newestBlock: BlockNumber | BlockTag,
256
+ /** 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. */
257
+ rewardPercentiles: number[] | undefined,
258
+ ]
259
+ }): Promise<FeeHistory>
260
+ request(args: {
261
+ /**
262
+ * @description Returns the current price of gas expressed in wei
263
+ * @link https://eips.ethereum.org/EIPS/eip-1474
264
+ * @example
265
+ * provider.request({ method: 'eth_gasPrice' })
266
+ * // => '0x09184e72a000'
267
+ * */
268
+ method: 'eth_gasPrice'
269
+ params?: never
270
+ }): Promise<Quantity>
271
+ request(args: {
272
+ /**
273
+ * @description Returns the balance of an address in wei
274
+ * @link https://eips.ethereum.org/EIPS/eip-1474
275
+ * @example
276
+ * provider.request({ method: 'eth_getBalance', params: ['0x...', 'latest'] })
277
+ * // => '0x12a05...'
278
+ * */
279
+ method: 'eth_getBalance'
280
+ params: [address: Address, block: BlockNumber | BlockTag | BlockIdentifier]
281
+ }): Promise<Quantity>
282
+ request(args: {
283
+ /**
284
+ * @description Returns information about a block specified by hash
285
+ * @link https://eips.ethereum.org/EIPS/eip-1474
286
+ * @example
287
+ * provider.request({ method: 'eth_getBlockByHash', params: ['0x...', true] })
288
+ * // => {
289
+ * // number: '0x1b4',
290
+ * // hash: '0x...',
291
+ * // parentHash: '0x...',
292
+ * // ...
293
+ * // }
294
+ * */
295
+ method: 'eth_getBlockByHash'
296
+ params: [
297
+ /** hash of a block */
298
+ hash: Hash,
299
+ /** true will pull full transaction objects, false will pull transaction hashes */
300
+ includeTransactionObjects: boolean,
301
+ ]
302
+ }): Promise<Block | null>
303
+ request(args: {
304
+ /**
305
+ * @description Returns information about a block specified by number
306
+ * @link https://eips.ethereum.org/EIPS/eip-1474
307
+ * @example
308
+ * provider.request({ method: 'eth_getBlockByNumber', params: ['0x1b4', true] })
309
+ * // => {
310
+ * // number: '0x1b4',
311
+ * // hash: '0x...',
312
+ * // parentHash: '0x...',
313
+ * // ...
314
+ * // }
315
+ * */
316
+ method: 'eth_getBlockByNumber'
317
+ params: [
318
+ /** block number, or one of "latest", "safe", "finalized", "earliest" or "pending" */
319
+ block: BlockNumber | BlockTag,
320
+ /** true will pull full transaction objects, false will pull transaction hashes */
321
+ includeTransactionObjects: boolean,
322
+ ]
323
+ }): Promise<Block | null>
324
+ request(args: {
325
+ /**
326
+ * @description Returns the number of transactions in a block specified by block hash
327
+ * @link https://eips.ethereum.org/EIPS/eip-1474
328
+ * @example
329
+ * provider.request({ method: 'eth_getBlockTransactionCountByHash', params: ['0x...'] })
330
+ * // => '0x1'
331
+ * */
332
+ method: 'eth_getBlockTransactionCountByHash'
333
+ params: [hash: Hash]
334
+ }): Promise<Quantity>
335
+ request(args: {
336
+ /**
337
+ * @description Returns the number of transactions in a block specified by block number
338
+ * @link https://eips.ethereum.org/EIPS/eip-1474
339
+ * @example
340
+ * provider.request({ method: 'eth_getBlockTransactionCountByNumber', params: ['0x1b4'] })
341
+ * // => '0x1'
342
+ * */
343
+ method: 'eth_getBlockTransactionCountByNumber'
344
+ params: [block: BlockNumber | BlockTag]
345
+ }): Promise<Quantity>
346
+ request(args: {
347
+ /**
348
+ * @description Returns the contract code stored at a given address
349
+ * @link https://eips.ethereum.org/EIPS/eip-1474
350
+ * @example
351
+ * provider.request({ method: 'eth_getCode', params: ['0x...', 'latest'] })
352
+ * // => '0x...'
353
+ * */
354
+ method: 'eth_getCode'
355
+ params: [address: Address, block: BlockNumber | BlockTag | BlockIdentifier]
356
+ }): Promise<Hex>
357
+ request(args: {
358
+ /**
359
+ * @description Returns a list of all logs based on filter ID since the last log retrieval
360
+ * @link https://eips.ethereum.org/EIPS/eip-1474
361
+ * @example
362
+ * provider.request({ method: 'eth_getFilterChanges', params: ['0x...'] })
363
+ * // => [{ ... }, { ... }]
364
+ * */
365
+ method: 'eth_getFilterChanges'
366
+ params: [filterId: Quantity]
367
+ }): Promise<Log[] | Hex[]>
368
+ request(args: {
369
+ /**
370
+ * @description Returns a list of all logs based on filter ID
371
+ * @link https://eips.ethereum.org/EIPS/eip-1474
372
+ * @example
373
+ * provider.request({ method: 'eth_getFilterLogs', params: ['0x...'] })
374
+ * // => [{ ... }, { ... }]
375
+ * */
376
+ method: 'eth_getFilterLogs'
377
+ params: [filterId: Quantity]
378
+ }): Promise<Log[]>
379
+ request(args: {
380
+ /**
381
+ * @description Returns a list of all logs based on a filter object
382
+ * @link https://eips.ethereum.org/EIPS/eip-1474
383
+ * @example
384
+ * provider.request({ method: 'eth_getLogs', params: [{ fromBlock: '0x...', toBlock: '0x...', address: '0x...', topics: ['0x...'] }] })
385
+ * // => [{ ... }, { ... }]
386
+ * */
387
+ method: 'eth_getLogs'
388
+ params: [
389
+ parameters: {
390
+ address?: Address | Address[]
391
+ topics?: LogTopic[]
392
+ } & (
393
+ | {
394
+ fromBlock?: BlockNumber | BlockTag
395
+ toBlock?: BlockNumber | BlockTag
396
+ blockHash?: never
397
+ }
398
+ | {
399
+ fromBlock?: never
400
+ toBlock?: never
401
+ blockHash?: Hash
402
+ }
403
+ ),
404
+ ]
405
+ }): Promise<Log[]>
406
+ request(args: {
407
+ /**
408
+ * @description Returns the value from a storage position at an address
409
+ * @link https://eips.ethereum.org/EIPS/eip-1474
410
+ * @example
411
+ * provider.request({ method: 'eth_getStorageAt', params: ['0x...', '0x...', 'latest'] })
412
+ * // => '0x...'
413
+ * */
414
+ method: 'eth_getStorageAt'
415
+ params: [
416
+ address: Address,
417
+ index: Quantity,
418
+ block: BlockNumber | BlockTag | BlockIdentifier,
419
+ ]
420
+ }): Promise<Hex>
421
+ request(args: {
422
+ /**
423
+ * @description Returns information about a transaction specified by block hash and transaction index
424
+ * @link https://eips.ethereum.org/EIPS/eip-1474
425
+ * @example
426
+ * provider.request({ method: 'eth_getTransactionByBlockHashAndIndex', params: ['0x...', '0x...'] })
427
+ * // => { ... }
428
+ * */
429
+ method: 'eth_getTransactionByBlockHashAndIndex'
430
+ params: [hash: Hash, index: Quantity]
431
+ }): Promise<Transaction | null>
432
+ request(args: {
433
+ /**
434
+ * @description Returns information about a transaction specified by block number and transaction index
435
+ * @link https://eips.ethereum.org/EIPS/eip-1474
436
+ * @example
437
+ * provider.request({ method: 'eth_getTransactionByBlockNumberAndIndex', params: ['0x...', '0x...'] })
438
+ * // => { ... }
439
+ * */
440
+ method: 'eth_getTransactionByBlockNumberAndIndex'
441
+ params: [block: BlockNumber | BlockTag, index: Quantity]
442
+ }): Promise<Transaction | null>
443
+ request(args: {
444
+ /**
445
+ * @description Returns information about a transaction specified by hash
446
+ * @link https://eips.ethereum.org/EIPS/eip-1474
447
+ * @example
448
+ * provider.request({ method: 'eth_getTransactionByHash', params: ['0x...'] })
449
+ * // => { ... }
450
+ * */
451
+ method: 'eth_getTransactionByHash'
452
+ params: [hash: Hash]
453
+ }): Promise<Transaction | null>
454
+ request(args: {
455
+ /**
456
+ * @description Returns the number of transactions sent from an address
457
+ * @link https://eips.ethereum.org/EIPS/eip-1474
458
+ * @example
459
+ * provider.request({ method: 'eth_getTransactionCount', params: ['0x...', 'latest'] })
460
+ * // => '0x1'
461
+ * */
462
+ method: 'eth_getTransactionCount'
463
+ params: [address: Address, block: BlockNumber | BlockTag | BlockIdentifier]
464
+ }): Promise<Quantity>
465
+ request(args: {
466
+ /**
467
+ * @description Returns the receipt of a transaction specified by hash
468
+ * @link https://eips.ethereum.org/EIPS/eip-1474
469
+ * @example
470
+ * provider.request({ method: 'eth_getTransactionReceipt', params: ['0x...'] })
471
+ * // => { ... }
472
+ * */
473
+ method: 'eth_getTransactionReceipt'
474
+ params: [hash: Hash]
475
+ }): Promise<TransactionReceipt | null>
476
+ request(args: {
477
+ /**
478
+ * @description Returns information about an uncle specified by block hash and uncle index position
479
+ * @link https://eips.ethereum.org/EIPS/eip-1474
480
+ * @example
481
+ * provider.request({ method: 'eth_getUncleByBlockHashAndIndex', params: ['0x...', '0x...'] })
482
+ * // => { ... }
483
+ * */
484
+ method: 'eth_getUncleByBlockHashAndIndex'
485
+ params: [hash: Hash, index: Quantity]
486
+ }): Promise<Uncle | null>
487
+ request(args: {
488
+ /**
489
+ * @description Returns information about an uncle specified by block number and uncle index position
490
+ * @link https://eips.ethereum.org/EIPS/eip-1474
491
+ * @example
492
+ * provider.request({ method: 'eth_getUncleByBlockNumberAndIndex', params: ['0x...', '0x...'] })
493
+ * // => { ... }
494
+ * */
495
+ method: 'eth_getUncleByBlockNumberAndIndex'
496
+ params: [block: BlockNumber | BlockTag, index: Quantity]
497
+ }): Promise<Uncle | null>
498
+ request(args: {
499
+ /**
500
+ * @description Returns the number of uncles in a block specified by block hash
501
+ * @link https://eips.ethereum.org/EIPS/eip-1474
502
+ * @example
503
+ * provider.request({ method: 'eth_getUncleCountByBlockHash', params: ['0x...'] })
504
+ * // => '0x1'
505
+ * */
506
+ method: 'eth_getUncleCountByBlockHash'
507
+ params: [hash: Hash]
508
+ }): Promise<Quantity>
509
+ request(args: {
510
+ /**
511
+ * @description Returns the number of uncles in a block specified by block number
512
+ * @link https://eips.ethereum.org/EIPS/eip-1474
513
+ * @example
514
+ * provider.request({ method: 'eth_getUncleCountByBlockNumber', params: ['0x...'] })
515
+ * // => '0x1'
516
+ * */
517
+ method: 'eth_getUncleCountByBlockNumber'
518
+ params: [block: BlockNumber | BlockTag]
519
+ }): Promise<Quantity>
520
+ request(args: {
521
+ /**
522
+ * @description Creates a filter to listen for new blocks that can be used with `eth_getFilterChanges`
523
+ * @link https://eips.ethereum.org/EIPS/eip-1474
524
+ * @example
525
+ * provider.request({ method: 'eth_newBlockFilter' })
526
+ * // => '0x1'
527
+ * */
528
+ method: 'eth_newBlockFilter'
529
+ params?: never
530
+ }): Promise<Quantity>
531
+ request(args: {
532
+ /**
533
+ * @description Creates a filter to listen for specific state changes that can then be used with `eth_getFilterChanges`
534
+ * @link https://eips.ethereum.org/EIPS/eip-1474
535
+ * @example
536
+ * provider.request({ method: 'eth_newFilter', params: [{ fromBlock: '0x...', toBlock: '0x...', address: '0x...', topics: ['0x...'] }] })
537
+ * // => '0x1'
538
+ * */
539
+ method: 'eth_newFilter'
540
+ params: [
541
+ filter: {
542
+ fromBlock?: BlockNumber | BlockTag
543
+ toBlock?: BlockNumber | BlockTag
544
+ address?: Address | Address[]
545
+ topics?: LogTopic[]
546
+ },
547
+ ]
548
+ }): Promise<Quantity>
549
+ request(args: {
550
+ /**
551
+ * @description Creates a filter to listen for new pending transactions that can be used with `eth_getFilterChanges`
552
+ * @link https://eips.ethereum.org/EIPS/eip-1474
553
+ * @example
554
+ * provider.request({ method: 'eth_newPendingTransactionFilter' })
555
+ * // => '0x1'
556
+ * */
557
+ method: 'eth_newPendingTransactionFilter'
558
+ params?: never
559
+ }): Promise<Quantity>
560
+ request(args: {
561
+ /**
562
+ * @description Returns the current Ethereum protocol version
563
+ * @link https://eips.ethereum.org/EIPS/eip-1474
564
+ * @example
565
+ * provider.request({ method: 'eth_protocolVersion' })
566
+ * // => '54'
567
+ * */
568
+ method: 'eth_protocolVersion'
569
+ params?: never
570
+ }): Promise<string>
571
+ request(args: {
572
+ /**
573
+ * @description Sends and already-signed transaction to the network
574
+ * @link https://eips.ethereum.org/EIPS/eip-1474
575
+ * @example
576
+ * provider.request({ method: 'eth_sendRawTransaction', params: ['0x...'] })
577
+ * // => '0x...'
578
+ * */
579
+ method: 'eth_sendRawTransaction'
580
+ params: [signedTransaction: Hex]
581
+ }): Promise<Hex>
582
+ request(args: {
583
+ /**
584
+ * @description Destroys a filter based on filter ID
585
+ * @link https://eips.ethereum.org/EIPS/eip-1474
586
+ * @example
587
+ * provider.request({ method: 'eth_uninstallFilter', params: ['0x1'] })
588
+ * // => true
589
+ * */
590
+ method: 'eth_uninstallFilter'
591
+ params: [
592
+ /** ID of the filter to destroy */
593
+ filterId: Quantity,
594
+ ]
595
+ }): Promise<boolean>
596
+ }
597
+
598
+ export type TestRequests<Name extends string> = {
599
+ request(args: {
600
+ /**
601
+ * @description Add information about compiled contracts
602
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult
603
+ */
604
+ method: `${Name}_addCompilationResult`
605
+ params: any[]
606
+ }): Promise<any>
607
+ request(args: {
608
+ /**
609
+ * @description Remove a transaction from the mempool
610
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_droptransaction
611
+ */
612
+ method: `${Name}_dropTransaction`
613
+ params: [hash: Hash]
614
+ }): Promise<void>
615
+ request(args: {
616
+ /**
617
+ * @description Turn on call traces for transactions that are returned to the user when they execute a transaction (instead of just txhash/receipt).
618
+ */
619
+ method: `${Name}_enableTraces`
620
+ params?: never
621
+ }): Promise<void>
622
+ request(args: {
623
+ /**
624
+ * @description Impersonate an account or contract address.
625
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_impersonateaccount
626
+ */
627
+ method: `${Name}_impersonateAccount`
628
+ params: [address: Address]
629
+ }): Promise<void>
630
+ request(args: {
631
+ /**
632
+ * @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.
633
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_getautomine
634
+ */
635
+ method: `${Name}_getAutomine`
636
+ }): Promise<boolean>
637
+ request(args: {
638
+ /**
639
+ * @description Advance the block number of the network by a certain number of blocks
640
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_mine
641
+ */
642
+ method: `${Name}_mine`
643
+ params: [
644
+ /** Number of blocks to mine. */
645
+ count: Hex,
646
+ /** Interval between each block in seconds. */
647
+ interval: Hex | undefined,
648
+ ]
649
+ }): Promise<void>
650
+ request(args: {
651
+ /**
652
+ * @description Resets the fork.
653
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_reset
654
+ */
655
+ method: `${Name}_reset`
656
+ params: any[]
657
+ }): Promise<void>
658
+ request(args: {
659
+ /**
660
+ * @description Modifies the balance of an account.
661
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setbalance
662
+ */
663
+ method: `${Name}_setBalance`
664
+ params: [
665
+ /** The address of the target account. */
666
+ address: Address,
667
+ /** Amount to send in wei. */
668
+ value: Quantity,
669
+ ]
670
+ }): Promise<void>
671
+ request(args: {
672
+ /**
673
+ * @description Modifies the bytecode stored at an account's address.
674
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcode
675
+ */
676
+ method: `${Name}_setCode`
677
+ params: [
678
+ /** The address of the contract. */
679
+ address: Address,
680
+ /** Data bytecode. */
681
+ data: string,
682
+ ]
683
+ }): Promise<void>
684
+ request(args: {
685
+ /**
686
+ * @description Sets the coinbase address to be used in new blocks.
687
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcoinbase
688
+ */
689
+ method: `${Name}_setCoinbase`
690
+ params: [
691
+ /** The address to set as the coinbase address. */
692
+ address: Address,
693
+ ]
694
+ }): Promise<void>
695
+ request(args: {
696
+ /**
697
+ * @description Enable or disable logging on the test node network.
698
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setcoinbase
699
+ */
700
+ method: `${Name}_setLoggingEnabled`
701
+ params: [enabled: boolean]
702
+ }): Promise<void>
703
+ request(args: {
704
+ /**
705
+ * @description Change the minimum gas price accepted by the network (in wei).
706
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setmingasprice
707
+ */
708
+ method: `${Name}_setMinGasPrice`
709
+ params: [gasPrice: Quantity]
710
+ }): Promise<void>
711
+ request(args: {
712
+ /**
713
+ * @description Sets the base fee of the next block.
714
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setnextblockbasefeepergas
715
+ */
716
+ method: `${Name}_setNextBlockBaseFeePerGas`
717
+ params: [baseFeePerGas: Quantity]
718
+ }): Promise<void>
719
+ request(args: {
720
+ /**
721
+ * @description Modifies an account's nonce by overwriting it.
722
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setnonce
723
+ */
724
+ method: `${Name}_setNonce`
725
+ params: [
726
+ /** The account address. */
727
+ address: Address,
728
+ /** The new nonce. */
729
+ nonce: Quantity,
730
+ ]
731
+ }): Promise<void>
732
+ request(args: {
733
+ /**
734
+ * @description Sets the backend RPC URL.
735
+ */
736
+ method: `${Name}_setRpcUrl`
737
+ params: [url: string]
738
+ }): Promise<void>
739
+ request(args: {
740
+ /**
741
+ * @description Writes a single position of an account's storage.
742
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_setstorageat
743
+ */
744
+ method: `${Name}_setStorageAt`
745
+ params: [
746
+ /** The account address. */
747
+ address: Address,
748
+ /** The storage position index. */
749
+ index: Quantity,
750
+ /** The storage value. */
751
+ value: Quantity,
752
+ ]
753
+ }): Promise<void>
754
+ request(args: {
755
+ /**
756
+ * @description Use this method to stop impersonating an account after having previously used impersonateAccount.
757
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_stopimpersonatingaccount
758
+ */
759
+ method: `${Name}_stopImpersonatingAccount`
760
+ params: [
761
+ /** The address to stop impersonating. */
762
+ address: Address,
763
+ ]
764
+ }): Promise<void>
765
+ request(args: {
766
+ /**
767
+ * @description Jump forward in time by the given amount of time, in seconds.
768
+ * @link https://github.com/trufflesuite/ganache/blob/ef1858d5d6f27e4baeb75cccd57fb3dc77a45ae8/src/chains/ethereum/ethereum/RPC-METHODS.md#evm_increasetime
769
+ */
770
+ method: 'evm_increaseTime'
771
+ params: [seconds: Quantity]
772
+ }): Promise<Quantity>
773
+ request(args: {
774
+ /**
775
+ * @description Enables or disables, based on the single boolean argument, the automatic mining of new blocks with each new transaction submitted to the network.
776
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setautomine
777
+ */
778
+ method: 'evm_setAutomine'
779
+ params: [boolean]
780
+ }): Promise<void>
781
+ request(args: {
782
+ /**
783
+ * @description Sets the block's gas limit.
784
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setblockgaslimit
785
+ */
786
+ method: 'evm_setBlockGasLimit'
787
+ params: [gasLimit: Quantity]
788
+ }): Promise<void>
789
+ request(args: {
790
+ /**
791
+ * @description Similar to `evm_increaseTime` but sets a block timestamp `interval`.
792
+ * The timestamp of the next block will be computed as `lastBlock_timestamp` + `interval`
793
+ */
794
+ method: `${Name}_setBlockTimestampInterval`
795
+ params: [seconds: number]
796
+ }): Promise<void>
797
+ request(args: {
798
+ /**
799
+ * @description Removes `setBlockTimestampInterval` if it exists
800
+ */
801
+ method: `${Name}_removeBlockTimestampInterval`
802
+ }): Promise<void>
803
+ request(args: {
804
+ /**
805
+ * @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.
806
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setintervalmining
807
+ */
808
+ method: 'evm_setIntervalMining'
809
+ params: [number]
810
+ }): Promise<void>
811
+ request(args: {
812
+ /**
813
+ * @description Set the timestamp of the next block.
814
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_setnextblocktimestamp
815
+ */
816
+ method: 'evm_setNextBlockTimestamp'
817
+ params: [Quantity]
818
+ }): Promise<void>
819
+ request(args: {
820
+ /**
821
+ * @description Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the id of the snapshot that was created.
822
+ * @link https://hardhat.org/hardhat-network/docs/reference#evm_snapshot
823
+ */
824
+ method: 'evm_snapshot'
825
+ params?: never
826
+ }): Promise<Quantity>
827
+ request(args: {
828
+ /**
829
+ * @description Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to.
830
+ */
831
+ method: 'evm_revert'
832
+ params?: [id: Quantity]
833
+ }): Promise<void>
834
+ request(args: {
835
+ /**
836
+ * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-content
837
+ */
838
+ method: 'txpool_content'
839
+ params?: never
840
+ }): Promise<{
841
+ pending: Record<Address, Record<string, Transaction>>
842
+ queued: Record<Address, Record<string, Transaction>>
843
+ }>
844
+ request(args: {
845
+ /**
846
+ * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-inspect
847
+ */
848
+ method: 'txpool_inspect'
849
+ params?: never
850
+ }): Promise<{
851
+ pending: Record<Address, Record<string, string>>
852
+ queued: Record<Address, Record<string, string>>
853
+ }>
854
+ request(args: {
855
+ /**
856
+ * @link https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool#txpool-inspect
857
+ */
858
+ method: 'txpool_status'
859
+ params?: never
860
+ }): Promise<{
861
+ pending: Quantity
862
+ queued: Quantity
863
+ }>
864
+ request(args: {
865
+ /**
866
+ * @description Creates, signs, and sends a new transaction to the network regardless of the signature.
867
+ * @link https://eips.ethereum.org/EIPS/eip-1474
868
+ * @example
869
+ * provider.request({ method: 'eth_sendTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
870
+ * // => '0x...'
871
+ * */
872
+ method: 'eth_sendUnsignedTransaction'
873
+ params: [request: TransactionRequest]
874
+ }): Promise<Hash>
875
+ }
876
+
877
+ export type SignableRequests = {
878
+ request(args: {
879
+ /**
880
+ * @description Creates, signs, and sends a new transaction to the network
881
+ * @link https://eips.ethereum.org/EIPS/eip-1474
882
+ * @example
883
+ * provider.request({ method: 'eth_sendTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
884
+ * // => '0x...'
885
+ * */
886
+ method: 'eth_sendTransaction'
887
+ params: [request: TransactionRequest]
888
+ }): Promise<Hash>
889
+ request(args: {
890
+ /**
891
+ * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
892
+ * @link https://eips.ethereum.org/EIPS/eip-1474
893
+ * @example
894
+ * provider.request({ method: 'eth_sign', params: ['0x...', '0x...'] })
895
+ * // => '0x...'
896
+ * */
897
+ method: 'eth_sign'
898
+ params: [
899
+ /** Address to use for signing */
900
+ address: Address,
901
+ /** Data to sign */
902
+ data: Hex,
903
+ ]
904
+ }): Promise<Hex>
905
+ request(args: {
906
+ /**
907
+ * @description Signs a transaction that can be submitted to the network at a later time using with `eth_sendRawTransaction`
908
+ * @link https://eips.ethereum.org/EIPS/eip-1474
909
+ * @example
910
+ * provider.request({ method: 'eth_signTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
911
+ * // => '0x...'
912
+ * */
913
+ method: 'eth_signTransaction'
914
+ params: [request: TransactionRequest]
915
+ }): Promise<Hex>
916
+ request(args: {
917
+ /**
918
+ * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
919
+ * @link https://eips.ethereum.org/EIPS/eip-1474
920
+ * @example
921
+ * provider.request({ method: 'eth_signTypedData', params: [{ from: '0x...', data: [{ type: 'string', name: 'message', value: 'hello world' }] }] })
922
+ * // => '0x...'
923
+ * */
924
+ method: 'eth_signTypedData'
925
+ params: [
926
+ /** Address to use for signing */
927
+ address: Address,
928
+ /** Message to sign containing type information, a domain separator, and data */
929
+ message: Hex,
930
+ ]
931
+ }): Promise<Hex>
932
+ request(args: {
933
+ /**
934
+ * @description Returns information about the status of this client’s network synchronization
935
+ * @link https://eips.ethereum.org/EIPS/eip-1474
936
+ * @example
937
+ * provider.request({ method: 'eth_syncing' })
938
+ * // => { startingBlock: '0x...', currentBlock: '0x...', highestBlock: '0x...' }
939
+ * */
940
+ method: 'eth_syncing'
941
+ params?: never
942
+ }): Promise<NetworkSync | false>
943
+ request(args: {
944
+ /**
945
+ * @description Calculates an Ethereum-specific signature in the form of `keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))`
946
+ * @link https://eips.ethereum.org/EIPS/eip-1474
947
+ * @example
948
+ * provider.request({ method: 'personal_sign', params: ['0x...', '0x...'] })
949
+ * // => '0x...'
950
+ * */
951
+ method: 'personal_sign'
952
+ params: [
953
+ /** Data to sign */
954
+ data: Hex,
955
+ /** Address to use for signing */
956
+ address: Address,
957
+ ]
958
+ }): Promise<Hex>
959
+ }
960
+
961
+ export type WalletRequests = {
962
+ request(args: {
963
+ /**
964
+ * @description Returns a list of addresses owned by this client
965
+ * @link https://eips.ethereum.org/EIPS/eip-1474
966
+ * @example
967
+ * provider.request({ method: 'eth_accounts' })
968
+ * // => ['0x0fB69...']
969
+ * */
970
+ method: 'eth_accounts'
971
+ params?: never
972
+ }): Promise<Address[]>
973
+ request(args: {
974
+ /**
975
+ * @description Requests that the user provides an Ethereum address to be identified by. Typically causes a browser extension popup to appear.
976
+ * @link https://eips.ethereum.org/EIPS/eip-1102
977
+ * @example
978
+ * provider.request({ method: 'eth_requestAccounts' }] })
979
+ * // => ['0x...', '0x...']
980
+ * */
981
+ method: 'eth_requestAccounts'
982
+ params?: never
983
+ }): Promise<Address[]>
984
+ request(args: {
985
+ /**
986
+ * @description Requests the given permissions from the user.
987
+ * @link https://eips.ethereum.org/EIPS/eip-2255
988
+ * @example
989
+ * provider.request({ method: 'wallet_requestPermissions', params: [{ eth_accounts: {} }] })
990
+ * // => { ... }
991
+ * */
992
+ method: 'wallet_requestPermissions'
993
+ params: [permissions: { eth_accounts: Record<string, any> }]
994
+ }): Promise<WalletPermission[]>
995
+ request(args: {
996
+ /**
997
+ * @description Gets the wallets current permissions.
998
+ * @link https://eips.ethereum.org/EIPS/eip-2255
999
+ * @example
1000
+ * provider.request({ method: 'wallet_getPermissions' })
1001
+ * // => { ... }
1002
+ * */
1003
+ method: 'wallet_getPermissions'
1004
+ params?: never
1005
+ }): Promise<WalletPermission[]>
1006
+ request(args: {
1007
+ /**
1008
+ * @description Add an Ethereum chain to the wallet.
1009
+ * @link https://eips.ethereum.org/EIPS/eip-3085
1010
+ * @example
1011
+ * provider.request({ method: 'wallet_addEthereumChain', params: [{ chainId: 1, rpcUrl: 'https://mainnet.infura.io/v3/...' }] })
1012
+ * // => { ... }
1013
+ */
1014
+ method: 'wallet_addEthereumChain'
1015
+ params: [chain: Chain]
1016
+ }): Promise<null>
1017
+ request(args: {
1018
+ /**
1019
+ * @description Switch the wallet to the given Ethereum chain.
1020
+ * @link https://eips.ethereum.org/EIPS/eip-3326
1021
+ * @example
1022
+ * provider.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: '0xf00' }] })
1023
+ * // => { ... }
1024
+ * */
1025
+ method: 'wallet_switchEthereumChain'
1026
+ params: [chain: { chainId: string }]
1027
+ }): Promise<null>
1028
+ /**
1029
+ * @description Requests that the user tracks the token in their wallet. Returns a boolean indicating if the token was successfully added.
1030
+ * @link https://eips.ethereum.org/EIPS/eip-747
1031
+ * @example
1032
+ * provider.request({ method: 'wallet_watchAsset' }] })
1033
+ * // => true
1034
+ * */
1035
+ request(args: {
1036
+ method: 'wallet_watchAsset'
1037
+ params: [WatchAssetParams]
1038
+ }): Promise<boolean>
1039
+ }
1040
+
1041
+ export type Requests = PublicRequests & SignableRequests & WalletRequests