hardhat 2.7.0 → 2.7.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 (326) hide show
  1. package/builtin-tasks/check.js +1 -1
  2. package/builtin-tasks/check.js.map +1 -1
  3. package/builtin-tasks/clean.js +3 -3
  4. package/builtin-tasks/clean.js.map +1 -1
  5. package/builtin-tasks/compile.js +48 -48
  6. package/builtin-tasks/compile.js.map +1 -1
  7. package/builtin-tasks/console.js +3 -3
  8. package/builtin-tasks/console.js.map +1 -1
  9. package/builtin-tasks/flatten.js +8 -6
  10. package/builtin-tasks/flatten.js.map +1 -1
  11. package/builtin-tasks/help.js +2 -2
  12. package/builtin-tasks/help.js.map +1 -1
  13. package/builtin-tasks/node.js +19 -13
  14. package/builtin-tasks/node.js.map +1 -1
  15. package/builtin-tasks/run.js +11 -7
  16. package/builtin-tasks/run.js.map +1 -1
  17. package/builtin-tasks/test.js +11 -11
  18. package/builtin-tasks/test.js.map +1 -1
  19. package/builtin-tasks/utils/solidity-files-cache.js +1 -1
  20. package/builtin-tasks/utils/solidity-files-cache.js.map +1 -1
  21. package/builtin-tasks/utils/watch.d.ts.map +1 -1
  22. package/builtin-tasks/utils/watch.js +4 -2
  23. package/builtin-tasks/utils/watch.js.map +1 -1
  24. package/internal/artifacts.js +17 -17
  25. package/internal/artifacts.js.map +1 -1
  26. package/internal/cli/analytics.js +10 -9
  27. package/internal/cli/analytics.js.map +1 -1
  28. package/internal/cli/autocomplete.js +7 -7
  29. package/internal/cli/autocomplete.js.map +1 -1
  30. package/internal/cli/bootstrap.js +2 -2
  31. package/internal/cli/bootstrap.js.map +1 -1
  32. package/internal/cli/cli.js +16 -16
  33. package/internal/cli/cli.js.map +1 -1
  34. package/internal/cli/project-creation.js +13 -13
  35. package/internal/cli/project-creation.js.map +1 -1
  36. package/internal/constants.d.ts.map +1 -1
  37. package/internal/constants.js +1 -0
  38. package/internal/constants.js.map +1 -1
  39. package/internal/context.d.ts +1 -2
  40. package/internal/context.d.ts.map +1 -1
  41. package/internal/context.js +3 -3
  42. package/internal/context.js.map +1 -1
  43. package/internal/core/config/config-loading.js +6 -6
  44. package/internal/core/config/config-loading.js.map +1 -1
  45. package/internal/core/config/config-resolution.js +8 -8
  46. package/internal/core/config/config-resolution.js.map +1 -1
  47. package/internal/core/config/config-validation.js +30 -30
  48. package/internal/core/config/config-validation.js.map +1 -1
  49. package/internal/core/config/default-config.js +1 -1
  50. package/internal/core/config/default-config.js.map +1 -1
  51. package/internal/core/errors.js +3 -3
  52. package/internal/core/errors.js.map +1 -1
  53. package/internal/core/execution-mode.js +2 -2
  54. package/internal/core/execution-mode.js.map +1 -1
  55. package/internal/core/jsonrpc/types/access-list.d.ts +0 -1
  56. package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -1
  57. package/internal/core/jsonrpc/types/access-list.js +1 -1
  58. package/internal/core/jsonrpc/types/access-list.js.map +1 -1
  59. package/internal/core/jsonrpc/types/base-types.js +9 -9
  60. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  61. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -4
  62. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  63. package/internal/core/jsonrpc/types/input/blockTag.js +3 -3
  64. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
  65. package/internal/core/jsonrpc/types/input/callRequest.d.ts +0 -1
  66. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  67. package/internal/core/jsonrpc/types/input/callRequest.js +9 -9
  68. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  69. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +4 -4
  70. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -1
  71. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +0 -1
  72. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
  73. package/internal/core/jsonrpc/types/input/filterRequest.js +2 -2
  74. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
  75. package/internal/core/jsonrpc/types/input/hardhat-network.js +4 -4
  76. package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -1
  77. package/internal/core/jsonrpc/types/input/logAddress.js +1 -1
  78. package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -1
  79. package/internal/core/jsonrpc/types/input/logTopics.js +1 -1
  80. package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -1
  81. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +0 -1
  82. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  83. package/internal/core/jsonrpc/types/input/transactionRequest.js +10 -10
  84. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  85. package/internal/core/jsonrpc/types/output/block.d.ts +0 -1
  86. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  87. package/internal/core/jsonrpc/types/output/block.js +5 -5
  88. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  89. package/internal/core/jsonrpc/types/output/log.d.ts +0 -1
  90. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
  91. package/internal/core/jsonrpc/types/output/log.js +5 -5
  92. package/internal/core/jsonrpc/types/output/log.js.map +1 -1
  93. package/internal/core/jsonrpc/types/output/receipt.d.ts +0 -1
  94. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
  95. package/internal/core/jsonrpc/types/output/receipt.js +6 -6
  96. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
  97. package/internal/core/jsonrpc/types/output/transaction.d.ts +0 -1
  98. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
  99. package/internal/core/jsonrpc/types/output/transaction.js +9 -9
  100. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
  101. package/internal/core/params/argumentTypes.d.ts.map +1 -1
  102. package/internal/core/params/argumentTypes.js +25 -13
  103. package/internal/core/params/argumentTypes.js.map +1 -1
  104. package/internal/core/params/env-variables.d.ts.map +1 -1
  105. package/internal/core/params/env-variables.js +9 -5
  106. package/internal/core/params/env-variables.js.map +1 -1
  107. package/internal/core/project-structure.js +1 -1
  108. package/internal/core/project-structure.js.map +1 -1
  109. package/internal/core/providers/accounts.d.ts.map +1 -1
  110. package/internal/core/providers/accounts.js +9 -8
  111. package/internal/core/providers/accounts.js.map +1 -1
  112. package/internal/core/providers/backwards-compatibility.js.map +1 -1
  113. package/internal/core/providers/chainId.js +3 -3
  114. package/internal/core/providers/chainId.js.map +1 -1
  115. package/internal/core/providers/construction.js +3 -3
  116. package/internal/core/providers/construction.js.map +1 -1
  117. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  118. package/internal/core/providers/gas-providers.js +19 -17
  119. package/internal/core/providers/gas-providers.js.map +1 -1
  120. package/internal/core/providers/http.js +1 -1
  121. package/internal/core/providers/http.js.map +1 -1
  122. package/internal/core/providers/util.js +1 -1
  123. package/internal/core/providers/util.js.map +1 -1
  124. package/internal/core/providers/wrapper.d.ts.map +1 -1
  125. package/internal/core/runtime-environment.d.ts.map +1 -1
  126. package/internal/core/runtime-environment.js +7 -5
  127. package/internal/core/runtime-environment.js.map +1 -1
  128. package/internal/core/typescript-support.js +4 -4
  129. package/internal/core/typescript-support.js.map +1 -1
  130. package/internal/hardhat-network/jsonrpc/client.js +23 -23
  131. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  132. package/internal/hardhat-network/jsonrpc/handler.js +16 -8
  133. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  134. package/internal/hardhat-network/jsonrpc/server.js +1 -1
  135. package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
  136. package/internal/hardhat-network/provider/BlockchainData.d.ts +1 -1
  137. package/internal/hardhat-network/provider/BlockchainData.js +12 -12
  138. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  139. package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -2
  140. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  141. package/internal/hardhat-network/provider/HardhatStateManager.js +29 -29
  142. package/internal/hardhat-network/provider/HardhatStateManager.js.map +1 -1
  143. package/internal/hardhat-network/provider/PoolState.js +6 -6
  144. package/internal/hardhat-network/provider/PoolState.js.map +1 -1
  145. package/internal/hardhat-network/provider/TxPool.js +19 -19
  146. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  147. package/internal/hardhat-network/provider/filter.js +3 -3
  148. package/internal/hardhat-network/provider/filter.js.map +1 -1
  149. package/internal/hardhat-network/provider/fork/AccountState.js +4 -4
  150. package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -1
  151. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +7 -7
  152. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  153. package/internal/hardhat-network/provider/fork/ForkStateManager.js +34 -34
  154. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  155. package/internal/hardhat-network/provider/fork/random.d.ts +0 -1
  156. package/internal/hardhat-network/provider/fork/random.d.ts.map +1 -1
  157. package/internal/hardhat-network/provider/fork/random.js +13 -8
  158. package/internal/hardhat-network/provider/fork/random.js.map +1 -1
  159. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +1 -0
  160. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  161. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
  162. package/internal/hardhat-network/provider/modules/debug.js +1 -1
  163. package/internal/hardhat-network/provider/modules/debug.js.map +1 -1
  164. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  165. package/internal/hardhat-network/provider/modules/eth.js +86 -84
  166. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  167. package/internal/hardhat-network/provider/modules/evm.js +9 -9
  168. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  169. package/internal/hardhat-network/provider/modules/hardhat.js +16 -16
  170. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  171. package/internal/hardhat-network/provider/modules/logger.js +17 -17
  172. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  173. package/internal/hardhat-network/provider/modules/net.js +2 -2
  174. package/internal/hardhat-network/provider/modules/net.js.map +1 -1
  175. package/internal/hardhat-network/provider/modules/personal.js +2 -2
  176. package/internal/hardhat-network/provider/modules/personal.js.map +1 -1
  177. package/internal/hardhat-network/provider/modules/web3.js +4 -4
  178. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  179. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  180. package/internal/hardhat-network/provider/node.js +66 -55
  181. package/internal/hardhat-network/provider/node.js.map +1 -1
  182. package/internal/hardhat-network/provider/output.js +87 -87
  183. package/internal/hardhat-network/provider/output.js.map +1 -1
  184. package/internal/hardhat-network/provider/provider.js +2 -2
  185. package/internal/hardhat-network/provider/provider.js.map +1 -1
  186. package/internal/hardhat-network/provider/return-data.js +4 -4
  187. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  188. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  189. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  190. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  191. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
  192. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  193. package/internal/hardhat-network/provider/utils/bnToHex.js +1 -1
  194. package/internal/hardhat-network/provider/utils/bnToHex.js.map +1 -1
  195. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
  196. package/internal/hardhat-network/provider/utils/makeAccount.js +4 -4
  197. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  198. package/internal/hardhat-network/provider/utils/makeCommon.js +3 -3
  199. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  200. package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -4
  201. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  202. package/internal/hardhat-network/provider/utils/makeStateTrie.js +1 -1
  203. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  204. package/internal/hardhat-network/provider/utils/txMapToArray.js +1 -1
  205. package/internal/hardhat-network/provider/utils/txMapToArray.js.map +1 -1
  206. package/internal/hardhat-network/stack-traces/compiler-to-model.js +4 -4
  207. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  208. package/internal/hardhat-network/stack-traces/consoleLogger.js +44 -44
  209. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  210. package/internal/hardhat-network/stack-traces/contracts-identifier.js +6 -6
  211. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  212. package/internal/hardhat-network/stack-traces/debug.js +17 -17
  213. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  214. package/internal/hardhat-network/stack-traces/error-inferrer.js +28 -28
  215. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  216. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +3 -3
  217. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +1 -1
  218. package/internal/hardhat-network/stack-traces/model.js +5 -5
  219. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  220. package/internal/hardhat-network/stack-traces/solidity-errors.js +3 -3
  221. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  222. package/internal/hardhat-network/stack-traces/solidityTracer.js +10 -10
  223. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  224. package/internal/hardhat-network/stack-traces/source-maps.js +7 -7
  225. package/internal/hardhat-network/stack-traces/source-maps.js.map +1 -1
  226. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +5 -5
  227. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  228. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +2 -2
  229. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  230. package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -3
  231. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  232. package/internal/lib/hardhat-lib.js +3 -3
  233. package/internal/lib/hardhat-lib.js.map +1 -1
  234. package/internal/reset.js +1 -1
  235. package/internal/reset.js.map +1 -1
  236. package/internal/sentry/anonymizer.js.map +1 -1
  237. package/internal/sentry/reporter.js +5 -5
  238. package/internal/sentry/reporter.js.map +1 -1
  239. package/internal/sentry/subprocess.js +2 -2
  240. package/internal/sentry/subprocess.js.map +1 -1
  241. package/internal/sentry/transport.js +1 -1
  242. package/internal/sentry/transport.js.map +1 -1
  243. package/internal/solidity/compilation-job.js +4 -4
  244. package/internal/solidity/compilation-job.js.map +1 -1
  245. package/internal/solidity/compiler/downloader.d.ts +1 -1
  246. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  247. package/internal/solidity/compiler/downloader.js +21 -7
  248. package/internal/solidity/compiler/downloader.js.map +1 -1
  249. package/internal/solidity/compiler/index.js +1 -1
  250. package/internal/solidity/compiler/index.js.map +1 -1
  251. package/internal/solidity/dependencyGraph.js +2 -1
  252. package/internal/solidity/dependencyGraph.js.map +1 -1
  253. package/internal/solidity/parse.js +3 -2
  254. package/internal/solidity/parse.js.map +1 -1
  255. package/internal/solidity/resolver.js +10 -10
  256. package/internal/solidity/resolver.js.map +1 -1
  257. package/internal/util/abi-helpers.js +1 -1
  258. package/internal/util/abi-helpers.js.map +1 -1
  259. package/internal/util/download.d.ts.map +1 -1
  260. package/internal/util/download.js +12 -1
  261. package/internal/util/download.js.map +1 -1
  262. package/internal/util/global-dir.js +1 -1
  263. package/internal/util/global-dir.js.map +1 -1
  264. package/internal/util/hardforks.d.ts +2 -1
  265. package/internal/util/hardforks.d.ts.map +1 -1
  266. package/internal/util/hardforks.js +3 -1
  267. package/internal/util/hardforks.js.map +1 -1
  268. package/internal/util/jsonrpc.js +1 -1
  269. package/internal/util/jsonrpc.js.map +1 -1
  270. package/internal/util/packageInfo.js +1 -1
  271. package/internal/util/packageInfo.js.map +1 -1
  272. package/internal/util/scripts-runner.js +3 -3
  273. package/internal/util/scripts-runner.js.map +1 -1
  274. package/package.json +10 -10
  275. package/register.js +7 -7
  276. package/register.js.map +1 -1
  277. package/src/builtin-tasks/flatten.ts +4 -2
  278. package/src/builtin-tasks/node.ts +15 -8
  279. package/src/builtin-tasks/run.ts +13 -8
  280. package/src/builtin-tasks/utils/watch.ts +3 -1
  281. package/src/internal/artifacts.ts +3 -3
  282. package/src/internal/cli/autocomplete.ts +3 -3
  283. package/src/internal/cli/bootstrap.ts +1 -1
  284. package/src/internal/cli/cli.ts +1 -1
  285. package/src/internal/cli/project-creation.ts +2 -2
  286. package/src/internal/constants.ts +1 -0
  287. package/src/internal/context.ts +1 -1
  288. package/src/internal/core/config/config-loading.ts +1 -1
  289. package/src/internal/core/config/default-config.ts +1 -1
  290. package/src/internal/core/execution-mode.ts +1 -1
  291. package/src/internal/core/params/argumentTypes.ts +40 -25
  292. package/src/internal/core/params/env-variables.ts +13 -8
  293. package/src/internal/core/providers/accounts.ts +4 -3
  294. package/src/internal/core/providers/backwards-compatibility.ts +1 -1
  295. package/src/internal/core/providers/chainId.ts +1 -1
  296. package/src/internal/core/providers/gas-providers.ts +6 -4
  297. package/src/internal/core/providers/http.ts +1 -1
  298. package/src/internal/core/providers/wrapper.ts +1 -1
  299. package/src/internal/core/runtime-environment.ts +3 -1
  300. package/src/internal/core/typescript-support.ts +2 -2
  301. package/src/internal/hardhat-network/jsonrpc/client.ts +2 -2
  302. package/src/internal/hardhat-network/jsonrpc/handler.ts +12 -2
  303. package/src/internal/hardhat-network/jsonrpc/server.ts +2 -2
  304. package/src/internal/hardhat-network/provider/TxPool.ts +1 -1
  305. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +1 -1
  306. package/src/internal/hardhat-network/provider/modules/eth.ts +23 -21
  307. package/src/internal/hardhat-network/provider/modules/hardhat.ts +1 -1
  308. package/src/internal/hardhat-network/provider/node.ts +23 -11
  309. package/src/internal/hardhat-network/provider/provider.ts +1 -1
  310. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +1 -1
  311. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +1 -1
  312. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +3 -3
  313. package/src/internal/reset.ts +1 -1
  314. package/src/internal/sentry/subprocess.ts +2 -2
  315. package/src/internal/solidity/compiler/downloader.ts +27 -12
  316. package/src/internal/solidity/resolver.ts +1 -1
  317. package/src/internal/util/abi-helpers.ts +1 -1
  318. package/src/internal/util/download.ts +17 -1
  319. package/src/internal/util/hardforks.ts +2 -0
  320. package/src/internal/util/jsonrpc.ts +1 -1
  321. package/src/internal/util/packageInfo.ts +1 -1
  322. package/src/internal/util/scripts-runner.ts +1 -1
  323. package/src/utils/source-names.ts +13 -11
  324. package/utils/source-names.js +7 -5
  325. package/utils/source-names.js.map +1 -1
  326. package/CHANGELOG.md +0 -71
