hardhat 3.3.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.d.ts.map +1 -1
  3. package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.js +6 -14
  4. package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.js.map +1 -1
  5. package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.d.ts.map +1 -1
  6. package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.js +10 -10
  7. package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.js.map +1 -1
  8. package/dist/src/internal/builtin-plugins/clean/index.js +1 -1
  9. package/dist/src/internal/builtin-plugins/clean/index.js.map +1 -1
  10. package/dist/src/internal/builtin-plugins/console/index.js +1 -1
  11. package/dist/src/internal/builtin-plugins/console/index.js.map +1 -1
  12. package/dist/src/internal/builtin-plugins/console/task-action.d.ts.map +1 -1
  13. package/dist/src/internal/builtin-plugins/console/task-action.js +2 -1
  14. package/dist/src/internal/builtin-plugins/console/task-action.js.map +1 -1
  15. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +2 -2
  16. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
  17. package/dist/src/internal/builtin-plugins/flatten/index.js +1 -1
  18. package/dist/src/internal/builtin-plugins/flatten/index.js.map +1 -1
  19. package/dist/src/internal/builtin-plugins/gas-analytics/exports.d.ts +1 -1
  20. package/dist/src/internal/builtin-plugins/gas-analytics/exports.d.ts.map +1 -1
  21. package/dist/src/internal/builtin-plugins/gas-analytics/exports.js +1 -1
  22. package/dist/src/internal/builtin-plugins/gas-analytics/exports.js.map +1 -1
  23. package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.d.ts.map +1 -1
  24. package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js +1 -2
  25. package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js.map +1 -1
  26. package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts +7 -5
  27. package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts.map +1 -1
  28. package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js +60 -44
  29. package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js.map +1 -1
  30. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.d.ts +6 -0
  31. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.d.ts.map +1 -0
  32. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.js +14 -0
  33. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.js.map +1 -0
  34. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.d.ts +4 -0
  35. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.d.ts.map +1 -0
  36. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.js +27 -0
  37. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.js.map +1 -0
  38. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.d.ts +36 -0
  39. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.d.ts.map +1 -0
  40. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.js +86 -0
  41. package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.js.map +1 -0
  42. package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js +1 -1
  43. package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js.map +1 -1
  44. package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.js +1 -1
  45. package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.js.map +1 -1
  46. package/dist/src/internal/builtin-plugins/gas-analytics/index.d.ts.map +1 -1
  47. package/dist/src/internal/builtin-plugins/gas-analytics/index.js +2 -2
  48. package/dist/src/internal/builtin-plugins/gas-analytics/index.js.map +1 -1
  49. package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.d.ts.map +1 -1
  50. package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js +1 -2
  51. package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js.map +1 -1
  52. package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts +10 -2
  53. package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts.map +1 -1
  54. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js +4 -4
  55. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
  56. package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js +1 -1
  57. package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js.map +1 -1
  58. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.d.ts +4 -4
  59. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  60. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.js +2 -2
  61. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.js.map +1 -1
  62. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts +6 -3
  63. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts.map +1 -1
  64. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js +23 -5
  65. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js.map +1 -1
  66. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts.map +1 -1
  67. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js +3 -2
  68. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js.map +1 -1
  69. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.d.ts.map +1 -1
  70. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js +24 -2
  71. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js.map +1 -1
  72. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.d.ts.map +1 -1
  73. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js +19 -11
  74. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js.map +1 -1
  75. package/dist/src/internal/builtin-plugins/network-manager/http-provider.d.ts.map +1 -1
  76. package/dist/src/internal/builtin-plugins/network-manager/http-provider.js +2 -2
  77. package/dist/src/internal/builtin-plugins/network-manager/http-provider.js.map +1 -1
  78. package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts +11 -1
  79. package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts.map +1 -1
  80. package/dist/src/internal/builtin-plugins/network-manager/network-manager.js +91 -24
  81. package/dist/src/internal/builtin-plugins/network-manager/network-manager.js.map +1 -1
  82. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.d.ts.map +1 -1
  83. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.js.map +1 -1
  84. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.d.ts +1 -0
  85. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.d.ts.map +1 -1
  86. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js +22 -8
  87. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js.map +1 -1
  88. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.d.ts +2 -0
  89. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.d.ts.map +1 -1
  90. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.js +19 -12
  91. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.js.map +1 -1
  92. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.d.ts +1 -0
  93. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.d.ts.map +1 -1
  94. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.js +9 -3
  95. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.js.map +1 -1
  96. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.d.ts +2 -0
  97. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.d.ts.map +1 -1
  98. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.js +5 -1
  99. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.js.map +1 -1
  100. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.d.ts +1 -0
  101. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.d.ts.map +1 -1
  102. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.js +5 -1
  103. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.js.map +1 -1
  104. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.d.ts +1 -0
  105. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.d.ts.map +1 -1
  106. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.js +5 -1
  107. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.js.map +1 -1
  108. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.d.ts +1 -0
  109. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.d.ts.map +1 -1
  110. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.js +5 -1
  111. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.js.map +1 -1
  112. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/types.d.ts +9 -0
  113. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/types.d.ts.map +1 -1
  114. package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.d.ts +2 -0
  115. package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.d.ts.map +1 -0
  116. package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.js +3 -0
  117. package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.js.map +1 -0
  118. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts +1 -1
  119. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts.map +1 -1
  120. package/dist/src/internal/builtin-plugins/network-manager/type-validation.d.ts.map +1 -1
  121. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +2 -1
  122. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
  123. package/dist/src/internal/builtin-plugins/node/helpers.js +1 -1
  124. package/dist/src/internal/builtin-plugins/node/helpers.js.map +1 -1
  125. package/dist/src/internal/builtin-plugins/node/index.js +1 -1
  126. package/dist/src/internal/builtin-plugins/node/index.js.map +1 -1
  127. package/dist/src/internal/builtin-plugins/node/json-rpc/handler.d.ts.map +1 -1
  128. package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js +8 -2
  129. package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js.map +1 -1
  130. package/dist/src/internal/builtin-plugins/node/task-action.js +2 -2
  131. package/dist/src/internal/builtin-plugins/node/task-action.js.map +1 -1
  132. package/dist/src/internal/builtin-plugins/run/index.js +1 -1
  133. package/dist/src/internal/builtin-plugins/run/index.js.map +1 -1
  134. package/dist/src/internal/builtin-plugins/run/task-action.d.ts.map +1 -1
  135. package/dist/src/internal/builtin-plugins/run/task-action.js +2 -1
  136. package/dist/src/internal/builtin-plugins/run/task-action.js.map +1 -1
  137. package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.d.ts.map +1 -1
  138. package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.js +3 -0
  139. package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.js.map +1 -1
  140. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts +1 -1
  141. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts.map +1 -1
  142. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js +125 -39
  143. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
  144. package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts +2 -0
  145. package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts.map +1 -1
  146. package/dist/src/internal/builtin-plugins/solidity/build-system/cache.js.map +1 -1
  147. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.d.ts +3 -1
  148. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.d.ts.map +1 -1
  149. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.js +12 -4
  150. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.js.map +1 -1
  151. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js +4 -4
  152. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js.map +1 -1
  153. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js +2 -2
  154. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js.map +1 -1
  155. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.js +1 -1
  156. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.js.map +1 -1
  157. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js +1 -1
  158. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js.map +1 -1
  159. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.d.ts.map +1 -1
  160. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.js +5 -5
  161. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.js.map +1 -1
  162. package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.js +1 -1
  163. package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.js.map +1 -1
  164. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js +10 -10
  165. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js.map +1 -1
  166. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js +1 -1
  167. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js.map +1 -1
  168. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.d.ts.map +1 -1
  169. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js +1 -0
  170. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js.map +1 -1
  171. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js +2 -2
  172. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js.map +1 -1
  173. package/dist/src/internal/builtin-plugins/solidity/config.d.ts.map +1 -1
  174. package/dist/src/internal/builtin-plugins/solidity/config.js +19 -16
  175. package/dist/src/internal/builtin-plugins/solidity/config.js.map +1 -1
  176. package/dist/src/internal/builtin-plugins/solidity/constants.d.ts +3 -0
  177. package/dist/src/internal/builtin-plugins/solidity/constants.d.ts.map +1 -0
  178. package/dist/src/internal/builtin-plugins/solidity/constants.js +19 -0
  179. package/dist/src/internal/builtin-plugins/solidity/constants.js.map +1 -0
  180. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/config.js +1 -1
  181. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/config.js.map +1 -1
  182. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.d.ts.map +1 -1
  183. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.js +10 -10
  184. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.js.map +1 -1
  185. package/dist/src/internal/builtin-plugins/solidity/index.js +1 -1
  186. package/dist/src/internal/builtin-plugins/solidity/index.js.map +1 -1
  187. package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js +1 -1
  188. package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js.map +1 -1
  189. package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts +1 -1
  190. package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts.map +1 -1
  191. package/dist/src/internal/builtin-plugins/solidity/tasks/build.js +225 -55
  192. package/dist/src/internal/builtin-plugins/solidity/tasks/build.js.map +1 -1
  193. package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts +30 -4
  194. package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts.map +1 -1
  195. package/dist/src/internal/builtin-plugins/solidity/type-extensions.js.map +1 -1
  196. package/dist/src/internal/builtin-plugins/solidity-test/config.d.ts.map +1 -1
  197. package/dist/src/internal/builtin-plugins/solidity-test/config.js +5 -3
  198. package/dist/src/internal/builtin-plugins/solidity-test/config.js.map +1 -1
  199. package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js +2 -2
  200. package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js.map +1 -1
  201. package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts +0 -2
  202. package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts.map +1 -1
  203. package/dist/src/internal/builtin-plugins/solidity-test/helpers.js +0 -3
  204. package/dist/src/internal/builtin-plugins/solidity-test/helpers.js.map +1 -1
  205. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/config.js +1 -1
  206. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/config.js.map +1 -1
  207. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/test.js +1 -1
  208. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/test.js.map +1 -1
  209. package/dist/src/internal/builtin-plugins/solidity-test/index.js +1 -1
  210. package/dist/src/internal/builtin-plugins/solidity-test/index.js.map +1 -1
  211. package/dist/src/internal/builtin-plugins/solidity-test/reporter.js +1 -1
  212. package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
  213. package/dist/src/internal/builtin-plugins/solidity-test/runner.d.ts +2 -8
  214. package/dist/src/internal/builtin-plugins/solidity-test/runner.d.ts.map +1 -1
  215. package/dist/src/internal/builtin-plugins/solidity-test/runner.js +47 -50
  216. package/dist/src/internal/builtin-plugins/solidity-test/runner.js.map +1 -1
  217. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.d.ts.map +1 -1
  218. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js +11 -2
  219. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js.map +1 -1
  220. package/dist/src/internal/builtin-plugins/solidity-test/task-action.d.ts.map +1 -1
  221. package/dist/src/internal/builtin-plugins/solidity-test/task-action.js +108 -32
  222. package/dist/src/internal/builtin-plugins/solidity-test/task-action.js.map +1 -1
  223. package/dist/src/internal/builtin-plugins/solidity-test/type-extensions.d.ts +1 -2
  224. package/dist/src/internal/builtin-plugins/solidity-test/type-extensions.d.ts.map +1 -1
  225. package/dist/src/internal/builtin-plugins/telemetry/index.js +1 -1
  226. package/dist/src/internal/builtin-plugins/telemetry/index.js.map +1 -1
  227. package/dist/src/internal/builtin-plugins/test/hook-handlers/config.js +1 -1
  228. package/dist/src/internal/builtin-plugins/test/hook-handlers/config.js.map +1 -1
  229. package/dist/src/internal/builtin-plugins/test/index.js +1 -1
  230. package/dist/src/internal/builtin-plugins/test/index.js.map +1 -1
  231. package/dist/src/internal/builtin-plugins/test/task-action.d.ts.map +1 -1
  232. package/dist/src/internal/builtin-plugins/test/task-action.js +3 -4
  233. package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
  234. package/dist/src/internal/cli/init/init.js +1 -1
  235. package/dist/src/internal/cli/init/init.js.map +1 -1
  236. package/dist/src/internal/cli/main.d.ts.map +1 -1
  237. package/dist/src/internal/cli/main.js +12 -2
  238. package/dist/src/internal/cli/main.js.map +1 -1
  239. package/dist/src/internal/cli/node-version.d.ts.map +1 -1
  240. package/dist/src/internal/cli/node-version.js +3 -0
  241. package/dist/src/internal/cli/node-version.js.map +1 -1
  242. package/dist/src/internal/cli/telemetry/analytics/analytics.js +2 -2
  243. package/dist/src/internal/cli/telemetry/analytics/analytics.js.map +1 -1
  244. package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.d.ts +6 -0
  245. package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.d.ts.map +1 -0
  246. package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.js +47 -0
  247. package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.js.map +1 -0
  248. package/dist/src/internal/cli/telemetry/error-reporter/reporter.d.ts +27 -0
  249. package/dist/src/internal/cli/telemetry/error-reporter/reporter.d.ts.map +1 -0
  250. package/dist/src/internal/cli/telemetry/error-reporter/reporter.js +40 -0
  251. package/dist/src/internal/cli/telemetry/error-reporter/reporter.js.map +1 -0
  252. package/dist/src/internal/cli/telemetry/sentry/anonymizer.js +1 -1
  253. package/dist/src/internal/cli/telemetry/sentry/anonymizer.js.map +1 -1
  254. package/dist/src/internal/cli/telemetry/sentry/init.d.ts +0 -8
  255. package/dist/src/internal/cli/telemetry/sentry/init.d.ts.map +1 -1
  256. package/dist/src/internal/cli/telemetry/sentry/init.js +1 -37
  257. package/dist/src/internal/cli/telemetry/sentry/init.js.map +1 -1
  258. package/dist/src/internal/cli/telemetry/sentry/reporter.d.ts +8 -2
  259. package/dist/src/internal/cli/telemetry/sentry/reporter.d.ts.map +1 -1
  260. package/dist/src/internal/cli/telemetry/sentry/reporter.js +18 -12
  261. package/dist/src/internal/cli/telemetry/sentry/reporter.js.map +1 -1
  262. package/dist/src/internal/cli/telemetry/sentry/transport.js +1 -1
  263. package/dist/src/internal/cli/telemetry/sentry/transport.js.map +1 -1
  264. package/dist/src/internal/cli/telemetry/telemetry-permissions.js +1 -1
  265. package/dist/src/internal/cli/telemetry/telemetry-permissions.js.map +1 -1
  266. package/dist/src/internal/config-loading.js +3 -3
  267. package/dist/src/internal/config-loading.js.map +1 -1
  268. package/dist/src/internal/core/configuration-variables.d.ts.map +1 -1
  269. package/dist/src/internal/core/configuration-variables.js +1 -1
  270. package/dist/src/internal/core/configuration-variables.js.map +1 -1
  271. package/dist/src/internal/core/hook-manager.js +3 -3
  272. package/dist/src/internal/core/hook-manager.js.map +1 -1
  273. package/dist/src/internal/core/hre.d.ts.map +1 -1
  274. package/dist/src/internal/core/hre.js +3 -3
  275. package/dist/src/internal/core/hre.js.map +1 -1
  276. package/dist/src/internal/core/plugins/resolve-plugin-list.js +1 -1
  277. package/dist/src/internal/core/plugins/resolve-plugin-list.js.map +1 -1
  278. package/dist/src/internal/core/tasks/resolved-task.js +4 -4
  279. package/dist/src/internal/core/tasks/resolved-task.js.map +1 -1
  280. package/dist/src/internal/core/user-interruptions.js +9 -9
  281. package/dist/src/internal/core/user-interruptions.js.map +1 -1
  282. package/dist/src/internal/hre-initialization.js +1 -1
  283. package/dist/src/internal/hre-initialization.js.map +1 -1
  284. package/dist/src/types/artifacts.d.ts +5 -4
  285. package/dist/src/types/artifacts.d.ts.map +1 -1
  286. package/dist/src/types/network.d.ts +39 -0
  287. package/dist/src/types/network.d.ts.map +1 -1
  288. package/dist/src/types/solidity/build-system.d.ts +66 -3
  289. package/dist/src/types/solidity/build-system.d.ts.map +1 -1
  290. package/dist/src/types/solidity/build-system.js.map +1 -1
  291. package/dist/src/types/solidity/compilation-job.d.ts +6 -0
  292. package/dist/src/types/solidity/compilation-job.d.ts.map +1 -1
  293. package/dist/src/types/solidity/solidity-artifacts.d.ts +14 -0
  294. package/dist/src/types/solidity/solidity-artifacts.d.ts.map +1 -1
  295. package/package.json +9 -9
  296. package/src/internal/builtin-plugins/artifacts/artifact-manager.ts +10 -16
  297. package/src/internal/builtin-plugins/artifacts/hook-handlers/hre.ts +16 -10
  298. package/src/internal/builtin-plugins/clean/index.ts +1 -1
  299. package/src/internal/builtin-plugins/console/index.ts +1 -1
  300. package/src/internal/builtin-plugins/console/task-action.ts +2 -1
  301. package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +2 -2
  302. package/src/internal/builtin-plugins/flatten/index.ts +1 -1
  303. package/src/internal/builtin-plugins/gas-analytics/exports.ts +1 -1
  304. package/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.ts +1 -2
  305. package/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts +100 -61
  306. package/src/internal/builtin-plugins/gas-analytics/helpers/accessors.ts +31 -0
  307. package/src/internal/builtin-plugins/gas-analytics/helpers/compat.ts +37 -0
  308. package/src/internal/builtin-plugins/gas-analytics/helpers/utils.ts +112 -0
  309. package/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts +1 -1
  310. package/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.ts +1 -1
  311. package/src/internal/builtin-plugins/gas-analytics/index.ts +4 -2
  312. package/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.ts +1 -2
  313. package/src/internal/builtin-plugins/gas-analytics/types.ts +11 -2
  314. package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +4 -4
  315. package/src/internal/builtin-plugins/network-manager/edr/genesis-state.ts +1 -1
  316. package/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.ts +4 -0
  317. package/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.ts +28 -4
  318. package/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.ts +3 -2
  319. package/src/internal/builtin-plugins/network-manager/hook-handlers/hre.ts +31 -2
  320. package/src/internal/builtin-plugins/network-manager/hook-handlers/network.ts +22 -16
  321. package/src/internal/builtin-plugins/network-manager/http-provider.ts +6 -2
  322. package/src/internal/builtin-plugins/network-manager/network-manager.ts +139 -32
  323. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.ts +1 -0
  324. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +30 -13
  325. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.ts +25 -17
  326. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.ts +13 -5
  327. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.ts +7 -1
  328. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.ts +7 -1
  329. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.ts +7 -1
  330. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.ts +7 -1
  331. package/src/internal/builtin-plugins/network-manager/request-handlers/types.ts +10 -0
  332. package/src/internal/builtin-plugins/network-manager/revert-error-code.ts +2 -0
  333. package/src/internal/builtin-plugins/network-manager/type-extensions/config.ts +1 -1
  334. package/src/internal/builtin-plugins/network-manager/type-validation.ts +5 -1
  335. package/src/internal/builtin-plugins/node/helpers.ts +1 -1
  336. package/src/internal/builtin-plugins/node/index.ts +1 -1
  337. package/src/internal/builtin-plugins/node/json-rpc/handler.ts +10 -2
  338. package/src/internal/builtin-plugins/node/task-action.ts +2 -2
  339. package/src/internal/builtin-plugins/run/index.ts +1 -1
  340. package/src/internal/builtin-plugins/run/task-action.ts +2 -1
  341. package/src/internal/builtin-plugins/solidity/build-system/artifacts.ts +3 -0
  342. package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +176 -45
  343. package/src/internal/builtin-plugins/solidity/build-system/cache.ts +2 -0
  344. package/src/internal/builtin-plugins/solidity/build-system/compilation-job.ts +16 -10
  345. package/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.ts +4 -4
  346. package/src/internal/builtin-plugins/solidity/build-system/compiler/index.ts +2 -2
  347. package/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.ts +1 -1
  348. package/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.ts +1 -1
  349. package/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts +9 -7
  350. package/src/internal/builtin-plugins/solidity/build-system/read-source-file.ts +2 -2
  351. package/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts +11 -11
  352. package/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts +1 -1
  353. package/src/internal/builtin-plugins/solidity/build-system/solc-info.ts +1 -0
  354. package/src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts +2 -2
  355. package/src/internal/builtin-plugins/solidity/config.ts +23 -13
  356. package/src/internal/builtin-plugins/solidity/constants.ts +21 -0
  357. package/src/internal/builtin-plugins/solidity/hook-handlers/config.ts +1 -1
  358. package/src/internal/builtin-plugins/solidity/hook-handlers/hre.ts +14 -10
  359. package/src/internal/builtin-plugins/solidity/index.ts +1 -1
  360. package/src/internal/builtin-plugins/solidity/solidity-hooks.ts +1 -1
  361. package/src/internal/builtin-plugins/solidity/tasks/build.ts +359 -74
  362. package/src/internal/builtin-plugins/solidity/type-extensions.ts +38 -8
  363. package/src/internal/builtin-plugins/solidity-test/config.ts +11 -2
  364. package/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts +2 -2
  365. package/src/internal/builtin-plugins/solidity-test/helpers.ts +0 -7
  366. package/src/internal/builtin-plugins/solidity-test/hook-handlers/config.ts +1 -1
  367. package/src/internal/builtin-plugins/solidity-test/hook-handlers/test.ts +1 -1
  368. package/src/internal/builtin-plugins/solidity-test/index.ts +1 -1
  369. package/src/internal/builtin-plugins/solidity-test/reporter.ts +1 -1
  370. package/src/internal/builtin-plugins/solidity-test/runner.ts +64 -83
  371. package/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.ts +15 -2
  372. package/src/internal/builtin-plugins/solidity-test/task-action.ts +161 -43
  373. package/src/internal/builtin-plugins/solidity-test/type-extensions.ts +1 -2
  374. package/src/internal/builtin-plugins/telemetry/index.ts +1 -1
  375. package/src/internal/builtin-plugins/test/hook-handlers/config.ts +1 -1
  376. package/src/internal/builtin-plugins/test/index.ts +1 -1
  377. package/src/internal/builtin-plugins/test/task-action.ts +3 -4
  378. package/src/internal/cli/init/init.ts +1 -1
  379. package/src/internal/cli/main.ts +19 -3
  380. package/src/internal/cli/node-version.ts +3 -0
  381. package/src/internal/cli/telemetry/analytics/analytics.ts +2 -2
  382. package/src/internal/cli/telemetry/error-reporter/global-error-handlers.ts +64 -0
  383. package/src/internal/cli/telemetry/error-reporter/reporter.ts +49 -0
  384. package/src/internal/cli/telemetry/sentry/anonymizer.ts +1 -1
  385. package/src/internal/cli/telemetry/sentry/init.ts +2 -62
  386. package/src/internal/cli/telemetry/sentry/reporter.ts +27 -15
  387. package/src/internal/cli/telemetry/sentry/transport.ts +1 -1
  388. package/src/internal/cli/telemetry/telemetry-permissions.ts +1 -1
  389. package/src/internal/config-loading.ts +3 -3
  390. package/src/internal/core/configuration-variables.ts +19 -18
  391. package/src/internal/core/hook-manager.ts +3 -3
  392. package/src/internal/core/hre.ts +5 -3
  393. package/src/internal/core/plugins/resolve-plugin-list.ts +1 -1
  394. package/src/internal/core/tasks/resolved-task.ts +4 -4
  395. package/src/internal/core/user-interruptions.ts +9 -9
  396. package/src/internal/hre-initialization.ts +1 -1
  397. package/src/types/artifacts.ts +5 -4
  398. package/src/types/network.ts +48 -0
  399. package/src/types/solidity/build-system.ts +66 -3
  400. package/src/types/solidity/compilation-job.ts +7 -0
  401. package/src/types/solidity/solidity-artifacts.ts +16 -0
  402. package/templates/hardhat-2/04-mocha-viem-ts/package.json +1 -1
  403. package/templates/hardhat-3/01-node-test-runner-viem/gitignore +11 -0
  404. package/templates/hardhat-3/01-node-test-runner-viem/package.json +12 -12
  405. package/templates/hardhat-3/01-node-test-runner-viem/scripts/send-op-tx.ts +1 -1
  406. package/templates/hardhat-3/01-node-test-runner-viem/test/Counter.ts +1 -1
  407. package/templates/hardhat-3/02-mocha-ethers/gitignore +11 -0
  408. package/templates/hardhat-3/02-mocha-ethers/package.json +14 -14
  409. package/templates/hardhat-3/02-mocha-ethers/scripts/send-op-tx.ts +1 -1
  410. package/templates/hardhat-3/02-mocha-ethers/test/Counter.ts +1 -1
  411. package/templates/hardhat-3/03-minimal/gitignore +11 -0
  412. package/templates/hardhat-3/03-minimal/package.json +1 -1
  413. package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts +0 -14
  414. package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts.map +0 -1
  415. package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js +0 -55
  416. package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js.map +0 -1
  417. package/src/internal/builtin-plugins/gas-analytics/helpers.ts +0 -96
