hardhat 2.6.6 → 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 (389) 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 +57 -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 +45 -22
  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.d.ts +49 -0
  25. package/internal/artifacts.d.ts.map +1 -1
  26. package/internal/artifacts.js +204 -68
  27. package/internal/artifacts.js.map +1 -1
  28. package/internal/cli/analytics.js +11 -10
  29. package/internal/cli/analytics.js.map +1 -1
  30. package/internal/cli/autocomplete.js +7 -7
  31. package/internal/cli/autocomplete.js.map +1 -1
  32. package/internal/cli/bootstrap.js +2 -2
  33. package/internal/cli/bootstrap.js.map +1 -1
  34. package/internal/cli/cli.js +16 -16
  35. package/internal/cli/cli.js.map +1 -1
  36. package/internal/cli/project-creation.js +13 -13
  37. package/internal/cli/project-creation.js.map +1 -1
  38. package/internal/constants.d.ts +2 -0
  39. package/internal/constants.d.ts.map +1 -1
  40. package/internal/constants.js +4 -1
  41. package/internal/constants.js.map +1 -1
  42. package/internal/context.d.ts +1 -2
  43. package/internal/context.d.ts.map +1 -1
  44. package/internal/context.js +3 -3
  45. package/internal/context.js.map +1 -1
  46. package/internal/core/config/config-loading.d.ts.map +1 -1
  47. package/internal/core/config/config-loading.js +22 -8
  48. package/internal/core/config/config-loading.js.map +1 -1
  49. package/internal/core/config/config-resolution.d.ts.map +1 -1
  50. package/internal/core/config/config-resolution.js +29 -8
  51. package/internal/core/config/config-resolution.js.map +1 -1
  52. package/internal/core/config/config-validation.d.ts +1 -0
  53. package/internal/core/config/config-validation.d.ts.map +1 -1
  54. package/internal/core/config/config-validation.js +113 -38
  55. package/internal/core/config/config-validation.js.map +1 -1
  56. package/internal/core/config/default-config.d.ts +1 -0
  57. package/internal/core/config/default-config.d.ts.map +1 -1
  58. package/internal/core/config/default-config.js +12 -5
  59. package/internal/core/config/default-config.js.map +1 -1
  60. package/internal/core/errors-list.d.ts +14 -0
  61. package/internal/core/errors-list.d.ts.map +1 -1
  62. package/internal/core/errors-list.js +21 -2
  63. package/internal/core/errors-list.js.map +1 -1
  64. package/internal/core/errors.js +3 -3
  65. package/internal/core/errors.js.map +1 -1
  66. package/internal/core/execution-mode.js +2 -2
  67. package/internal/core/execution-mode.js.map +1 -1
  68. package/internal/core/jsonrpc/types/access-list.d.ts +0 -1
  69. package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -1
  70. package/internal/core/jsonrpc/types/access-list.js +1 -1
  71. package/internal/core/jsonrpc/types/access-list.js.map +1 -1
  72. package/internal/core/jsonrpc/types/base-types.js +9 -9
  73. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  74. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -4
  75. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  76. package/internal/core/jsonrpc/types/input/blockTag.js +3 -3
  77. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
  78. package/internal/core/jsonrpc/types/input/callRequest.d.ts +0 -1
  79. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  80. package/internal/core/jsonrpc/types/input/callRequest.js +9 -9
  81. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  82. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +4 -4
  83. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -1
  84. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +0 -1
  85. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
  86. package/internal/core/jsonrpc/types/input/filterRequest.js +2 -2
  87. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
  88. package/internal/core/jsonrpc/types/input/hardhat-network.js +4 -4
  89. package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -1
  90. package/internal/core/jsonrpc/types/input/logAddress.js +1 -1
  91. package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -1
  92. package/internal/core/jsonrpc/types/input/logTopics.js +1 -1
  93. package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -1
  94. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +0 -1
  95. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  96. package/internal/core/jsonrpc/types/input/transactionRequest.js +10 -10
  97. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  98. package/internal/core/jsonrpc/types/output/block.d.ts +0 -1
  99. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  100. package/internal/core/jsonrpc/types/output/block.js +5 -5
  101. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  102. package/internal/core/jsonrpc/types/output/log.d.ts +1 -1
  103. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
  104. package/internal/core/jsonrpc/types/output/log.js +5 -4
  105. package/internal/core/jsonrpc/types/output/log.js.map +1 -1
  106. package/internal/core/jsonrpc/types/output/receipt.d.ts +1 -1
  107. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
  108. package/internal/core/jsonrpc/types/output/receipt.js +6 -6
  109. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
  110. package/internal/core/jsonrpc/types/output/transaction.d.ts +0 -1
  111. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
  112. package/internal/core/jsonrpc/types/output/transaction.js +9 -9
  113. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
  114. package/internal/core/params/argumentTypes.d.ts.map +1 -1
  115. package/internal/core/params/argumentTypes.js +25 -13
  116. package/internal/core/params/argumentTypes.js.map +1 -1
  117. package/internal/core/params/env-variables.d.ts.map +1 -1
  118. package/internal/core/params/env-variables.js +9 -5
  119. package/internal/core/params/env-variables.js.map +1 -1
  120. package/internal/core/params/hardhat-params.js +2 -2
  121. package/internal/core/params/hardhat-params.js.map +1 -1
  122. package/internal/core/project-structure.js +1 -1
  123. package/internal/core/project-structure.js.map +1 -1
  124. package/internal/core/providers/accounts.d.ts.map +1 -1
  125. package/internal/core/providers/accounts.js +22 -7
  126. package/internal/core/providers/accounts.js.map +1 -1
  127. package/internal/core/providers/backwards-compatibility.js.map +1 -1
  128. package/internal/core/providers/chainId.js +3 -3
  129. package/internal/core/providers/chainId.js.map +1 -1
  130. package/internal/core/providers/construction.d.ts.map +1 -1
  131. package/internal/core/providers/construction.js +6 -4
  132. package/internal/core/providers/construction.js.map +1 -1
  133. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  134. package/internal/core/providers/gas-providers.js +20 -18
  135. package/internal/core/providers/gas-providers.js.map +1 -1
  136. package/internal/core/providers/http.js +1 -1
  137. package/internal/core/providers/http.js.map +1 -1
  138. package/internal/core/providers/util.js +1 -1
  139. package/internal/core/providers/util.js.map +1 -1
  140. package/internal/core/providers/wrapper.d.ts.map +1 -1
  141. package/internal/core/runtime-environment.d.ts.map +1 -1
  142. package/internal/core/runtime-environment.js +7 -5
  143. package/internal/core/runtime-environment.js.map +1 -1
  144. package/internal/core/typescript-support.d.ts +1 -1
  145. package/internal/core/typescript-support.d.ts.map +1 -1
  146. package/internal/core/typescript-support.js +8 -5
  147. package/internal/core/typescript-support.js.map +1 -1
  148. package/internal/hardhat-network/jsonrpc/client.d.ts +2 -0
  149. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  150. package/internal/hardhat-network/jsonrpc/client.js +23 -23
  151. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  152. package/internal/hardhat-network/jsonrpc/handler.js +16 -8
  153. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  154. package/internal/hardhat-network/jsonrpc/server.js +1 -1
  155. package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
  156. package/internal/hardhat-network/provider/BlockchainData.d.ts +1 -1
  157. package/internal/hardhat-network/provider/BlockchainData.js +12 -12
  158. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  159. package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -2
  160. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  161. package/internal/hardhat-network/provider/HardhatStateManager.js +29 -29
  162. package/internal/hardhat-network/provider/HardhatStateManager.js.map +1 -1
  163. package/internal/hardhat-network/provider/PoolState.js +6 -6
  164. package/internal/hardhat-network/provider/PoolState.js.map +1 -1
  165. package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -1
  166. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
  167. package/internal/hardhat-network/provider/TransactionQueue.js +16 -2
  168. package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
  169. package/internal/hardhat-network/provider/TxPool.js +19 -19
  170. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  171. package/internal/hardhat-network/provider/filter.js +3 -3
  172. package/internal/hardhat-network/provider/filter.js.map +1 -1
  173. package/internal/hardhat-network/provider/fork/AccountState.js +4 -4
  174. package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -1
  175. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  176. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +8 -10
  177. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  178. package/internal/hardhat-network/provider/fork/ForkStateManager.js +34 -34
  179. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  180. package/internal/hardhat-network/provider/fork/random.d.ts +0 -1
  181. package/internal/hardhat-network/provider/fork/random.d.ts.map +1 -1
  182. package/internal/hardhat-network/provider/fork/random.js +13 -8
  183. package/internal/hardhat-network/provider/fork/random.js.map +1 -1
  184. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +1 -0
  185. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  186. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
  187. package/internal/hardhat-network/provider/modules/debug.js +1 -1
  188. package/internal/hardhat-network/provider/modules/debug.js.map +1 -1
  189. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  190. package/internal/hardhat-network/provider/modules/eth.js +86 -84
  191. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  192. package/internal/hardhat-network/provider/modules/evm.js +9 -9
  193. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  194. package/internal/hardhat-network/provider/modules/hardhat.d.ts +3 -0
  195. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  196. package/internal/hardhat-network/provider/modules/hardhat.js +31 -15
  197. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  198. package/internal/hardhat-network/provider/modules/logger.js +17 -17
  199. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  200. package/internal/hardhat-network/provider/modules/net.js +2 -2
  201. package/internal/hardhat-network/provider/modules/net.js.map +1 -1
  202. package/internal/hardhat-network/provider/modules/personal.d.ts +9 -0
  203. package/internal/hardhat-network/provider/modules/personal.d.ts.map +1 -0
  204. package/internal/hardhat-network/provider/modules/personal.js +31 -0
  205. package/internal/hardhat-network/provider/modules/personal.js.map +1 -0
  206. package/internal/hardhat-network/provider/modules/web3.js +4 -4
  207. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  208. package/internal/hardhat-network/provider/node-types.d.ts +5 -0
  209. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  210. package/internal/hardhat-network/provider/node-types.js.map +1 -1
  211. package/internal/hardhat-network/provider/node.d.ts +4 -1
  212. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  213. package/internal/hardhat-network/provider/node.js +107 -71
  214. package/internal/hardhat-network/provider/node.js.map +1 -1
  215. package/internal/hardhat-network/provider/output.d.ts +1 -1
  216. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  217. package/internal/hardhat-network/provider/output.js +94 -91
  218. package/internal/hardhat-network/provider/output.js.map +1 -1
  219. package/internal/hardhat-network/provider/provider.d.ts +6 -2
  220. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  221. package/internal/hardhat-network/provider/provider.js +14 -4
  222. package/internal/hardhat-network/provider/provider.js.map +1 -1
  223. package/internal/hardhat-network/provider/return-data.js +4 -4
  224. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  225. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  226. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  227. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  228. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
  229. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  230. package/internal/hardhat-network/provider/utils/bnToHex.js +1 -1
  231. package/internal/hardhat-network/provider/utils/bnToHex.js.map +1 -1
  232. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
  233. package/internal/hardhat-network/provider/utils/makeAccount.js +4 -4
  234. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  235. package/internal/hardhat-network/provider/utils/makeCommon.js +3 -3
  236. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  237. package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -4
  238. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  239. package/internal/hardhat-network/provider/utils/makeStateTrie.js +1 -1
  240. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  241. package/internal/hardhat-network/provider/utils/txMapToArray.js +1 -1
  242. package/internal/hardhat-network/provider/utils/txMapToArray.js.map +1 -1
  243. package/internal/hardhat-network/stack-traces/compiler-to-model.js +4 -4
  244. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  245. package/internal/hardhat-network/stack-traces/consoleLogger.js +44 -44
  246. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  247. package/internal/hardhat-network/stack-traces/contracts-identifier.js +6 -6
  248. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  249. package/internal/hardhat-network/stack-traces/debug.js +17 -17
  250. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  251. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  252. package/internal/hardhat-network/stack-traces/error-inferrer.js +42 -28
  253. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  254. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +3 -3
  255. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +1 -1
  256. package/internal/hardhat-network/stack-traces/model.js +5 -5
  257. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  258. package/internal/hardhat-network/stack-traces/solidity-errors.js +3 -3
  259. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  260. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +1 -1
  261. package/internal/hardhat-network/stack-traces/solidityTracer.js +11 -11
  262. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  263. package/internal/hardhat-network/stack-traces/source-maps.js +7 -7
  264. package/internal/hardhat-network/stack-traces/source-maps.js.map +1 -1
  265. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +5 -5
  266. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  267. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +2 -2
  268. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  269. package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -3
  270. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  271. package/internal/lib/hardhat-lib.js +3 -3
  272. package/internal/lib/hardhat-lib.js.map +1 -1
  273. package/internal/reset.js +1 -1
  274. package/internal/reset.js.map +1 -1
  275. package/internal/sentry/anonymizer.js.map +1 -1
  276. package/internal/sentry/reporter.js +5 -5
  277. package/internal/sentry/reporter.js.map +1 -1
  278. package/internal/sentry/subprocess.js +2 -2
  279. package/internal/sentry/subprocess.js.map +1 -1
  280. package/internal/sentry/transport.js +1 -1
  281. package/internal/sentry/transport.js.map +1 -1
  282. package/internal/solidity/compilation-job.js +4 -4
  283. package/internal/solidity/compilation-job.js.map +1 -1
  284. package/internal/solidity/compiler/downloader.d.ts +1 -1
  285. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  286. package/internal/solidity/compiler/downloader.js +21 -7
  287. package/internal/solidity/compiler/downloader.js.map +1 -1
  288. package/internal/solidity/compiler/index.js +1 -1
  289. package/internal/solidity/compiler/index.js.map +1 -1
  290. package/internal/solidity/dependencyGraph.js +2 -1
  291. package/internal/solidity/dependencyGraph.js.map +1 -1
  292. package/internal/solidity/parse.js +3 -2
  293. package/internal/solidity/parse.js.map +1 -1
  294. package/internal/solidity/resolver.js +10 -10
  295. package/internal/solidity/resolver.js.map +1 -1
  296. package/internal/util/abi-helpers.js +1 -1
  297. package/internal/util/abi-helpers.js.map +1 -1
  298. package/internal/util/download.d.ts.map +1 -1
  299. package/internal/util/download.js +12 -1
  300. package/internal/util/download.js.map +1 -1
  301. package/internal/util/global-dir.js +1 -1
  302. package/internal/util/global-dir.js.map +1 -1
  303. package/internal/util/hardforks.d.ts +2 -1
  304. package/internal/util/hardforks.d.ts.map +1 -1
  305. package/internal/util/hardforks.js +3 -1
  306. package/internal/util/hardforks.js.map +1 -1
  307. package/internal/util/jsonrpc.js +1 -1
  308. package/internal/util/jsonrpc.js.map +1 -1
  309. package/internal/util/packageInfo.js +1 -1
  310. package/internal/util/packageInfo.js.map +1 -1
  311. package/internal/util/scripts-runner.js +3 -3
  312. package/internal/util/scripts-runner.js.map +1 -1
  313. package/package.json +14 -14
  314. package/register.js +7 -7
  315. package/register.js.map +1 -1
  316. package/src/builtin-tasks/compile.ts +14 -0
  317. package/src/builtin-tasks/flatten.ts +4 -2
  318. package/src/builtin-tasks/node.ts +56 -17
  319. package/src/builtin-tasks/run.ts +13 -8
  320. package/src/builtin-tasks/utils/watch.ts +3 -1
  321. package/src/internal/artifacts.ts +269 -72
  322. package/src/internal/cli/analytics.ts +1 -1
  323. package/src/internal/cli/autocomplete.ts +3 -3
  324. package/src/internal/cli/bootstrap.ts +1 -1
  325. package/src/internal/cli/cli.ts +2 -2
  326. package/src/internal/cli/project-creation.ts +2 -2
  327. package/src/internal/constants.ts +4 -0
  328. package/src/internal/context.ts +1 -1
  329. package/src/internal/core/config/config-loading.ts +25 -3
  330. package/src/internal/core/config/config-resolution.ts +28 -0
  331. package/src/internal/core/config/config-validation.ts +147 -15
  332. package/src/internal/core/config/default-config.ts +10 -3
  333. package/src/internal/core/errors-list.ts +21 -2
  334. package/src/internal/core/execution-mode.ts +1 -1
  335. package/src/internal/core/jsonrpc/types/output/log.ts +1 -0
  336. package/src/internal/core/params/argumentTypes.ts +40 -25
  337. package/src/internal/core/params/env-variables.ts +13 -8
  338. package/src/internal/core/params/hardhat-params.ts +2 -2
  339. package/src/internal/core/providers/accounts.ts +23 -3
  340. package/src/internal/core/providers/backwards-compatibility.ts +1 -1
  341. package/src/internal/core/providers/chainId.ts +1 -1
  342. package/src/internal/core/providers/construction.ts +8 -2
  343. package/src/internal/core/providers/gas-providers.ts +7 -5
  344. package/src/internal/core/providers/http.ts +1 -1
  345. package/src/internal/core/providers/wrapper.ts +1 -1
  346. package/src/internal/core/runtime-environment.ts +3 -1
  347. package/src/internal/core/typescript-support.ts +7 -3
  348. package/src/internal/hardhat-network/jsonrpc/client.ts +2 -2
  349. package/src/internal/hardhat-network/jsonrpc/handler.ts +12 -2
  350. package/src/internal/hardhat-network/jsonrpc/server.ts +2 -2
  351. package/src/internal/hardhat-network/provider/TransactionQueue.ts +31 -4
  352. package/src/internal/hardhat-network/provider/TxPool.ts +1 -1
  353. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +2 -4
  354. package/src/internal/hardhat-network/provider/modules/eth.ts +23 -21
  355. package/src/internal/hardhat-network/provider/modules/hardhat.ts +24 -1
  356. package/src/internal/hardhat-network/provider/modules/personal.ts +39 -0
  357. package/src/internal/hardhat-network/provider/node-types.ts +6 -0
  358. package/src/internal/hardhat-network/provider/node.ts +68 -26
  359. package/src/internal/hardhat-network/provider/output.ts +9 -9
  360. package/src/internal/hardhat-network/provider/provider.ts +16 -2
  361. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +1 -1
  362. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +19 -0
  363. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +1 -1
  364. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +1 -1
  365. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +3 -3
  366. package/src/internal/reset.ts +1 -1
  367. package/src/internal/sentry/subprocess.ts +2 -2
  368. package/src/internal/solidity/compiler/downloader.ts +27 -12
  369. package/src/internal/solidity/resolver.ts +1 -1
  370. package/src/internal/util/abi-helpers.ts +1 -1
  371. package/src/internal/util/download.ts +17 -1
  372. package/src/internal/util/hardforks.ts +2 -0
  373. package/src/internal/util/jsonrpc.ts +1 -1
  374. package/src/internal/util/packageInfo.ts +1 -1
  375. package/src/internal/util/scripts-runner.ts +1 -1
  376. package/src/register.ts +1 -1
  377. package/src/types/config.ts +14 -0
  378. package/src/utils/contract-names.ts +112 -0
  379. package/src/utils/source-names.ts +14 -12
  380. package/types/config.d.ts +10 -0
  381. package/types/config.d.ts.map +1 -1
  382. package/utils/contract-names.d.ts +10 -0
  383. package/utils/contract-names.d.ts.map +1 -1
  384. package/utils/contract-names.js +92 -1
  385. package/utils/contract-names.js.map +1 -1
  386. package/utils/source-names.d.ts +1 -1
  387. package/utils/source-names.js +8 -6
  388. package/utils/source-names.js.map +1 -1
  389. package/CHANGELOG.md +0 -32