@@ -34,5 +34,5 @@ const childProcess = fork(`${__dirname}/cli`, process.argv.slice(2), {
34
34
  });
35
35
 
36
36
  childProcess.once("close", (status) => {
37
- process.exit(status);
37
+ process.exit(status as number);
38
38
  });
@@ -234,7 +234,7 @@ async function main() {
234
234
  console.log("");
235
235
 
236
236
  try {
237
- Reporter.reportError(error);
237
+ Reporter.reportError(error as Error);
238
238
  } catch (e) {
239
239
  log("Couldn't report error to sentry: %O", e);
240
240
  }
@@ -69,11 +69,11 @@ const ADVANCED_TYPESCRIPT_SAMPLE_PROJECT_DEPENDENCIES: Dependencies = {
69
69
  "@typescript-eslint/eslint-plugin": "^4.29.1",
70
70
  "@typescript-eslint/parser": "^4.29.1",
71
71
  "@types/chai": "^4.2.21",
72
- "@types/node": "^16.4.13",
72
+ "@types/node": "^12.0.0",
73
73
  "@types/mocha": "^9.0.0",
74
74
  "ts-node": "^10.1.0",
75
75
  typechain: "^5.1.2", // a workaround. see https://github.com/nomiclabs/hardhat/issues/1672#issuecomment-894497156
76
- typescript: "^4.3.5",
76
+ typescript: "^4.5.2",
77
77
  };
78
78
 
79
79
  const SAMPLE_PROJECT_DEPENDENCIES: {
@@ -18,6 +18,7 @@ export const HARDHAT_NETWORK_SUPPORTED_HARDFORKS = [
18
18
  "muirGlacier",
19
19
  "berlin",
20
20
  "london",
21
+ "arrowGlacier",
21
22
  ];
22
23
 
23
24
  export const HARDHAT_MEMPOOL_SUPPORTED_ORDERS = <const>["fifo", "priority"];
@@ -10,7 +10,7 @@ import { ERRORS } from "./core/errors-list";
10
10
  import { TasksDSL } from "./core/tasks/dsl";
11
11
  import { getRequireCachedFiles } from "./util/platform";
12
12
 
13
- export type GlobalWithHardhatContext = NodeJS.Global & {
13
+ export type GlobalWithHardhatContext = typeof global & {
14
14
  __hardhatContext: HardhatContext;
15
15
  };
16
16
 
@@ -215,7 +215,7 @@ function readPackageJson(packageName: string): PackageJson | undefined {
215
215
  );
216
216
 
217
217
  return require(packageJsonPath);
218
- } catch (error) {
218
+ } catch {
219
219
  return undefined;
220
220
  }
221
221
  }
@@ -35,7 +35,7 @@ export const defaultHardhatNetworkParams: Omit<
35
35
  HardhatNetworkConfig,
36
36
  "gas" | "initialDate"
37
37
  > = {
38
- hardfork: "london",
38
+ hardfork: "arrowGlacier",
39
39
  blockGasLimit: 30_000_000,
40
40
  gasPrice: HARDHAT_NETWORK_DEFAULT_GAS_PRICE,
41
41
  chainId: 31337,
@@ -22,7 +22,7 @@ export function isHardhatInstalledLocallyOrLinked(configPath?: string) {
22
22
  return (
23
23
  fs.realpathSync(resolvedPackageJson) === fs.realpathSync(thisPackageJson)
24
24
  );
25
- } catch (_) {
25
+ } catch {
26
26
  return false;
27
27
  }
28
28
  }
@@ -185,14 +185,19 @@ export const inputFile: CLIArgumentType<string> = {
185
185
  throw new Error(`${strValue} is a directory, not a file`);
186
186
  }
187
187
  } catch (error) {
188
- throw new HardhatError(
189
- ERRORS.ARGUMENTS.INVALID_INPUT_FILE,
190
- {
191
- name: argName,
192
- value: strValue,
193
- },
194
- error
195
- );
188
+ if (error instanceof Error) {
189
+ throw new HardhatError(
190
+ ERRORS.ARGUMENTS.INVALID_INPUT_FILE,
191
+ {
192
+ name: argName,
193
+ value: strValue,
194
+ },
195
+ error
196
+ );
197
+ }
198
+
199
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
200
+ throw error;
196
201
  }
