hardhat 2.19.4 → 2.20.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 (317) hide show
  1. package/README.md +6 -0
  2. package/builtin-tasks/compile.js +11 -2
  3. package/builtin-tasks/compile.js.map +1 -1
  4. package/builtin-tasks/node.js +3 -3
  5. package/builtin-tasks/node.js.map +1 -1
  6. package/internal/cli/analytics.d.ts.map +1 -1
  7. package/internal/cli/analytics.js +2 -1
  8. package/internal/cli/analytics.js.map +1 -1
  9. package/internal/cli/cli.js +33 -0
  10. package/internal/cli/cli.js.map +1 -1
  11. package/internal/cli/project-creation.d.ts +1 -1
  12. package/internal/cli/project-creation.js +4 -7
  13. package/internal/cli/project-creation.js.map +1 -1
  14. package/internal/cli/version-notifier.d.ts +2 -0
  15. package/internal/cli/version-notifier.d.ts.map +1 -0
  16. package/internal/cli/version-notifier.js +217 -0
  17. package/internal/cli/version-notifier.js.map +1 -0
  18. package/internal/constants.d.ts.map +1 -1
  19. package/internal/constants.js +1 -0
  20. package/internal/constants.js.map +1 -1
  21. package/internal/core/config/config-loading.d.ts.map +1 -1
  22. package/internal/core/config/config-loading.js +3 -3
  23. package/internal/core/config/config-loading.js.map +1 -1
  24. package/internal/core/config/config-resolution.d.ts.map +1 -1
  25. package/internal/core/config/config-resolution.js +18 -6
  26. package/internal/core/config/config-resolution.js.map +1 -1
  27. package/internal/core/config/config-validation.d.ts +2 -2
  28. package/internal/core/config/config-validation.d.ts.map +1 -1
  29. package/internal/core/config/config-validation.js +12 -2
  30. package/internal/core/config/config-validation.js.map +1 -1
  31. package/internal/core/config/default-config.d.ts.map +1 -1
  32. package/internal/core/config/default-config.js +11 -0
  33. package/internal/core/config/default-config.js.map +1 -1
  34. package/internal/core/jsonrpc/types/base-types.d.ts +1 -1
  35. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
  36. package/internal/core/jsonrpc/types/base-types.js +7 -5
  37. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  38. package/internal/core/jsonrpc/types/input/callRequest.d.ts +2 -0
  39. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  40. package/internal/core/jsonrpc/types/input/callRequest.js +2 -0
  41. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  42. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +4 -0
  43. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  44. package/internal/core/jsonrpc/types/input/transactionRequest.js +2 -0
  45. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  46. package/internal/core/jsonrpc/types/output/block.d.ts +6 -0
  47. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  48. package/internal/core/jsonrpc/types/output/block.js +3 -0
  49. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  50. package/internal/core/providers/accounts.d.ts.map +1 -1
  51. package/internal/core/providers/accounts.js +10 -10
  52. package/internal/core/providers/accounts.js.map +1 -1
  53. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  54. package/internal/core/providers/gas-providers.js +7 -0
  55. package/internal/core/providers/gas-providers.js.map +1 -1
  56. package/internal/core/providers/util.js +2 -2
  57. package/internal/core/providers/util.js.map +1 -1
  58. package/internal/hardhat-network/jsonrpc/client.d.ts +3 -3
  59. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  60. package/internal/hardhat-network/jsonrpc/client.js +9 -9
  61. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  62. package/internal/hardhat-network/provider/BlockchainData.d.ts +5 -5
  63. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
  64. package/internal/hardhat-network/provider/BlockchainData.js +10 -10
  65. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  66. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +7 -0
  67. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
  68. package/internal/hardhat-network/provider/HardhatBlockchain.js +14 -2
  69. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  70. package/internal/hardhat-network/provider/TxPool.d.ts +2 -3
  71. package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
  72. package/internal/hardhat-network/provider/TxPool.js +16 -16
  73. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  74. package/internal/hardhat-network/provider/ethereumjs-workarounds.js +1 -1
  75. package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
  76. package/internal/hardhat-network/provider/filter.d.ts +5 -6
  77. package/internal/hardhat-network/provider/filter.d.ts.map +1 -1
  78. package/internal/hardhat-network/provider/filter.js +2 -2
  79. package/internal/hardhat-network/provider/filter.js.map +1 -1
  80. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +7 -0
  81. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  82. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +21 -4
  83. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  84. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +16 -9
  85. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
  86. package/internal/hardhat-network/provider/fork/ForkStateManager.js +42 -25
  87. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  88. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
  89. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +3 -0
  90. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  91. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +2 -2
  92. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -1
  93. package/internal/hardhat-network/provider/modules/base.js +4 -4
  94. package/internal/hardhat-network/provider/modules/base.js.map +1 -1
  95. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  96. package/internal/hardhat-network/provider/modules/eth.js +16 -9
  97. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  98. package/internal/hardhat-network/provider/modules/logger.d.ts +1 -1
  99. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  100. package/internal/hardhat-network/provider/modules/logger.js +17 -17
  101. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  102. package/internal/hardhat-network/provider/node-types.d.ts +17 -13
  103. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  104. package/internal/hardhat-network/provider/node.d.ts +6 -2
  105. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  106. package/internal/hardhat-network/provider/node.js +148 -79
  107. package/internal/hardhat-network/provider/node.js.map +1 -1
  108. package/internal/hardhat-network/provider/output.d.ts +3 -0
  109. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  110. package/internal/hardhat-network/provider/output.js +23 -9
  111. package/internal/hardhat-network/provider/output.js.map +1 -1
  112. package/internal/hardhat-network/provider/return-data.d.ts +3 -4
  113. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  114. package/internal/hardhat-network/provider/return-data.js +4 -3
  115. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  116. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +8 -10
  117. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
  118. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +9 -9
  119. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  120. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +8 -10
  121. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
  122. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +9 -9
  123. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  124. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +9 -10
  125. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
  126. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +6 -7
  127. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  128. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +5 -6
  129. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
  130. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
  131. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  132. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +4 -5
  133. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
  134. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +1 -1
  135. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
  136. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +7 -8
  137. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -1
  138. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +2 -2
  139. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
  140. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +7 -8
  141. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +1 -1
  142. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +2 -2
  143. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +1 -1
  144. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +4 -5
  145. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
  146. package/internal/hardhat-network/provider/utils/makeAccount.js +1 -1
  147. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  148. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
  149. package/internal/hardhat-network/provider/utils/makeCommon.js +5 -3
  150. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  151. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +2 -2
  152. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -1
  153. package/internal/hardhat-network/provider/utils/makeFakeSignature.js +15 -1
  154. package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -1
  155. package/internal/hardhat-network/provider/utils/makeStateTrie.js +2 -2
  156. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  157. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +1 -3
  158. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
  159. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +6 -2
  160. package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
  161. package/internal/hardhat-network/provider/utils/random.d.ts +3 -3
  162. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
  163. package/internal/hardhat-network/provider/utils/random.js +2 -2
  164. package/internal/hardhat-network/provider/utils/random.js.map +1 -1
  165. package/internal/hardhat-network/stack-traces/consoleLogger.js +42 -44
  166. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  167. package/internal/hardhat-network/stack-traces/constants.d.ts +1 -1
  168. package/internal/hardhat-network/stack-traces/constants.js +1 -1
  169. package/internal/hardhat-network/stack-traces/contracts-identifier.js +1 -1
  170. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  171. package/internal/hardhat-network/stack-traces/debug.js +12 -12
  172. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  173. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  174. package/internal/hardhat-network/stack-traces/error-inferrer.js +5 -4
  175. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  176. package/internal/hardhat-network/stack-traces/library-utils.d.ts +4 -4
  177. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
  178. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
  179. package/internal/hardhat-network/stack-traces/message-trace.d.ts +8 -9
  180. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  181. package/internal/hardhat-network/stack-traces/model.d.ts +5 -5
  182. package/internal/hardhat-network/stack-traces/model.d.ts.map +1 -1
  183. package/internal/hardhat-network/stack-traces/model.js +5 -5
  184. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  185. package/internal/hardhat-network/stack-traces/panic-errors.js +1 -1
  186. package/internal/hardhat-network/stack-traces/panic-errors.js.map +1 -1
  187. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  188. package/internal/hardhat-network/stack-traces/solidity-errors.js +3 -3
  189. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  190. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +2 -3
  191. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  192. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  193. package/internal/hardhat-network/stack-traces/solidityTracer.js +3 -2
  194. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  195. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  196. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +34 -28
  197. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  198. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +1 -2
  199. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  200. package/internal/hardhat-network/stack-traces/vm-tracer.js +9 -9
  201. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  202. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  203. package/internal/solidity/compiler/downloader.js +4 -4
  204. package/internal/solidity/compiler/downloader.js.map +1 -1
  205. package/internal/solidity/compiler/index.d.ts +2 -1
  206. package/internal/solidity/compiler/index.d.ts.map +1 -1
  207. package/internal/solidity/compiler/index.js +25 -2
  208. package/internal/solidity/compiler/index.js.map +1 -1
  209. package/internal/solidity/compiler/solc-info.d.ts.map +1 -1
  210. package/internal/solidity/compiler/solc-info.js +1 -0
  211. package/internal/solidity/compiler/solc-info.js.map +1 -1
  212. package/internal/util/abi-helpers.d.ts +2 -3
  213. package/internal/util/abi-helpers.d.ts.map +1 -1
  214. package/internal/util/abi-helpers.js.map +1 -1
  215. package/internal/util/bigint.d.ts +1 -2
  216. package/internal/util/bigint.d.ts.map +1 -1
  217. package/internal/util/bigint.js +2 -2
  218. package/internal/util/bigint.js.map +1 -1
  219. package/internal/util/fs-utils.d.ts +1 -1
  220. package/internal/util/fs-utils.js +1 -1
  221. package/internal/util/hardforks.d.ts +2 -1
  222. package/internal/util/hardforks.d.ts.map +1 -1
  223. package/internal/util/hardforks.js +2 -0
  224. package/internal/util/hardforks.js.map +1 -1
  225. package/internal/util/keccak.d.ts +1 -2
  226. package/internal/util/keccak.d.ts.map +1 -1
  227. package/internal/util/keccak.js +1 -1
  228. package/internal/util/keccak.js.map +1 -1
  229. package/internal/util/multi-process-mutex.d.ts +12 -0
  230. package/internal/util/multi-process-mutex.d.ts.map +1 -0
  231. package/internal/util/multi-process-mutex.js +116 -0
  232. package/internal/util/multi-process-mutex.js.map +1 -0
  233. package/internal/util/report-telemetry-consent.js +3 -1
  234. package/internal/util/report-telemetry-consent.js.map +1 -1
  235. package/package.json +13 -11
  236. package/sample-projects/javascript/contracts/Lock.sol +1 -1
  237. package/sample-projects/javascript/hardhat.config.js +1 -1
  238. package/sample-projects/javascript-esm/contracts/Lock.sol +1 -1
  239. package/sample-projects/javascript-esm/hardhat.config.cjs +1 -1
  240. package/sample-projects/typescript/contracts/Lock.sol +1 -1
  241. package/sample-projects/typescript/hardhat.config.ts +1 -1
  242. package/sample-projects/typescript-viem/contracts/Lock.sol +1 -1
  243. package/sample-projects/typescript-viem/hardhat.config.ts +1 -1
  244. package/src/builtin-tasks/compile.ts +20 -2
  245. package/src/builtin-tasks/node.ts +8 -4
  246. package/src/internal/cli/analytics.ts +4 -1
  247. package/src/internal/cli/cli.ts +13 -1
  248. package/src/internal/cli/project-creation.ts +5 -10
  249. package/src/internal/cli/version-notifier.ts +268 -0
  250. package/src/internal/constants.ts +1 -0
  251. package/src/internal/core/config/config-loading.ts +2 -1
  252. package/src/internal/core/config/config-resolution.ts +20 -1
  253. package/src/internal/core/config/config-validation.ts +28 -2
  254. package/src/internal/core/config/default-config.ts +11 -0
  255. package/src/internal/core/jsonrpc/types/base-types.ts +12 -7
  256. package/src/internal/core/jsonrpc/types/input/callRequest.ts +3 -0
  257. package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +5 -1
  258. package/src/internal/core/jsonrpc/types/output/block.ts +3 -0
  259. package/src/internal/core/providers/accounts.ts +24 -13
  260. package/src/internal/core/providers/gas-providers.ts +8 -0
  261. package/src/internal/core/providers/util.ts +2 -2
  262. package/src/internal/hardhat-network/jsonrpc/client.ts +7 -4
  263. package/src/internal/hardhat-network/provider/BlockchainData.ts +6 -6
  264. package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +28 -3
  265. package/src/internal/hardhat-network/provider/TxPool.ts +19 -16
  266. package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +4 -5
  267. package/src/internal/hardhat-network/provider/filter.ts +11 -8
  268. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +40 -7
  269. package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +79 -39
  270. package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +3 -0
  271. package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +2 -2
  272. package/src/internal/hardhat-network/provider/modules/base.ts +5 -5
  273. package/src/internal/hardhat-network/provider/modules/eth.ts +40 -14
  274. package/src/internal/hardhat-network/provider/modules/logger.ts +17 -14
  275. package/src/internal/hardhat-network/provider/node-types.ts +19 -12
  276. package/src/internal/hardhat-network/provider/node.ts +210 -86
  277. package/src/internal/hardhat-network/provider/output.ts +35 -8
  278. package/src/internal/hardhat-network/provider/return-data.ts +6 -5
  279. package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +24 -25
  280. package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +24 -25
  281. package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +27 -16
  282. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +7 -8
  283. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +6 -5
  284. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +15 -8
  285. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts +15 -8
  286. package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +4 -4
  287. package/src/internal/hardhat-network/provider/utils/makeAccount.ts +2 -2
  288. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +9 -3
  289. package/src/internal/hardhat-network/provider/utils/makeFakeSignature.ts +21 -7
  290. package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +3 -3
  291. package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +10 -5
  292. package/src/internal/hardhat-network/provider/utils/random.ts +5 -5
  293. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +13 -13
  294. package/src/internal/hardhat-network/stack-traces/constants.ts +1 -1
  295. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +4 -4
  296. package/src/internal/hardhat-network/stack-traces/debug.ts +1 -1
  297. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +6 -5
  298. package/src/internal/hardhat-network/stack-traces/library-utils.ts +6 -6
  299. package/src/internal/hardhat-network/stack-traces/message-trace.ts +8 -8
  300. package/src/internal/hardhat-network/stack-traces/model.ts +5 -5
  301. package/src/internal/hardhat-network/stack-traces/panic-errors.ts +1 -1
  302. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +4 -2
  303. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +2 -2
  304. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +3 -2
  305. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +49 -38
  306. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +15 -13
  307. package/src/internal/sentry/transport.ts +1 -1
  308. package/src/internal/solidity/compiler/downloader.ts +5 -4
  309. package/src/internal/solidity/compiler/index.ts +22 -2
  310. package/src/internal/solidity/compiler/solc-info.ts +1 -0
  311. package/src/internal/util/abi-helpers.ts +2 -2
  312. package/src/internal/util/bigint.ts +4 -4
  313. package/src/internal/util/fs-utils.ts +1 -1
  314. package/src/internal/util/hardforks.ts +2 -0
  315. package/src/internal/util/keccak.ts +2 -2
  316. package/src/internal/util/multi-process-mutex.ts +133 -0
  317. package/src/internal/util/report-telemetry-consent.ts +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"abi-helpers.js","sourceRoot":"","sources":["../../src/internal/util/abi-helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAE1C,MAAa,UAAU;IACrB;;;;;OAKG;IACI,MAAM,CAAC,eAAe,CAC3B,IAAY,EACZ,MAAa;QAEb,IAAI;YACF,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzC,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;gBACd,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjD,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEvD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACjD;QAAC,MAAM;YACN,OAAO;SACR;IACH,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,MAAa,EAAE,QAAgB;QAC3D,IAAI;YACF,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;SACb;QAAC,MAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,MAAa;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAU;QACpC,+CAA+C;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACvE;QAED,qCAAqC;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,KAAK,GAAG,CAAC;SACrB;QAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;CACF;AApDD,gCAoDC"}