@@ -5,6 +5,7 @@ import type { HookManager } from "../../../../types/hooks.js";
5
5
  import type { CompilationJob } from "../../../../types/solidity/compilation-job.js";
6
6
  import type { CompilerInput } from "../../../../types/solidity/compiler-io.js";
7
7
  import type { DependencyGraph } from "../../../../types/solidity/dependency-graph.js";
8
+ import type { ToolVersions } from "../../../../types/solidity/solidity-artifacts.js";
8
9
 
9
10
  import { createHash } from "node:crypto";
10
11
 
@@ -16,6 +17,7 @@ import {
16
17
  ResolvedFileType,
17
18
  type ResolvedFile,
18
19
  } from "../../../../types/solidity.js";
20
+ import { DEFAULT_OUTPUT_SELECTION } from "../constants.js";
19
21
 
20
22
  import { getEvmVersionFromSolcVersion } from "./solc-info.js";
21
23
 
@@ -23,6 +25,7 @@ export class CompilationJobImplementation implements CompilationJob {
23
25
  public readonly dependencyGraph: DependencyGraph;
24
26
  public readonly solcConfig: SolidityCompilerConfig;
25
27
  public readonly solcLongVersion: string;
28
+ public readonly toolVersions?: ToolVersions;
26
29
 
27
30
  readonly #hooks: HookManager;
28
31
  // This map is shared across compilation jobs and is meant to store content hashes of source files
@@ -38,12 +41,14 @@ export class CompilationJobImplementation implements CompilationJob {
38
41
  solcLongVersion: string,
39
42
  hooks: HookManager,
40
43
  sharedContentHashes: Map<string, string> = new Map(),
44
+ toolVersions?: ToolVersions,
41
45
  ) {
42
46
  this.dependencyGraph = dependencyGraph;
43
47
  this.solcConfig = solcConfig;
44
48
  this.solcLongVersion = solcLongVersion;
45
49
  this.#hooks = hooks;
46
50
  this.#sharedContentHashes = sharedContentHashes;
51
+ this.toolVersions = toolVersions;
47
52
  }
48
53
 
49
54
  public async getSolcInput(): Promise<CompilerInput> {
@@ -87,7 +92,7 @@ export class CompilationJobImplementation implements CompilationJob {
87
92
  // instrument the project file content when coverage feature is enabled.
88
93
  // We pass some additional data via the chain - i.e. the input source name and solc
89
94
  // version - but we expect any handlers to pass them on as-is without modification.
90
- return this.#hooks.runHandlerChain(
95
+ return await this.#hooks.runHandlerChain(
91
96
  "solidity",
92
97
  "preprocessProjectFileBeforeBuilding",
93
98
  [file.inputSourceName, file.fsPath, file.content.text, solcVersion],
@@ -130,19 +135,14 @@ export class CompilationJobImplementation implements CompilationJob {
130
135
  // from other files (e.g. new Foo()), and it won't output its bytecode if
131
136
  // it's not asked for. This would prevent EDR from doing any runtime
132
137
  // analysis.
133
- const outputSelection = await deepClone(settings.outputSelection ?? {});
138
+ const outputSelection: CompilerInput["settings"]["outputSelection"] =
139
+ await deepClone(settings.outputSelection ?? {});
134
140
  outputSelection["*"] ??= {};
135
141
  outputSelection["*"][""] ??= [];
136
142
  outputSelection["*"]["*"] ??= [];
137
143
 
138
- outputSelection["*"][""].push("ast");
139
- outputSelection["*"]["*"].push(
140
- "abi",
141
- "evm.bytecode",
142
- "evm.deployedBytecode",
143
- "evm.methodIdentifiers",
144
- "metadata",
145
- );
144
+ outputSelection["*"][""].push(...DEFAULT_OUTPUT_SELECTION["*"][""]);
145
+ outputSelection["*"]["*"].push(...DEFAULT_OUTPUT_SELECTION["*"]["*"]);
146
146
 
147
147
  const sources: { [sourceName: string]: { content: string } } = {};
148
148
 
@@ -257,6 +257,12 @@ export class CompilationJobImplementation implements CompilationJob {
257
257
  preimageObject.compilerType = compilerType;
258
258
  }
259
259
 
260
+ // Include tool versions in the preimage when present, so that
261
+ // different tool versions produce different build IDs.
262
+ if (this.toolVersions !== undefined) {
263
+ preimageObject.toolVersions = this.toolVersions;
264
+ }
265
+
260
266
  const preimage = JSON.stringify(preimageObject);
261
267
 
262
268
  const jobHash = await createNonCryptographicHashId(preimage);
@@ -195,7 +195,7 @@ export class CompilerDownloaderImplementation implements CompilerDownloader {
195
195
 
196
196
  const downloadPath = this.#getCompilerBinaryPathFromBuild(build);
197
197
 
198
- return exists(downloadPath);
198
+ return await exists(downloadPath);
199
199
  }
200
200
 
201
201
  public async downloadCompiler(version: string): Promise<boolean> {
@@ -208,7 +208,7 @@ export class CompilerDownloaderImplementation implements CompilerDownloader {
208
208
  path.join(this.#compilersDir, `compiler-download-${version}`),
209
209
  );
210
210
 
211
- return mutex.use(async () => {
211
+ return await mutex.use(async () => {
212
212
  const isCompilerDownloaded = await this.isCompilerDownloaded(version);
213
213
 
214
214
  if (isCompilerDownloaded === true) {
@@ -240,7 +240,7 @@ export class CompilerDownloaderImplementation implements CompilerDownloader {
240
240
  }
241
241
  }
242
242
 
243
- return this.#postProcessCompilerDownload(build, downloadPath);
243
+ return await this.#postProcessCompilerDownload(build, downloadPath);
244
244
  });
245
245
  }
246
246
 
@@ -295,7 +295,7 @@ export class CompilerDownloaderImplementation implements CompilerDownloader {
295
295
  }
296
296
 
297
297
  async #readCompilerList(listPath: string): Promise<CompilerList> {
298
- return readJsonFile(listPath);
298
+ return await readJsonFile(listPath);
299
299
  }
300
300
 
301
301
  #getCompilerDownloadPathFromBuild(build: CompilerBuild): string {
@@ -124,10 +124,10 @@ export async function getCompiler(
124
124
  ): Promise<Compiler> {
125
125
  if (compilerPath !== undefined) {
126
126
  // If a compiler path is provided, it means the user is using a custom compiler
127
- return getCompilerFromPath(version, compilerPath);
127
+ return await getCompilerFromPath(version, compilerPath);
128
128
  } else {
129
129
  // Otherwise we get or download the compiler for the specific version
130
- return getCompilerFromVersion(version, { preferWasm });
130
+ return await getCompilerFromVersion(version, { preferWasm });
131
131
  }
132
132
  }
133
133
 
@@ -6,7 +6,7 @@ async function readStream(
6
6
  ): Promise<string> {
7
7
  stream.setEncoding(encoding);
8
8
 
9
- return new Promise((resolve, reject) => {
9
+ return await new Promise((resolve, reject) => {
10
10
  let data = "";
11
11
 
12
12
  stream.on("data", (chunk) => (data += chunk.toString(encoding)));
@@ -33,7 +33,7 @@ export async function buildDependencyGraph(
33
33
  "readNpmPackageRemappings",
34
34
  [packageName, packageVersion, packagePath],
35
35
  async (_context, name, version, path) =>
36
- defaultBehavior(name, version, path),
36
+ await defaultBehavior(name, version, path),
37
37
  );
38
38
 
39
39
  const resolver = await ResolverImplementation.create(
@@ -205,13 +205,15 @@ export class DependencyGraphImplementation implements DependencyGraph {
205
205
  }
206
206
 
207
207
  public getAllRemappings(): readonly string[] {
208
- return this.#dependenciesMap
209
- .values()
210
- .flatMap((dependencies) =>
211
- dependencies.values().flatMap((remappings) => remappings.values()),
212
- )
213
- .toArray()
214
- .sort();
208
+ return [
209
+ ...new Set(
210
+ this.#dependenciesMap
211
+ .values()
212
+ .flatMap((dependencies) =>
213
+ dependencies.values().flatMap((remappings) => remappings.values()),
214
+ ),
215
+ ),
216
+ ].sort();
215
217
  }
216
218
 
217
219
  public toJSON(): DependencyGraphImplementationJson {
@@ -6,11 +6,11 @@ export function readSourceFileFactory(
6
6
  hooks: HookManager,
7
7
  ): (absPath: string) => Promise<string> {
8
8
  return async (factoryAbsPath: string) => {
9
- return hooks.runHandlerChain(
9
+ return await hooks.runHandlerChain(
10
10
  "solidity",
11
11
  "readSourceFile",
12
12
  [factoryAbsPath],
13
- async (_context, absPath) => readUtf8File(absPath),
13
+ async (_context, absPath) => await readUtf8File(absPath),
14
14
  );
15
15
  };
16
16
  }
@@ -133,8 +133,8 @@ export class ResolverImplementation implements Resolver {
133
133
  public async resolveProjectFile(
134
134
  absoluteFilePath: string,
135
135
  ): Promise<Result<ProjectResolvedFile, ProjectRootResolutionError>> {
136
- return this.#mutex.exclusiveRun(async () => {
137
- return this.#resolveProjectFile(absoluteFilePath);
136
+ return await this.#mutex.exclusiveRun(async () => {
137
+ return await this.#resolveProjectFile(absoluteFilePath);
138
138
  });
139
139
  }
140
140
 
@@ -146,8 +146,8 @@ export class ResolverImplementation implements Resolver {
146
146
  NpmRootResolutionError
147
147
  >
148
148
  > {
149
- return this.#mutex.exclusiveRun(async () => {
150
- return this.#resolveNpmDependencyFileAsRoot(npmModule);
149
+ return await this.#mutex.exclusiveRun(async () => {
150
+ return await this.#resolveNpmDependencyFileAsRoot(npmModule);
151
151
  });
152
152
  }
153
153
 
@@ -160,8 +160,8 @@ export class ResolverImplementation implements Resolver {
160
160
  ImportResolutionError
161
161
  >
162
162
  > {
163
- return this.#mutex.exclusiveRun(async () =>
164
- this.#resolveImport(from, importPath),
163
+ return await this.#mutex.exclusiveRun(
164
+ async () => await this.#resolveImport(from, importPath),
165
165
  );
166
166
  }
167
167
 
@@ -495,7 +495,7 @@ export class ResolverImplementation implements Resolver {
495
495
  };
496
496
  }
497
497
 
498
- return this.#resolveRelativeImport({
498
+ return await this.#resolveRelativeImport({
499
499
  from,
500
500
  importPath,
501
501
  directImport,
@@ -504,7 +504,7 @@ export class ResolverImplementation implements Resolver {
504
504
  if (bestUserRemapping !== undefined) {
505
505
  // If the import isn't relative, and there's a user remapping, we
506
506
  // prioritize that.
507
- return this.#resolveUserRemappedImport({
507
+ return await this.#resolveUserRemappedImport({
508
508
  from,
509
509
  importPath,
510
510
  directImport,
@@ -576,7 +576,7 @@ export class ResolverImplementation implements Resolver {
576
576
 
577
577
  const relativeFsPath = sourceNamePathToFsPath(relativeSourceNamePath);
578
578
 
579
- return this.#commonImportResolution({
579
+ return await this.#commonImportResolution({
580
580
  from,
581
581
  importPath,
582
582
  npmPackage: from.package,
@@ -639,7 +639,7 @@ export class ResolverImplementation implements Resolver {
639
639
 
640
640
  const relativeFsPath = sourceNamePathToFsPath(relativeSourceNamePath);
641
641
 
642
- return this.#commonImportResolution({
642
+ return await this.#commonImportResolution({
643
643
  from,
644
644
  importPath,
645
645
  npmPackage: targetNpmPackage,
@@ -796,7 +796,7 @@ export class ResolverImplementation implements Resolver {
796
796
  const relativePath = resolvedSubpath ?? subpath;
797
797
  const relativeFsPathWithinPackage = sourceNamePathToFsPath(relativePath);
798
798
 
799
- return this.#commonImportResolution({
799
+ return await this.#commonImportResolution({
800
800
  from,
801
801
  importPath,
802
802
  npmPackage: dependency,
@@ -457,7 +457,7 @@ export class RemappedNpmPackagesGraphImplementation
457
457
  npmPackage.version,
458
458
  npmPackage.rootFsPath,
459
459
  async (_packageName, _packageVersion, packagePath) =>
460
- this.#defaultReadPackageRemappings(packagePath),
460
+ await this.#defaultReadPackageRemappings(packagePath),
461
461
  );
462
462
 
463
463
  return this.#parseAndDeduplicateRemappings(npmPackage, allRemappings);
@@ -107,6 +107,7 @@ const defaultEvmTargets: { [key: string]: string } = {
107
107
  "0.8.31": "osaka",
108
108
  "0.8.32": "osaka",
109
109
  "0.8.33": "osaka",
110
+ "0.8.34": "osaka",
110
111
  };
111
112
 
112
113
  export function getEvmVersionFromSolcVersion(
@@ -57,8 +57,8 @@ export function shouldSuppressWarning(
57
57
  ): boolean {
58
58
  // Compute relative path from project root to test directory.
59
59
  // Example:
60
- // absoluteSolidityTestsPath: /workspaces/hardhat-4/v-next/example-project/test/contracts
61
- // absoluteProjectRoot: /workspaces/hardhat-4/v-next/example-project
60
+ // absoluteSolidityTestsPath: /workspaces/hardhat-4/packages/example-project/test/contracts
61
+ // absoluteProjectRoot: /workspaces/hardhat-4/packages/example-project
62
62
  // relativeTestPath: test/contracts/ - note the addition of the `/`
63
63
  // to avoid partial matches, e.g.: test/contractsUtils/
64
64
  const relativeTestPath = path.join(
@@ -32,6 +32,7 @@ import {
32
32
  hasOfficialArm64Build,
33
33
  missesSomeOfficialNativeBuilds,
34
34
  } from "./build-system/solc-info.js";
35
+ import { DEFAULT_OUTPUT_SELECTION } from "./constants.js";
35
36
 
36
37
  /**
37
38
  * The top-level type SolidityUserConfig is a union type too complex for
@@ -80,6 +81,7 @@ const incompatibleCompilerFields = {
80
81
  const commonSolidityUserConfigFields = {
81
82
  isolated: z.boolean().optional(),
82
83
  npmFilesToBuild: z.array(z.string()).optional(),
84
+ splitTestsCompilation: z.boolean().optional(),
83
85
  };
84
86
 
85
87
  const commonSolidityCompilerUserConfigFields = {
@@ -119,12 +121,14 @@ const solidityCompilerUserConfigType = conditionalUnionType(
119
121
  const solcSingleVersionSolidityUserConfigType =
120
122
  solcSolidityCompilerUserConfigType.extend({
121
123
  ...commonSolidityUserConfigFields,
124
+ toolVersionsInBuildInfo: z.boolean().optional(),
122
125
  ...incompatibleVersionFields,
123
126
  });
124
127
 
125
128
  const otherSingleVersionSolidityUserConfigType =
126
129
  otherSolidityCompilerUserConfigType.extend({
127
130
  ...commonSolidityUserConfigFields,
131
+ toolVersionsInBuildInfo: z.boolean().optional(),
128
132
  ...incompatibleVersionFields,
129
133
  });
130
134
 
@@ -149,6 +153,7 @@ const multiVersionSolidityUserConfigType = z.object({
149
153
  compilers: z.array(solidityCompilerUserConfigType).nonempty(),
150
154
  overrides: z.record(z.string(), solidityCompilerUserConfigType).optional(),
151
155
  ...commonSolidityUserConfigFields,
156
+ toolVersionsInBuildInfo: z.boolean().optional(),
152
157
  ...incompatibleCompilerFields,
153
158
  });
154
159
 
@@ -163,6 +168,7 @@ const singleVersionBuildProfileUserConfigType = conditionalUnionType(
163
168
  (!("type" in data) || data.type === undefined || data.type === "solc"),
164
169
  solcSolidityCompilerUserConfigType.extend({
165
170
  isolated: z.boolean().optional(),
171
+ toolVersionsInBuildInfo: z.boolean().optional(),
166
172
  ...incompatibleVersionFields,
167
173
  }),
168
174
  ],
@@ -170,6 +176,7 @@ const singleVersionBuildProfileUserConfigType = conditionalUnionType(
170
176
  (data) => isObject(data) && "type" in data && data.type !== "solc",
171
177
  otherSolidityCompilerUserConfigType.extend({
172
178
  isolated: z.boolean().optional(),
179
+ toolVersionsInBuildInfo: z.boolean().optional(),
173
180
  ...incompatibleVersionFields,
174
181
  }),
175
182
  ],
@@ -182,6 +189,7 @@ const multiVersionBuildProfileUserConfigType = z.object({
182
189
  compilers: z.array(solidityCompilerUserConfigType).nonempty(),
183
190
  overrides: z.record(z.string(), solidityCompilerUserConfigType).optional(),
184
191
  isolated: z.boolean().optional(),
192
+ toolVersionsInBuildInfo: z.boolean().optional(),
185
193
  ...incompatibleCompilerFields,
186
194
  });
187
195
 
@@ -202,6 +210,7 @@ const buildProfilesSolidityUserConfigType = z.object({
202
210
  "Expected an object configuring one or more versions of Solidity",
203
211
  ),
204
212
  ),
213
+ ...commonSolidityUserConfigFields,
205
214
  ...incompatibleProfileFields,
206
215
  });
207
216
 
@@ -430,6 +439,7 @@ function resolveSolidityConfig(
430
439
  },
431
440
  npmFilesToBuild: [],
432
441
  registeredCompilerTypes: ["solc"],
442
+ splitTestsCompilation: false,
433
443
  };
434
444
  }
435
445
 
@@ -437,14 +447,20 @@ function resolveSolidityConfig(
437
447
  if ("version" in solidityConfig || "compilers" in solidityConfig) {
438
448
  return {
439
449
  profiles: {
440
- default: resolveBuildProfileConfig(solidityConfig),
450
+ default: resolveBuildProfileConfig(
451
+ solidityConfig,
452
+ false,
453
+ solidityConfig.toolVersionsInBuildInfo,
454
+ ),
441
455
  production: resolveBuildProfileConfig(
442
456
  copyFromDefault(solidityConfig),
443
457
  true,
458
+ solidityConfig.toolVersionsInBuildInfo,
444
459
  ),
445
460
  },
446
461
  npmFilesToBuild: solidityConfig.npmFilesToBuild ?? [],
447
462
  registeredCompilerTypes: ["solc"],
463
+ splitTestsCompilation: solidityConfig.splitTestsCompilation ?? false,
448
464
  };
449
465
  }
450
466
 
@@ -457,6 +473,7 @@ function resolveSolidityConfig(
457
473
  profiles[profileName] = resolveBuildProfileConfig(
458
474
  profile,
459
475
  profileName === "production",
476
+ profile.toolVersionsInBuildInfo,
460
477
  );
461
478
  }
462
479
 
@@ -475,6 +492,7 @@ function resolveSolidityConfig(
475
492
  profiles,
476
493
  npmFilesToBuild: solidityConfig.npmFilesToBuild ?? [],
477
494
  registeredCompilerTypes: ["solc"],
495
+ splitTestsCompilation: solidityConfig.splitTestsCompilation ?? false,
478
496
  };
479
497
  }
480
498
 
@@ -483,6 +501,7 @@ function resolveBuildProfileConfig(
483
501
  | SingleVersionSolidityUserConfig
484
502
  | MultiVersionSolidityUserConfig,
485
503
  production: boolean = false,
504
+ toolVersionsInBuildInfo?: boolean,
486
505
  ): SolidityBuildProfileConfig {
487
506
  if ("version" in solidityConfig) {
488
507
  return {
@@ -490,6 +509,7 @@ function resolveBuildProfileConfig(
490
509
  overrides: {},
491
510
  isolated: solidityConfig.isolated ?? production,
492
511
  preferWasm: solidityConfig.preferWasm ?? false,
512
+ toolVersionsInBuildInfo: toolVersionsInBuildInfo ?? production,
493
513
  };
494
514
  }
495
515
 
@@ -507,6 +527,7 @@ function resolveBuildProfileConfig(
507
527
  ),
508
528
  isolated: solidityConfig.isolated ?? production,
509
529
  preferWasm: solidityConfig.preferWasm ?? false,
530
+ toolVersionsInBuildInfo: toolVersionsInBuildInfo ?? production,
510
531
  };
511
532
  }
512
533
 
@@ -515,18 +536,7 @@ function resolveSolidityCompilerConfig(
515
536
  production: boolean = false,
516
537
  ): SolidityCompilerConfig {
517
538
  const defaultSettings: SolidityCompilerConfig["settings"] = {
518
- outputSelection: {
519
- "*": {
520
- "": ["ast"],
521
- "*": [
522
- "abi",
523
- "evm.bytecode",
524
- "evm.deployedBytecode",
525
- "evm.methodIdentifiers",
526
- "metadata",
527
- ],
528
- },
529
- },
539
+ outputSelection: DEFAULT_OUTPUT_SELECTION,
530
540
  };
531
541
 
532
542
  if (production && isSolcSolidityCompilerUserConfig(compilerConfig)) {
@@ -0,0 +1,21 @@
1
+ import type { CompilerInput } from "../../../types/solidity.js";
2
+
3
+ export const DEFAULT_OUTPUT_SELECTION: CompilerInput["settings"]["outputSelection"] =
4
+ {
5
+ "*": {
6
+ "": ["ast"],
7
+ "*": [
8
+ "abi",
9
+ "evm.bytecode.linkReferences",
10
+ "evm.bytecode.object",
11
+ "evm.bytecode.opcodes",
12
+ "evm.bytecode.sourceMap",
13
+ "evm.deployedBytecode.immutableReferences",
14
+ "evm.deployedBytecode.linkReferences",
15
+ "evm.deployedBytecode.object",
16
+ "evm.deployedBytecode.opcodes",
17
+ "evm.deployedBytecode.sourceMap",
18
+ "evm.methodIdentifiers",
19
+ ],
20
+ },
21
+ };
@@ -20,7 +20,7 @@ export default async (): Promise<Partial<ConfigHooks>> => {
20
20
  resolveConfigurationVariable,
21
21
  );
22
22
 
23
- return resolveSolidityUserConfig(userConfig, resolvedConfig);
23
+ return await resolveSolidityUserConfig(userConfig, resolvedConfig);
24
24
  },
25
25
  validateResolvedConfig: async (resolvedConfig) =>
26
26
  validateSolidityConfig(resolvedConfig),
@@ -38,12 +38,12 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
38
38
  options: { scope?: BuildScope } = {},
39
39
  ): Promise<string[]> {
40
40
  const buildSystem = await this.#getBuildSystem();
41
- return buildSystem.getRootFilePaths(options);
41
+ return await buildSystem.getRootFilePaths(options);
42
42
  }
43
43
 
44
44
  public async getScope(fsPath: string): Promise<BuildScope> {
45
45
  const buildSystem = await this.#getBuildSystem();
46
- return buildSystem.getScope(fsPath);
46
+ return await buildSystem.getScope(fsPath);
47
47
  }
48
48
 
49
49
  public isSuccessfulBuildResult(
@@ -59,7 +59,7 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
59
59
  options?: BuildOptions,
60
60
  ): Promise<CompilationJobCreationError | Map<string, FileBuildResult>> {
61
61
  const buildSystem = await this.#getBuildSystem();
62
- return buildSystem.build(rootFiles, options);
62
+ return await buildSystem.build(rootFiles, options);
63
63
  }
64
64
 
65
65
  public async getCompilationJobs(
@@ -67,7 +67,7 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
67
67
  options?: GetCompilationJobsOptions,
68
68
  ): Promise<CompilationJobCreationError | GetCompilationJobsResult> {
69
69
  const buildSystem = await this.#getBuildSystem();
70
- return buildSystem.getCompilationJobs(rootFiles, options);
70
+ return await buildSystem.getCompilationJobs(rootFiles, options);
71
71
  }
72
72
 
73
73
  public async runCompilationJob(
@@ -75,7 +75,7 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
75
75
  options?: RunCompilationJobOptions,
76
76
  ): Promise<RunCompilationJobResult> {
77
77
  const buildSystem = await this.#getBuildSystem();
78
- return buildSystem.runCompilationJob(compilationJob, options);
78
+ return await buildSystem.runCompilationJob(compilationJob, options);
79
79
  }
80
80
 
81
81
  public async remapCompilerError(
@@ -84,7 +84,7 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
84
84
  shouldShortenPaths?: boolean,
85
85
  ): Promise<CompilerOutputError> {
86
86
  const buildSystem = await this.#getBuildSystem();
87
- return buildSystem.remapCompilerError(
87
+ return await buildSystem.remapCompilerError(
88
88
  compilationJob,
89
89
  error,
90
90
  shouldShortenPaths,
@@ -97,7 +97,11 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
97
97
  options: { scope?: BuildScope } = {},
98
98
  ): Promise<EmitArtifactsResult> {
99
99
  const buildSystem = await this.#getBuildSystem();
100
- return buildSystem.emitArtifacts(compilationJob, compilerOutput, options);
100
+ return await buildSystem.emitArtifacts(
101
+ compilationJob,
102
+ compilerOutput,
103
+ options,
104
+ );
101
105
  }
102
106
 
103
107
  public async cleanupArtifacts(
@@ -105,7 +109,7 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
105
109
  options: { scope?: BuildScope } = {},
106
110
  ): Promise<void> {
107
111
  const buildSystem = await this.#getBuildSystem();
108
- return buildSystem.cleanupArtifacts(rootFilePaths, options);
112
+ return await buildSystem.cleanupArtifacts(rootFilePaths, options);
109
113
  }
110
114
 
111
115
  public async compileBuildInfo(
@@ -113,12 +117,12 @@ class LazySolidityBuildSystem implements SolidityBuildSystem {
113
117
  options?: CompileBuildInfoOptions,
114
118
  ): Promise<CompilerOutput> {
115
119
  const buildSystem = await this.#getBuildSystem();
116
- return buildSystem.compileBuildInfo(buildInfo, options);
120
+ return await buildSystem.compileBuildInfo(buildInfo, options);
117
121
  }
118
122
 
119
123
  public async getArtifactsDirectory(scope: BuildScope): Promise<string> {
120
124
  const buildSystem = await this.#getBuildSystem();
121
- return buildSystem.getArtifactsDirectory(scope);
125
+ return await buildSystem.getArtifactsDirectory(scope);
122
126
  }
123
127
 
124
128
  async #getBuildSystem(): Promise<SolidityBuildSystem> {
@@ -32,7 +32,7 @@ const buildTask = task("build", "Build project")
32
32
  name: "noContracts",
33
33
  description: "Skip solidity contracts compilation",
34
34
  })
35
- .setAction(async () => import("./tasks/build.js"))
35
+ .setAction(async () => await import("./tasks/build.js"))
36
36
  .build();
37
37
 
38
38
  const hardhatPlugin: HardhatPlugin = {
@@ -46,7 +46,7 @@ export async function getSolcCompilerForConfig(
46
46
  compilerConfig: SolidityCompilerConfig,
47
47
  buildProfilePreferWasm: boolean,
48
48
  ): Promise<Compiler> {
49
- return getCompiler(compilerConfig.version, {
49
+ return await getCompiler(compilerConfig.version, {
50
50
  preferWasm: resolvePreferWasm(compilerConfig, buildProfilePreferWasm),
51
51
  compilerPath: compilerConfig.path,
52
52
  });