197
202
 
198
203
  return strValue;
@@ -212,15 +217,20 @@ export const inputFile: CLIArgumentType<string> = {
212
217
  inputFile.parse(argName, value);
213
218
  } catch (error) {
214
219
  // the input value is considered invalid, throw error.
215
- throw new HardhatError(
216
- ERRORS.ARGUMENTS.INVALID_VALUE_FOR_TYPE,
217
- {
218
- value,
219
- name: argName,
220
- type: inputFile.name,
221
- },
222
- error
223
- );
220
+ if (error instanceof Error) {
221
+ throw new HardhatError(
222
+ ERRORS.ARGUMENTS.INVALID_VALUE_FOR_TYPE,
223
+ {
224
+ value,
225
+ name: argName,
226
+ type: inputFile.name,
227
+ },
228
+ error
229
+ );
230
+ }
231
+
232
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
233
+ throw error;
224
234
  }
225
235
  },
226
236
  };
@@ -231,14 +241,19 @@ export const json: CLIArgumentType<any> = {
231
241
  try {
232
242
  return JSON.parse(strValue);
233
243
  } catch (error) {
234
- throw new HardhatError(
235
- ERRORS.ARGUMENTS.INVALID_JSON_ARGUMENT,
236
- {
237
- param: argName,
238
- error: error.message,
239
- },
240
- error
241
- );
244
+ if (error instanceof Error) {
245
+ throw new HardhatError(
246
+ ERRORS.ARGUMENTS.INVALID_JSON_ARGUMENT,
247
+ {
248
+ param: argName,
249
+ error: error.message,
250
+ },
251
+ error
252
+ );
253
+ }
254
+
255
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
256
+ throw error;
242
257
  }
243
258
  },
