hardhat 3.0.0-next.2 → 3.0.0-next.20

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 (702) hide show
  1. package/CHANGELOG.md +178 -0
  2. package/coverage.sol +38 -0
  3. package/dist/src/hre.d.ts +2 -1
  4. package/dist/src/hre.d.ts.map +1 -1
  5. package/dist/src/hre.js +2 -1
  6. package/dist/src/hre.js.map +1 -1
  7. package/dist/src/index.js +1 -1
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/internal/builtin-global-options.js +2 -2
  10. package/dist/src/internal/builtin-global-options.js.map +1 -1
  11. package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.d.ts +2 -2
  12. package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.d.ts.map +1 -1
  13. package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.js +7 -4
  14. package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.js.map +1 -1
  15. package/dist/src/internal/builtin-plugins/clean/index.d.ts +1 -0
  16. package/dist/src/internal/builtin-plugins/clean/index.d.ts.map +1 -1
  17. package/dist/src/internal/builtin-plugins/clean/index.js +1 -0
  18. package/dist/src/internal/builtin-plugins/clean/index.js.map +1 -1
  19. package/dist/src/internal/builtin-plugins/clean/task-action.d.ts.map +1 -1
  20. package/dist/src/internal/builtin-plugins/clean/task-action.js +2 -1
  21. package/dist/src/internal/builtin-plugins/clean/task-action.js.map +1 -1
  22. package/dist/src/internal/builtin-plugins/clean/type-extensions.d.ts +10 -0
  23. package/dist/src/internal/builtin-plugins/clean/type-extensions.d.ts.map +1 -0
  24. package/dist/src/internal/builtin-plugins/clean/type-extensions.js +2 -0
  25. package/dist/src/internal/builtin-plugins/clean/type-extensions.js.map +1 -0
  26. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.d.ts +37 -0
  27. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.d.ts.map +1 -0
  28. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js +364 -0
  29. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js.map +1 -0
  30. package/dist/src/internal/builtin-plugins/coverage/exports.d.ts +2 -0
  31. package/dist/src/internal/builtin-plugins/coverage/exports.d.ts.map +1 -0
  32. package/dist/src/internal/builtin-plugins/coverage/exports.js +2 -0
  33. package/dist/src/internal/builtin-plugins/coverage/exports.js.map +1 -0
  34. package/dist/src/internal/builtin-plugins/coverage/helpers.d.ts +12 -0
  35. package/dist/src/internal/builtin-plugins/coverage/helpers.d.ts.map +1 -0
  36. package/dist/src/internal/builtin-plugins/coverage/helpers.js +35 -0
  37. package/dist/src/internal/builtin-plugins/coverage/helpers.js.map +1 -0
  38. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/clean.d.ts +4 -0
  39. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/clean.d.ts.map +1 -0
  40. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/clean.js +9 -0
  41. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/clean.js.map +1 -0
  42. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.d.ts +4 -0
  43. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.d.ts.map +1 -0
  44. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.js +24 -0
  45. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.js.map +1 -0
  46. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.d.ts +4 -0
  47. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.d.ts.map +1 -0
  48. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +89 -0
  49. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -0
  50. package/dist/src/internal/builtin-plugins/coverage/index.d.ts +1 -0
  51. package/dist/src/internal/builtin-plugins/coverage/index.d.ts.map +1 -1
  52. package/dist/src/internal/builtin-plugins/coverage/index.js +17 -6
  53. package/dist/src/internal/builtin-plugins/coverage/index.js.map +1 -1
  54. package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts +7 -0
  55. package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts.map +1 -0
  56. package/dist/src/internal/builtin-plugins/coverage/type-extensions.js +2 -0
  57. package/dist/src/internal/builtin-plugins/coverage/type-extensions.js.map +1 -0
  58. package/dist/src/internal/builtin-plugins/coverage/types.d.ts +19 -0
  59. package/dist/src/internal/builtin-plugins/coverage/types.d.ts.map +1 -0
  60. package/dist/src/internal/builtin-plugins/coverage/types.js +2 -0
  61. package/dist/src/internal/builtin-plugins/coverage/types.js.map +1 -0
  62. package/dist/src/internal/builtin-plugins/flatten/task-action.d.ts.map +1 -1
  63. package/dist/src/internal/builtin-plugins/flatten/task-action.js +17 -9
  64. package/dist/src/internal/builtin-plugins/flatten/task-action.js.map +1 -1
  65. package/dist/src/internal/builtin-plugins/index.d.ts +1 -1
  66. package/dist/src/internal/builtin-plugins/index.d.ts.map +1 -1
  67. package/dist/src/internal/builtin-plugins/index.js +2 -2
  68. package/dist/src/internal/builtin-plugins/index.js.map +1 -1
  69. package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.js +2 -2
  70. package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.js.map +1 -1
  71. package/dist/src/internal/builtin-plugins/network-manager/base-provider.d.ts.map +1 -1
  72. package/dist/src/internal/builtin-plugins/network-manager/base-provider.js +2 -8
  73. package/dist/src/internal/builtin-plugins/network-manager/base-provider.js.map +1 -1
  74. package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.d.ts +3 -0
  75. package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.d.ts.map +1 -0
  76. package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.js +550 -0
  77. package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.js.map +1 -0
  78. package/dist/src/internal/builtin-plugins/network-manager/config-override.d.ts +0 -12
  79. package/dist/src/internal/builtin-plugins/network-manager/config-override.d.ts.map +1 -1
  80. package/dist/src/internal/builtin-plugins/network-manager/config-override.js +0 -31
  81. package/dist/src/internal/builtin-plugins/network-manager/config-override.js.map +1 -1
  82. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.d.ts +4 -15
  83. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.d.ts.map +1 -1
  84. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js +35 -184
  85. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js.map +1 -1
  86. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-context.js +2 -2
  87. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-context.js.map +1 -1
  88. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts +7 -3
  89. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts.map +1 -1
  90. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js +51 -21
  91. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
  92. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts.map +1 -1
  93. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js +7 -1
  94. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js.map +1 -1
  95. package/dist/src/internal/builtin-plugins/network-manager/edr/types/coverage.d.ts +4 -0
  96. package/dist/src/internal/builtin-plugins/network-manager/edr/types/coverage.d.ts.map +1 -0
  97. package/dist/src/internal/builtin-plugins/network-manager/edr/types/coverage.js +2 -0
  98. package/dist/src/internal/builtin-plugins/network-manager/edr/types/coverage.js.map +1 -0
  99. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts +20 -4
  100. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts.map +1 -1
  101. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js +79 -25
  102. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js.map +1 -1
  103. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts +10 -9
  104. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts.map +1 -1
  105. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js +82 -85
  106. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js.map +1 -1
  107. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.d.ts +3 -2
  108. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.d.ts.map +1 -1
  109. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.js +9 -4
  110. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.js.map +1 -1
  111. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/config.d.ts.map +1 -1
  112. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/config.js +3 -2
  113. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/config.js.map +1 -1
  114. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js +5 -4
  115. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js.map +1 -1
  116. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js +2 -2
  117. package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js.map +1 -1
  118. package/dist/src/internal/builtin-plugins/network-manager/http-provider.d.ts.map +1 -1
  119. package/dist/src/internal/builtin-plugins/network-manager/http-provider.js +4 -4
  120. package/dist/src/internal/builtin-plugins/network-manager/http-provider.js.map +1 -1
  121. package/dist/src/internal/builtin-plugins/network-manager/index.d.ts.map +1 -1
  122. package/dist/src/internal/builtin-plugins/network-manager/index.js +3 -1
  123. package/dist/src/internal/builtin-plugins/network-manager/index.js.map +1 -1
  124. package/dist/src/internal/builtin-plugins/network-manager/json-rpc.d.ts.map +1 -1
  125. package/dist/src/internal/builtin-plugins/network-manager/json-rpc.js +2 -2
  126. package/dist/src/internal/builtin-plugins/network-manager/json-rpc.js.map +1 -1
  127. package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts +4 -4
  128. package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts.map +1 -1
  129. package/dist/src/internal/builtin-plugins/network-manager/network-manager.js +47 -14
  130. package/dist/src/internal/builtin-plugins/network-manager/network-manager.js.map +1 -1
  131. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.d.ts +4 -0
  132. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.d.ts.map +1 -1
  133. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.js +4 -0
  134. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.js.map +1 -1
  135. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.d.ts.map +1 -1
  136. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js +73 -48
  137. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js.map +1 -1
  138. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.js +1 -1
  139. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.js.map +1 -1
  140. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.js +1 -1
  141. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.js.map +1 -1
  142. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.d.ts +3 -0
  143. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.d.ts.map +1 -1
  144. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.js +3 -0
  145. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.js.map +1 -1
  146. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/authorization-list.d.ts +14 -0
  147. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/authorization-list.d.ts.map +1 -0
  148. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/authorization-list.js +15 -0
  149. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/authorization-list.js.map +1 -0
  150. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/rpc-parity.d.ts +3 -0
  151. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/rpc-parity.d.ts.map +1 -0
  152. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/rpc-parity.js +15 -0
  153. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/rpc-parity.js.map +1 -0
  154. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/tx-request.d.ts +8 -0
  155. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/tx-request.d.ts.map +1 -1
  156. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/tx-request.js +2 -0
  157. package/dist/src/internal/builtin-plugins/network-manager/rpc/types/tx-request.js.map +1 -1
  158. package/dist/src/internal/builtin-plugins/network-manager/rpc/validate-params.js +3 -3
  159. package/dist/src/internal/builtin-plugins/network-manager/rpc/validate-params.js.map +1 -1
  160. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts +56 -12
  161. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts.map +1 -1
  162. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/hooks.d.ts +8 -0
  163. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/hooks.d.ts.map +1 -1
  164. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/hooks.js.map +1 -1
  165. package/dist/src/internal/builtin-plugins/network-manager/type-validation.d.ts.map +1 -1
  166. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +141 -36
  167. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
  168. package/dist/src/internal/builtin-plugins/node/index.d.ts.map +1 -1
  169. package/dist/src/internal/builtin-plugins/node/index.js +6 -3
  170. package/dist/src/internal/builtin-plugins/node/index.js.map +1 -1
  171. package/dist/src/internal/builtin-plugins/node/json-rpc/handler.d.ts.map +1 -1
  172. package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js +1 -0
  173. package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js.map +1 -1
  174. package/dist/src/internal/builtin-plugins/node/task-action.d.ts.map +1 -1
  175. package/dist/src/internal/builtin-plugins/node/task-action.js +12 -9
  176. package/dist/src/internal/builtin-plugins/node/task-action.js.map +1 -1
  177. package/dist/src/internal/builtin-plugins/run/task-action.js +1 -1
  178. package/dist/src/internal/builtin-plugins/run/task-action.js.map +1 -1
  179. package/dist/src/internal/builtin-plugins/solidity/build-results.d.ts +0 -20
  180. package/dist/src/internal/builtin-plugins/solidity/build-results.d.ts.map +1 -1
  181. package/dist/src/internal/builtin-plugins/solidity/build-results.js +3 -69
  182. package/dist/src/internal/builtin-plugins/solidity/build-results.js.map +1 -1
  183. package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.d.ts +1 -1
  184. package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.d.ts.map +1 -1
  185. package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.js +13 -7
  186. package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.js.map +1 -1
  187. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts.map +1 -1
  188. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js +56 -35
  189. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
  190. package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts +5 -0
  191. package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts.map +1 -1
  192. package/dist/src/internal/builtin-plugins/solidity/build-system/cache.js +10 -3
  193. package/dist/src/internal/builtin-plugins/solidity/build-system/cache.js.map +1 -1
  194. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.d.ts +3 -3
  195. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.d.ts.map +1 -1
  196. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.js +88 -65
  197. package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.js.map +1 -1
  198. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.d.ts +2 -2
  199. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.d.ts.map +1 -1
  200. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.js +74 -44
  201. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.js.map +1 -1
  202. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.d.ts.map +1 -1
  203. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js +5 -4
  204. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js.map +1 -1
  205. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.d.ts.map +1 -1
  206. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js +1 -1
  207. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js.map +1 -1
  208. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.js +2 -1
  209. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.js.map +1 -1
  210. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-wrapper.js +1 -1
  211. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-wrapper.js.map +1 -1
  212. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.d.ts +1 -5
  213. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.d.ts.map +1 -1
  214. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js +39 -8
  215. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js.map +1 -1
  216. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.d.ts +19 -7
  217. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.d.ts.map +1 -1
  218. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.js +93 -36
  219. package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.js.map +1 -1
  220. package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.d.ts +3 -0
  221. package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.d.ts.map +1 -0
  222. package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.js +7 -0
  223. package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.js.map +1 -0
  224. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.d.ts +19 -26
  225. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.d.ts.map +1 -1
  226. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js +647 -922
  227. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js.map +1 -1
  228. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.d.ts +5 -0
  229. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.d.ts.map +1 -0
  230. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.js +153 -0
  231. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.js.map +1 -0
  232. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/npm-module-parsing.d.ts +23 -0
  233. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/npm-module-parsing.d.ts.map +1 -0
  234. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/npm-module-parsing.js +37 -0
  235. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/npm-module-parsing.js.map +1 -0
  236. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.d.ts +31 -0
  237. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.d.ts.map +1 -0
  238. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js +411 -0
  239. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js.map +1 -0
  240. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remappings.d.ts +9 -1
  241. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remappings.d.ts.map +1 -1
  242. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remappings.js +15 -6
  243. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remappings.js.map +1 -1
  244. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/source-name-utils.d.ts +25 -0
  245. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/source-name-utils.d.ts.map +1 -0
  246. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/source-name-utils.js +38 -0
  247. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/source-name-utils.js.map +1 -0
  248. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/types.d.ts +183 -55
  249. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/types.d.ts.map +1 -1
  250. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/types.js +8 -1
  251. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/types.js.map +1 -1
  252. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/utils.d.ts +20 -0
  253. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/utils.d.ts.map +1 -0
  254. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/utils.js +62 -0
  255. package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/utils.js.map +1 -0
  256. package/dist/src/internal/builtin-plugins/solidity/build-system/root-paths-utils.d.ts +2 -2
  257. package/dist/src/internal/builtin-plugins/solidity/build-system/root-paths-utils.d.ts.map +1 -1
  258. package/dist/src/internal/builtin-plugins/solidity/build-system/root-paths-utils.js +4 -4
  259. package/dist/src/internal/builtin-plugins/solidity/build-system/root-paths-utils.js.map +1 -1
  260. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.d.ts.map +1 -1
  261. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.js +11 -9
  262. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.js.map +1 -1
  263. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.d.ts.map +1 -1
  264. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js +2 -0
  265. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js.map +1 -1
  266. package/dist/src/internal/builtin-plugins/solidity/config.d.ts.map +1 -1
  267. package/dist/src/internal/builtin-plugins/solidity/config.js +4 -9
  268. package/dist/src/internal/builtin-plugins/solidity/config.js.map +1 -1
  269. package/dist/src/internal/builtin-plugins/solidity/index.d.ts.map +1 -1
  270. package/dist/src/internal/builtin-plugins/solidity/index.js +8 -1
  271. package/dist/src/internal/builtin-plugins/solidity/index.js.map +1 -1
  272. package/dist/src/internal/builtin-plugins/solidity/tasks/compile.d.ts +1 -0
  273. package/dist/src/internal/builtin-plugins/solidity/tasks/compile.d.ts.map +1 -1
  274. package/dist/src/internal/builtin-plugins/solidity/tasks/compile.js +3 -2
  275. package/dist/src/internal/builtin-plugins/solidity/tasks/compile.js.map +1 -1
  276. package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts +26 -2
  277. package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts.map +1 -1
  278. package/dist/src/internal/builtin-plugins/solidity/type-extensions.js.map +1 -1
  279. package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.d.ts +20 -0
  280. package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.d.ts.map +1 -0
  281. package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js +79 -0
  282. package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js.map +1 -0
  283. package/dist/src/internal/builtin-plugins/solidity-test/formatters.d.ts +1 -1
  284. package/dist/src/internal/builtin-plugins/solidity-test/formatters.d.ts.map +1 -1
  285. package/dist/src/internal/builtin-plugins/solidity-test/formatters.js +3 -2
  286. package/dist/src/internal/builtin-plugins/solidity-test/formatters.js.map +1 -1
  287. package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts +1 -1
  288. package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts.map +1 -1
  289. package/dist/src/internal/builtin-plugins/solidity-test/helpers.js +2 -1
  290. package/dist/src/internal/builtin-plugins/solidity-test/helpers.js.map +1 -1
  291. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/test.d.ts +4 -0
  292. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/test.d.ts.map +1 -0
  293. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/test.js +16 -0
  294. package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/test.js.map +1 -0
  295. package/dist/src/internal/builtin-plugins/solidity-test/index.d.ts.map +1 -1
  296. package/dist/src/internal/builtin-plugins/solidity-test/index.js +12 -0
  297. package/dist/src/internal/builtin-plugins/solidity-test/index.js.map +1 -1
  298. package/dist/src/internal/builtin-plugins/solidity-test/reporter.d.ts +1 -1
  299. package/dist/src/internal/builtin-plugins/solidity-test/reporter.d.ts.map +1 -1
  300. package/dist/src/internal/builtin-plugins/solidity-test/reporter.js +40 -23
  301. package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
  302. package/dist/src/internal/builtin-plugins/solidity-test/runner.d.ts +1 -1
  303. package/dist/src/internal/builtin-plugins/solidity-test/runner.d.ts.map +1 -1
  304. package/dist/src/internal/builtin-plugins/solidity-test/runner.js +7 -5
  305. package/dist/src/internal/builtin-plugins/solidity-test/runner.js.map +1 -1
  306. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.d.ts +3 -0
  307. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.d.ts.map +1 -0
  308. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js +57 -0
  309. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js.map +1 -0
  310. package/dist/src/internal/builtin-plugins/solidity-test/task-action.d.ts +2 -0
  311. package/dist/src/internal/builtin-plugins/solidity-test/task-action.d.ts.map +1 -1
  312. package/dist/src/internal/builtin-plugins/solidity-test/task-action.js +26 -11
  313. package/dist/src/internal/builtin-plugins/solidity-test/task-action.js.map +1 -1
  314. package/dist/src/internal/builtin-plugins/telemetry/index.d.ts.map +1 -0
  315. package/dist/src/internal/builtin-plugins/telemetry/index.js +20 -0
  316. package/dist/src/internal/builtin-plugins/telemetry/index.js.map +1 -0
  317. package/dist/src/internal/builtin-plugins/telemetry/task-action.d.ts +8 -0
  318. package/dist/src/internal/builtin-plugins/telemetry/task-action.d.ts.map +1 -0
  319. package/dist/src/internal/builtin-plugins/telemetry/task-action.js +25 -0
  320. package/dist/src/internal/builtin-plugins/telemetry/task-action.js.map +1 -0
  321. package/dist/src/internal/builtin-plugins/test/index.d.ts +1 -0
  322. package/dist/src/internal/builtin-plugins/test/index.d.ts.map +1 -1
  323. package/dist/src/internal/builtin-plugins/test/index.js +13 -0
  324. package/dist/src/internal/builtin-plugins/test/index.js.map +1 -1
  325. package/dist/src/internal/builtin-plugins/test/task-action.d.ts +2 -0
  326. package/dist/src/internal/builtin-plugins/test/task-action.d.ts.map +1 -1
  327. package/dist/src/internal/builtin-plugins/test/task-action.js +63 -5
  328. package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
  329. package/dist/src/internal/builtin-plugins/test/type-extensions.d.ts +21 -0
  330. package/dist/src/internal/builtin-plugins/test/type-extensions.d.ts.map +1 -0
  331. package/dist/src/internal/builtin-plugins/test/type-extensions.js +2 -0
  332. package/dist/src/internal/builtin-plugins/test/type-extensions.js.map +1 -0
  333. package/dist/src/internal/cli/error-handler.d.ts.map +1 -1
  334. package/dist/src/internal/cli/error-handler.js +0 -3
  335. package/dist/src/internal/cli/error-handler.js.map +1 -1
  336. package/dist/src/internal/cli/help/utils.d.ts.map +1 -1
  337. package/dist/src/internal/cli/help/utils.js +15 -1
  338. package/dist/src/internal/cli/help/utils.js.map +1 -1
  339. package/dist/src/internal/cli/init/init.d.ts.map +1 -1
  340. package/dist/src/internal/cli/init/init.js +18 -17
  341. package/dist/src/internal/cli/init/init.js.map +1 -1
  342. package/dist/src/internal/cli/init/package-manager.js +2 -2
  343. package/dist/src/internal/cli/init/package-manager.js.map +1 -1
  344. package/dist/src/internal/cli/init/prompt.js +1 -1
  345. package/dist/src/internal/cli/init/prompt.js.map +1 -1
  346. package/dist/src/internal/cli/main.d.ts +7 -1
  347. package/dist/src/internal/cli/main.d.ts.map +1 -1
  348. package/dist/src/internal/cli/main.js +40 -17
  349. package/dist/src/internal/cli/main.js.map +1 -1
  350. package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts +1 -1
  351. package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts.map +1 -1
  352. package/dist/src/internal/cli/telemetry/analytics/analytics.js +7 -7
  353. package/dist/src/internal/cli/telemetry/analytics/analytics.js.map +1 -1
  354. package/dist/src/internal/cli/telemetry/analytics/types.d.ts +3 -3
  355. package/dist/src/internal/cli/telemetry/analytics/types.d.ts.map +1 -1
  356. package/dist/src/internal/cli/telemetry/sentry/anonymizer.d.ts +1 -1
  357. package/dist/src/internal/cli/telemetry/sentry/init.d.ts +13 -0
  358. package/dist/src/internal/cli/telemetry/sentry/init.d.ts.map +1 -0
  359. package/dist/src/internal/cli/telemetry/sentry/init.js +75 -0
  360. package/dist/src/internal/cli/telemetry/sentry/init.js.map +1 -0
  361. package/dist/src/internal/cli/telemetry/sentry/integrations/onuncaughtexception.d.ts +6 -0
  362. package/dist/src/internal/cli/telemetry/sentry/integrations/onuncaughtexception.d.ts.map +1 -0
  363. package/dist/src/internal/cli/telemetry/sentry/integrations/onuncaughtexception.js +32 -0
  364. package/dist/src/internal/cli/telemetry/sentry/integrations/onuncaughtexception.js.map +1 -0
  365. package/dist/src/internal/cli/telemetry/sentry/integrations/onunhandledrejection.d.ts +7 -0
  366. package/dist/src/internal/cli/telemetry/sentry/integrations/onunhandledrejection.d.ts.map +1 -0
  367. package/dist/src/internal/cli/telemetry/sentry/integrations/onunhandledrejection.js +35 -0
  368. package/dist/src/internal/cli/telemetry/sentry/integrations/onunhandledrejection.js.map +1 -0
  369. package/dist/src/internal/cli/telemetry/sentry/reporter.js +7 -5
  370. package/dist/src/internal/cli/telemetry/sentry/reporter.js.map +1 -1
  371. package/dist/src/internal/cli/telemetry/sentry/subprocess.js +7 -3
  372. package/dist/src/internal/cli/telemetry/sentry/subprocess.js.map +1 -1
  373. package/dist/src/internal/cli/telemetry/sentry/transports/fetch.d.ts +10 -0
  374. package/dist/src/internal/cli/telemetry/sentry/transports/fetch.d.ts.map +1 -0
  375. package/dist/src/internal/cli/telemetry/sentry/transports/fetch.js +31 -0
  376. package/dist/src/internal/cli/telemetry/sentry/transports/fetch.js.map +1 -0
  377. package/dist/src/internal/cli/telemetry/sentry/{transport.d.ts → transports/subprocess.d.ts} +1 -1
  378. package/dist/src/internal/cli/telemetry/sentry/transports/subprocess.d.ts.map +1 -0
  379. package/dist/src/internal/cli/telemetry/sentry/{transport.js → transports/subprocess.js} +4 -4
  380. package/dist/src/internal/cli/telemetry/sentry/transports/subprocess.js.map +1 -0
  381. package/dist/src/internal/cli/telemetry/sentry/vendor/debug-build.d.ts +7 -0
  382. package/dist/src/internal/cli/telemetry/sentry/vendor/debug-build.d.ts.map +1 -0
  383. package/dist/src/internal/cli/telemetry/sentry/vendor/debug-build.js +8 -0
  384. package/dist/src/internal/cli/telemetry/sentry/vendor/debug-build.js.map +1 -0
  385. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/context.d.ts +21 -0
  386. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/context.d.ts.map +1 -0
  387. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/context.js +398 -0
  388. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/context.js.map +1 -0
  389. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.d.ts +18 -0
  390. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.d.ts.map +1 -0
  391. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.js +349 -0
  392. package/dist/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.js.map +1 -0
  393. package/dist/src/internal/cli/telemetry/sentry/vendor/utils/module.d.ts +3 -0
  394. package/dist/src/internal/cli/telemetry/sentry/vendor/utils/module.d.ts.map +1 -0
  395. package/dist/src/internal/cli/telemetry/sentry/vendor/utils/module.js +46 -0
  396. package/dist/src/internal/cli/telemetry/sentry/vendor/utils/module.js.map +1 -0
  397. package/dist/src/internal/cli/telemetry/telemetry-permissions.d.ts +5 -15
  398. package/dist/src/internal/cli/telemetry/telemetry-permissions.d.ts.map +1 -1
  399. package/dist/src/internal/cli/telemetry/telemetry-permissions.js +29 -65
  400. package/dist/src/internal/cli/telemetry/telemetry-permissions.js.map +1 -1
  401. package/dist/src/internal/config-loading.d.ts.map +1 -1
  402. package/dist/src/internal/config-loading.js +49 -11
  403. package/dist/src/internal/config-loading.js.map +1 -1
  404. package/dist/src/internal/core/arguments.d.ts +3 -3
  405. package/dist/src/internal/core/arguments.d.ts.map +1 -1
  406. package/dist/src/internal/core/arguments.js +14 -10
  407. package/dist/src/internal/core/arguments.js.map +1 -1
  408. package/dist/src/internal/core/async-mutex.d.ts.map +1 -1
  409. package/dist/src/internal/core/async-mutex.js +0 -1
  410. package/dist/src/internal/core/async-mutex.js.map +1 -1
  411. package/dist/src/internal/core/config-validation.d.ts.map +1 -1
  412. package/dist/src/internal/core/config-validation.js +16 -1
  413. package/dist/src/internal/core/config-validation.js.map +1 -1
  414. package/dist/src/internal/core/config.d.ts +1 -1
  415. package/dist/src/internal/core/config.d.ts.map +1 -1
  416. package/dist/src/internal/core/config.js +7 -2
  417. package/dist/src/internal/core/config.js.map +1 -1
  418. package/dist/src/internal/core/configuration-variables.d.ts +3 -0
  419. package/dist/src/internal/core/configuration-variables.d.ts.map +1 -1
  420. package/dist/src/internal/core/configuration-variables.js +15 -9
  421. package/dist/src/internal/core/configuration-variables.js.map +1 -1
  422. package/dist/src/internal/core/global-options.d.ts +2 -2
  423. package/dist/src/internal/core/global-options.d.ts.map +1 -1
  424. package/dist/src/internal/core/global-options.js +2 -2
  425. package/dist/src/internal/core/global-options.js.map +1 -1
  426. package/dist/src/internal/core/hook-manager.d.ts +1 -0
  427. package/dist/src/internal/core/hook-manager.d.ts.map +1 -1
  428. package/dist/src/internal/core/hook-manager.js +7 -2
  429. package/dist/src/internal/core/hook-manager.js.map +1 -1
  430. package/dist/src/internal/core/hre.d.ts +2 -0
  431. package/dist/src/internal/core/hre.d.ts.map +1 -1
  432. package/dist/src/internal/core/hre.js +4 -1
  433. package/dist/src/internal/core/hre.js.map +1 -1
  434. package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.d.ts +3 -3
  435. package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.d.ts.map +1 -1
  436. package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.js +6 -6
  437. package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.js.map +1 -1
  438. package/dist/src/internal/core/plugins/resolve-plugin-list.js +2 -2
  439. package/dist/src/internal/core/plugins/resolve-plugin-list.js.map +1 -1
  440. package/dist/src/internal/core/tasks/builders.d.ts +0 -1
  441. package/dist/src/internal/core/tasks/builders.d.ts.map +1 -1
  442. package/dist/src/internal/core/tasks/builders.js +2 -6
  443. package/dist/src/internal/core/tasks/builders.js.map +1 -1
  444. package/dist/src/internal/core/tasks/resolved-task.d.ts.map +1 -1
  445. package/dist/src/internal/core/tasks/resolved-task.js +5 -5
  446. package/dist/src/internal/core/tasks/resolved-task.js.map +1 -1
  447. package/dist/src/internal/core/tasks/task-manager.js +7 -7
  448. package/dist/src/internal/core/tasks/task-manager.js.map +1 -1
  449. package/dist/src/internal/core/tasks/validations.d.ts.map +1 -1
  450. package/dist/src/internal/core/tasks/validations.js +8 -8
  451. package/dist/src/internal/core/tasks/validations.js.map +1 -1
  452. package/dist/src/internal/{hre-intialization.d.ts → hre-initialization.d.ts} +2 -2
  453. package/dist/src/internal/hre-initialization.d.ts.map +1 -0
  454. package/dist/src/internal/{hre-intialization.js → hre-initialization.js} +2 -2
  455. package/dist/src/internal/hre-initialization.js.map +1 -0
  456. package/dist/src/lsp-helpers.d.ts +5 -0
  457. package/dist/src/lsp-helpers.d.ts.map +1 -0
  458. package/dist/src/lsp-helpers.js +4 -0
  459. package/dist/src/lsp-helpers.js.map +1 -0
  460. package/dist/src/types/arguments.d.ts +5 -1
  461. package/dist/src/types/arguments.d.ts.map +1 -1
  462. package/dist/src/types/arguments.js +2 -0
  463. package/dist/src/types/arguments.js.map +1 -1
  464. package/dist/src/types/artifacts.d.ts +4 -4
  465. package/dist/src/types/artifacts.d.ts.map +1 -1
  466. package/dist/src/types/config.d.ts +2 -0
  467. package/dist/src/types/config.d.ts.map +1 -1
  468. package/dist/src/types/hooks.d.ts +8 -0
  469. package/dist/src/types/hooks.d.ts.map +1 -1
  470. package/dist/src/types/hre.d.ts +2 -1
  471. package/dist/src/types/hre.d.ts.map +1 -1
  472. package/dist/src/types/network.d.ts +6 -1
  473. package/dist/src/types/network.d.ts.map +1 -1
  474. package/dist/src/types/providers.d.ts +6 -6
  475. package/dist/src/types/solidity/build-system.d.ts +3 -3
  476. package/dist/src/types/solidity/compilation-job.d.ts +1 -1
  477. package/dist/src/types/solidity/compilation-job.d.ts.map +1 -1
  478. package/dist/src/types/solidity/compiler-io.d.ts +4 -4
  479. package/dist/src/types/solidity/compiler-io.d.ts.map +1 -1
  480. package/dist/src/types/solidity/dependency-graph.d.ts +17 -10
  481. package/dist/src/types/solidity/dependency-graph.d.ts.map +1 -1
  482. package/dist/src/types/solidity/errors.d.ts +269 -0
  483. package/dist/src/types/solidity/errors.d.ts.map +1 -0
  484. package/dist/src/types/solidity/errors.js +118 -0
  485. package/dist/src/types/solidity/errors.js.map +1 -0
  486. package/dist/src/types/solidity/resolved-file.d.ts +23 -23
  487. package/dist/src/types/solidity/resolved-file.d.ts.map +1 -1
  488. package/dist/src/types/solidity/resolved-file.js.map +1 -1
  489. package/dist/src/types/solidity/solidity-artifacts.d.ts +5 -3
  490. package/dist/src/types/solidity/solidity-artifacts.d.ts.map +1 -1
  491. package/dist/src/types/solidity.d.ts +1 -0
  492. package/dist/src/types/solidity.d.ts.map +1 -1
  493. package/dist/src/types/solidity.js +1 -0
  494. package/dist/src/types/solidity.js.map +1 -1
  495. package/dist/src/types/tasks.d.ts +0 -4
  496. package/dist/src/types/tasks.d.ts.map +1 -1
  497. package/dist/src/types/utils.d.ts +6 -0
  498. package/dist/src/types/utils.d.ts.map +1 -1
  499. package/dist/src/utils/contract-names.d.ts +45 -0
  500. package/dist/src/utils/contract-names.d.ts.map +1 -0
  501. package/dist/src/utils/contract-names.js +60 -0
  502. package/dist/src/utils/contract-names.js.map +1 -0
  503. package/package.json +21 -22
  504. package/src/hre.ts +2 -1
  505. package/src/index.ts +1 -1
  506. package/src/internal/builtin-global-options.ts +2 -2
  507. package/src/internal/builtin-plugins/artifacts/artifact-manager.ts +19 -9
  508. package/src/internal/builtin-plugins/artifacts/hook-handlers/hre.ts +2 -2
  509. package/src/internal/builtin-plugins/clean/index.ts +2 -0
  510. package/src/internal/builtin-plugins/clean/task-action.ts +3 -1
  511. package/src/internal/builtin-plugins/clean/type-extensions.ts +10 -0
  512. package/src/internal/builtin-plugins/coverage/coverage-manager.ts +544 -0
  513. package/src/internal/builtin-plugins/coverage/exports.ts +5 -0
  514. package/src/internal/builtin-plugins/coverage/helpers.ts +50 -0
  515. package/src/internal/builtin-plugins/coverage/hook-handlers/clean.ts +12 -0
  516. package/src/internal/builtin-plugins/coverage/hook-handlers/hre.ts +34 -0
  517. package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +136 -0
  518. package/src/internal/builtin-plugins/coverage/index.ts +18 -6
  519. package/src/internal/builtin-plugins/coverage/type-extensions.ts +6 -0
  520. package/src/internal/builtin-plugins/coverage/types.ts +21 -0
  521. package/src/internal/builtin-plugins/flatten/task-action.ts +25 -10
  522. package/src/internal/builtin-plugins/index.ts +3 -3
  523. package/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.ts +2 -2
  524. package/src/internal/builtin-plugins/network-manager/base-provider.ts +2 -10
  525. package/src/internal/builtin-plugins/network-manager/chain-descriptors.ts +556 -0
  526. package/src/internal/builtin-plugins/network-manager/config-override.ts +0 -42
  527. package/src/internal/builtin-plugins/network-manager/config-resolution.ts +59 -217
  528. package/src/internal/builtin-plugins/network-manager/edr/edr-context.ts +4 -4
  529. package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +83 -31
  530. package/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.ts +8 -1
  531. package/src/internal/builtin-plugins/network-manager/edr/types/coverage.ts +3 -0
  532. package/src/internal/builtin-plugins/network-manager/edr/types/hardfork.ts +76 -8
  533. package/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.ts +122 -101
  534. package/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.ts +19 -5
  535. package/src/internal/builtin-plugins/network-manager/hook-handlers/config.ts +16 -6
  536. package/src/internal/builtin-plugins/network-manager/hook-handlers/hre.ts +7 -7
  537. package/src/internal/builtin-plugins/network-manager/hook-handlers/network.ts +2 -2
  538. package/src/internal/builtin-plugins/network-manager/http-provider.ts +9 -5
  539. package/src/internal/builtin-plugins/network-manager/index.ts +3 -1
  540. package/src/internal/builtin-plugins/network-manager/json-rpc.ts +9 -4
  541. package/src/internal/builtin-plugins/network-manager/network-manager.ts +85 -42
  542. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.ts +4 -0
  543. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +121 -63
  544. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.ts +1 -1
  545. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.ts +1 -1
  546. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.ts +3 -0
  547. package/src/internal/builtin-plugins/network-manager/rpc/types/authorization-list.ts +31 -0
  548. package/src/internal/builtin-plugins/network-manager/rpc/types/rpc-parity.ts +24 -0
  549. package/src/internal/builtin-plugins/network-manager/rpc/types/tx-request.ts +10 -0
  550. package/src/internal/builtin-plugins/network-manager/rpc/validate-params.ts +3 -3
  551. package/src/internal/builtin-plugins/network-manager/type-extensions/config.ts +78 -30
  552. package/src/internal/builtin-plugins/network-manager/type-extensions/hooks.ts +12 -0
  553. package/src/internal/builtin-plugins/network-manager/type-validation.ts +192 -54
  554. package/src/internal/builtin-plugins/node/index.ts +6 -3
  555. package/src/internal/builtin-plugins/node/json-rpc/handler.ts +2 -0
  556. package/src/internal/builtin-plugins/node/task-action.ts +11 -12
  557. package/src/internal/builtin-plugins/run/task-action.ts +1 -1
  558. package/src/internal/builtin-plugins/solidity/build-results.ts +3 -110
  559. package/src/internal/builtin-plugins/solidity/build-system/artifacts.ts +32 -9
  560. package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +73 -51
  561. package/src/internal/builtin-plugins/solidity/build-system/cache.ts +11 -4
  562. package/src/internal/builtin-plugins/solidity/build-system/compilation-job.ts +134 -85
  563. package/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.ts +108 -69
  564. package/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.ts +11 -6
  565. package/src/internal/builtin-plugins/solidity/build-system/compiler/index.ts +6 -3
  566. package/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.ts +2 -1
  567. package/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-wrapper.ts +3 -3
  568. package/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.ts +72 -17
  569. package/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts +135 -38
  570. package/src/internal/builtin-plugins/solidity/build-system/read-source-file.ts +16 -0
  571. package/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts +921 -1376
  572. package/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.ts +223 -0
  573. package/src/internal/builtin-plugins/solidity/build-system/resolver/npm-module-parsing.ts +60 -0
  574. package/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts +670 -0
  575. package/src/internal/builtin-plugins/solidity/build-system/resolver/remappings.ts +18 -9
  576. package/src/internal/builtin-plugins/solidity/build-system/resolver/source-name-utils.ts +42 -0
  577. package/src/internal/builtin-plugins/solidity/build-system/resolver/types.ts +240 -56
  578. package/src/internal/builtin-plugins/solidity/build-system/resolver/utils.ts +89 -0
  579. package/src/internal/builtin-plugins/solidity/build-system/root-paths-utils.ts +4 -4
  580. package/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.ts +13 -9
  581. package/src/internal/builtin-plugins/solidity/build-system/solc-info.ts +2 -0
  582. package/src/internal/builtin-plugins/solidity/config.ts +4 -9
  583. package/src/internal/builtin-plugins/solidity/index.ts +8 -1
  584. package/src/internal/builtin-plugins/solidity/tasks/compile.ts +5 -2
  585. package/src/internal/builtin-plugins/solidity/type-extensions.ts +56 -2
  586. package/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts +134 -0
  587. package/src/internal/builtin-plugins/solidity-test/formatters.ts +8 -2
  588. package/src/internal/builtin-plugins/solidity-test/helpers.ts +2 -0
  589. package/src/internal/builtin-plugins/solidity-test/hook-handlers/test.ts +23 -0
  590. package/src/internal/builtin-plugins/solidity-test/index.ts +13 -0
  591. package/src/internal/builtin-plugins/solidity-test/reporter.ts +46 -27
  592. package/src/internal/builtin-plugins/solidity-test/runner.ts +19 -4
  593. package/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.ts +85 -0
  594. package/src/internal/builtin-plugins/solidity-test/task-action.ts +38 -16
  595. package/src/internal/builtin-plugins/telemetry/index.ts +23 -0
  596. package/src/internal/builtin-plugins/telemetry/task-action.ts +45 -0
  597. package/src/internal/builtin-plugins/test/index.ts +14 -0
  598. package/src/internal/builtin-plugins/test/task-action.ts +111 -5
  599. package/src/internal/builtin-plugins/test/type-extensions.ts +28 -0
  600. package/src/internal/cli/error-handler.ts +0 -3
  601. package/src/internal/cli/help/utils.ts +19 -2
  602. package/src/internal/cli/init/init.ts +33 -23
  603. package/src/internal/cli/init/package-manager.ts +2 -2
  604. package/src/internal/cli/init/prompt.ts +1 -1
  605. package/src/internal/cli/main.ts +60 -21
  606. package/src/internal/cli/telemetry/analytics/analytics.ts +11 -11
  607. package/src/internal/cli/telemetry/analytics/types.ts +3 -3
  608. package/src/internal/cli/telemetry/sentry/anonymizer.ts +1 -1
  609. package/src/internal/cli/telemetry/sentry/init.ts +117 -0
  610. package/src/internal/cli/telemetry/sentry/integrations/onuncaughtexception.ts +40 -0
  611. package/src/internal/cli/telemetry/sentry/integrations/onunhandledrejection.ts +49 -0
  612. package/src/internal/cli/telemetry/sentry/reporter.ts +10 -6
  613. package/src/internal/cli/telemetry/sentry/subprocess.ts +8 -4
  614. package/src/internal/cli/telemetry/sentry/transports/fetch.ts +53 -0
  615. package/src/internal/cli/telemetry/sentry/{transport.ts → transports/subprocess.ts} +4 -3
  616. package/src/internal/cli/telemetry/sentry/vendor/debug-build.ts +10 -0
  617. package/src/internal/cli/telemetry/sentry/vendor/integrations/context.ts +478 -0
  618. package/src/internal/cli/telemetry/sentry/vendor/integrations/contextlines.ts +415 -0
  619. package/src/internal/cli/telemetry/sentry/vendor/utils/module.ts +61 -0
  620. package/src/internal/cli/telemetry/telemetry-permissions.ts +35 -84
  621. package/src/internal/config-loading.ts +75 -18
  622. package/src/internal/core/arguments.ts +16 -10
  623. package/src/internal/core/async-mutex.ts +0 -1
  624. package/src/internal/core/config-validation.ts +20 -1
  625. package/src/internal/core/config.ts +14 -2
  626. package/src/internal/core/configuration-variables.ts +26 -11
  627. package/src/internal/core/global-options.ts +5 -3
  628. package/src/internal/core/hook-manager.ts +18 -2
  629. package/src/internal/core/hre.ts +6 -1
  630. package/src/internal/core/plugins/detect-plugin-npm-dependency-problems.ts +11 -8
  631. package/src/internal/core/plugins/resolve-plugin-list.ts +2 -2
  632. package/src/internal/core/tasks/builders.ts +13 -12
  633. package/src/internal/core/tasks/resolved-task.ts +10 -7
  634. package/src/internal/core/tasks/task-manager.ts +7 -7
  635. package/src/internal/core/tasks/validations.ts +10 -8
  636. package/src/internal/{hre-intialization.ts → hre-initialization.ts} +1 -1
  637. package/src/lsp-helpers.ts +9 -0
  638. package/src/types/arguments.ts +4 -0
  639. package/src/types/artifacts.ts +4 -4
  640. package/src/types/config.ts +2 -0
  641. package/src/types/hooks.ts +15 -0
  642. package/src/types/hre.ts +2 -1
  643. package/src/types/network.ts +10 -4
  644. package/src/types/providers.ts +6 -6
  645. package/src/types/solidity/build-system.ts +3 -3
  646. package/src/types/solidity/compilation-job.ts +1 -1
  647. package/src/types/solidity/compiler-io.ts +4 -4
  648. package/src/types/solidity/dependency-graph.ts +18 -10
  649. package/src/types/solidity/errors.ts +357 -0
  650. package/src/types/solidity/resolved-file.ts +23 -24
  651. package/src/types/solidity/solidity-artifacts.ts +5 -3
  652. package/src/types/solidity.ts +1 -0
  653. package/src/types/tasks.ts +0 -5
  654. package/src/types/utils.ts +7 -0
  655. package/src/utils/contract-names.ts +80 -0
  656. package/templates/01-node-test-runner-viem/README.md +1 -1
  657. package/templates/01-node-test-runner-viem/gitignore +3 -0
  658. package/templates/01-node-test-runner-viem/hardhat.config.ts +4 -29
  659. package/templates/01-node-test-runner-viem/package.json +5 -9
  660. package/templates/01-node-test-runner-viem/scripts/check-predeploy.ts +8 -2
  661. package/templates/01-node-test-runner-viem/scripts/send-op-tx.ts +4 -3
  662. package/templates/01-node-test-runner-viem/test/Counter.ts +20 -6
  663. package/templates/02-mocha-ethers/gitignore +3 -0
  664. package/templates/02-mocha-ethers/hardhat.config.ts +4 -33
  665. package/templates/02-mocha-ethers/package.json +6 -11
  666. package/templates/02-mocha-ethers/scripts/check-predeploy.ts +8 -2
  667. package/templates/02-mocha-ethers/scripts/send-op-tx.ts +4 -1
  668. package/templates/02-mocha-ethers/test/Counter.ts +48 -45
  669. package/dist/src/internal/builtin-plugins/coverage/task-action.d.ts +0 -2
  670. package/dist/src/internal/builtin-plugins/coverage/task-action.d.ts.map +0 -1
  671. package/dist/src/internal/builtin-plugins/coverage/task-action.js +0 -5
  672. package/dist/src/internal/builtin-plugins/coverage/task-action.js.map +0 -1
  673. package/dist/src/internal/builtin-plugins/solidity/build-system/debug-utils.d.ts +0 -4
  674. package/dist/src/internal/builtin-plugins/solidity/build-system/debug-utils.d.ts.map +0 -1
  675. package/dist/src/internal/builtin-plugins/solidity/build-system/debug-utils.js +0 -60
  676. package/dist/src/internal/builtin-plugins/solidity/build-system/debug-utils.js.map +0 -1
  677. package/dist/src/internal/builtin-plugins/solidity/build-system/resolved-file.d.ts +0 -22
  678. package/dist/src/internal/builtin-plugins/solidity/build-system/resolved-file.d.ts.map +0 -1
  679. package/dist/src/internal/builtin-plugins/solidity/build-system/resolved-file.js +0 -41
  680. package/dist/src/internal/builtin-plugins/solidity/build-system/resolved-file.js.map +0 -1
  681. package/dist/src/internal/builtin-plugins/verify/index.d.ts.map +0 -1
  682. package/dist/src/internal/builtin-plugins/verify/index.js +0 -12
  683. package/dist/src/internal/builtin-plugins/verify/index.js.map +0 -1
  684. package/dist/src/internal/builtin-plugins/verify/task-action.d.ts +0 -2
  685. package/dist/src/internal/builtin-plugins/verify/task-action.d.ts.map +0 -1
  686. package/dist/src/internal/builtin-plugins/verify/task-action.js +0 -5
  687. package/dist/src/internal/builtin-plugins/verify/task-action.js.map +0 -1
  688. package/dist/src/internal/cli/prompt/prompt.d.ts +0 -9
  689. package/dist/src/internal/cli/prompt/prompt.d.ts.map +0 -1
  690. package/dist/src/internal/cli/prompt/prompt.js +0 -43
  691. package/dist/src/internal/cli/prompt/prompt.js.map +0 -1
  692. package/dist/src/internal/cli/telemetry/sentry/transport.d.ts.map +0 -1
  693. package/dist/src/internal/cli/telemetry/sentry/transport.js.map +0 -1
  694. package/dist/src/internal/hre-intialization.d.ts.map +0 -1
  695. package/dist/src/internal/hre-intialization.js.map +0 -1
  696. package/src/internal/builtin-plugins/coverage/task-action.ts +0 -9
  697. package/src/internal/builtin-plugins/solidity/build-system/debug-utils.ts +0 -80
  698. package/src/internal/builtin-plugins/solidity/build-system/resolved-file.ts +0 -66
  699. package/src/internal/builtin-plugins/verify/index.ts +0 -15
  700. package/src/internal/builtin-plugins/verify/task-action.ts +0 -9
  701. package/src/internal/cli/prompt/prompt.ts +0 -53
  702. /package/dist/src/internal/builtin-plugins/{verify → telemetry}/index.d.ts +0 -0
