hardhat 2.6.8 → 2.8.0

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 (380) 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 +21 -15
  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 +21 -7
  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 +50 -12
  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 +151 -38
  55. package/internal/core/config/config-validation.js.map +1 -1
  56. package/internal/core/config/default-config.d.ts.map +1 -1
  57. package/internal/core/config/default-config.js +66 -2
  58. package/internal/core/config/default-config.js.map +1 -1
  59. package/internal/core/errors-list.js +2 -2
  60. package/internal/core/errors-list.js.map +1 -1
  61. package/internal/core/errors.js +3 -3
  62. package/internal/core/errors.js.map +1 -1
  63. package/internal/core/execution-mode.js +2 -2
  64. package/internal/core/execution-mode.js.map +1 -1
  65. package/internal/core/jsonrpc/types/access-list.d.ts +0 -1
  66. package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -1
  67. package/internal/core/jsonrpc/types/access-list.js +1 -1
  68. package/internal/core/jsonrpc/types/access-list.js.map +1 -1
  69. package/internal/core/jsonrpc/types/base-types.js +9 -9
  70. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  71. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -4
  72. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  73. package/internal/core/jsonrpc/types/input/blockTag.js +3 -3
  74. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
  75. package/internal/core/jsonrpc/types/input/callRequest.d.ts +0 -1
  76. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  77. package/internal/core/jsonrpc/types/input/callRequest.js +9 -9
  78. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  79. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +4 -4
  80. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -1
  81. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +0 -1
  82. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
  83. package/internal/core/jsonrpc/types/input/filterRequest.js +2 -2
  84. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
  85. package/internal/core/jsonrpc/types/input/hardhat-network.js +4 -4
  86. package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -1
  87. package/internal/core/jsonrpc/types/input/logAddress.js +1 -1
  88. package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -1
  89. package/internal/core/jsonrpc/types/input/logTopics.js +1 -1
  90. package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -1
  91. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +0 -1
  92. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  93. package/internal/core/jsonrpc/types/input/transactionRequest.js +10 -10
  94. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  95. package/internal/core/jsonrpc/types/output/block.d.ts +0 -1
  96. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  97. package/internal/core/jsonrpc/types/output/block.js +5 -5
  98. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  99. package/internal/core/jsonrpc/types/output/log.d.ts +1 -1
  100. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
  101. package/internal/core/jsonrpc/types/output/log.js +5 -4
  102. package/internal/core/jsonrpc/types/output/log.js.map +1 -1
  103. package/internal/core/jsonrpc/types/output/receipt.d.ts +1 -1
  104. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
  105. package/internal/core/jsonrpc/types/output/receipt.js +6 -6
  106. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
  107. package/internal/core/jsonrpc/types/output/transaction.d.ts +0 -1
  108. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
  109. package/internal/core/jsonrpc/types/output/transaction.js +9 -9
  110. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
  111. package/internal/core/params/argumentTypes.d.ts.map +1 -1
  112. package/internal/core/params/argumentTypes.js +25 -13
  113. package/internal/core/params/argumentTypes.js.map +1 -1
  114. package/internal/core/params/env-variables.d.ts.map +1 -1
  115. package/internal/core/params/env-variables.js +9 -5
  116. package/internal/core/params/env-variables.js.map +1 -1
  117. package/internal/core/params/hardhat-params.js +2 -2
  118. package/internal/core/params/hardhat-params.js.map +1 -1
  119. package/internal/core/project-structure.js +1 -1
  120. package/internal/core/project-structure.js.map +1 -1
  121. package/internal/core/providers/accounts.d.ts.map +1 -1
  122. package/internal/core/providers/accounts.js +9 -8
  123. package/internal/core/providers/accounts.js.map +1 -1
  124. package/internal/core/providers/backwards-compatibility.js.map +1 -1
  125. package/internal/core/providers/chainId.js +3 -3
  126. package/internal/core/providers/chainId.js.map +1 -1
  127. package/internal/core/providers/construction.d.ts.map +1 -1
  128. package/internal/core/providers/construction.js +6 -4
  129. package/internal/core/providers/construction.js.map +1 -1
  130. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  131. package/internal/core/providers/gas-providers.js +19 -17
  132. package/internal/core/providers/gas-providers.js.map +1 -1
  133. package/internal/core/providers/http.js +1 -1
  134. package/internal/core/providers/http.js.map +1 -1
  135. package/internal/core/providers/util.js +1 -1
  136. package/internal/core/providers/util.js.map +1 -1
  137. package/internal/core/providers/wrapper.d.ts.map +1 -1
  138. package/internal/core/runtime-environment.d.ts.map +1 -1
  139. package/internal/core/runtime-environment.js +7 -5
  140. package/internal/core/runtime-environment.js.map +1 -1
  141. package/internal/core/typescript-support.d.ts +1 -1
  142. package/internal/core/typescript-support.d.ts.map +1 -1
  143. package/internal/core/typescript-support.js +8 -5
  144. package/internal/core/typescript-support.js.map +1 -1
  145. package/internal/hardhat-network/jsonrpc/client.d.ts +2 -0
  146. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  147. package/internal/hardhat-network/jsonrpc/client.js +23 -23
  148. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  149. package/internal/hardhat-network/jsonrpc/handler.js +16 -8
  150. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  151. package/internal/hardhat-network/jsonrpc/server.js +1 -1
  152. package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
  153. package/internal/hardhat-network/provider/BlockchainData.d.ts +1 -1
  154. package/internal/hardhat-network/provider/BlockchainData.js +12 -12
  155. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  156. package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -2
  157. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  158. package/internal/hardhat-network/provider/HardhatStateManager.js +29 -29
  159. package/internal/hardhat-network/provider/HardhatStateManager.js.map +1 -1
  160. package/internal/hardhat-network/provider/PoolState.js +6 -6
  161. package/internal/hardhat-network/provider/PoolState.js.map +1 -1
  162. package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -1
  163. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
  164. package/internal/hardhat-network/provider/TransactionQueue.js +16 -2
  165. package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
  166. package/internal/hardhat-network/provider/TxPool.js +19 -19
  167. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  168. package/internal/hardhat-network/provider/filter.js +3 -3
  169. package/internal/hardhat-network/provider/filter.js.map +1 -1
  170. package/internal/hardhat-network/provider/fork/AccountState.js +4 -4
  171. package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -1
  172. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  173. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +8 -10
  174. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  175. package/internal/hardhat-network/provider/fork/ForkStateManager.js +34 -34
  176. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  177. package/internal/hardhat-network/provider/fork/random.d.ts +0 -1
  178. package/internal/hardhat-network/provider/fork/random.d.ts.map +1 -1
  179. package/internal/hardhat-network/provider/fork/random.js +13 -8
  180. package/internal/hardhat-network/provider/fork/random.js.map +1 -1
  181. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +1 -0
  182. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  183. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
  184. package/internal/hardhat-network/provider/modules/debug.js +1 -1
  185. package/internal/hardhat-network/provider/modules/debug.js.map +1 -1
  186. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  187. package/internal/hardhat-network/provider/modules/eth.js +86 -84
  188. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  189. package/internal/hardhat-network/provider/modules/evm.js +9 -9
  190. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  191. package/internal/hardhat-network/provider/modules/hardhat.d.ts +2 -0
  192. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  193. package/internal/hardhat-network/provider/modules/hardhat.js +25 -15
  194. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  195. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  196. package/internal/hardhat-network/provider/modules/logger.js +30 -25
  197. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  198. package/internal/hardhat-network/provider/modules/net.js +2 -2
  199. package/internal/hardhat-network/provider/modules/net.js.map +1 -1
  200. package/internal/hardhat-network/provider/modules/personal.js +2 -2
  201. package/internal/hardhat-network/provider/modules/personal.js.map +1 -1
  202. package/internal/hardhat-network/provider/modules/web3.js +4 -4
  203. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  204. package/internal/hardhat-network/provider/node-types.d.ts +7 -1
  205. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  206. package/internal/hardhat-network/provider/node-types.js.map +1 -1
  207. package/internal/hardhat-network/provider/node.d.ts +10 -2
  208. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  209. package/internal/hardhat-network/provider/node.js +144 -75
  210. package/internal/hardhat-network/provider/node.js.map +1 -1
  211. package/internal/hardhat-network/provider/output.d.ts +1 -1
  212. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  213. package/internal/hardhat-network/provider/output.js +94 -91
  214. package/internal/hardhat-network/provider/output.js.map +1 -1
  215. package/internal/hardhat-network/provider/provider.d.ts +7 -3
  216. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  217. package/internal/hardhat-network/provider/provider.js +11 -4
  218. package/internal/hardhat-network/provider/provider.js.map +1 -1
  219. package/internal/hardhat-network/provider/return-data.js +4 -4
  220. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  221. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  222. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  223. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  224. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
  225. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  226. package/internal/hardhat-network/provider/utils/bnToHex.js +1 -1
  227. package/internal/hardhat-network/provider/utils/bnToHex.js.map +1 -1
  228. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
  229. package/internal/hardhat-network/provider/utils/makeAccount.js +4 -4
  230. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  231. package/internal/hardhat-network/provider/utils/makeCommon.js +3 -3
  232. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  233. package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -4
  234. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  235. package/internal/hardhat-network/provider/utils/makeStateTrie.js +1 -1
  236. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  237. package/internal/hardhat-network/provider/utils/txMapToArray.js +1 -1
  238. package/internal/hardhat-network/provider/utils/txMapToArray.js.map +1 -1
  239. package/internal/hardhat-network/stack-traces/compiler-to-model.js +4 -4
  240. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  241. package/internal/hardhat-network/stack-traces/consoleLogger.js +44 -44
  242. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  243. package/internal/hardhat-network/stack-traces/contracts-identifier.js +6 -6
  244. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  245. package/internal/hardhat-network/stack-traces/debug.js +17 -17
  246. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  247. package/internal/hardhat-network/stack-traces/error-inferrer.js +28 -28
  248. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  249. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +3 -3
  250. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +1 -1
  251. package/internal/hardhat-network/stack-traces/model.js +5 -5
  252. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  253. package/internal/hardhat-network/stack-traces/solidity-errors.js +3 -3
  254. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  255. package/internal/hardhat-network/stack-traces/solidityTracer.js +10 -10
  256. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  257. package/internal/hardhat-network/stack-traces/source-maps.js +7 -7
  258. package/internal/hardhat-network/stack-traces/source-maps.js.map +1 -1
  259. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +5 -5
  260. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  261. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +2 -2
  262. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  263. package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -3
  264. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  265. package/internal/lib/hardhat-lib.js +3 -3
  266. package/internal/lib/hardhat-lib.js.map +1 -1
  267. package/internal/reset.js +1 -1
  268. package/internal/reset.js.map +1 -1
  269. package/internal/sentry/anonymizer.js.map +1 -1
  270. package/internal/sentry/reporter.js +5 -5
  271. package/internal/sentry/reporter.js.map +1 -1
  272. package/internal/sentry/subprocess.js +2 -2
  273. package/internal/sentry/subprocess.js.map +1 -1
  274. package/internal/sentry/transport.js +1 -1
  275. package/internal/sentry/transport.js.map +1 -1
  276. package/internal/solidity/compilation-job.js +4 -4
  277. package/internal/solidity/compilation-job.js.map +1 -1
  278. package/internal/solidity/compiler/downloader.d.ts +1 -1
  279. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  280. package/internal/solidity/compiler/downloader.js +21 -7
  281. package/internal/solidity/compiler/downloader.js.map +1 -1
  282. package/internal/solidity/compiler/index.js +1 -1
  283. package/internal/solidity/compiler/index.js.map +1 -1
  284. package/internal/solidity/dependencyGraph.js +2 -1
  285. package/internal/solidity/dependencyGraph.js.map +1 -1
  286. package/internal/solidity/parse.js +3 -2
  287. package/internal/solidity/parse.js.map +1 -1
  288. package/internal/solidity/resolver.js +10 -10
  289. package/internal/solidity/resolver.js.map +1 -1
  290. package/internal/util/abi-helpers.js +1 -1
  291. package/internal/util/abi-helpers.js.map +1 -1
  292. package/internal/util/download.d.ts.map +1 -1
  293. package/internal/util/download.js +12 -1
  294. package/internal/util/download.js.map +1 -1
  295. package/internal/util/global-dir.js +1 -1
  296. package/internal/util/global-dir.js.map +1 -1
  297. package/internal/util/hardforks.d.ts +2 -1
  298. package/internal/util/hardforks.d.ts.map +1 -1
  299. package/internal/util/hardforks.js +3 -1
  300. package/internal/util/hardforks.js.map +1 -1
  301. package/internal/util/jsonrpc.js +1 -1
  302. package/internal/util/jsonrpc.js.map +1 -1
  303. package/internal/util/packageInfo.js +1 -1
  304. package/internal/util/packageInfo.js.map +1 -1
  305. package/internal/util/scripts-runner.js +3 -3
  306. package/internal/util/scripts-runner.js.map +1 -1
  307. package/package.json +13 -13
  308. package/register.js +7 -7
  309. package/register.js.map +1 -1
  310. package/src/builtin-tasks/flatten.ts +4 -2
  311. package/src/builtin-tasks/node.ts +17 -10
  312. package/src/builtin-tasks/run.ts +13 -8
  313. package/src/builtin-tasks/utils/watch.ts +3 -1
  314. package/src/internal/artifacts.ts +269 -72
  315. package/src/internal/cli/analytics.ts +1 -1
  316. package/src/internal/cli/autocomplete.ts +3 -3
  317. package/src/internal/cli/bootstrap.ts +1 -1
  318. package/src/internal/cli/cli.ts +2 -2
  319. package/src/internal/cli/project-creation.ts +2 -2
  320. package/src/internal/constants.ts +4 -0
  321. package/src/internal/context.ts +1 -1
  322. package/src/internal/core/config/config-loading.ts +24 -2
  323. package/src/internal/core/config/config-resolution.ts +61 -3
  324. package/src/internal/core/config/config-validation.ts +217 -15
  325. package/src/internal/core/config/default-config.ts +66 -2
  326. package/src/internal/core/errors-list.ts +2 -2
  327. package/src/internal/core/execution-mode.ts +1 -1
  328. package/src/internal/core/jsonrpc/types/output/log.ts +1 -0
  329. package/src/internal/core/params/argumentTypes.ts +40 -25
  330. package/src/internal/core/params/env-variables.ts +13 -8
  331. package/src/internal/core/params/hardhat-params.ts +2 -2
  332. package/src/internal/core/providers/accounts.ts +4 -3
  333. package/src/internal/core/providers/backwards-compatibility.ts +1 -1
  334. package/src/internal/core/providers/chainId.ts +1 -1
  335. package/src/internal/core/providers/construction.ts +9 -2
  336. package/src/internal/core/providers/gas-providers.ts +6 -4
  337. package/src/internal/core/providers/http.ts +1 -1
  338. package/src/internal/core/providers/wrapper.ts +1 -1
  339. package/src/internal/core/runtime-environment.ts +3 -1
  340. package/src/internal/core/typescript-support.ts +7 -3
  341. package/src/internal/hardhat-network/jsonrpc/client.ts +2 -2
  342. package/src/internal/hardhat-network/jsonrpc/handler.ts +12 -2
  343. package/src/internal/hardhat-network/jsonrpc/server.ts +2 -2
  344. package/src/internal/hardhat-network/provider/TransactionQueue.ts +31 -4
  345. package/src/internal/hardhat-network/provider/TxPool.ts +1 -1
  346. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +2 -4
  347. package/src/internal/hardhat-network/provider/modules/eth.ts +23 -21
  348. package/src/internal/hardhat-network/provider/modules/hardhat.ts +15 -1
  349. package/src/internal/hardhat-network/provider/modules/logger.ts +13 -9
  350. package/src/internal/hardhat-network/provider/node-types.ts +8 -1
  351. package/src/internal/hardhat-network/provider/node.ts +156 -29
  352. package/src/internal/hardhat-network/provider/output.ts +9 -9
  353. package/src/internal/hardhat-network/provider/provider.ts +12 -2
  354. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +1 -1
  355. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +1 -1
  356. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +3 -3
  357. package/src/internal/reset.ts +1 -1
  358. package/src/internal/sentry/subprocess.ts +2 -2
  359. package/src/internal/solidity/compiler/downloader.ts +27 -12
  360. package/src/internal/solidity/resolver.ts +1 -1
  361. package/src/internal/util/abi-helpers.ts +1 -1
  362. package/src/internal/util/download.ts +17 -1
  363. package/src/internal/util/hardforks.ts +2 -0
  364. package/src/internal/util/jsonrpc.ts +1 -1
  365. package/src/internal/util/packageInfo.ts +1 -1
  366. package/src/internal/util/scripts-runner.ts +1 -1
  367. package/src/register.ts +1 -1
  368. package/src/types/config.ts +42 -0
  369. package/src/utils/contract-names.ts +112 -0
  370. package/src/utils/source-names.ts +14 -12
  371. package/types/config.d.ts +26 -0
  372. package/types/config.d.ts.map +1 -1
  373. package/utils/contract-names.d.ts +10 -0
  374. package/utils/contract-names.d.ts.map +1 -1
  375. package/utils/contract-names.js +92 -1
  376. package/utils/contract-names.js.map +1 -1
  377. package/utils/source-names.d.ts +1 -1
  378. package/utils/source-names.js +8 -6
  379. package/utils/source-names.js.map +1 -1
  380. package/CHANGELOG.md +0 -54