1
+ {"version":3,"file":"abi-helpers.js","sourceRoot":"","sources":["../../src/internal/util/abi-helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAE1C,MAAa,UAAU;IACrB;;;;;OAKG;IACI,MAAM,CAAC,eAAe,CAC3B,IAAY,EACZ,MAAa;QAEb,IAAI;YACF,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzC,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;gBACd,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjD,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEvD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACjD;QAAC,MAAM;YACN,OAAO;SACR;IACH,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,MAAa,EAAE,QAAoB;QAC/D,IAAI;YACF,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;SACb;QAAC,MAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,MAAa;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAU;QACpC,+CAA+C;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACvE;QAED,qCAAqC;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,KAAK,GAAG,CAAC;SACrB;QAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;CACF;AApDD,gCAoDC"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  export declare function min(x: bigint, y: bigint): bigint;
3
2
  export declare function max(x: bigint, y: bigint): bigint;
4
3
  export declare function isBigInt(x: unknown): x is bigint;
@@ -9,6 +8,6 @@ export declare function cmp(a: bigint, b: bigint): number;
9
8
  * bytes. This hex string is NOT 0x-prefixed.
10
9
  */
11
10
  export declare function toEvmWord(x: bigint | number): string;
12
- export declare function fromBigIntLike(x: string | number | bigint | Buffer | undefined): bigint | undefined;
11
+ export declare function fromBigIntLike(x: string | number | bigint | Uint8Array | undefined): bigint | undefined;
13
12
  export declare function toHex(x: number | bigint): string;
14
13
  //# sourceMappingURL=bigint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/internal/util/bigint.ts"],"names":[],"mappings":";AAEA,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEpD;AAOD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAC/C,MAAM,GAAG,SAAS,CAapB;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAOhD"}
1
+ {"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/internal/util/bigint.ts"],"names":[],"mappings":"AAEA,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEpD;AAOD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GACnD,MAAM,GAAG,SAAS,CAapB;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAOhD"}
@@ -35,7 +35,7 @@ function toEvmWord(x) {
35
35
  }
36
36
  exports.toEvmWord = toEvmWord;
37
37
  function bufferToBigInt(x) {
38
- const hex = `0x${x.toString("hex")}`;
38
+ const hex = `0x${Buffer.from(x).toString("hex")}`;
39
39
  return hex === "0x" ? 0n : BigInt(hex);
40
40
  }
41
41
  function fromBigIntLike(x) {
@@ -45,7 +45,7 @@ function fromBigIntLike(x) {
45
45
  if (typeof x === "number" || typeof x === "string") {
46
46
  return BigInt(x);
47
47
  }
48
- if (Buffer.isBuffer(x)) {
48
+ if (x instanceof Uint8Array) {
49
49
  return bufferToBigInt(x);
50
50
  }
51
51
  const exhaustiveCheck = x;
@@ -1 +1 @@
1
- {"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/internal/util/bigint.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAExD,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAFD,kBAEC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAFD,kBAEC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAFD,4BAEC;AAED,SAAgB,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;KACtB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,sBAQC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAFD,kBAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,CAAkB;IAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAFD,8BAEC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACrC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,cAAc,CAC5B,CAAgD;IAEhD,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC5C,OAAO,CAAC,CAAC;KACV;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;KAClB;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACtB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,MAAM,eAAe,GAAU,CAAC,CAAC;IACjC,OAAO,eAAe,CAAC;AACzB,CAAC;AAfD,wCAeC;AAED,SAAgB,KAAK,CAAC,CAAkB;IACtC,IAAA,+BAAsB,EACpB,CAAC,IAAI,CAAC,EACN,kEAAkE,CAAC,EAAE,CACtE,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC;AAPD,sBAOC"}
1
+ {"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/internal/util/bigint.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAExD,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAFD,kBAEC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAFD,kBAEC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAFD,4BAEC;AAED,SAAgB,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;KACtB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,sBAQC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAFD,kBAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,CAAkB;IAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAFD,8BAEC;AAED,SAAS,cAAc,CAAC,CAAa;IACnC,MAAM,GAAG,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAClD,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,cAAc,CAC5B,CAAoD;IAEpD,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC5C,OAAO,CAAC,CAAC;KACV;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;KAClB;IACD,IAAI,CAAC,YAAY,UAAU,EAAE;QAC3B,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,MAAM,eAAe,GAAU,CAAC,CAAC;IACjC,OAAO,eAAe,CAAC;AACzB,CAAC;AAfD,wCAeC;AAED,SAAgB,KAAK,CAAC,CAAkB;IACtC,IAAA,+BAAsB,EACpB,CAAC,IAAI,CAAC,EACN,kEAAkE,CAAC,EAAE,CACtE,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC;AAPD,sBAOC"}
@@ -24,7 +24,7 @@ export declare function getRealPathSync(absolutePath: string): string;
24
24
  *
25
25
  * @param absolutePathToDir A directory. If it doesn't exist `[]` is returned.
26
26
  * @param matches A function to filter files (not directories)
27
- * @returns An An array of absolute paths. Each file has its true case, except
27
+ * @returns An array of absolute paths. Each file has its true case, except
28
28
  * for the initial absolutePathToDir part, which preserves the given casing.
29
29
  * No order is guaranteed.
30
30
  */
@@ -72,7 +72,7 @@ exports.getRealPathSync = getRealPathSync;
72
72
  *
73
73
  * @param absolutePathToDir A directory. If it doesn't exist `[]` is returned.
74
74
  * @param matches A function to filter files (not directories)
75
- * @returns An An array of absolute paths. Each file has its true case, except
75
+ * @returns An array of absolute paths. Each file has its true case, except
76
76
  * for the initial absolutePathToDir part, which preserves the given casing.
77
77
  * No order is guaranteed.
78
78
  */
@@ -14,7 +14,8 @@ export declare enum HardforkName {
14
14
  ARROW_GLACIER = "arrowGlacier",
15
15
  GRAY_GLACIER = "grayGlacier",
16
16
  MERGE = "merge",
17
- SHANGHAI = "shanghai"
17
+ SHANGHAI = "shanghai",
18
+ CANCUN = "cancun"
18
19
  }
19
20
  export declare function getHardforkName(name: string): HardforkName;
20
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hardforks.d.ts","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":"AAEA,oBAAY,YAAY;IACtB,QAAQ,eAAe;IACvB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,iBAAiB,qBAAqB;IACtC,eAAe,mBAAmB;IAClC,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,aAAa,iBAAiB;IAC9B,YAAY,gBAAgB;IAC5B,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAqBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAY1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,YAAY,GACtB,OAAO,CAOT"}
1
+ {"version":3,"file":"hardforks.d.ts","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":"AAEA,oBAAY,YAAY;IACtB,QAAQ,eAAe;IACvB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,iBAAiB,qBAAqB;IACtC,eAAe,mBAAmB;IAClC,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,aAAa,iBAAiB;IAC9B,YAAY,gBAAgB;IAC5B,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAsBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAY1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,YAAY,GACtB,OAAO,CAOT"}
@@ -20,6 +20,7 @@ var HardforkName;
20
20
  HardforkName["GRAY_GLACIER"] = "grayGlacier";
21
21
  HardforkName["MERGE"] = "merge";
22
22
  HardforkName["SHANGHAI"] = "shanghai";
23
+ HardforkName["CANCUN"] = "cancun";
23
24
  })(HardforkName = exports.HardforkName || (exports.HardforkName = {}));
24
25
  const HARDFORKS_ORDER = [
25
26
  HardforkName.FRONTIER,
@@ -38,6 +39,7 @@ const HARDFORKS_ORDER = [
38
39
  HardforkName.GRAY_GLACIER,
39
40
  HardforkName.MERGE,
40
41
  HardforkName.SHANGHAI,
42
+ HardforkName.CANCUN,
41
43
  ];
42
44
  function getHardforkName(name) {
43
45
  const hardforkName = Object.values(HardforkName)[Object.values(HardforkName).indexOf(name)];
@@ -1 +1 @@
1
- {"version":3,"file":"hardforks.js","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAExD,IAAY,YAiBX;AAjBD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,2BAAW,CAAA;IACX,sDAAsC,CAAA;IACtC,kDAAkC,CAAA;IAClC,uCAAuB,CAAA;IACvB,iDAAiC,CAAA;IACjC,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,4CAA4B,CAAA;IAC5B,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,8CAA8B,CAAA;IAC9B,4CAA4B,CAAA;IAC5B,+BAAe,CAAA;IACf,qCAAqB,CAAA;AACvB,CAAC,EAjBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAiBvB;AAED,MAAM,eAAe,GAAmB;IACtC,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,GAAG;IAChB,YAAY,CAAC,iBAAiB;IAC9B,YAAY,CAAC,eAAe;IAC5B,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,cAAc;IAC3B,YAAY,CAAC,UAAU;IACvB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,aAAa;IAC1B,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,KAAK;IAClB,YAAY,CAAC,QAAQ;CACtB,CAAC;AAEF,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,YAAY,GAChB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CACzB,MAAM,CAAC,MAAM,CAAS,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAClD,CAAC;IAEJ,IAAA,+BAAsB,EACpB,YAAY,KAAK,SAAS,EAC1B,wBAAwB,IAAI,EAAE,CAC/B,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAZD,0CAYC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACzB,SAAuB,EACvB,SAAuB;IAEvB,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC;AAVD,kCAUC"}
1
+ {"version":3,"file":"hardforks.js","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAExD,IAAY,YAkBX;AAlBD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,2BAAW,CAAA;IACX,sDAAsC,CAAA;IACtC,kDAAkC,CAAA;IAClC,uCAAuB,CAAA;IACvB,iDAAiC,CAAA;IACjC,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,4CAA4B,CAAA;IAC5B,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,8CAA8B,CAAA;IAC9B,4CAA4B,CAAA;IAC5B,+BAAe,CAAA;IACf,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;AACnB,CAAC,EAlBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAkBvB;AAED,MAAM,eAAe,GAAmB;IACtC,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,GAAG;IAChB,YAAY,CAAC,iBAAiB;IAC9B,YAAY,CAAC,eAAe;IAC5B,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,cAAc;IAC3B,YAAY,CAAC,UAAU;IACvB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,aAAa;IAC1B,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,KAAK;IAClB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,MAAM;CACpB,CAAC;AAEF,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,YAAY,GAChB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CACzB,MAAM,CAAC,MAAM,CAAS,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAClD,CAAC;IAEJ,IAAA,+BAAsB,EACpB,YAAY,KAAK,SAAS,EAC1B,wBAAwB,IAAI,EAAE,CAC/B,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAZD,0CAYC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACzB,SAAuB,EACvB,SAAuB;IAEvB,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC;AAVD,kCAUC"}
@@ -1,3 +1,2 @@
1
- /// <reference types="node" />
2
- export declare function keccak256(data: Buffer): Buffer;
1
+ export declare function keccak256(data: Uint8Array): Uint8Array;
3
2
  //# sourceMappingURL=keccak.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keccak.d.ts","sourceRoot":"","sources":["../../src/internal/util/keccak.ts"],"names":[],"mappings":";AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C"}
1
+ {"version":3,"file":"keccak.d.ts","sourceRoot":"","sources":["../../src/internal/util/keccak.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAEtD"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.keccak256 = void 0;
7
7
  const keccak_1 = __importDefault(require("keccak"));
8
8
  function keccak256(data) {
9
- return (0, keccak_1.default)("keccak256").update(data).digest();
9
+ return (0, keccak_1.default)("keccak256").update(Buffer.from(data)).digest();
10
10
  }
11
11
  exports.keccak256 = keccak256;
12
12
  //# sourceMappingURL=keccak.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keccak.js","sourceRoot":"","sources":["../../src/internal/util/keccak.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsC;AAEtC,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,IAAA,gBAAgB,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"keccak.js","sourceRoot":"","sources":["../../src/internal/util/keccak.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsC;AAEtC,SAAgB,SAAS,CAAC,IAAgB;IACxC,OAAO,IAAA,gBAAgB,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC1E,CAAC;AAFD,8BAEC"}
@@ -0,0 +1,12 @@
1
+ export declare class MultiProcessMutex {
2
+ private _mutexFilePath;
3
+ private _mutexLifespanInMs;
4
+ constructor(mutexName: string, maxMutexLifespanInMs?: number);
5
+ use<T>(f: () => Promise<T>): Promise<T>;
6
+ private _tryToAcquireMutex;
7
+ private _executeFunctionAndReleaseMutex;
8
+ private _isMutexFileTooOld;
9
+ private _deleteMutexFile;
10
+ private _waitMs;
11
+ }
12
+ //# sourceMappingURL=multi-process-mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-process-mutex.d.ts","sourceRoot":"","sources":["../../src/internal/util/multi-process-mutex.ts"],"names":[],"mappings":"AAoBA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,SAAS,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM;IAQ/C,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAuBtC,kBAAkB;YAelB,+BAA+B;IAuB7C,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,gBAAgB;YAcV,OAAO;CAKtB"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MultiProcessMutex = void 0;
7
+ /* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
8
+ const debug_1 = __importDefault(require("debug"));
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const node_os_1 = __importDefault(require("node:os"));
12
+ // Logic explanation: the fs.writeFile function, when used with the wx+ flag, performs an atomic operation to create a file.
13
+ // If multiple processes try to create the same file simultaneously, only one will succeed.
14
+ // This logic can be utilized to implement a mutex.
15
+ // ATTENTION: in the current implementation, there's still a risk of two processes running simultaneously.
16
+ // For example, if processA has locked the mutex and is running, processB will wait.
17
+ // During this wait, processB continuously checks the elapsed time since the mutex lock file was created.
18
+ // If an excessive amount of time has passed, processB will assume ownership of the mutex to avoid stale locks.
19
+ // However, there's a possibility that processB might take ownership because the mutex creation file is outdated, even though processA is still running
20
+ // For more info check the Nomic Notion page (internal link).
21
+ const log = (0, debug_1.default)("hardhat:util:multi-process-mutex");
22
+ const DEFAULT_MAX_MUTEX_LIFESPAN_IN_MS = 60000;
23
+ const MUTEX_LOOP_WAITING_TIME_IN_MS = 100;
24
+ class MultiProcessMutex {
25
+ constructor(mutexName, maxMutexLifespanInMs) {
26
+ log(`Creating mutex with name '${mutexName}'`);
27
+ this._mutexFilePath = node_path_1.default.join(node_os_1.default.tmpdir(), `${mutexName}.txt`);
28
+ this._mutexLifespanInMs =
29
+ maxMutexLifespanInMs ?? DEFAULT_MAX_MUTEX_LIFESPAN_IN_MS;
30
+ }
31
+ async use(f) {
32
+ log(`Starting mutex process with mutex file '${this._mutexFilePath}'`);
33
+ while (true) {
34
+ if (await this._tryToAcquireMutex()) {
35
+ // Mutex has been acquired
36
+ return this._executeFunctionAndReleaseMutex(f);
37
+ }
38
+ // Mutex not acquired
39
+ if (this._isMutexFileTooOld()) {
40
+ // If the mutex file is too old, it likely indicates a stale lock, so the file should be removed
41
+ log(`Current mutex file is too old, removing it at path '${this._mutexFilePath}'`);
42
+ this._deleteMutexFile();
43
+ }
44
+ else {
45
+ // wait
46
+ await this._waitMs();
47
+ }
48
+ }
49
+ }
50
+ async _tryToAcquireMutex() {
51
+ try {
52
+ // Create a file only if it does not exist
53
+ node_fs_1.default.writeFileSync(this._mutexFilePath, "", { flag: "wx+" });
54
+ return true;
55
+ }
56
+ catch (error) {
57
+ if (error.code === "EEXIST") {
58
+ // File already exists, so the mutex is already acquired
59
+ return false;
60
+ }
61
+ throw error;
62
+ }
63
+ }
64
+ async _executeFunctionAndReleaseMutex(f) {
65
+ log(`Mutex acquired at path '${this._mutexFilePath}'`);
66
+ try {
67
+ const res = await f();
68
+ // Release the mutex
69
+ log(`Mutex released at path '${this._mutexFilePath}'`);
70
+ this._deleteMutexFile();
71
+ log(`Mutex released at path '${this._mutexFilePath}'`);
72
+ return res;
73
+ }
74
+ catch (error) {
75
+ // Catch any error to avoid stale locks.
76
+ // Remove the mutex file and re-throw the error
77
+ this._deleteMutexFile();
78
+ throw error;
79
+ }
80
+ }
81
+ _isMutexFileTooOld() {
82
+ let fileStat;
83
+ try {
84
+ fileStat = node_fs_1.default.statSync(this._mutexFilePath);
85
+ }
86
+ catch (error) {
87
+ if (error.code === "ENOENT") {
88
+ // The file might have been deleted by another process while this function was trying to access it.
89
+ return false;
90
+ }
91
+ throw error;
92
+ }
93
+ const now = new Date();
94
+ const fileDate = new Date(fileStat.ctime);
95
+ const diff = now.getTime() - fileDate.getTime();
96
+ return diff > this._mutexLifespanInMs;
97
+ }
98
+ _deleteMutexFile() {
99
+ try {
100
+ log(`Deleting mutex file at path '${this._mutexFilePath}'`);
101
+ node_fs_1.default.unlinkSync(this._mutexFilePath);
102
+ }
103
+ catch (error) {
104
+ if (error.code === "ENOENT") {
105
+ // The file might have been deleted by another process while this function was trying to access it.
106
+ return;
107
+ }
108
+ throw error;
109
+ }
110
+ }
111
+ async _waitMs() {
112
+ return new Promise((resolve) => setTimeout(resolve, MUTEX_LOOP_WAITING_TIME_IN_MS));
113
+ }
114
+ }
115
+ exports.MultiProcessMutex = MultiProcessMutex;
116
+ //# sourceMappingURL=multi-process-mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-process-mutex.js","sourceRoot":"","sources":["../../src/internal/util/multi-process-mutex.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const analytics_1 = require("../cli/analytics");
4
4
  async function main() {
5
- const [telemetryConsent] = process.argv.slice(2);
5
+ // This default value shouldn't be necessary, but we add one to make it
6
+ // easier to recognize if the telemetry consent value is not passed.
7
+ const [telemetryConsent = "<undefined-telemetry-consent>"] = process.argv.slice(2);
6
8
  // we pass undefined as the telemetryConsent value because
7
9
  // this hit is done before the consent is saved
8
10
  const analytics = await analytics_1.Analytics.getInstance(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"report-telemetry-consent.js","sourceRoot":"","sources":["../../src/internal/util/report-telemetry-consent.ts"],"names":[],"mappings":";;AAAA,gDAA6C;AAE7C,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD,0DAA0D;IAC1D,+CAA+C;IAC/C,MAAM,SAAS,GAAG,MAAM,qBAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,MAAM,SAAS,CAAC,uBAAuB,CACpE,gBAAgC,CACjC,CAAC;IACF,MAAM,iBAAiB,CAAC;AAC1B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"report-telemetry-consent.js","sourceRoot":"","sources":["../../src/internal/util/report-telemetry-consent.ts"],"names":[],"mappings":";;AAAA,gDAA6C;AAE7C,KAAK,UAAU,IAAI;IACjB,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,CAAC,gBAAgB,GAAG,+BAA+B,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,0DAA0D;IAC1D,+CAA+C;IAC/C,MAAM,SAAS,GAAG,MAAM,qBAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,MAAM,SAAS,CAAC,uBAAuB,CACpE,gBAAgC,CACjC,CAAC;IACF,MAAM,iBAAiB,CAAC;AAC1B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat",
3
- "version": "2.19.4",
3
+ "version": "2.20.0",
4
4
  "author": "Nomic Labs LLC",
5
5
  "license": "MIT",
6
6
  "homepage": "https://hardhat.org",
@@ -84,16 +84,17 @@
84
84
  "dependencies": {
85
85
  "@ethersproject/abi": "^5.1.2",
86
86
  "@metamask/eth-sig-util": "^4.0.0",
87
- "@nomicfoundation/ethereumjs-block": "5.0.2",
88
- "@nomicfoundation/ethereumjs-blockchain": "7.0.2",
89
- "@nomicfoundation/ethereumjs-common": "4.0.2",
90
- "@nomicfoundation/ethereumjs-evm": "2.0.2",
91
- "@nomicfoundation/ethereumjs-rlp": "5.0.2",
92
- "@nomicfoundation/ethereumjs-statemanager": "2.0.2",
93
- "@nomicfoundation/ethereumjs-trie": "6.0.2",
94
- "@nomicfoundation/ethereumjs-tx": "5.0.2",
95
- "@nomicfoundation/ethereumjs-util": "9.0.2",
96
- "@nomicfoundation/ethereumjs-vm": "7.0.2",
87
+ "@nomicfoundation/ethereumjs-block": "5.0.4",
88
+ "@nomicfoundation/ethereumjs-blockchain": "7.0.4",
89
+ "@nomicfoundation/ethereumjs-common": "4.0.4",
90
+ "@nomicfoundation/ethereumjs-evm": "2.0.4",
91
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
92
+ "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
93
+ "@nomicfoundation/ethereumjs-trie": "6.0.4",
94
+ "@nomicfoundation/ethereumjs-tx": "5.0.4",
95
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
96
+ "@nomicfoundation/ethereumjs-verkle": "0.0.2",
97
+ "@nomicfoundation/ethereumjs-vm": "7.0.4",
97
98
  "@nomicfoundation/solidity-analyzer": "^0.1.0",
98
99
  "@sentry/node": "^5.18.1",
99
100
  "@types/bn.js": "^5.1.0",
@@ -101,6 +102,7 @@
101
102
  "adm-zip": "^0.4.16",
102
103
  "aggregate-error": "^3.0.0",
103
104
  "ansi-escapes": "^4.3.0",
105
+ "boxen": "^5.1.2",
104
106
  "chalk": "^2.4.2",
105
107
  "chokidar": "^3.4.0",
106
108
  "ci-info": "^2.0.0",
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
- pragma solidity ^0.8.9;
2
+ pragma solidity ^0.8.24;
3
3
 
4
4
  // Uncomment this line to use console.log
5
5
  // import "hardhat/console.sol";
@@ -2,5 +2,5 @@ require("@nomicfoundation/hardhat-toolbox");
2
2
 
3
3
  /** @type import('hardhat/config').HardhatUserConfig */
4
4
  module.exports = {
5
- solidity: "0.8.19",
5
+ solidity: "0.8.24",
6
6
  };
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
- pragma solidity ^0.8.9;
2
+ pragma solidity ^0.8.24;
3
3
 
4
4
  // Uncomment this line to use console.log
5
5
  // import "hardhat/console.sol";
@@ -2,5 +2,5 @@ require("@nomicfoundation/hardhat-toolbox");
2
2
 
3
3
  /** @type import('hardhat/config').HardhatUserConfig */
4
4
  module.exports = {
5
- solidity: "0.8.19",
5
+ solidity: "0.8.24",
6
6
  };
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
- pragma solidity ^0.8.9;
2
+ pragma solidity ^0.8.24;
3
3
 
4
4
  // Uncomment this line to use console.log
5
5
  // import "hardhat/console.sol";
@@ -2,7 +2,7 @@ import { HardhatUserConfig } from "hardhat/config";
2
2
  import "@nomicfoundation/hardhat-toolbox";
3
3
 
4
4
  const config: HardhatUserConfig = {
5
- solidity: "0.8.19",
5
+ solidity: "0.8.24",
6
6
  };
7
7
 
8
8
  export default config;
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
- pragma solidity ^0.8.9;
2
+ pragma solidity ^0.8.24;
3
3
 
4
4
  // Uncomment this line to use console.log
5
5
  // import "hardhat/console.sol";
@@ -2,7 +2,7 @@ import { HardhatUserConfig } from "hardhat/config";
2
2
  import "@nomicfoundation/hardhat-toolbox-viem";
3
3
 
4
4
  const config: HardhatUserConfig = {
5
- solidity: "0.8.19",
5
+ solidity: "0.8.24",
6
6
  };
7
7
 
8
8
  export default config;
@@ -674,9 +674,26 @@ subtask(TASK_COMPILE_SOLIDITY_RUN_SOLCJS)
674
674
  subtask(TASK_COMPILE_SOLIDITY_RUN_SOLC)
675
675
  .addParam("input", undefined, undefined, types.any)
676
676
  .addParam("solcPath", undefined, undefined, types.string)
677
+ .addOptionalParam("solcVersion", undefined, undefined, types.string)
677
678
  .setAction(
678
- async ({ input, solcPath }: { input: CompilerInput; solcPath: string }) => {
679
- const compiler = new NativeCompiler(solcPath);
679
+ async ({
680
+ input,
681
+ solcPath,
682
+ solcVersion,
683
+ }: {
684
+ input: CompilerInput;
685
+ solcPath: string;
686
+ solcVersion?: string;
687
+ }) => {
688
+ if (solcVersion !== undefined && semver.valid(solcVersion) === null) {
689
+ throw new HardhatError(ERRORS.ARGUMENTS.INVALID_VALUE_FOR_TYPE, {
690
+ value: solcVersion,
691
+ name: "solcVersion",
692
+ type: "string",
693
+ });
694
+ }
695
+
696
+ const compiler = new NativeCompiler(solcPath, solcVersion);
680
697
 
681
698
  return compiler.compile(input);
682
699
  }
@@ -740,6 +757,7 @@ subtask(TASK_COMPILE_SOLIDITY_COMPILE_SOLC)
740
757
  output = await run(TASK_COMPILE_SOLIDITY_RUN_SOLC, {
741
758
  input,
742
759
  solcPath: solcBuild.compilerPath,
760
+ solcVersion,
743
761
  });
744
762
  }
745
763
 
@@ -51,8 +51,12 @@ function logHardhatNetworkAccounts(networkConfig: HardhatNetworkConfig) {
51
51
  !Array.isArray(networkConfig.accounts) &&
52
52
  networkConfig.accounts.mnemonic === HARDHAT_NETWORK_MNEMONIC;
53
53
 
54
- const { bufferToHex, privateToAddress, toBuffer, toChecksumAddress } =
55
- require("@nomicfoundation/ethereumjs-util") as typeof EthereumjsUtilT;
54
+ const {
55
+ bytesToHex: bufferToHex,
56
+ privateToAddress,
57
+ toBytes,
58
+ toChecksumAddress,
59
+ } = require("@nomicfoundation/ethereumjs-util") as typeof EthereumjsUtilT;
56
60
 
57
61
  console.log("Accounts");
58
62
  console.log("========");
@@ -69,7 +73,7 @@ function logHardhatNetworkAccounts(networkConfig: HardhatNetworkConfig) {
69
73
 
70
74
  for (const [index, account] of accounts.entries()) {
71
75
  const address = toChecksumAddress(
72
- bufferToHex(privateToAddress(toBuffer(account.privateKey)))
76
+ bufferToHex(privateToAddress(toBytes(account.privateKey)))
73
77
  );
74
78
 
75
79
  const balance = (BigInt(account.balance) / 10n ** 18n).toString(10);
@@ -77,7 +81,7 @@ function logHardhatNetworkAccounts(networkConfig: HardhatNetworkConfig) {
77
81
  let entry = `Account #${index}: ${address} (${balance} ETH)`;
78
82
 
79
83
  if (isDefaultConfig) {
80
- const privateKey = bufferToHex(toBuffer(account.privateKey));
84
+ const privateKey = bufferToHex(toBytes(account.privateKey));
81
85
  entry += `
82
86
  Private Key: ${privateKey}`;
83
87
  }
@@ -126,7 +126,10 @@ export class Analytics {
126
126
  }
127
127
 
128
128
  let eventParams = {};
129
- if (scopeName === "ignition" && taskName === "deploy") {
129
+ if (
130
+ (scopeName === "ignition" && taskName === "deploy") ||
131
+ (scopeName === undefined && taskName === "deploy")
132
+ ) {
130
133
  eventParams = {
131
134
  scope: scopeName,
132
135
  task: taskName,
@@ -1,6 +1,7 @@
1
1
  import chalk from "chalk";
2
2
  import debug from "debug";
3
3
  import "source-map-support/register";
4
+
4
5
  import {
5
6
  TASK_COMPILE,
6
7
  TASK_HELP,
@@ -36,7 +37,6 @@ import {
36
37
  writePromptedForHHVSCode,
37
38
  } from "../util/global-dir";
38
39
  import { getPackageJson } from "../util/packageInfo";
39
-
40
40
  import { saveFlamegraph } from "../core/flamegraph";
41
41
  import { Analytics, requestTelemetryConsent } from "./analytics";
42
42
  import { ArgumentsParser } from "./ArgumentsParser";
@@ -367,6 +367,18 @@ async function main() {
367
367
  if (process.exitCode !== 0) {
368
368
  showViaIRWarning(resolvedConfig);
369
369
  }
370
+
371
+ // we notify of new versions only if the tests failed
372
+ if (process.exitCode !== 0) {
373
+ try {
374
+ const { showNewVersionNotification } = await import(
375
+ "./version-notifier"
376
+ );
377
+ await showNewVersionNotification();
378
+ } catch {
379
+ // ignore possible version notifier errors
380
+ }
381
+ }
370
382
  }
371
383
 
372
384
  log(`Killing Hardhat after successfully running task ${taskName}`);
@@ -251,7 +251,7 @@ async function printRecommendedDepsInstallationInstructions(
251
251
  // exported so we can test that it uses the latest supported version of solidity
252
252
  export const EMPTY_HARDHAT_CONFIG = `/** @type import('hardhat/config').HardhatUserConfig */
253
253
  module.exports = {
254
- solidity: "0.8.19",
254
+ solidity: "0.8.24",
255
255
  };
256
256
  `;
257
257
 
@@ -568,12 +568,8 @@ async function doesNpmAutoInstallPeerDependencies() {
568
568
  async function installRecommendedDependencies(dependencies: Dependencies) {
569
569
  console.log("");
570
570
 
571
- // The reason we don't quote the dependencies here is because they are going
572
- // to be used in child_process.spawn, which doesn't require escaping string,
573
- // and can actually fail if you do.
574
571
  const installCmd = await getRecommendedDependenciesInstallationCommand(
575
- dependencies,
576
- false
572
+ dependencies
577
573
  );
578
574
  return installDependencies(installCmd[0], installCmd.slice(1));
579
575
  }
@@ -611,11 +607,10 @@ async function installDependencies(
611
607
  }
612
608
 
613
609
  async function getRecommendedDependenciesInstallationCommand(
614
- dependencies: Dependencies,
615
- quoteDependencies = true
610
+ dependencies: Dependencies
616
611
  ): Promise<string[]> {
617
- const deps = Object.entries(dependencies).map(([name, version]) =>
618
- quoteDependencies ? `"${name}@${version}"` : `${name}@${version}`
612
+ const deps = Object.entries(dependencies).map(
613
+ ([name, version]) => `"${name}@${version}"`
619
614
  );
620
615
 
621
616
  if (await isYarnProject()) {