244
259
 
@@ -48,14 +48,19 @@ export function getEnvHardhatArguments(
48
48
  try {
49
49
  envArgs[paramName] = definition.type.parse(paramName, rawValue);
50
50
  } catch (error) {
51
- throw new HardhatError(
52
- ERRORS.ARGUMENTS.INVALID_ENV_VAR_VALUE,
53
- {
54
- varName: envVarName,
55
- value: rawValue,
56
- },
57
- error
58
- );
51
+ if (error instanceof Error) {
52
+ throw new HardhatError(
53
+ ERRORS.ARGUMENTS.INVALID_ENV_VAR_VALUE,
54
+ {
55
+ varName: envVarName,
56
+ value: rawValue,
57
+ },
58
+ error
59
+ );
60
+ }
61
+
62
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
63
+ throw error;
59
64
  }
60
65
  } else {
61
66
  envArgs[paramName] = definition.defaultValue;
@@ -104,7 +104,7 @@ export class LocalAccountsProvider extends ProviderWrapperWithChainId {
104
104
  if (typeof data === "string") {
105
105
  try {
106
106
  typedMessage = JSON.parse(data);
107
- } catch (error) {
107
+ } catch {
108
108
  throw new HardhatError(
109
109
  ERRORS.NETWORK.ETHSIGN_TYPED_DATA_V4_INVALID_DATA_PARAM
110
110
  );
@@ -219,7 +219,7 @@ export class LocalAccountsProvider extends ProviderWrapperWithChainId {
219
219
  private _getPrivateKeyForAddressOrNull(address: Buffer): Buffer | null {
220
220
  try {
221
221
  return this._getPrivateKeyForAddress(address);
222
- } catch (e) {
222
+ } catch {
223
223
  return null;
224
224
  }
225
225
  }
@@ -253,6 +253,7 @@ export class LocalAccountsProvider extends ProviderWrapperWithChainId {
253
253
  gasLimit: transactionRequest.gas,
254
254
  };
255
255
 
256
+ // TODO: consider changing instances of "london" below to ["latest hardfork"]
256
257
  const common =
257
258
  chains.names[chainId] !== undefined
258
259
  ? new Common({ chain: chainId, hardfork: "london" })
@@ -347,7 +348,7 @@ abstract class SenderProvider extends ProviderWrapper {
347
348
  return this._wrappedProvider.request(args);
348
349
  }
349
350
 
350
- protected abstract async _getSender(): Promise<string | undefined>;
351
+ protected abstract _getSender(): Promise<string | undefined>;
351
352
  }
352
353
 
353
354
  export class AutomaticSenderProvider extends SenderProvider {
@@ -56,7 +56,7 @@ export class BackwardsCompatibilityProviderAdapter
56
56
  method: request.method,
57
57
  params: request.params,
58
58
  });
59
- } catch (error) {
59
+ } catch (error: any) {
60
60
  if (error.code === undefined) {
61
61
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
62
62
  throw error;
@@ -12,7 +12,7 @@ export abstract class ProviderWrapperWithChainId extends ProviderWrapper {
12
12
  if (this._chainId === undefined) {
13
13
  try {
14
14
  this._chainId = await this._getChainIdFromEthChainId();
15
- } catch (error) {
15
+ } catch {
16
16
  // If eth_chainId fails we default to net_version
17
17
  this._chainId = await this._getChainIdFromEthNetVersion();
18
18
  }
@@ -86,9 +86,11 @@ abstract class MultipliedGasEstimationProvider extends ProviderWrapper {
86
86
 
87
87
  return numberToRpcQuantity(gas);
88
88
  } catch (error) {
89
- if (error.message.toLowerCase().includes("execution error")) {
90
- const blockGasLimit = await this._getBlockGasLimit();
91
- return numberToRpcQuantity(blockGasLimit);
89
+ if (error instanceof Error) {
90
+ if (error.message.toLowerCase().includes("execution error")) {
91
+ const blockGasLimit = await this._getBlockGasLimit();
92
+ return numberToRpcQuantity(blockGasLimit);
93
+ }
92
94
  }
93
95
 
94
96
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
@@ -277,7 +279,7 @@ export class AutomaticGasPriceProvider extends ProviderWrapper {
277
279
 
278
280
  maxPriorityFeePerGas: rpcQuantityToBN(response.reward[0][0]),
279
281
  };
280
- } catch (_error) {
282
+ } catch {
281
283
  this._nodeHasFeeHistory = false;
282
284
 
283
285
  return undefined;
@@ -171,7 +171,7 @@ export class HttpProvider extends EventEmitter implements EIP1193Provider {
171
171
  }
172
172
 
173
173
  return parseJsonResponse(await response.text());
174
- } catch (error) {
174
+ } catch (error: any) {
175
175
  if (error.code === "ECONNREFUSED") {
176
176
  throw new HardhatError(
177
177
  ERRORS.NETWORK.NODE_IS_NOT_RUNNING,
@@ -11,7 +11,7 @@ export abstract class ProviderWrapper
11
11
  super(_wrappedProvider);
12
12
  }
13
13
 
14
- public abstract async request(args: RequestArguments): Promise<unknown>;
14
+ public abstract request(args: RequestArguments): Promise<unknown>;
15
15
 
16
16
  protected _getParams<ParamsT extends any[] = any[]>(
17
17
  args: RequestArguments
@@ -266,7 +266,9 @@ export class Environment implements HardhatRuntimeEnvironment {
266
266
  values[paramName] = resolvedArgumentValue;
267
267
  }
268
268
  } catch (error) {
269
- errors.push(error);
269
+ if (HardhatError.isHardhatError(error)) {
270
+ errors.push(error);
271
+ }
270
272
  }
271
273
  return { errors, values };
272
274
  },
@@ -41,13 +41,13 @@ export function isTypescriptSupported() {
41
41
  export function loadTsNode(tsConfigPath?: string) {
42
42
  try {
43
43
  require.resolve("typescript");
44
- } catch (error) {
44
+ } catch {
45
45
  throw new HardhatError(ERRORS.GENERAL.TYPESCRIPT_NOT_INSTALLED);
46
46
  }
47
47
 
48
48
  try {
49
49
  require.resolve("ts-node");
50
- } catch (error) {
50
+ } catch {
51
51
  throw new HardhatError(ERRORS.GENERAL.TS_NODE_NOT_INSTALLED);
52
52
  }
53
53
 
@@ -317,7 +317,7 @@ export class JsonRpcClient {
317
317
  ): Promise<any> {
318
318
  try {
319
319
  return await this._httpProvider.request({ method, params });
320
- } catch (err) {
320
+ } catch (err: any) {
321
321
  if (this._shouldRetry(isRetryCall, err)) {
322
322
  return this._send(method, params, true);
323
323
  }
@@ -429,7 +429,7 @@ export class JsonRpcClient {
429
429
  encoding: "utf8",
430
430
  }
431
431
  );
432
- } catch (error) {
432
+ } catch (error: any) {
433
433
  if (error.code === "ENOENT") {
434
434
  return undefined;
435
435
  }
@@ -207,7 +207,12 @@ const _readJsonHttpRequest = async (req: IncomingMessage): Promise<any> => {
207
207
 
208
208
  json = JSON.parse(text);
209
209
  } catch (error) {
210
- throw new InvalidJsonInputError(`Parse error: ${error.message}`);
210
+ if (error instanceof Error) {
211
+ throw new InvalidJsonInputError(`Parse error: ${error.message}`);
212
+ }
213
+
214
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
215
+ throw error;
211
216
  }
212
217
 
213
218
  return json;
@@ -218,7 +223,12 @@ const _readWsRequest = (msg: string): JsonRpcRequest => {
218
223
  try {
219
224
  json = JSON.parse(msg);
220
225
  } catch (error) {
221
- throw new InvalidJsonInputError(`Parse error: ${error.message}`);
226
+ if (error instanceof Error) {
227
+ throw new InvalidJsonInputError(`Parse error: ${error.message}`);
228
+ }
229
+
230
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
231
+ throw error;
222
232
  }
223
233
 
224
234
  return json;
@@ -72,7 +72,7 @@ export class JsonRpcServer implements IJsonRpcServer {
72
72
 
73
73
  public close = async () => {
74
74
  await Promise.all([
75
- new Promise((resolve, reject) => {
75
+ new Promise<void>((resolve, reject) => {
76
76
  log("Closing JSON-RPC server");
77
77
  this._httpServer.close((err) => {
78
78
  if (err !== null && err !== undefined) {
@@ -85,7 +85,7 @@ export class JsonRpcServer implements IJsonRpcServer {
85
85
  resolve();
86
86
  });
87
87
  }),
88
- new Promise((resolve, reject) => {
88
+ new Promise<void>((resolve, reject) => {
89
89
  log("Closing websocket server");
90
90
  this._wsServer.close((err) => {
91
91
  if (err !== null && err !== undefined) {
@@ -332,7 +332,7 @@ export class TxPool {
332
332
  private _getSenderAddress(tx: TypedTransaction): Address {
333
333
  try {
334
334
  return tx.getSenderAddress(); // verifies signature
335
- } catch (e) {
335
+ } catch (e: any) {
336
336
  if (!tx.isSigned()) {
337
337
  throw new InvalidInputError("Invalid Signature");
338
338
  }
@@ -272,7 +272,7 @@ export class ForkBlockchain implements HardhatBlockchainInterface {
272
272
  // one for London.
273
273
  const common = this._common.copy();
274
274
  if (rpcBlock.baseFeePerGas !== undefined) {
275
- common.setHardfork("london");
275
+ common.setHardfork("london"); // TODO: consider changing this to "latest hardfork"
276
276
  } else {
277
277
  common.setHardfork("berlin");
278
278
  }
@@ -959,29 +959,31 @@ export class EthModule {
959
959
  // AccessListEIP2930Transaction.fromSerializedTx and Transaction.fromSerializedTx
960
960
  // Please keep it updated.
961
961
 
962
- if (error.message === "invalid remainder") {
963
- throw new InvalidArgumentsError("Invalid transaction", error);
964
- }
962
+ if (error instanceof Error) {
963
+ if (error.message === "invalid remainder") {
964
+ throw new InvalidArgumentsError("Invalid transaction", error);
965
+ }
965
966
 
966
- if (error.message.includes("Incompatible EIP155")) {
967
- throw new InvalidArgumentsError(
968
- "Trying to send an incompatible EIP-155 transaction, signed for another chain.",
969
- error
970
- );
971
- }
967
+ if (error.message.includes("Incompatible EIP155")) {
968
+ throw new InvalidArgumentsError(
969
+ "Trying to send an incompatible EIP-155 transaction, signed for another chain.",
970
+ error
971
+ );
972
+ }
972
973
 
973
- if (
974
- error.message.includes("TypedTransaction with ID") &&
975
- error.message.includes(" unknown")
976
- ) {
977
- throw new InvalidArgumentsError(`Invalid transaction`, error);
978
- }
974
+ if (
975
+ error.message.includes("TypedTransaction with ID") &&
976
+ error.message.includes(" unknown")
977
+ ) {
978
+ throw new InvalidArgumentsError(`Invalid transaction`, error);
979
+ }
979
980
 
980
- if (error.message.includes("The chain ID does not match")) {
981
- throw new InvalidArgumentsError(
982
- `Trying to send a raw transaction with an invalid chainId. The expected chainId is ${this._common.chainIdBN()}`,
983
- error
984
- );
981
+ if (error.message.includes("The chain ID does not match")) {
982
+ throw new InvalidArgumentsError(
983
+ `Trying to send a raw transaction with an invalid chainId. The expected chainId is ${this._common.chainIdBN()}`,
984
+ error
985
+ );
986
+ }
985
987
  }
986
988
 
987
989
  throw error;
@@ -1065,7 +1067,7 @@ export class EthModule {
1065
1067
  if (typeof typedData === "string") {
1066
1068
  try {
1067
1069
  typedMessage = JSON.parse(typedData);
1068
- } catch (error) {
1070
+ } catch {
1069
1071
  throw new InvalidInputError(
1070
1072
  `The message parameter is an invalid JSON. Either pass a valid JSON or a plain object conforming to EIP712 TypedData schema.`
1071
1073
  );
@@ -245,7 +245,7 @@ export class HardhatModule {
245
245
 
246
246
  if (this._node.isEip1559Active()) {
247
247
  throw new InvalidInputError(
248
- "hardhat_setMinGasPrice is not support when EIP-1559 is active"
248
+ "hardhat_setMinGasPrice is not supported when EIP-1559 is active"
249
249
  );
250
250
  }
251
251
 
@@ -268,7 +268,7 @@ The hardfork must be at least spuriousDragon, but ${common.hardfork()} was given
268
268
  let upstreamCommon: Common;
269
269
  try {
270
270
  upstreamCommon = new Common({ chain: remoteChainId });
271
- } catch (error) {
271
+ } catch {
272
272
  // If ethereumjs doesn't have a common it will throw and we won't have
273
273
  // info about the activation block of each hardfork, so we don't run
274
274
  // this validation.
@@ -369,7 +369,9 @@ Hardhat Network's forking functionality only works with blocks from at least spu
369
369
  error
370
370
  );
371
371
 
372
- Reporter.reportError(error);
372
+ if (error instanceof Error) {
373
+ Reporter.reportError(error);
374
+ }
373
375
  }
374
376
  }
375
377
 
@@ -436,16 +438,21 @@ Hardhat Network's forking functionality only works with blocks from at least spu
436
438
  try {
437
439
  result = await this._mineBlockWithPendingTxs(blockTimestamp);
438
440
  } catch (err) {
439
- if (err?.message.includes("sender doesn't have enough funds")) {
440
- throw new InvalidInputError(err.message, err);
441
- }
441
+ if (err instanceof Error) {
442
+ if (err?.message.includes("sender doesn't have enough funds")) {
443
+ throw new InvalidInputError(err.message, err);
444
+ }
445
+
446
+ // Some network errors are HardhatErrors, and can end up here when forking
447
+ if (HardhatError.isHardhatError(err)) {
448
+ throw err;
449
+ }
442
450
 
443
- // Some network errors are HardhatErrors, and can end up here when forking
444
- if (HardhatError.isHardhatError(err)) {
445
- throw err;
451
+ throw new TransactionExecutionError(err);
446
452
  }
447
453
 
448
- throw new TransactionExecutionError(err);
454
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
455
+ throw err;
449
456
  }
450
457
 
451
458
  await this._saveBlockAsSuccessfullyRun(result.block, result.blockResult);
@@ -1508,7 +1515,12 @@ Hardhat Network's forking functionality only works with blocks from at least spu
1508
1515
  try {
1509
1516
  sender = tx.getSenderAddress(); // verifies signature as a side effect
1510
1517
  } catch (e) {
1511
- throw new InvalidInputError(e.message);
1518
+ if (e instanceof Error) {
1519
+ throw new InvalidInputError(e.message);
1520
+ }
1521
+
1522
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
1523
+ throw e;
1512
1524
  }
1513
1525
 
1514
1526
  // validate nonce
@@ -2336,7 +2348,7 @@ function getCommonForTracing(networkId: number, blockNumber: number): Common {
2336
2348
  common.setHardfork(common.activeHardfork(blockNumber));
2337
2349
 
2338
2350
  return common;
2339
- } catch (e) {
2351
+ } catch {
2340
2352
  throw new InternalError(
2341
2353
  `Network id ${networkId} does not correspond to a network that Hardhat can trace`
2342
2354
  );
@@ -164,7 +164,7 @@ export class HardhatNetworkProvider
164
164
  this._logger.printFailedMethod(method);
165
165
  this._logger.printLogs();
166
166
 
167
- if (!this._logger.isLoggedError(err)) {
167
+ if (err instanceof Error && !this._logger.isLoggedError(err)) {
168
168
  if (ProviderError.isProviderError(err)) {
169
169
  this._logger.printEmptyLine();
170
170
  this._logger.printErrorMessage(err.message);
@@ -57,7 +57,7 @@ export class ReadOnlyValidEIP1559Transaction extends FeeMarketEIP1559Transaction
57
57
  constructor(sender: Address, data: FeeMarketEIP1559TxData = {}) {
58
58
  const fakeCommon = new Common({
59
59
  chain: "mainnet",
60
- hardfork: "london",
60
+ hardfork: "london", // TODO: consider chaning this to ["latest hardfork"]
61
61
  });
62
62
 
63
63
  // this class should only be used with txs in a hardfork that
@@ -36,7 +36,7 @@ export async function wrapWithSolidityErrorsCorrection(
36
36
 
37
37
  try {
38
38
  return await f();
39
- } catch (error) {
39
+ } catch (error: any) {
40
40
  if (error.stackTrace === undefined) {
41
41
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
42
42
  throw error;
@@ -160,7 +160,7 @@ export class VMTracer {
160
160
  if (this._throwErrors) {
161
161
  next(error);
162
162
  } else {
163
- this._lastError = error;
163
+ this._lastError = error as Error;
164
164
  next();
165
165
  }
166
166
  }
@@ -187,7 +187,7 @@ export class VMTracer {
187
187
  if (this._throwErrors) {
188
188
  next(error);
189
189
  } else {
190
- this._lastError = error;
190
+ this._lastError = error as Error;
191
191
  next();
192
192
  }
193
193
  }
@@ -219,7 +219,7 @@ export class VMTracer {
219
219
  if (this._throwErrors) {
220
220
  next(error);
221
221
  } else {
222
- this._lastError = error;
222
+ this._lastError = error as Error;
223
223
  next();
224
224
  }
225
225
  }
@@ -29,7 +29,7 @@ export function resetHardhatContext() {
29
29
  function unloadModule(path: string) {
30
30
  try {
31
31
  delete require.cache[require.resolve(path)];
32
- } catch (err) {
32
+ } catch {
33
33
  // module wasn't loaded
34
34
  }
35
35
  }
@@ -36,7 +36,7 @@ async function main() {
36
36
  let event: any;
37
37
  try {
38
38
  event = JSON.parse(serializedEvent);
39
- } catch (error) {
39
+ } catch {
40
40
  log(
41
41
  "HARDHAT_SENTRY_EVENT env variable doesn't have a valid JSON, exiting: %o",
42
42
  serializedEvent
@@ -62,7 +62,7 @@ async function main() {
62
62
  `There was an error anonymizing an event: ${anonymizedEvent.value}`
63
63
  );
64
64
  }
65
- } catch (error) {
65
+ } catch (error: any) {
66
66
  log("Couldn't capture event %o, got error %O", event, error);
67
67
  Sentry.captureMessage(
68
68
  `There was an error capturing an event: ${error.message}`