@@ -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
 
@@ -25,6 +26,18 @@ export type NetworkUserConfig =
25
26
  | HardhatNetworkUserConfig
26
27
  | HttpNetworkUserConfig;
27
28
 
29
+ export interface HardforkHistoryUserConfig {
30
+ [hardforkName: string]: number /* block number */;
31
+ }
32
+
33
+ export interface HardhatNetworkChainUserConfig {
34
+ hardforkHistory?: HardforkHistoryUserConfig;
35
+ }
36
+
37
+ export interface HardhatNetworkChainsUserConfig {
38
+ [chainId: number]: HardhatNetworkChainUserConfig;
39
+ }
40
+
28
41
  export interface HardhatNetworkUserConfig {
29
42
  chainId?: number;
30
43
  from?: string;
@@ -43,6 +56,8 @@ export interface HardhatNetworkUserConfig {
43
56
  initialDate?: string;
44
57
  loggingEnabled?: boolean;
45
58
  forking?: HardhatNetworkForkingUserConfig;
59
+ coinbase?: string;
60
+ chains?: HardhatNetworkChainsUserConfig;
46
61
  }
47
62
 
48
63
  export type HardhatNetworkAccountsUserConfig =
@@ -95,11 +110,26 @@ export interface HttpNetworkUserConfig {
95
110
  export interface NetworksConfig {
96
111
  hardhat: HardhatNetworkConfig;
97
112
  localhost: HttpNetworkConfig;
113
+
98
114
  [networkName: string]: NetworkConfig;
99
115
  }
100
116
 
101
117
  export type NetworkConfig = HardhatNetworkConfig | HttpNetworkConfig;
102
118
 
119
+ export type HardforkHistoryConfig = Map<
120
+ /* hardforkName */ string,
121
+ /* blockNumber */ number
122
+ >;
123
+
124
+ export interface HardhatNetworkChainConfig {
125
+ hardforkHistory: HardforkHistoryConfig;
126
+ }
127
+
128
+ export type HardhatNetworkChainsConfig = Map<
129
+ /* chainId */ number,
130
+ HardhatNetworkChainConfig
131
+ >;
132
+
103
133
  export interface HardhatNetworkConfig {
104
134
  chainId: number;
105
135
  from?: string;
@@ -118,6 +148,8 @@ export interface HardhatNetworkConfig {
118
148
  initialDate: string;
119
149
  loggingEnabled: boolean;
120
150
  forking?: HardhatNetworkForkingConfig;
151
+ coinbase?: string;
152
+ chains: HardhatNetworkChainsConfig;
121
153
  }
122
154
 
123
155
  export type HardhatNetworkAccountsConfig =
@@ -170,11 +202,21 @@ export interface HttpNetworkHDAccountsConfig {
170
202
  export interface HardhatNetworkMiningConfig {
171
203
  auto: boolean;
172
204
  interval: number | [number, number];
205
+ mempool: HardhatNetworkMempoolConfig;
173
206
  }
174
207
 
175
208
  export interface HardhatNetworkMiningUserConfig {
176
209
  auto?: boolean;
177
210
  interval?: number | [number, number];
211
+ mempool?: HardhatNetworkMempoolUserConfig;
212
+ }
213
+
214
+ export interface HardhatNetworkMempoolConfig {
215
+ order: string; // Guaranteed at runtime to be have a valid value
216
+ }
217
+
218
+ export interface HardhatNetworkMempoolUserConfig {
219
+ order?: string;
178
220
  }
179
221
 
180
222
  // 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
@@ -5,6 +5,15 @@ export interface NetworksUserConfig {
5
5
  [networkName: string]: NetworkUserConfig | undefined;
6
6
  }
7
7
  export declare type NetworkUserConfig = HardhatNetworkUserConfig | HttpNetworkUserConfig;
8
+ export interface HardforkHistoryUserConfig {
9
+ [hardforkName: string]: number;
10
+ }
11
+ export interface HardhatNetworkChainUserConfig {
12
+ hardforkHistory?: HardforkHistoryUserConfig;
13
+ }
14
+ export interface HardhatNetworkChainsUserConfig {
15
+ [chainId: number]: HardhatNetworkChainUserConfig;
16
+ }
8
17
  export interface HardhatNetworkUserConfig {
9
18
  chainId?: number;
10
19
  from?: string;
@@ -23,6 +32,8 @@ export interface HardhatNetworkUserConfig {
23
32
  initialDate?: string;
24
33
  loggingEnabled?: boolean;
25
34
  forking?: HardhatNetworkForkingUserConfig;
35
+ coinbase?: string;
36
+ chains?: HardhatNetworkChainsUserConfig;
26
37
  }
27
38
  export declare type HardhatNetworkAccountsUserConfig = HardhatNetworkAccountUserConfig[] | HardhatNetworkHDAccountsUserConfig;
28
39
  export interface HardhatNetworkAccountUserConfig {
@@ -67,6 +78,11 @@ export interface NetworksConfig {
67
78
  [networkName: string]: NetworkConfig;
68
79
  }
69
80
  export declare type NetworkConfig = HardhatNetworkConfig | HttpNetworkConfig;
81
+ export declare type HardforkHistoryConfig = Map<string, number>;
82
+ export interface HardhatNetworkChainConfig {
83
+ hardforkHistory: HardforkHistoryConfig;
84
+ }
85
+ export declare type HardhatNetworkChainsConfig = Map<number, HardhatNetworkChainConfig>;
70
86
  export interface HardhatNetworkConfig {
71
87
  chainId: number;
72
88
  from?: string;
@@ -85,6 +101,8 @@ export interface HardhatNetworkConfig {
85
101
  initialDate: string;
86
102
  loggingEnabled: boolean;
87
103
  forking?: HardhatNetworkForkingConfig;
104
+ coinbase?: string;
105
+ chains: HardhatNetworkChainsConfig;
88
106
  }
89
107
  export declare type HardhatNetworkAccountsConfig = HardhatNetworkHDAccountsConfig | HardhatNetworkAccountConfig[];
90
108
  export interface HardhatNetworkAccountConfig {
@@ -126,10 +144,18 @@ export interface HttpNetworkHDAccountsConfig {
126
144
  export interface HardhatNetworkMiningConfig {
127
145
  auto: boolean;
128
146
  interval: number | [number, number];
147
+ mempool: HardhatNetworkMempoolConfig;
129
148
  }
130
149
  export interface HardhatNetworkMiningUserConfig {
131
150
  auto?: boolean;
132
151
  interval?: number | [number, number];
152
+ mempool?: HardhatNetworkMempoolUserConfig;
153
+ }
154
+ export interface HardhatNetworkMempoolConfig {
155
+ order: string;
156
+ }
157
+ export interface HardhatNetworkMempoolUserConfig {
158
+ order?: string;
133
159
  }
134
160
  export interface ProjectPathsUserConfig {
135
161
  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":"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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"contract-names.d.ts","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,GAAG;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAUA;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAWA"}
1
+ {"version":3,"file":"contract-names.d.ts","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,GAAG;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAUA;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAWA;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAqGzD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseName = exports.parseFullyQualifiedName = exports.isFullyQualifiedName = exports.getFullyQualifiedName = void 0;
3
+ exports.findDistance = exports.parseName = exports.parseFullyQualifiedName = exports.isFullyQualifiedName = exports.getFullyQualifiedName = void 0;
4
4
  const errors_1 = require("../internal/core/errors");
5
5
  const errors_list_1 = require("../internal/core/errors-list");
6
6
  /**
@@ -45,4 +45,95 @@ function parseName(name) {
45
45
  return { sourceName, contractName };
46
46
  }
47
47
  exports.parseName = parseName;
48
+ /**
49
+ * Returns the edit-distance between two given strings using Levenshtein distance.
50
+ *
51
+ * @param a First string being compared
52
+ * @param b Second string being compared
53
+ * @returns distance between the two strings (lower number == more similar)
54
+ * @see https://github.com/gustf/js-levenshtein
55
+ * @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE
56
+ */
57
+ function findDistance(a, b) {
58
+ function _min(_d0, _d1, _d2, _bx, _ay) {
59
+ return _d0 < _d1 || _d2 < _d1
60
+ ? _d0 > _d2
61
+ ? _d2 + 1
62
+ : _d0 + 1
63
+ : _bx === _ay
64
+ ? _d1
65
+ : _d1 + 1;
66
+ }
67
+ if (a === b) {
68
+ return 0;
69
+ }
70
+ if (a.length > b.length) {
71
+ [a, b] = [b, a];
72
+ }
73
+ let la = a.length;
74
+ let lb = b.length;
75
+ while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {
76
+ la--;
77
+ lb--;
78
+ }
79
+ let offset = 0;
80
+ while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {
81
+ offset++;
82
+ }
83
+ la -= offset;
84
+ lb -= offset;
85
+ if (la === 0 || lb < 3) {
86
+ return lb;
87
+ }
88
+ let x = 0;
89
+ let y;
90
+ let d0;
91
+ let d1;
92
+ let d2;
93
+ let d3;
94
+ let dd = 0; // typescript gets angry if we don't assign here
95
+ let dy;
96
+ let ay;
97
+ let bx0;
98
+ let bx1;
99
+ let bx2;
100
+ let bx3;
101
+ const vector = [];
102
+ for (y = 0; y < la; y++) {
103
+ vector.push(y + 1);
104
+ vector.push(a.charCodeAt(offset + y));
105
+ }
106
+ const len = vector.length - 1;
107
+ for (; x < lb - 3;) {
108
+ bx0 = b.charCodeAt(offset + (d0 = x));
109
+ bx1 = b.charCodeAt(offset + (d1 = x + 1));
110
+ bx2 = b.charCodeAt(offset + (d2 = x + 2));
111
+ bx3 = b.charCodeAt(offset + (d3 = x + 3));
112
+ dd = x += 4;
113
+ for (y = 0; y < len; y += 2) {
114
+ dy = vector[y];
115
+ ay = vector[y + 1];
116
+ d0 = _min(dy, d0, d1, bx0, ay);
117
+ d1 = _min(d0, d1, d2, bx1, ay);
118
+ d2 = _min(d1, d2, d3, bx2, ay);
119
+ dd = _min(d2, d3, dd, bx3, ay);
120
+ vector[y] = dd;
121
+ d3 = d2;
122
+ d2 = d1;
123
+ d1 = d0;
124
+ d0 = dy;
125
+ }
126
+ }
127
+ for (; x < lb;) {
128
+ bx0 = b.charCodeAt(offset + (d0 = x));
129
+ dd = ++x;
130
+ for (y = 0; y < len; y += 2) {
131
+ dy = vector[y];
132
+ vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]);
133
+ d0 = dy;
134
+ }
135
+ }
136
+ return dd;
137
+ }
138
+ exports.findDistance = findDistance;
48
139
  //# sourceMappingURL=contract-names.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract-names.js","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AACvD,8DAAsD;AAEtD;;GAEG;AACH,SAAgB,qBAAqB,CACnC,UAAkB,EAClB,YAAoB;IAEpB,OAAO,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC;AACzC,CAAC;AALD,sDAKC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,oDAEC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,kBAA0B;IAIhE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAEnE,IAAI,UAAU,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,cAAc,CAAC,4BAA4B,EAAE;YACzE,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;KACJ;IAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC;AAbD,0DAaC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAY;IAIpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KACnC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC;AAdD,8BAcC"}
1
+ {"version":3,"file":"contract-names.js","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ export declare function normalizeSourceName(sourceName: string): string;
47
47
  */
48
48
  export declare function isAbsolutePathSourceName(sourceName: string): boolean;
49
49
  /**
50
- * This function replaces backslashes (\) with slashes (/).
50
+ * This function replaces backslashes (\\) with slashes (/).
51
51
  *
52
52
  * Note that a source name must not contain backslashes.
53
53
  */
@@ -164,7 +164,7 @@ function isExplicitRelativePath(sourceName) {
164
164
  return base === "." || base === "..";
165
165
  }
166
166
  /**
167
- * This function replaces backslashes (\) with slashes (/).
167
+ * This function replaces backslashes (\\) with slashes (/).
168
168
  *
169
169
  * Note that a source name must not contain backslashes.
170
170
  */
@@ -184,11 +184,13 @@ async function getPathTrueCase(fromDir, p) {
184
184
  return normalizeSourceName(path_1.default.relative(fromDir, tcp));
185
185
  }
186
186
  catch (error) {
187
- if (typeof error.message === "string" &&
188
- error.message.includes("no matching file exists")) {
189
- throw new errors_1.HardhatError(errors_list_1.ERRORS.SOURCE_NAMES.FILE_NOT_FOUND, {
190
- name: p,
191
- }, error);
187
+ if (error instanceof Error) {
188
+ if (typeof error.message === "string" &&
189
+ error.message.includes("no matching file exists")) {
190
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.SOURCE_NAMES.FILE_NOT_FOUND, {
191
+ name: p,
192
+ }, error);
193
+ }
192
194
  }
193
195
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
194
196
  throw error;
@@ -1 +1 @@
1
- {"version":3,"file":"source-names.js","sourceRoot":"","sources":["../src/utils/source-names.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-names.js","sourceRoot":"","sources":["../src/utils/source-names.ts"],"names":[],"mappings":"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"}