@@ -32,6 +32,7 @@ import { EthModule } from "./modules/eth";
32
32
  import { EvmModule } from "./modules/evm";
33
33
  import { HardhatModule } from "./modules/hardhat";
34
34
  import { ModulesLogger } from "./modules/logger";
35
+ import { PersonalModule } from "./modules/personal";
35
36
  import { NetModule } from "./modules/net";
36
37
  import { Web3Module } from "./modules/web3";
37
38
  import { HardhatNode } from "./node";
@@ -39,6 +40,7 @@ import {
39
40
  ForkConfig,
40
41
  GenesisAccount,
41
42
  IntervalMiningConfig,
43
+ MempoolOrder,
42
44
  NodeConfig,
43
45
  TracingConfig,
44
46
  } from "./node-types";
@@ -53,6 +55,8 @@ const PRIVATE_RPC_METHODS = new Set([
53
55
 
54
56
  /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
55
57
 
58
+ export const DEFAULT_COINBASE = "0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e";
59
+
56
60
  export class HardhatNetworkProvider
57
61
  extends EventEmitter
58
62
  implements EIP1193Provider
@@ -65,6 +69,7 @@ export class HardhatNetworkProvider
65
69
  private _evmModule?: EvmModule;
66
70
  private _hardhatModule?: HardhatModule;
67
71
  private _debugModule?: DebugModule;
72
+ private _personalModule?: PersonalModule;
68
73
  private readonly _mutex = new Mutex();
69
74
 
70
75
  constructor(
@@ -79,6 +84,7 @@ export class HardhatNetworkProvider
79
84
  private readonly _throwOnCallFailures: boolean,
80
85
  private readonly _automine: boolean,
81
86
  private readonly _intervalMining: IntervalMiningConfig,
87
+ private readonly _mempoolOrder: MempoolOrder,
82
88
  private readonly _logger: ModulesLogger,
83
89
  private readonly _genesisAccounts: GenesisAccount[] = [],
84
90
  private readonly _artifacts?: Artifacts,
@@ -86,7 +92,8 @@ export class HardhatNetworkProvider
86
92
  private readonly _initialDate?: Date,
87
93
  private readonly _experimentalHardhatNetworkMessageTraceHooks: BoundExperimentalHardhatNetworkMessageTraceHook[] = [],
88
94
  private _forkConfig?: ForkConfig,
89
- private readonly _forkCachePath?: string
95
+ private readonly _forkCachePath?: string,
96
+ private readonly _coinbase = DEFAULT_COINBASE
90
97
  ) {
91
98
  super();
92
99
  }
@@ -157,7 +164,7 @@ export class HardhatNetworkProvider
157
164
  this._logger.printFailedMethod(method);
158
165
  this._logger.printLogs();
159
166
 
160
- if (!this._logger.isLoggedError(err)) {
167
+ if (err instanceof Error && !this._logger.isLoggedError(err)) {
161
168
  if (ProviderError.isProviderError(err)) {
162
169
  this._logger.printEmptyLine();
163
170
  this._logger.printErrorMessage(err.message);
@@ -205,6 +212,10 @@ export class HardhatNetworkProvider
205
212
  return this._debugModule!.processRequest(method, params);
206
213
  }
207
214
 
215
+ if (method.startsWith("personal_")) {
216
+ return this._personalModule!.processRequest(method, params);
217
+ }
218
+
208
219
  throw new MethodNotFoundError(`Method ${method} not found`);
209
220
  }
210
221
 
@@ -221,6 +232,7 @@ export class HardhatNetworkProvider
221
232
  allowUnlimitedContractSize: this._allowUnlimitedContractSize,
222
233
  tracingConfig: await this._makeTracingConfig(),
223
234
  initialBaseFeePerGas: this._initialBaseFeePerGas,
235
+ mempoolOrder: this._mempoolOrder,
224
236
  hardfork: this._hardfork,
225
237
  networkName: this._networkName,
226
238
  chainId: this._chainId,
@@ -229,6 +241,7 @@ export class HardhatNetworkProvider
229
241
  forkConfig: this._forkConfig,
230
242
  forkCachePath:
231
243
  this._forkConfig !== undefined ? this._forkCachePath : undefined,
244
+ coinbase: this._coinbase,
232
245
  };
233
246
 
234
247
  const [common, node] = await HardhatNode.create(config);
@@ -265,6 +278,7 @@ export class HardhatNetworkProvider
265
278
  this._experimentalHardhatNetworkMessageTraceHooks
266
279
  );
267
280
  this._debugModule = new DebugModule(node);
281
+ this._personalModule = new PersonalModule(node);
268
282
 
269
283
  this._forwardNodeEvents(node);
270
284
  }