@@ -2,9 +2,9 @@ import type {
2
2
  ConfigurationVariableResolver,
3
3
  EdrNetworkAccountsConfig,
4
4
  EdrNetworkAccountsUserConfig,
5
- EdrNetworkChainConfig,
6
- EdrNetworkChainsConfig,
7
- EdrNetworkChainsUserConfig,
5
+ ChainDescriptorConfig,
6
+ ChainDescriptorsConfig,
7
+ ChainDescriptorsUserConfig,
8
8
  EdrNetworkConfig,
9
9
  EdrNetworkForkingConfig,
10
10
  EdrNetworkForkingUserConfig,
@@ -17,24 +17,27 @@ import type {
17
17
  HttpNetworkAccountsUserConfig,
18
18
  HttpNetworkConfig,
19
19
  HttpNetworkUserConfig,
20
- NetworkConfig,
21
- NetworkUserConfig,
22
20
  } from "../../../types/config.js";
21
+ import type { ChainType } from "../../../types/network.js";
23
22
 
24
23
  import path from "node:path";
25
24
 
25
+ import { toBigInt } from "@nomicfoundation/hardhat-utils/bigint";
26
26
  import {
27
27
  hexStringToBytes,
28
28
  normalizeHexString,
29
29
  } from "@nomicfoundation/hardhat-utils/hex";
30
- import { isObject } from "@nomicfoundation/hardhat-utils/lang";
30
+ import { deepClone } from "@nomicfoundation/hardhat-utils/lang";
31
+
32
+ import { GENERIC_CHAIN_TYPE } from "../../constants.js";
31
33
 
32
34
  import { DEFAULT_HD_ACCOUNTS_CONFIG_PARAMS } from "./accounts/constants.js";
35
+ import { DEFAULT_CHAIN_DESCRIPTORS } from "./chain-descriptors.js";
33
36
  import {
34
37
  DEFAULT_EDR_NETWORK_HD_ACCOUNTS_CONFIG_PARAMS,
35
38
  EDR_NETWORK_DEFAULT_COINBASE,
36
39
  } from "./edr/edr-provider.js";
37
- import { HardforkName, LATEST_HARDFORK } from "./edr/types/hardfork.js";
40
+ import { getCurrentHardfork } from "./edr/types/hardfork.js";
38
41
  import { isHttpNetworkHdAccountsUserConfig } from "./type-validation.js";
39
42
 
40
43
  export function resolveHttpNetwork(
@@ -54,7 +57,7 @@ export function resolveHttpNetwork(
54
57
  gasMultiplier: networkConfig.gasMultiplier ?? 1,
55
58
  gasPrice: resolveGasConfig(networkConfig.gasPrice),
56
59
  url: resolveConfigurationVariable(networkConfig.url),
57
- timeout: networkConfig.timeout ?? 20_000,
60
+ timeout: networkConfig.timeout ?? 300_000,
58
61
  httpHeaders: networkConfig.httpHeaders ?? {},
59
62
  };
60
63
  }
@@ -82,7 +85,6 @@ export function resolveEdrNetwork(
82
85
  allowUnlimitedContractSize:
83
86
  networkConfig.allowUnlimitedContractSize ?? false,
84
87
  blockGasLimit: BigInt(networkConfig.blockGasLimit ?? 30_000_000n),
85
- chains: resolveChains(networkConfig.chains),
86
88
  coinbase: resolveCoinbase(networkConfig.coinbase),
87
89
  enableRip7212: networkConfig.enableRip7212 ?? false,
88
90
  enableTransientStorage: networkConfig.enableTransientStorage ?? false,
@@ -93,6 +95,7 @@ export function resolveEdrNetwork(
93
95
  ),
94
96
  hardfork: resolveHardfork(
95
97
  networkConfig.hardfork,
98
+ networkConfig.chainType,
96
99
  networkConfig.enableTransientStorage,
97
100
  ),
98
101
  initialBaseFeePerGas: resolveInitialBaseFeePerGas(
@@ -109,82 +112,6 @@ export function resolveEdrNetwork(
109
112
  };
110
113
  }
111
114
 
112
- /**
113
- * Resolves a NetworkUserConfig into a Partial<NetworkConfig> object.
114
- * This function processes the network configuration override using the appropriate
115
- * resolver (either HTTP or EDR) and ensures only the values explicitly specified
116
- * in the override are included in the final result, preventing defaults from
117
- * overwriting the user's configuration.
118
- *
119
- * @param networkUserConfigOverride The user's network configuration override.
120
- * @param resolveConfigurationVariable A function to resolve configuration variables.
121
- * @returns A Partial<NetworkConfig> containing the resolved values from the override.
122
- */
123
- export function resolveNetworkConfigOverride(
124
- networkUserConfigOverride: NetworkUserConfig,
125
- resolveConfigurationVariable: ConfigurationVariableResolver,
126
- ): Partial<NetworkConfig> {
127
- let resolvedConfigOverride: NetworkConfig;
128
-
129
- if (networkUserConfigOverride.type === "http") {
130
- resolvedConfigOverride = resolveHttpNetwork(
131
- networkUserConfigOverride,
132
- resolveConfigurationVariable,
133
- );
134
- } else {
135
- resolvedConfigOverride = resolveEdrNetwork(
136
- networkUserConfigOverride,
137
- "",
138
- resolveConfigurationVariable,
139
- );
140
- }
141
-
142
- /* Return only the resolved config of the values overridden by the user. This
143
- ensures that only the overridden values are merged into the config and
144
- indirectly removes cacheDir from the resolved forking config, as cacheDir
145
- is not part of the NetworkUserConfig. */
146
- return pickResolvedFromOverrides(
147
- resolvedConfigOverride,
148
- networkUserConfigOverride,
149
- );
150
- }
151
-
152
- function pickResolvedFromOverrides<
153
- TResolved extends object,
154
- TOverride extends object,
155
- >(resolvedConfig: TResolved, overrides: TOverride): Partial<TResolved> {
156
- const result: Partial<TResolved> = {};
157
-
158
- for (const key of Object.keys(overrides)) {
159
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions
160
- -- As TResolved and TOverride are objects share the same keys, we can
161
- safely cast the key */
162
- const resolvedKey = key as keyof TResolved;
163
- const resolvedValue = resolvedConfig[resolvedKey];
164
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions
165
- -- As TResolved and TOverride are objects share the same keys, we can
166
- safely cast the key */
167
- const overrideValue = overrides[key as keyof TOverride];
168
-
169
- if (!(isObject(resolvedValue) && isObject(overrideValue))) {
170
- result[resolvedKey] = resolvedValue;
171
- continue;
172
- }
173
-
174
- /* Some properties in NetworkConfig, such as accounts, forking, and mining,
175
- are objects themselves. To handle these, we process them recursively. */
176
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions
177
- -- The return type adheres to TResolved[keyof TResolved], but TS can't
178
- infer it */
179
- result[resolvedKey] = pickResolvedFromOverrides(
180
- resolvedValue,
181
- overrideValue,
182
- ) as TResolved[keyof TResolved];
183
- }
184
-
185
- return result;
186
- }
187
-
188
115
  export function resolveGasConfig(value: GasUserConfig = "auto"): GasConfig {
189
116
  return value === "auto" ? value : BigInt(value);
190
117
  }
@@ -295,152 +222,67 @@ export function resolveCoinbase(
295
222
  return hexStringToBytes(coinbase);
296
223
  }
297
224
 
298
- export function resolveChains(
299
- chains: EdrNetworkChainsUserConfig | undefined,
300
- ): EdrNetworkChainsConfig {
301
- const resolvedChains: EdrNetworkChainsConfig = new Map([
302
- [
303
- // block numbers below were taken from https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/common/src/chains
304
- 1, // mainnet
305
- {
306
- hardforkHistory: new Map([
307
- [HardforkName.FRONTIER, 0],
308
- [HardforkName.HOMESTEAD, 1_150_000],
309
- [HardforkName.DAO, 1_920_000],
310
- [HardforkName.TANGERINE_WHISTLE, 2_463_000],
311
- [HardforkName.SPURIOUS_DRAGON, 2_675_000],
312
- [HardforkName.BYZANTIUM, 4_370_000],
313
- [HardforkName.CONSTANTINOPLE, 7_280_000],
314
- [HardforkName.PETERSBURG, 7_280_000],
315
- [HardforkName.ISTANBUL, 9_069_000],
316
- [HardforkName.MUIR_GLACIER, 9_200_000],
317
- [HardforkName.BERLIN, 1_2244_000],
318
- [HardforkName.LONDON, 12_965_000],
319
- [HardforkName.ARROW_GLACIER, 13_773_000],
320
- [HardforkName.GRAY_GLACIER, 15_050_000],
321
- [HardforkName.MERGE, 15_537_394],
322
- [HardforkName.SHANGHAI, 17_034_870],
323
- [HardforkName.CANCUN, 19_426_589],
324
- ]),
325
- },
326
- ],
327
- [
328
- 3, // ropsten
329
- {
330
- hardforkHistory: new Map([
331
- [HardforkName.BYZANTIUM, 1700000],
332
- [HardforkName.CONSTANTINOPLE, 4230000],
333
- [HardforkName.PETERSBURG, 4939394],
334
- [HardforkName.ISTANBUL, 6485846],
335
- [HardforkName.MUIR_GLACIER, 7117117],
336
- [HardforkName.BERLIN, 9812189],
337
- [HardforkName.LONDON, 10499401],
338
- ]),
339
- },
340
- ],
341
- [
342
- 4, // rinkeby
343
- {
344
- hardforkHistory: new Map([
345
- [HardforkName.BYZANTIUM, 1035301],
346
- [HardforkName.CONSTANTINOPLE, 3660663],
347
- [HardforkName.PETERSBURG, 4321234],
348
- [HardforkName.ISTANBUL, 5435345],
349
- [HardforkName.BERLIN, 8290928],
350
- [HardforkName.LONDON, 8897988],
351
- ]),
352
- },
353
- ],
354
- [
355
- 5, // goerli
356
- {
357
- hardforkHistory: new Map([
358
- [HardforkName.ISTANBUL, 1561651],
359
- [HardforkName.BERLIN, 4460644],
360
- [HardforkName.LONDON, 5062605],
361
- ]),
362
- },
363
- ],
364
- [
365
- 42, // kovan
366
- {
367
- hardforkHistory: new Map([
368
- [HardforkName.BYZANTIUM, 5067000],
369
- [HardforkName.CONSTANTINOPLE, 9200000],
370
- [HardforkName.PETERSBURG, 10255201],
371
- [HardforkName.ISTANBUL, 14111141],
372
- [HardforkName.BERLIN, 24770900],
373
- [HardforkName.LONDON, 26741100],
374
- ]),
375
- },
376
- ],
377
- [
378
- 11155111, // sepolia
379
- {
380
- hardforkHistory: new Map([
381
- [HardforkName.GRAY_GLACIER, 0],
382
- [HardforkName.MERGE, 1_450_409],
383
- [HardforkName.SHANGHAI, 2_990_908],
384
- [HardforkName.CANCUN, 5_187_023],
385
- ]),
386
- },
387
- ],
388
- // TODO: the rest of this config is a temporary workaround,
389
- // see https://github.com/NomicFoundation/edr/issues/522
390
- [
391
- 10, // optimism mainnet
392
- {
393
- hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
394
- },
395
- ],
396
- [
397
- 11155420, // optimism sepolia
398
- {
399
- hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
400
- },
401
- ],
402
- [
403
- 42161, // arbitrum one
404
- {
405
- hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
406
- },
407
- ],
408
- [
409
- 421614, // arbitrum sepolia
410
- {
411
- hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
412
- },
413
- ],
414
- ]);
415
-
416
- if (chains === undefined) {
417
- return resolvedChains;
225
+ export async function resolveChainDescriptors(
226
+ chainDescriptors: ChainDescriptorsUserConfig | undefined,
227
+ ): Promise<ChainDescriptorsConfig> {
228
+ const resolvedChainDescriptors: ChainDescriptorsConfig = await deepClone(
229
+ DEFAULT_CHAIN_DESCRIPTORS,
230
+ );
231
+
232
+ if (chainDescriptors === undefined) {
233
+ return resolvedChainDescriptors;
418
234
  }
419
235
 
420
- chains.forEach((chainConfig, chainId) => {
421
- const resolvedChainConfig: EdrNetworkChainConfig = {
422
- hardforkHistory: new Map(),
423
- };
424
- if (chainConfig.hardforkHistory !== undefined) {
425
- chainConfig.hardforkHistory.forEach((block, name) => {
426
- resolvedChainConfig.hardforkHistory.set(name, block);
427
- });
236
+ // Loop over the user-provided chain descriptors
237
+ // and merge them with the default ones
238
+ for (const [chainId, userDescriptor] of Object.entries(chainDescriptors)) {
239
+ const existingDescriptor: ChainDescriptorConfig =
240
+ resolvedChainDescriptors.get(toBigInt(chainId)) ?? {
241
+ name: userDescriptor.name,
242
+ chainType: GENERIC_CHAIN_TYPE,
243
+ blockExplorers: {},
244
+ };
245
+
246
+ existingDescriptor.name = userDescriptor.name;
247
+
248
+ if (userDescriptor.chainType !== undefined) {
249
+ existingDescriptor.chainType = userDescriptor.chainType;
428
250
  }
429
- resolvedChains.set(chainId, resolvedChainConfig);
430
- });
431
251
 
432
- return resolvedChains;
252
+ if (userDescriptor.hardforkHistory !== undefined) {
253
+ existingDescriptor.hardforkHistory = new Map(
254
+ Object.entries(userDescriptor.hardforkHistory),
255
+ );
256
+ }
257
+
258
+ if (userDescriptor.blockExplorers?.etherscan !== undefined) {
259
+ existingDescriptor.blockExplorers.etherscan = await deepClone(
260
+ userDescriptor.blockExplorers.etherscan,
261
+ );
262
+ }
263
+
264
+ if (userDescriptor.blockExplorers?.blockscout !== undefined) {
265
+ existingDescriptor.blockExplorers.blockscout = await deepClone(
266
+ userDescriptor.blockExplorers.blockscout,
267
+ );
268
+ }
269
+
270
+ resolvedChainDescriptors.set(toBigInt(chainId), existingDescriptor);
271
+ }
272
+
273
+ return resolvedChainDescriptors;
433
274
  }
434
275
 
435
276
  export function resolveHardfork(
436
277
  hardfork: string | undefined,
278
+ chainType: ChainType | undefined = GENERIC_CHAIN_TYPE,
437
279
  _enableTransientStorage: boolean | undefined,
438
280
  ): string {
439
281
  if (hardfork !== undefined) {
440
282
  return hardfork;
441
283
  }
442
284
 
443
- return LATEST_HARDFORK;
285
+ return getCurrentHardfork(chainType);
444
286
  }
445
287
 
446
288
  export function resolveInitialBaseFeePerGas(
@@ -4,8 +4,8 @@ import {
4
4
  genericChainProviderFactory,
5
5
  L1_CHAIN_TYPE,
6
6
  l1ProviderFactory,
7
- OPTIMISM_CHAIN_TYPE,
8
- optimismProviderFactory,
7
+ OP_CHAIN_TYPE,
8
+ opProviderFactory,
9
9
  } from "@ignored/edr-optimism";
10
10
 
11
11
  let _globalEdrContext: EdrContext | undefined;
@@ -22,8 +22,8 @@ export async function getGlobalEdrContext(): Promise<EdrContext> {
22
22
  l1ProviderFactory(),
23
23
  );
24
24
  await _globalEdrContext.registerProviderFactory(
25
- OPTIMISM_CHAIN_TYPE,
26
- optimismProviderFactory(),
25
+ OP_CHAIN_TYPE,
26
+ opProviderFactory(),
27
27
  );
28
28
  }
29
29
 
@@ -1,6 +1,8 @@
1
1
  import type { SolidityStackTrace } from "./stack-traces/solidity-stack-trace.js";
2
+ import type { CoverageConfig } from "./types/coverage.js";
2
3
  import type { LoggerConfig } from "./types/logger.js";
3
4
  import type {
5
+ ChainDescriptorsConfig,
4
6
  EdrNetworkConfig,
5
7
  EdrNetworkHDAccountsConfig,
6
8
  } from "../../../../types/config.js";
@@ -11,6 +13,7 @@ import type {
11
13
  RequestArguments,
12
14
  SuccessfulJsonRpcResponse,
13
15
  } from "../../../../types/providers.js";
16
+ import type { RequireField } from "../../../../types/utils.js";
14
17
  import type { DefaultHDAccountsConfigParams } from "../accounts/constants.js";
15
18
  import type { JsonRpcRequestWrapperFunction } from "../network-manager.js";
16
19
  import type {
@@ -19,13 +22,15 @@ import type {
19
22
  Provider,
20
23
  ProviderConfig,
21
24
  TracingConfigWithBuffers,
25
+ AccountOverride,
22
26
  } from "@ignored/edr-optimism";
23
27
 
24
28
  import {
25
- optimismGenesisState,
26
- optimismHardforkFromString,
29
+ opGenesisState,
30
+ opHardforkFromString,
27
31
  l1GenesisState,
28
32
  l1HardforkFromString,
33
+ precompileP256Verify,
29
34
  } from "@ignored/edr-optimism";
30
35
  import {
31
36
  assertHardhatInvariant,
@@ -36,6 +41,8 @@ import { ensureError } from "@nomicfoundation/hardhat-utils/error";
36
41
  import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
37
42
  import { deepEqual } from "@nomicfoundation/hardhat-utils/lang";
38
43
  import debug from "debug";
44
+ import { hexToBytes } from "ethereum-cryptography/utils";
45
+ import { addr } from "micro-eth-signer";
39
46
 
40
47
  import { EDR_NETWORK_REVERT_SNAPSHOT_EVENT } from "../../../constants.js";
41
48
  import { DEFAULT_HD_ACCOUNTS_CONFIG_PARAMS } from "../accounts/constants.js";
@@ -61,7 +68,6 @@ import {
61
68
  hardhatMempoolOrderToEdrMineOrdering,
62
69
  hardhatHardforkToEdrSpecId,
63
70
  hardhatAccountsToEdrOwnedAccounts,
64
- hardhatChainsToEdrChains,
65
71
  hardhatForkingConfigToEdrForkConfig,
66
72
  hardhatChainTypeToEdrChainType,
67
73
  } from "./utils/convert-to-edr.js";
@@ -125,10 +131,12 @@ export const EDR_NETWORK_DEFAULT_PRIVATE_KEYS: string[] = [
125
131
  ];
126
132
 
127
133
  interface EdrProviderConfig {
128
- networkConfig: EdrNetworkConfig;
134
+ chainDescriptors: ChainDescriptorsConfig;
135
+ networkConfig: RequireField<EdrNetworkConfig, "chainType">;
129
136
  loggerConfig?: LoggerConfig;
130
137
  tracingConfig?: TracingConfigWithBuffers;
131
138
  jsonRpcRequestWrapper?: JsonRpcRequestWrapperFunction;
139
+ coverageConfig?: CoverageConfig;
132
140
  }
133
141
 
134
142
  export class EdrProvider extends BaseProvider {
@@ -141,15 +149,21 @@ export class EdrProvider extends BaseProvider {
141
149
  * Creates a new instance of `EdrProvider`.
142
150
  */
143
151
  public static async create({
152
+ chainDescriptors,
144
153
  networkConfig,
145
154
  loggerConfig = { enabled: false },
146
155
  tracingConfig = {},
147
156
  jsonRpcRequestWrapper,
157
+ coverageConfig,
148
158
  }: EdrProviderConfig): Promise<EdrProvider> {
149
159
  const printLineFn = loggerConfig.printLineFn ?? printLine;
150
160
  const replaceLastLineFn = loggerConfig.replaceLastLineFn ?? replaceLastLine;
151
161
 
152
- const providerConfig = await getProviderConfig(networkConfig);
162
+ const providerConfig = await getProviderConfig(
163
+ networkConfig,
164
+ coverageConfig,
165
+ chainDescriptors,
166
+ );
153
167
 
154
168
  let edrProvider: EdrProvider;
155
169
 
@@ -162,7 +176,13 @@ export class EdrProvider extends BaseProvider {
162
176
  providerConfig,
163
177
  {
164
178
  enable: loggerConfig.enabled,
165
- decodeConsoleLogInputsCallback: ConsoleLogger.getDecodedLogs,
179
+ decodeConsoleLogInputsCallback: (inputs: ArrayBuffer[]) => {
180
+ return ConsoleLogger.getDecodedLogs(
181
+ inputs.map((input) => {
182
+ return Buffer.from(input);
183
+ }),
184
+ );
185
+ },
166
186
  printLineCallback: (message: string, replace: boolean) => {
167
187
  if (replace) {
168
188
  replaceLastLineFn(message);
@@ -211,7 +231,7 @@ export class EdrProvider extends BaseProvider {
211
231
  requestArguments: RequestArguments,
212
232
  ): Promise<SuccessfulJsonRpcResponse["result"]> {
213
233
  if (this.#provider === undefined) {
214
- throw new HardhatError(HardhatError.ERRORS.NETWORK.PROVIDER_CLOSED);
234
+ throw new HardhatError(HardhatError.ERRORS.CORE.NETWORK.PROVIDER_CLOSED);
215
235
  }
216
236
 
217
237
  const { method, params } = requestArguments;
@@ -382,23 +402,51 @@ export class EdrProvider extends BaseProvider {
382
402
  }
383
403
 
384
404
  async function getProviderConfig(
385
- networkConfig: EdrNetworkConfig,
405
+ networkConfig: RequireField<EdrNetworkConfig, "chainType">,
406
+ coverageConfig: CoverageConfig | undefined,
407
+ chainDescriptors: ChainDescriptorsConfig,
386
408
  ): Promise<ProviderConfig> {
387
- const genesisState =
409
+ const specId = hardhatHardforkToEdrSpecId(
410
+ networkConfig.hardfork,
411
+ networkConfig.chainType,
412
+ );
413
+
414
+ const ownedAccounts = await hardhatAccountsToEdrOwnedAccounts(
415
+ networkConfig.accounts,
416
+ );
417
+
418
+ const genesisState: Map<Uint8Array, AccountOverride> = new Map(
419
+ ownedAccounts.map(({ secretKey, balance }) => {
420
+ const address = hexToBytes(addr.fromPrivateKey(secretKey));
421
+ const accountOverride: AccountOverride = {
422
+ address,
423
+ balance: BigInt(balance),
424
+ code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
425
+ };
426
+
427
+ return [address, accountOverride];
428
+ }),
429
+ );
430
+
431
+ const chainGenesisState =
388
432
  networkConfig.forking !== undefined
389
433
  ? [] // TODO: Add support for overriding remote fork state when the local fork is different
390
434
  : networkConfig.chainType === "optimism"
391
- ? optimismGenesisState(
392
- optimismHardforkFromString(
393
- // TODO: Optimism conversion is not implemented yet
394
- hardhatHardforkToEdrSpecId(networkConfig.hardfork),
395
- ),
396
- )
397
- : l1GenesisState(
398
- l1HardforkFromString(
399
- hardhatHardforkToEdrSpecId(networkConfig.hardfork),
400
- ),
401
- );
435
+ ? opGenesisState(opHardforkFromString(specId))
436
+ : l1GenesisState(l1HardforkFromString(specId));
437
+
438
+ for (const account of chainGenesisState) {
439
+ const existingOverride = genesisState.get(account.address);
440
+ if (existingOverride !== undefined) {
441
+ // Favor the genesis state specified by the user
442
+ account.balance = account.balance ?? existingOverride.balance;
443
+ account.nonce = account.nonce ?? existingOverride.nonce;
444
+ account.code = account.code ?? existingOverride.code;
445
+ account.storage = account.storage ?? existingOverride.storage;
446
+ } else {
447
+ genesisState.set(account.address, account);
448
+ }
449
+ }
402
450
 
403
451
  return {
404
452
  allowBlocksWithSameTimestamp: networkConfig.allowBlocksWithSameTimestamp,
@@ -406,15 +454,15 @@ async function getProviderConfig(
406
454
  bailOnCallFailure: networkConfig.throwOnCallFailures,
407
455
  bailOnTransactionFailure: networkConfig.throwOnTransactionFailures,
408
456
  blockGasLimit: networkConfig.blockGasLimit,
409
- cacheDir: networkConfig.forking?.cacheDir,
410
457
  chainId: BigInt(networkConfig.chainId),
411
- chains: hardhatChainsToEdrChains(networkConfig.chains),
412
- // TODO: remove this cast when EDR updates the interface to accept Uint8Array
413
- coinbase: Buffer.from(networkConfig.coinbase),
414
- enableRip7212: networkConfig.enableRip7212,
415
- fork: await hardhatForkingConfigToEdrForkConfig(networkConfig.forking),
416
- genesisState,
417
- hardfork: hardhatHardforkToEdrSpecId(networkConfig.hardfork),
458
+ coinbase: networkConfig.coinbase,
459
+ fork: await hardhatForkingConfigToEdrForkConfig(
460
+ networkConfig.forking,
461
+ chainDescriptors,
462
+ networkConfig.chainType,
463
+ ),
464
+ genesisState: Array.from(genesisState.values()),
465
+ hardfork: specId,
418
466
  initialBaseFeePerGas: networkConfig.initialBaseFeePerGas,
419
467
  initialDate: BigInt(toSeconds(networkConfig.initialDate)),
420
468
  minGasPrice: networkConfig.minGasPrice,
@@ -430,8 +478,12 @@ async function getProviderConfig(
430
478
  },
431
479
  },
432
480
  networkId: BigInt(networkConfig.networkId),
433
- ownedAccounts: await hardhatAccountsToEdrOwnedAccounts(
434
- networkConfig.accounts,
435
- ),
481
+ observability: {
482
+ codeCoverage: coverageConfig,
483
+ },
484
+ ownedAccounts: ownedAccounts.map((account) => account.secretKey),
485
+ precompileOverrides: networkConfig.enableRip7212
486
+ ? [precompileP256Verify()]
487
+ : [],
436
488
  };
437
489
  }
@@ -328,7 +328,14 @@ export class SolidityCallSite implements NodeJS.CallSite {
328
328
  _functionName: string | undefined,
329
329
  _line: number | undefined,
330
330
  ) {
331
- this.#sourceName = _sourceName;
331
+ // If the soruce name starts with `project/` that means that's a local
332
+ // source name, and we remove that.
333
+ const LOCAL_SOURCE_NAME_PREFIX = "project/";
334
+
335
+ this.#sourceName =
336
+ _sourceName?.startsWith(LOCAL_SOURCE_NAME_PREFIX) === true
337
+ ? _sourceName.substring(LOCAL_SOURCE_NAME_PREFIX.length)
338
+ : _sourceName;
332
339
  this.#contract = _contract;
333
340
  this.#functionName = _functionName;
334
341
  this.#line = _line;
@@ -0,0 +1,3 @@
1
+ export interface CoverageConfig {
2
+ onCollectedCoverageCallback: (coverageData: Uint8Array[]) => void;
3
+ }