@@ -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
@@ -191,6 +191,25 @@ export class ErrorInferrer {
191
191
  return true;
192
192
  }
193
193
 
194
+ // look TWO frames ahead to determine if this is a specific occurrence of
195
+ // a redundant CALLSTACK_ENTRY frame observed when using Solidity 0.8.5:
196
+ if (
197
+ frame.type === StackTraceEntryType.CALLSTACK_ENTRY &&
198
+ i + 2 < stacktrace.length &&
199
+ stacktrace[i + 2].sourceReference !== undefined &&
200
+ stacktrace[i + 2].type === StackTraceEntryType.RETURNDATA_SIZE_ERROR
201
+ ) {
202
+ // ! below for tsc. we confirmed existence in the enclosing conditional.
203
+ const thatSrcRef = stacktrace[i + 2].sourceReference!;
204
+ if (
205
+ frame.sourceReference.range[0] === thatSrcRef.range[0] &&
206
+ frame.sourceReference.range[1] === thatSrcRef.range[1] &&
207
+ frame.sourceReference.line === thatSrcRef.line
208
+ ) {
209
+ return false;
210
+ }
211
+ }
212
+
194
213
  // constructors contain the whole contract, so we ignore them
195
214
  if (
196
215
  frame.sourceReference.function === "constructor" &&
@@ -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;
@@ -31,7 +31,7 @@ import {
31
31
  StackTraceEntryType,
32
32
  } from "./solidity-stack-trace";
33
33
 
34
- export const SUPPORTED_SOLIDITY_VERSION_RANGE = "<=0.8.4";
34
+ export const SUPPORTED_SOLIDITY_VERSION_RANGE = "<=0.8.9";
35
35
  export const FIRST_SOLC_VERSION_SUPPORTED = "0.5.1";
36
36
 
37
37
  export class SolidityTracer {
@@ -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}`
@@ -141,25 +141,40 @@ export class CompilerDownloader {
141
141
  platform: compilerBuild.platform,
142
142
  };
143
143
  } catch (e) {
144
- if (HardhatError.isHardhatError(e)) {
145
- throw e;
144
+ if (e instanceof Error) {
145
+ if (HardhatError.isHardhatError(e)) {
146
+ throw e;
147
+ }
148
+ console.warn(
149
+ chalk.yellow(
150
+ `There was an unexpected problem downloading the compiler: ${e.message}`
151
+ )
152
+ );
146
153
  }
147
- console.warn(
148
- chalk.yellow(
149
- `There was an unexpected problem downloading the compiler: ${e.message}`
150
- )
151
- );
152
154
  }
153
155
  }
154
156
 
155
157
  public async getCompilersList(
156
- platform: CompilerPlatform
158
+ platform: CompilerPlatform,
159
+ pendingRetries: number = 3
157
160
  ): Promise<CompilersList> {
158
161
  if (!(await this.compilersListExists(platform))) {
159
162
  await this.downloadCompilersList(platform);
160
163
  }
161
164
 
162
- return fsExtra.readJson(this.getCompilersListPath(platform));
165
+ try {
166
+ return await fsExtra.readJSON(this.getCompilersListPath(platform));
167
+ } catch (error) {
168
+ // if parsing throws a syntax error, redownload and parse once more
169
+ if (!(error instanceof SyntaxError) || pendingRetries === 0) {
170
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
171
+ throw error;
172
+ }
173
+
174
+ // remove the malformed list and retry
175
+ await fsExtra.remove(this.getCompilersListPath(platform));
176
+ return this.getCompilersList(platform, pendingRetries - 1);
177
+ }
163
178
  }
164
179
 
165
180
  public async getCompilerBuild(version: string): Promise<CompilerBuild> {
@@ -168,7 +183,7 @@ export class CompilerDownloader {
168
183
  if (await this._versionExists(version, platform)) {
169
184
  try {
170
185
  return await this._getCompilerBuildByPlatform(version, platform);
171
- } catch (e) {
186
+ } catch {
172
187
  log("Couldn't download native compiler, using solcjs instead");
173
188
  }
174
189
  }
@@ -182,7 +197,7 @@ export class CompilerDownloader {
182
197
  getCompilerListURL(platform),
183
198
  this.getCompilersListPath(platform)
184
199
  );
185
- } catch (error) {
200
+ } catch (error: any) {
186
201
  throw new HardhatError(
187
202
  ERRORS.SOLC.VERSION_LIST_DOWNLOAD_FAILED,
188
203
  {},
@@ -212,7 +227,7 @@ export class CompilerDownloader {
212
227
  {
213
228
  remoteVersion: compilerBuild.version,
214
229
  },
215
- error
230
+ error as Error
216
231
  );
217
232
  }
218
233
  }
@@ -227,7 +227,7 @@ export class Resolver {
227
227
  {
228
228
  library: libraryName,
229
229
  },
230
- error
230
+ error as Error
231
231
  );
232
232
  }
233
233
  }
@@ -21,7 +21,7 @@ export class AbiHelpers {
21
21
  const selectorHex = abi.Interface.getSighash(fragment);
22
22
 
23
23
  return Buffer.from(selectorHex.slice(2), "hex");
24
- } catch (e) {
24
+ } catch {
25
25
  return;
26
26
  }
27
27
  }
@@ -9,6 +9,18 @@ interface FetchOptions {
9
9
  agent?: undefined | HttpsProxyAgent.HttpsProxyAgent;
10
10
  }
11
11
 
12
+ const TEMP_FILE_PREFIX = "tmp-";
13
+
14
+ function resolveTempFileName(filePath: string): string {
15
+ const { dir, ext, name } = path.parse(filePath);
16
+
17
+ return path.format({
18
+ dir,
19
+ ext,
20
+ name: `${TEMP_FILE_PREFIX}${name}`,
21
+ });
22
+ }
23
+
12
24
  export async function download(
13
25
  url: string,
14
26
  filePath: string,
@@ -43,8 +55,12 @@ export async function download(
43
55
  const response = await fetch(url, fetchOptions);
44
56
 
45
57
  if (response.ok && response.body !== null) {
58
+ const tmpFilePath = resolveTempFileName(filePath);
59
+
46
60
  await fsExtra.ensureDir(path.dirname(filePath));
47
- return streamPipeline(response.body, fs.createWriteStream(filePath));
61
+ await streamPipeline(response.body, fs.createWriteStream(tmpFilePath));
62
+
63
+ return fsExtra.move(tmpFilePath, filePath);
48
64
  }
49
65
 
50
66
  // Consume the response stream and discard its result
@@ -13,6 +13,7 @@ export enum HardforkName {
13
13
  MUIR_GLACIER = "muirGlacier",
14
14
  BERLIN = "berlin",
15
15
  LONDON = "london",
16
+ ARROW_GLACIER = "arrowGlacier",
16
17
  }
17
18
 
18
19
  const HARDFORKS_ORDER: HardforkName[] = [
@@ -28,6 +29,7 @@ const HARDFORKS_ORDER: HardforkName[] = [
28
29
  HardforkName.MUIR_GLACIER,
29
30
  HardforkName.BERLIN,
30
31
  HardforkName.LONDON,
32
+ HardforkName.ARROW_GLACIER,
31
33
  ];
32
34
 
33
35
  export function getHardforkName(name: string): HardforkName {
@@ -43,7 +43,7 @@ export function parseJsonResponse(
43
43
  }
44
44
 
45
45
  return json;
46
- } catch (error) {
46
+ } catch {
47
47
  throw new HardhatError(ERRORS.NETWORK.INVALID_JSON_RESPONSE, {
48
48
  response: text,
49
49
  });
@@ -39,7 +39,7 @@ export function getHardhatVersion(): string | null {
39
39
  try {
40
40
  const packageJson = fsExtra.readJsonSync(packageJsonPath);
41
41
  return packageJson.version;
42
- } catch (e) {
42
+ } catch {
43
43
  return null;
44
44
  }
45
45
  }
@@ -35,7 +35,7 @@ export async function runScript(
35
35
  childProcess.once("close", (status) => {
36
36
  log(`Script ${scriptPath} exited with status code ${status}`);
37
37
 
38
- resolve(status);
38
+ resolve(status as number);
39
39
  });
40
40
  childProcess.once("error", reject);
41
41
  });
package/src/register.ts CHANGED
@@ -36,7 +36,7 @@ if (!HardhatContext.isCreated()) {
36
36
  }
37
37
 
38
38
  if (willRunWithTypescript(hardhatArguments.config)) {
39
- loadTsNode();
39
+ loadTsNode(hardhatArguments.tsconfig);
40
40
  }
41
41
 
42
42
  const config = loadConfigAndTasks(hardhatArguments);
@@ -18,6 +18,7 @@ import type { BN } from "ethereumjs-util";
18
18
 
19
19
  export interface NetworksUserConfig {
20
20
  hardhat?: HardhatNetworkUserConfig;
21
+
21
22
  [networkName: string]: NetworkUserConfig | undefined;
22
23
  }
23
24
 
@@ -43,6 +44,7 @@ export interface HardhatNetworkUserConfig {
43
44
  initialDate?: string;
44
45
  loggingEnabled?: boolean;
45
46
  forking?: HardhatNetworkForkingUserConfig;
47
+ coinbase?: string;
46
48
  }
47
49
 
48
50
  export type HardhatNetworkAccountsUserConfig =
@@ -95,6 +97,7 @@ export interface HttpNetworkUserConfig {
95
97
  export interface NetworksConfig {
96
98
  hardhat: HardhatNetworkConfig;
97
99
  localhost: HttpNetworkConfig;
100
+
98
101
  [networkName: string]: NetworkConfig;
99
102
  }
100
103
 
@@ -118,6 +121,7 @@ export interface HardhatNetworkConfig {
118
121
  initialDate: string;
119
122
  loggingEnabled: boolean;
120
123
  forking?: HardhatNetworkForkingConfig;
124
+ coinbase?: string;
121
125
  }
122
126
 
123
127
  export type HardhatNetworkAccountsConfig =
@@ -170,11 +174,21 @@ export interface HttpNetworkHDAccountsConfig {
170
174
  export interface HardhatNetworkMiningConfig {
171
175
  auto: boolean;
172
176
  interval: number | [number, number];
177
+ mempool: HardhatNetworkMempoolConfig;
173
178
  }
174
179
 
175
180
  export interface HardhatNetworkMiningUserConfig {
176
181
  auto?: boolean;
177
182
  interval?: number | [number, number];
183
+ mempool?: HardhatNetworkMempoolUserConfig;
184
+ }
185
+
186
+ export interface HardhatNetworkMempoolConfig {
187
+ order: string; // Guaranteed at runtime to be have a valid value
188
+ }
189
+
190
+ export interface HardhatNetworkMempoolUserConfig {
191
+ order?: string;
178
192
  }
179
193
 
180
194
  // Project paths config
@@ -56,3 +56,115 @@ export function parseName(name: string): {
56
56
 
57
57
  return { sourceName, contractName };
58
58
  }
59
+
60
+ /**
61
+ * Returns the edit-distance between two given strings using Levenshtein distance.
62
+ *
63
+ * @param a First string being compared
64
+ * @param b Second string being compared
65
+ * @returns distance between the two strings (lower number == more similar)
66
+ * @see https://github.com/gustf/js-levenshtein
67
+ * @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE
68
+ */
69
+ export function findDistance(a: string, b: string): number {
70
+ function _min(
71
+ _d0: number,
72
+ _d1: number,
73
+ _d2: number,
74
+ _bx: number,
75
+ _ay: number
76
+ ): number {
77
+ return _d0 < _d1 || _d2 < _d1
78
+ ? _d0 > _d2
79
+ ? _d2 + 1
80
+ : _d0 + 1
81
+ : _bx === _ay
82
+ ? _d1
83
+ : _d1 + 1;
84
+ }
85
+
86
+ if (a === b) {
87
+ return 0;
88
+ }
89
+
90
+ if (a.length > b.length) {
91
+ [a, b] = [b, a];
92
+ }
93
+
94
+ let la = a.length;
95
+ let lb = b.length;
96
+
97
+ while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {
98
+ la--;
99
+ lb--;
100
+ }
101
+
102
+ let offset = 0;
103
+
104
+ while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {
105
+ offset++;
106
+ }
107
+
108
+ la -= offset;
109
+ lb -= offset;
110
+
111
+ if (la === 0 || lb < 3) {
112
+ return lb;
113
+ }
114
+
115
+ let x = 0;
116
+ let y: number;
117
+ let d0: number;
118
+ let d1: number;
119
+ let d2: number;
120
+ let d3: number;
121
+ let dd: number = 0; // typescript gets angry if we don't assign here
122
+ let dy: number;
123
+ let ay: number;
124
+ let bx0: number;
125
+ let bx1: number;
126
+ let bx2: number;
127
+ let bx3: number;
128
+
129
+ const vector = [];
130
+
131
+ for (y = 0; y < la; y++) {
132
+ vector.push(y + 1);
133
+ vector.push(a.charCodeAt(offset + y));
134
+ }
135
+
136
+ const len = vector.length - 1;
137
+
138
+ for (; x < lb - 3; ) {
139
+ bx0 = b.charCodeAt(offset + (d0 = x));
140
+ bx1 = b.charCodeAt(offset + (d1 = x + 1));
141
+ bx2 = b.charCodeAt(offset + (d2 = x + 2));
142
+ bx3 = b.charCodeAt(offset + (d3 = x + 3));
143
+ dd = x += 4;
144
+ for (y = 0; y < len; y += 2) {
145
+ dy = vector[y];
146
+ ay = vector[y + 1];
147
+ d0 = _min(dy, d0, d1, bx0, ay);
148
+ d1 = _min(d0, d1, d2, bx1, ay);
149
+ d2 = _min(d1, d2, d3, bx2, ay);
150
+ dd = _min(d2, d3, dd, bx3, ay);
151
+ vector[y] = dd;
152
+ d3 = d2;
153
+ d2 = d1;
154
+ d1 = d0;
155
+ d0 = dy;
156
+ }
157
+ }
158
+
159
+ for (; x < lb; ) {
160
+ bx0 = b.charCodeAt(offset + (d0 = x));
161
+ dd = ++x;
162
+ for (y = 0; y < len; y += 2) {
163
+ dy = vector[y];
164
+ vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]);
165
+ d0 = dy;
166
+ }
167
+ }
168
+
169
+ return dd;
170
+ }
@@ -179,7 +179,7 @@ function isExplicitRelativePath(sourceName: string): boolean {
179
179
  }
180
180
 
181
181
  /**
182
- * This function replaces backslashes (\) with slashes (/).
182
+ * This function replaces backslashes (\\) with slashes (/).
183
183
  *
184
184
  * Note that a source name must not contain backslashes.
185
185
  */
@@ -199,17 +199,19 @@ async function getPathTrueCase(fromDir: string, p: string): Promise<string> {
199
199
  const tcp = await trueCasePath(p, fromDir);
200
200
  return normalizeSourceName(path.relative(fromDir, tcp));
201
201
  } catch (error) {
202
- if (
203
- typeof error.message === "string" &&
204
- error.message.includes("no matching file exists")
205
- ) {
206
- throw new HardhatError(
207
- ERRORS.SOURCE_NAMES.FILE_NOT_FOUND,
208
- {
209
- name: p,
210
- },
211
- error
212
- );
202
+ if (error instanceof Error) {
203
+ if (
204
+ typeof error.message === "string" &&
205
+ error.message.includes("no matching file exists")
206
+ ) {
207
+ throw new HardhatError(
208
+ ERRORS.SOURCE_NAMES.FILE_NOT_FOUND,
209
+ {
210
+ name: p,
211
+ },
212
+ error
213
+ );
214
+ }
213
215
  }
214
216
 
215
217
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
package/types/config.d.ts CHANGED
@@ -23,6 +23,7 @@ export interface HardhatNetworkUserConfig {
23
23
  initialDate?: string;
24
24
  loggingEnabled?: boolean;
25
25
  forking?: HardhatNetworkForkingUserConfig;
26
+ coinbase?: string;
26
27
  }
27
28
  export declare type HardhatNetworkAccountsUserConfig = HardhatNetworkAccountUserConfig[] | HardhatNetworkHDAccountsUserConfig;
28
29
  export interface HardhatNetworkAccountUserConfig {
@@ -85,6 +86,7 @@ export interface HardhatNetworkConfig {
85
86
  initialDate: string;
86
87
  loggingEnabled: boolean;
87
88
  forking?: HardhatNetworkForkingConfig;
89
+ coinbase?: string;
88
90
  }
89
91
  export declare type HardhatNetworkAccountsConfig = HardhatNetworkHDAccountsConfig | HardhatNetworkAccountConfig[];
90
92
  export interface HardhatNetworkAccountConfig {
@@ -126,10 +128,18 @@ export interface HttpNetworkHDAccountsConfig {
126
128
  export interface HardhatNetworkMiningConfig {
127
129
  auto: boolean;
128
130
  interval: number | [number, number];
131
+ mempool: HardhatNetworkMempoolConfig;
129
132
  }
130
133
  export interface HardhatNetworkMiningUserConfig {
131
134
  auto?: boolean;
132
135
  interval?: number | [number, number];
136
+ mempool?: HardhatNetworkMempoolUserConfig;
137
+ }
138
+ export interface HardhatNetworkMempoolConfig {
139
+ order: string;
140
+ }
141
+ export interface HardhatNetworkMempoolUserConfig {
142
+ order?: string;
133
143
  }
134
144
  export interface ProjectPathsUserConfig {
135
145
  root?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":";AAcA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAI1C,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAEnC,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACtD;AAED,oBAAY,iBAAiB,GACzB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC,QAAQ,CAAC,EAAE,gCAAgC,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,+BAA+B,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oBAAY,gCAAgC,GACxC,+BAA+B,EAAE,GACjC,kCAAkC,CAAC;AAEvC,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,6BAA6B,GACrC,QAAQ,GACR,MAAM,EAAE,GACR,oBAAoB,CAAC;AAEzB,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,6BAA6B,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAE7B,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;CACtC;AAED,oBAAY,aAAa,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,EAAE,4BAA4B,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,EAAE,CAAC;IAChB,0BAA0B,EAAE,OAAO,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oBAAY,4BAA4B,GACpC,8BAA8B,GAC9B,2BAA2B,EAAE,CAAC;AAElC,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACxC,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED,oBAAY,yBAAyB,GACjC,QAAQ,GACR,MAAM,EAAE,GACR,2BAA2B,CAAC;AAEhC,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,2BAA2B,CAAC;CACtC;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,+BAA+B,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,oBAAY,kBAAkB,GAAG,MAAM,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC;AAID,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC;CAC3B;AAID,oBAAY,cAAc,GAAG,CAC3B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACpC,IAAI,CAAC"}
@@ -22,4 +22,14 @@ export declare function parseName(name: string): {
22
22
  sourceName?: string;
23
23
  contractName: string;
24
24
  };
25
+ /**
26
+ * Returns the edit-distance between two given strings using Levenshtein distance.
27
+ *
28
+ * @param a First string being compared
29
+ * @param b Second string being compared
30
+ * @returns distance between the two strings (lower number == more similar)
31
+ * @see https://github.com/gustf/js-levenshtein
32
+ * @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE
33
+ */
34
+ export declare function findDistance(a: string, b: string): number;
25
35
  //# sourceMappingURL=contract-names.d.ts.map