hardhatjs 2.22.15

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 (935) hide show
  1. package/.eslintrc.js +41 -0
  2. package/LICENSE +55 -0
  3. package/README.md +53 -0
  4. package/builtin-tasks/check.d.ts +2 -0
  5. package/builtin-tasks/check.d.ts.map +1 -0
  6. package/builtin-tasks/check.js +6 -0
  7. package/builtin-tasks/check.js.map +1 -0
  8. package/builtin-tasks/clean.d.ts +2 -0
  9. package/builtin-tasks/clean.d.ts.map +1 -0
  10. package/builtin-tasks/clean.js +24 -0
  11. package/builtin-tasks/clean.js.map +1 -0
  12. package/builtin-tasks/compile.d.ts +2 -0
  13. package/builtin-tasks/compile.d.ts.map +1 -0
  14. package/builtin-tasks/compile.js +952 -0
  15. package/builtin-tasks/compile.js.map +1 -0
  16. package/builtin-tasks/console.d.ts +2 -0
  17. package/builtin-tasks/console.d.ts.map +1 -0
  18. package/builtin-tasks/console.js +55 -0
  19. package/builtin-tasks/console.js.map +1 -0
  20. package/builtin-tasks/flatten.d.ts +2 -0
  21. package/builtin-tasks/flatten.d.ts.map +1 -0
  22. package/builtin-tasks/flatten.js +210 -0
  23. package/builtin-tasks/flatten.js.map +1 -0
  24. package/builtin-tasks/help.d.ts +2 -0
  25. package/builtin-tasks/help.d.ts.map +1 -0
  26. package/builtin-tasks/help.js +49 -0
  27. package/builtin-tasks/help.js.map +1 -0
  28. package/builtin-tasks/node.d.ts +2 -0
  29. package/builtin-tasks/node.d.ts.map +1 -0
  30. package/builtin-tasks/node.js +212 -0
  31. package/builtin-tasks/node.js.map +1 -0
  32. package/builtin-tasks/run.d.ts +2 -0
  33. package/builtin-tasks/run.d.ts.map +1 -0
  34. package/builtin-tasks/run.js +41 -0
  35. package/builtin-tasks/run.js.map +1 -0
  36. package/builtin-tasks/task-names.d.ts +55 -0
  37. package/builtin-tasks/task-names.d.ts.map +1 -0
  38. package/builtin-tasks/task-names.js +59 -0
  39. package/builtin-tasks/task-names.js.map +1 -0
  40. package/builtin-tasks/test.d.ts +2 -0
  41. package/builtin-tasks/test.d.ts.map +1 -0
  42. package/builtin-tasks/test.js +142 -0
  43. package/builtin-tasks/test.js.map +1 -0
  44. package/builtin-tasks/utils/solidity-files-cache.d.ts +29 -0
  45. package/builtin-tasks/utils/solidity-files-cache.d.ts.map +1 -0
  46. package/builtin-tasks/utils/solidity-files-cache.js +126 -0
  47. package/builtin-tasks/utils/solidity-files-cache.js.map +1 -0
  48. package/builtin-tasks/utils/watch.d.ts +5 -0
  49. package/builtin-tasks/utils/watch.d.ts.map +1 -0
  50. package/builtin-tasks/utils/watch.js +71 -0
  51. package/builtin-tasks/utils/watch.js.map +1 -0
  52. package/builtin-tasks/vars.d.ts +2 -0
  53. package/builtin-tasks/vars.d.ts.map +1 -0
  54. package/builtin-tasks/vars.js +41 -0
  55. package/builtin-tasks/vars.js.map +1 -0
  56. package/common/bigInt.d.ts +7 -0
  57. package/common/bigInt.d.ts.map +1 -0
  58. package/common/bigInt.js +93 -0
  59. package/common/bigInt.js.map +1 -0
  60. package/common/index.d.ts +3 -0
  61. package/common/index.d.ts.map +1 -0
  62. package/common/index.js +21 -0
  63. package/common/index.js.map +1 -0
  64. package/common/napi-rs.d.ts +2 -0
  65. package/common/napi-rs.d.ts.map +1 -0
  66. package/common/napi-rs.js +19 -0
  67. package/common/napi-rs.js.map +1 -0
  68. package/config.d.ts +3 -0
  69. package/config.d.ts.map +1 -0
  70. package/config.js +18 -0
  71. package/config.js.map +1 -0
  72. package/console.sol +1552 -0
  73. package/internal/artifacts.d.ts +151 -0
  74. package/internal/artifacts.d.ts.map +1 -0
  75. package/internal/artifacts.js +681 -0
  76. package/internal/artifacts.js.map +1 -0
  77. package/internal/cli/ArgumentsParser.d.ts +25 -0
  78. package/internal/cli/ArgumentsParser.d.ts.map +1 -0
  79. package/internal/cli/ArgumentsParser.js +242 -0
  80. package/internal/cli/ArgumentsParser.js.map +1 -0
  81. package/internal/cli/HelpPrinter.d.ts +21 -0
  82. package/internal/cli/HelpPrinter.d.ts.map +1 -0
  83. package/internal/cli/HelpPrinter.js +167 -0
  84. package/internal/cli/HelpPrinter.js.map +1 -0
  85. package/internal/cli/analytics.d.ts +29 -0
  86. package/internal/cli/analytics.d.ts.map +1 -0
  87. package/internal/cli/analytics.js +188 -0
  88. package/internal/cli/analytics.js.map +1 -0
  89. package/internal/cli/autocomplete.d.ts +13 -0
  90. package/internal/cli/autocomplete.d.ts.map +1 -0
  91. package/internal/cli/autocomplete.js +291 -0
  92. package/internal/cli/autocomplete.js.map +1 -0
  93. package/internal/cli/bootstrap.d.ts +3 -0
  94. package/internal/cli/bootstrap.d.ts.map +1 -0
  95. package/internal/cli/bootstrap.js +15 -0
  96. package/internal/cli/bootstrap.js.map +1 -0
  97. package/internal/cli/cli.d.ts +2 -0
  98. package/internal/cli/cli.d.ts.map +1 -0
  99. package/internal/cli/cli.js +344 -0
  100. package/internal/cli/cli.js.map +1 -0
  101. package/internal/cli/constants.d.ts +2 -0
  102. package/internal/cli/constants.d.ts.map +1 -0
  103. package/internal/cli/constants.js +5 -0
  104. package/internal/cli/constants.js.map +1 -0
  105. package/internal/cli/emoji.d.ts +3 -0
  106. package/internal/cli/emoji.d.ts.map +1 -0
  107. package/internal/cli/emoji.js +13 -0
  108. package/internal/cli/emoji.js.map +1 -0
  109. package/internal/cli/hardhat-vscode-installation.d.ts +8 -0
  110. package/internal/cli/hardhat-vscode-installation.d.ts.map +1 -0
  111. package/internal/cli/hardhat-vscode-installation.js +41 -0
  112. package/internal/cli/hardhat-vscode-installation.js.map +1 -0
  113. package/internal/cli/is-node-version-to-warn-on.d.ts +13 -0
  114. package/internal/cli/is-node-version-to-warn-on.d.ts.map +1 -0
  115. package/internal/cli/is-node-version-to-warn-on.js +46 -0
  116. package/internal/cli/is-node-version-to-warn-on.js.map +1 -0
  117. package/internal/cli/project-creation.d.ts +4 -0
  118. package/internal/cli/project-creation.d.ts.map +1 -0
  119. package/internal/cli/project-creation.js +506 -0
  120. package/internal/cli/project-creation.js.map +1 -0
  121. package/internal/cli/prompt.d.ts +14 -0
  122. package/internal/cli/prompt.d.ts.map +1 -0
  123. package/internal/cli/prompt.js +123 -0
  124. package/internal/cli/prompt.js.map +1 -0
  125. package/internal/cli/types.d.ts +5 -0
  126. package/internal/cli/types.d.ts.map +1 -0
  127. package/internal/cli/types.js +3 -0
  128. package/internal/cli/types.js.map +1 -0
  129. package/internal/cli/vars.d.ts +2 -0
  130. package/internal/cli/vars.d.ts.map +1 -0
  131. package/internal/cli/vars.js +216 -0
  132. package/internal/cli/vars.js.map +1 -0
  133. package/internal/cli/version-notifier.d.ts +2 -0
  134. package/internal/cli/version-notifier.d.ts.map +1 -0
  135. package/internal/cli/version-notifier.js +217 -0
  136. package/internal/cli/version-notifier.js.map +1 -0
  137. package/internal/constants.d.ts +14 -0
  138. package/internal/constants.d.ts.map +1 -0
  139. package/internal/constants.js +35 -0
  140. package/internal/constants.js.map +1 -0
  141. package/internal/context.d.ts +29 -0
  142. package/internal/context.d.ts.map +1 -0
  143. package/internal/context.js +74 -0
  144. package/internal/context.js.map +1 -0
  145. package/internal/core/config/config-env.d.ts +111 -0
  146. package/internal/core/config/config-env.d.ts.map +1 -0
  147. package/internal/core/config/config-env.js +144 -0
  148. package/internal/core/config/config-env.js.map +1 -0
  149. package/internal/core/config/config-loading.d.ts +20 -0
  150. package/internal/core/config/config-loading.d.ts.map +1 -0
  151. package/internal/core/config/config-loading.js +246 -0
  152. package/internal/core/config/config-loading.js.map +1 -0
  153. package/internal/core/config/config-resolution.d.ts +25 -0
  154. package/internal/core/config/config-resolution.d.ts.map +1 -0
  155. package/internal/core/config/config-resolution.js +336 -0
  156. package/internal/core/config/config-resolution.js.map +1 -0
  157. package/internal/core/config/config-validation.d.ts +18 -0
  158. package/internal/core/config/config-validation.d.ts.map +1 -0
  159. package/internal/core/config/config-validation.js +400 -0
  160. package/internal/core/config/config-validation.js.map +1 -0
  161. package/internal/core/config/default-config.d.ts +45 -0
  162. package/internal/core/config/default-config.d.ts.map +1 -0
  163. package/internal/core/config/default-config.js +186 -0
  164. package/internal/core/config/default-config.js.map +1 -0
  165. package/internal/core/errors-list.d.ts +948 -0
  166. package/internal/core/errors-list.d.ts.map +1 -0
  167. package/internal/core/errors-list.js +1282 -0
  168. package/internal/core/errors-list.js.map +1 -0
  169. package/internal/core/errors.d.ts +74 -0
  170. package/internal/core/errors.d.ts.map +1 -0
  171. package/internal/core/errors.js +178 -0
  172. package/internal/core/errors.js.map +1 -0
  173. package/internal/core/execution-mode.d.ts +14 -0
  174. package/internal/core/execution-mode.d.ts.map +1 -0
  175. package/internal/core/execution-mode.js +40 -0
  176. package/internal/core/execution-mode.js.map +1 -0
  177. package/internal/core/flamegraph.d.ts +14 -0
  178. package/internal/core/flamegraph.d.ts.map +1 -0
  179. package/internal/core/flamegraph.js +255 -0
  180. package/internal/core/flamegraph.js.map +1 -0
  181. package/internal/core/jsonrpc/types/access-list.d.ts +13 -0
  182. package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -0
  183. package/internal/core/jsonrpc/types/access-list.js +35 -0
  184. package/internal/core/jsonrpc/types/access-list.js.map +1 -0
  185. package/internal/core/jsonrpc/types/base-types.d.ts +28 -0
  186. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -0
  187. package/internal/core/jsonrpc/types/base-types.js +152 -0
  188. package/internal/core/jsonrpc/types/base-types.js.map +1 -0
  189. package/internal/core/jsonrpc/types/input/blockTag.d.ts +51 -0
  190. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -0
  191. package/internal/core/jsonrpc/types/input/blockTag.js +55 -0
  192. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -0
  193. package/internal/core/jsonrpc/types/input/callRequest.d.ts +82 -0
  194. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -0
  195. package/internal/core/jsonrpc/types/input/callRequest.js +57 -0
  196. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -0
  197. package/internal/core/jsonrpc/types/input/debugTraceTransaction.d.ts +14 -0
  198. package/internal/core/jsonrpc/types/input/debugTraceTransaction.d.ts.map +1 -0
  199. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +35 -0
  200. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -0
  201. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +24 -0
  202. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -0
  203. package/internal/core/jsonrpc/types/input/filterRequest.js +41 -0
  204. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -0
  205. package/internal/core/jsonrpc/types/input/hardhat-network.d.ts +51 -0
  206. package/internal/core/jsonrpc/types/input/hardhat-network.d.ts.map +1 -0
  207. package/internal/core/jsonrpc/types/input/hardhat-network.js +51 -0
  208. package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -0
  209. package/internal/core/jsonrpc/types/input/logAddress.d.ts +7 -0
  210. package/internal/core/jsonrpc/types/input/logAddress.d.ts.map +1 -0
  211. package/internal/core/jsonrpc/types/input/logAddress.js +32 -0
  212. package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -0
  213. package/internal/core/jsonrpc/types/input/logTopics.d.ts +7 -0
  214. package/internal/core/jsonrpc/types/input/logTopics.d.ts.map +1 -0
  215. package/internal/core/jsonrpc/types/input/logTopics.js +32 -0
  216. package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -0
  217. package/internal/core/jsonrpc/types/input/solc.d.ts +13 -0
  218. package/internal/core/jsonrpc/types/input/solc.d.ts.map +1 -0
  219. package/internal/core/jsonrpc/types/input/solc.js +37 -0
  220. package/internal/core/jsonrpc/types/input/solc.js.map +1 -0
  221. package/internal/core/jsonrpc/types/input/subscribeRequest.d.ts +12 -0
  222. package/internal/core/jsonrpc/types/input/subscribeRequest.d.ts.map +1 -0
  223. package/internal/core/jsonrpc/types/input/subscribeRequest.js +33 -0
  224. package/internal/core/jsonrpc/types/input/subscribeRequest.js.map +1 -0
  225. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +41 -0
  226. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -0
  227. package/internal/core/jsonrpc/types/input/transactionRequest.js +47 -0
  228. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -0
  229. package/internal/core/jsonrpc/types/input/validation.d.ts +12 -0
  230. package/internal/core/jsonrpc/types/input/validation.d.ts.map +1 -0
  231. package/internal/core/jsonrpc/types/input/validation.js +49 -0
  232. package/internal/core/jsonrpc/types/input/validation.js.map +1 -0
  233. package/internal/core/jsonrpc/types/output/block.d.ts +106 -0
  234. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -0
  235. package/internal/core/jsonrpc/types/output/block.js +72 -0
  236. package/internal/core/jsonrpc/types/output/block.js.map +1 -0
  237. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.d.ts +6 -0
  238. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.d.ts.map +1 -0
  239. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.js +20 -0
  240. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.js.map +1 -0
  241. package/internal/core/jsonrpc/types/output/log.d.ts +13 -0
  242. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -0
  243. package/internal/core/jsonrpc/types/output/log.js +40 -0
  244. package/internal/core/jsonrpc/types/output/log.js.map +1 -0
  245. package/internal/core/jsonrpc/types/output/metadata.d.ts +13 -0
  246. package/internal/core/jsonrpc/types/output/metadata.d.ts.map +1 -0
  247. package/internal/core/jsonrpc/types/output/metadata.js +3 -0
  248. package/internal/core/jsonrpc/types/output/metadata.js.map +1 -0
  249. package/internal/core/jsonrpc/types/output/receipt.d.ts +29 -0
  250. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -0
  251. package/internal/core/jsonrpc/types/output/receipt.js +52 -0
  252. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -0
  253. package/internal/core/jsonrpc/types/output/transaction.d.ts +30 -0
  254. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -0
  255. package/internal/core/jsonrpc/types/output/transaction.js +55 -0
  256. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -0
  257. package/internal/core/params/argumentTypes.d.ts +41 -0
  258. package/internal/core/params/argumentTypes.d.ts.map +1 -0
  259. package/internal/core/params/argumentTypes.js +315 -0
  260. package/internal/core/params/argumentTypes.js.map +1 -0
  261. package/internal/core/params/env-variables.d.ts +9 -0
  262. package/internal/core/params/env-variables.d.ts.map +1 -0
  263. package/internal/core/params/env-variables.js +58 -0
  264. package/internal/core/params/env-variables.js.map +1 -0
  265. package/internal/core/params/hardhat-params.d.ts +3 -0
  266. package/internal/core/params/hardhat-params.d.ts.map +1 -0
  267. package/internal/core/params/hardhat-params.js +129 -0
  268. package/internal/core/params/hardhat-params.js.map +1 -0
  269. package/internal/core/project-structure.d.ts +4 -0
  270. package/internal/core/project-structure.d.ts.map +1 -0
  271. package/internal/core/project-structure.js +50 -0
  272. package/internal/core/project-structure.js.map +1 -0
  273. package/internal/core/providers/accounts.d.ts +40 -0
  274. package/internal/core/providers/accounts.d.ts.map +1 -0
  275. package/internal/core/providers/accounts.js +266 -0
  276. package/internal/core/providers/accounts.js.map +1 -0
  277. package/internal/core/providers/backwards-compatibility.d.ts +18 -0
  278. package/internal/core/providers/backwards-compatibility.d.ts.map +1 -0
  279. package/internal/core/providers/backwards-compatibility.js +66 -0
  280. package/internal/core/providers/backwards-compatibility.js.map +1 -0
  281. package/internal/core/providers/chainId.d.ts +15 -0
  282. package/internal/core/providers/chainId.d.ts.map +1 -0
  283. package/internal/core/providers/chainId.js +58 -0
  284. package/internal/core/providers/chainId.js.map +1 -0
  285. package/internal/core/providers/construction.d.ts +5 -0
  286. package/internal/core/providers/construction.d.ts.map +1 -0
  287. package/internal/core/providers/construction.js +166 -0
  288. package/internal/core/providers/construction.js.map +1 -0
  289. package/internal/core/providers/errors.d.ts +47 -0
  290. package/internal/core/providers/errors.d.ts.map +1 -0
  291. package/internal/core/providers/errors.js +110 -0
  292. package/internal/core/providers/errors.js.map +1 -0
  293. package/internal/core/providers/gas-providers.d.ts +34 -0
  294. package/internal/core/providers/gas-providers.d.ts.map +1 -0
  295. package/internal/core/providers/gas-providers.js +228 -0
  296. package/internal/core/providers/gas-providers.js.map +1 -0
  297. package/internal/core/providers/http.d.ts +35 -0
  298. package/internal/core/providers/http.d.ts.map +1 -0
  299. package/internal/core/providers/http.js +226 -0
  300. package/internal/core/providers/http.js.map +1 -0
  301. package/internal/core/providers/lazy-initialization.d.ts +44 -0
  302. package/internal/core/providers/lazy-initialization.d.ts.map +1 -0
  303. package/internal/core/providers/lazy-initialization.js +137 -0
  304. package/internal/core/providers/lazy-initialization.js.map +1 -0
  305. package/internal/core/providers/util.d.ts +5 -0
  306. package/internal/core/providers/util.d.ts.map +1 -0
  307. package/internal/core/providers/util.js +41 -0
  308. package/internal/core/providers/util.js.map +1 -0
  309. package/internal/core/providers/wrapper.d.ts +19 -0
  310. package/internal/core/providers/wrapper.d.ts.map +1 -0
  311. package/internal/core/providers/wrapper.js +34 -0
  312. package/internal/core/providers/wrapper.js.map +1 -0
  313. package/internal/core/runtime-environment.d.ts +86 -0
  314. package/internal/core/runtime-environment.d.ts.map +1 -0
  315. package/internal/core/runtime-environment.js +317 -0
  316. package/internal/core/runtime-environment.js.map +1 -0
  317. package/internal/core/task-profiling.d.ts +18 -0
  318. package/internal/core/task-profiling.d.ts.map +1 -0
  319. package/internal/core/task-profiling.js +50 -0
  320. package/internal/core/task-profiling.js.map +1 -0
  321. package/internal/core/tasks/builtin-tasks.d.ts +11 -0
  322. package/internal/core/tasks/builtin-tasks.d.ts.map +1 -0
  323. package/internal/core/tasks/builtin-tasks.js +13 -0
  324. package/internal/core/tasks/builtin-tasks.js.map +1 -0
  325. package/internal/core/tasks/dsl.d.ts +76 -0
  326. package/internal/core/tasks/dsl.d.ts.map +1 -0
  327. package/internal/core/tasks/dsl.js +112 -0
  328. package/internal/core/tasks/dsl.js.map +1 -0
  329. package/internal/core/tasks/task-definitions.d.ts +266 -0
  330. package/internal/core/tasks/task-definitions.d.ts.map +1 -0
  331. package/internal/core/tasks/task-definitions.js +555 -0
  332. package/internal/core/tasks/task-definitions.js.map +1 -0
  333. package/internal/core/tasks/util.d.ts +6 -0
  334. package/internal/core/tasks/util.d.ts.map +1 -0
  335. package/internal/core/tasks/util.js +19 -0
  336. package/internal/core/tasks/util.js.map +1 -0
  337. package/internal/core/typescript-support.d.ts +15 -0
  338. package/internal/core/typescript-support.d.ts.map +1 -0
  339. package/internal/core/typescript-support.js +85 -0
  340. package/internal/core/typescript-support.js.map +1 -0
  341. package/internal/core/vars/vars-manager-setup.d.ts +22 -0
  342. package/internal/core/vars/vars-manager-setup.d.ts.map +1 -0
  343. package/internal/core/vars/vars-manager-setup.js +95 -0
  344. package/internal/core/vars/vars-manager-setup.js.map +1 -0
  345. package/internal/core/vars/vars-manager.d.ts +21 -0
  346. package/internal/core/vars/vars-manager.d.ts.map +1 -0
  347. package/internal/core/vars/vars-manager.js +110 -0
  348. package/internal/core/vars/vars-manager.js.map +1 -0
  349. package/internal/hardhat-network/jsonrpc/client.d.ts +109 -0
  350. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -0
  351. package/internal/hardhat-network/jsonrpc/client.js +294 -0
  352. package/internal/hardhat-network/jsonrpc/client.js.map +1 -0
  353. package/internal/hardhat-network/jsonrpc/handler.d.ts +16 -0
  354. package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -0
  355. package/internal/hardhat-network/jsonrpc/handler.js +218 -0
  356. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -0
  357. package/internal/hardhat-network/jsonrpc/server.d.ts +20 -0
  358. package/internal/hardhat-network/jsonrpc/server.d.ts.map +1 -0
  359. package/internal/hardhat-network/jsonrpc/server.js +82 -0
  360. package/internal/hardhat-network/jsonrpc/server.js.map +1 -0
  361. package/internal/hardhat-network/provider/fork/AccountState.d.ts +11 -0
  362. package/internal/hardhat-network/provider/fork/AccountState.d.ts.map +1 -0
  363. package/internal/hardhat-network/provider/fork/AccountState.js +21 -0
  364. package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -0
  365. package/internal/hardhat-network/provider/modules/logger.d.ts +8 -0
  366. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -0
  367. package/internal/hardhat-network/provider/modules/logger.js +28 -0
  368. package/internal/hardhat-network/provider/modules/logger.js.map +1 -0
  369. package/internal/hardhat-network/provider/node-types.d.ts +67 -0
  370. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -0
  371. package/internal/hardhat-network/provider/node-types.js +3 -0
  372. package/internal/hardhat-network/provider/node-types.js.map +1 -0
  373. package/internal/hardhat-network/provider/output.d.ts +118 -0
  374. package/internal/hardhat-network/provider/output.d.ts.map +1 -0
  375. package/internal/hardhat-network/provider/output.js +3 -0
  376. package/internal/hardhat-network/provider/output.js.map +1 -0
  377. package/internal/hardhat-network/provider/provider.d.ts +64 -0
  378. package/internal/hardhat-network/provider/provider.d.ts.map +1 -0
  379. package/internal/hardhat-network/provider/provider.js +441 -0
  380. package/internal/hardhat-network/provider/provider.js.map +1 -0
  381. package/internal/hardhat-network/provider/return-data.d.ts +3 -0
  382. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -0
  383. package/internal/hardhat-network/provider/return-data.js +7 -0
  384. package/internal/hardhat-network/provider/return-data.js.map +1 -0
  385. package/internal/hardhat-network/provider/utils/assertions.d.ts +2 -0
  386. package/internal/hardhat-network/provider/utils/assertions.d.ts.map +1 -0
  387. package/internal/hardhat-network/provider/utils/assertions.js +12 -0
  388. package/internal/hardhat-network/provider/utils/assertions.js.map +1 -0
  389. package/internal/hardhat-network/provider/utils/convertToEdr.d.ts +14 -0
  390. package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -0
  391. package/internal/hardhat-network/provider/utils/convertToEdr.js +224 -0
  392. package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -0
  393. package/internal/hardhat-network/provider/utils/disk-cache.d.ts +3 -0
  394. package/internal/hardhat-network/provider/utils/disk-cache.d.ts.map +1 -0
  395. package/internal/hardhat-network/provider/utils/disk-cache.js +12 -0
  396. package/internal/hardhat-network/provider/utils/disk-cache.js.map +1 -0
  397. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.d.ts +3 -0
  398. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.d.ts.map +1 -0
  399. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +38 -0
  400. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -0
  401. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +2 -0
  402. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -0
  403. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +8 -0
  404. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -0
  405. package/internal/hardhat-network/provider/utils/isHexPrefixed.d.ts +2 -0
  406. package/internal/hardhat-network/provider/utils/isHexPrefixed.d.ts.map +1 -0
  407. package/internal/hardhat-network/provider/utils/isHexPrefixed.js +8 -0
  408. package/internal/hardhat-network/provider/utils/isHexPrefixed.js.map +1 -0
  409. package/internal/hardhat-network/provider/utils/makeAccount.d.ts +7 -0
  410. package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -0
  411. package/internal/hardhat-network/provider/utils/makeAccount.js +20 -0
  412. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -0
  413. package/internal/hardhat-network/provider/utils/makeCommon.d.ts +4 -0
  414. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -0
  415. package/internal/hardhat-network/provider/utils/makeCommon.js +17 -0
  416. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -0
  417. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +19 -0
  418. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -0
  419. package/internal/hardhat-network/provider/utils/makeForkClient.js +99 -0
  420. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -0
  421. package/internal/hardhat-network/provider/utils/random.d.ts +17 -0
  422. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -0
  423. package/internal/hardhat-network/provider/utils/random.js +55 -0
  424. package/internal/hardhat-network/provider/utils/random.js.map +1 -0
  425. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +10 -0
  426. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -0
  427. package/internal/hardhat-network/provider/utils/reorgs-protection.js +39 -0
  428. package/internal/hardhat-network/provider/utils/reorgs-protection.js.map +1 -0
  429. package/internal/hardhat-network/provider/vm/exit.d.ts +3 -0
  430. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
  431. package/internal/hardhat-network/provider/vm/exit.js +7 -0
  432. package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
  433. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +36 -0
  434. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -0
  435. package/internal/hardhat-network/provider/vm/minimal-vm.js +53 -0
  436. package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -0
  437. package/internal/hardhat-network/provider/vm/types.d.ts +36 -0
  438. package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -0
  439. package/internal/hardhat-network/provider/vm/types.js +3 -0
  440. package/internal/hardhat-network/provider/vm/types.js.map +1 -0
  441. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +3 -0
  442. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -0
  443. package/internal/hardhat-network/stack-traces/compiler-to-model.js +7 -0
  444. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -0
  445. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +23 -0
  446. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -0
  447. package/internal/hardhat-network/stack-traces/consoleLogger.js +159 -0
  448. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -0
  449. package/internal/hardhat-network/stack-traces/constants.d.ts +3 -0
  450. package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -0
  451. package/internal/hardhat-network/stack-traces/constants.js +6 -0
  452. package/internal/hardhat-network/stack-traces/constants.js.map +1 -0
  453. package/internal/hardhat-network/stack-traces/debug.d.ts +3 -0
  454. package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -0
  455. package/internal/hardhat-network/stack-traces/debug.js +8 -0
  456. package/internal/hardhat-network/stack-traces/debug.js.map +1 -0
  457. package/internal/hardhat-network/stack-traces/library-utils.d.ts +3 -0
  458. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -0
  459. package/internal/hardhat-network/stack-traces/library-utils.js +7 -0
  460. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -0
  461. package/internal/hardhat-network/stack-traces/logger.d.ts +41 -0
  462. package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -0
  463. package/internal/hardhat-network/stack-traces/logger.js +424 -0
  464. package/internal/hardhat-network/stack-traces/logger.js.map +1 -0
  465. package/internal/hardhat-network/stack-traces/message-trace.d.ts +4 -0
  466. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -0
  467. package/internal/hardhat-network/stack-traces/message-trace.js +3 -0
  468. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -0
  469. package/internal/hardhat-network/stack-traces/panic-errors.d.ts +2 -0
  470. package/internal/hardhat-network/stack-traces/panic-errors.d.ts.map +1 -0
  471. package/internal/hardhat-network/stack-traces/panic-errors.js +34 -0
  472. package/internal/hardhat-network/stack-traces/panic-errors.js.map +1 -0
  473. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts +14 -0
  474. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -0
  475. package/internal/hardhat-network/stack-traces/solidity-errors.js +284 -0
  476. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -0
  477. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +7 -0
  478. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -0
  479. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +15 -0
  480. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -0
  481. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +3 -0
  482. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -0
  483. package/internal/hardhat-network/stack-traces/solidityTracer.js +7 -0
  484. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -0
  485. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +6 -0
  486. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -0
  487. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +27 -0
  488. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -0
  489. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +3 -0
  490. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -0
  491. package/internal/hardhat-network/stack-traces/vm-tracer.js +7 -0
  492. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -0
  493. package/internal/lib/hardhat-lib.d.ts +4 -0
  494. package/internal/lib/hardhat-lib.d.ts.map +1 -0
  495. package/internal/lib/hardhat-lib.js +35 -0
  496. package/internal/lib/hardhat-lib.js.map +1 -0
  497. package/internal/reset.d.ts +2 -0
  498. package/internal/reset.d.ts.map +1 -0
  499. package/internal/reset.js +35 -0
  500. package/internal/reset.js.map +1 -0
  501. package/internal/sentry/anonymizer.d.ts +31 -0
  502. package/internal/sentry/anonymizer.d.ts.map +1 -0
  503. package/internal/sentry/anonymizer.js +292 -0
  504. package/internal/sentry/anonymizer.js.map +1 -0
  505. package/internal/sentry/reporter.d.ts +42 -0
  506. package/internal/sentry/reporter.d.ts.map +1 -0
  507. package/internal/sentry/reporter.js +157 -0
  508. package/internal/sentry/reporter.js.map +1 -0
  509. package/internal/sentry/subprocess.d.ts +2 -0
  510. package/internal/sentry/subprocess.d.ts.map +1 -0
  511. package/internal/sentry/subprocess.js +85 -0
  512. package/internal/sentry/subprocess.js.map +1 -0
  513. package/internal/sentry/transport.d.ts +2 -0
  514. package/internal/sentry/transport.d.ts.map +1 -0
  515. package/internal/sentry/transport.js +64 -0
  516. package/internal/sentry/transport.js.map +1 -0
  517. package/internal/solidity/compilation-job.d.ts +38 -0
  518. package/internal/solidity/compilation-job.d.ts.map +1 -0
  519. package/internal/solidity/compilation-job.js +223 -0
  520. package/internal/solidity/compilation-job.js.map +1 -0
  521. package/internal/solidity/compiler/compiler-input.d.ts +3 -0
  522. package/internal/solidity/compiler/compiler-input.d.ts.map +1 -0
  523. package/internal/solidity/compiler/compiler-input.js +23 -0
  524. package/internal/solidity/compiler/compiler-input.js.map +1 -0
  525. package/internal/solidity/compiler/downloader.d.ts +79 -0
  526. package/internal/solidity/compiler/downloader.d.ts.map +1 -0
  527. package/internal/solidity/compiler/downloader.js +262 -0
  528. package/internal/solidity/compiler/downloader.js.map +1 -0
  529. package/internal/solidity/compiler/index.d.ts +16 -0
  530. package/internal/solidity/compiler/index.d.ts.map +1 -0
  531. package/internal/solidity/compiler/index.js +107 -0
  532. package/internal/solidity/compiler/index.js.map +1 -0
  533. package/internal/solidity/compiler/solc-info.d.ts +2 -0
  534. package/internal/solidity/compiler/solc-info.d.ts.map +1 -0
  535. package/internal/solidity/compiler/solc-info.js +75 -0
  536. package/internal/solidity/compiler/solc-info.js.map +1 -0
  537. package/internal/solidity/compiler/solcjs-runner.js +34 -0
  538. package/internal/solidity/dependencyGraph.d.ts +19 -0
  539. package/internal/solidity/dependencyGraph.d.ts.map +1 -0
  540. package/internal/solidity/dependencyGraph.js +127 -0
  541. package/internal/solidity/dependencyGraph.js.map +1 -0
  542. package/internal/solidity/parse.d.ts +19 -0
  543. package/internal/solidity/parse.d.ts.map +1 -0
  544. package/internal/solidity/parse.js +44 -0
  545. package/internal/solidity/parse.js.map +1 -0
  546. package/internal/solidity/resolver.d.ts +50 -0
  547. package/internal/solidity/resolver.d.ts.map +1 -0
  548. package/internal/solidity/resolver.js +337 -0
  549. package/internal/solidity/resolver.js.map +1 -0
  550. package/internal/util/abi-helpers.d.ts +13 -0
  551. package/internal/util/abi-helpers.d.ts.map +1 -0
  552. package/internal/util/abi-helpers.js +75 -0
  553. package/internal/util/abi-helpers.js.map +1 -0
  554. package/internal/util/bigint.d.ts +13 -0
  555. package/internal/util/bigint.d.ts.map +1 -0
  556. package/internal/util/bigint.js +60 -0
  557. package/internal/util/bigint.js.map +1 -0
  558. package/internal/util/caller-package.d.ts +5 -0
  559. package/internal/util/caller-package.d.ts.map +1 -0
  560. package/internal/util/caller-package.js +42 -0
  561. package/internal/util/caller-package.js.map +1 -0
  562. package/internal/util/ci-detection.d.ts +2 -0
  563. package/internal/util/ci-detection.d.ts.map +1 -0
  564. package/internal/util/ci-detection.js +53 -0
  565. package/internal/util/ci-detection.js.map +1 -0
  566. package/internal/util/console.d.ts +8 -0
  567. package/internal/util/console.d.ts.map +1 -0
  568. package/internal/util/console.js +25 -0
  569. package/internal/util/console.js.map +1 -0
  570. package/internal/util/date.d.ts +5 -0
  571. package/internal/util/date.d.ts.map +1 -0
  572. package/internal/util/date.js +20 -0
  573. package/internal/util/date.js.map +1 -0
  574. package/internal/util/download.d.ts +4 -0
  575. package/internal/util/download.d.ts.map +1 -0
  576. package/internal/util/download.js +77 -0
  577. package/internal/util/download.js.map +1 -0
  578. package/internal/util/event-emitter.d.ts +22 -0
  579. package/internal/util/event-emitter.d.ts.map +1 -0
  580. package/internal/util/event-emitter.js +76 -0
  581. package/internal/util/event-emitter.js.map +1 -0
  582. package/internal/util/fs-utils.d.ts +49 -0
  583. package/internal/util/fs-utils.d.ts.map +1 -0
  584. package/internal/util/fs-utils.js +194 -0
  585. package/internal/util/fs-utils.js.map +1 -0
  586. package/internal/util/glob.d.ts +17 -0
  587. package/internal/util/glob.d.ts.map +1 -0
  588. package/internal/util/glob.js +56 -0
  589. package/internal/util/glob.js.map +1 -0
  590. package/internal/util/global-dir.d.ts +27 -0
  591. package/internal/util/global-dir.d.ts.map +1 -0
  592. package/internal/util/global-dir.js +157 -0
  593. package/internal/util/global-dir.js.map +1 -0
  594. package/internal/util/hardforks.d.ts +28 -0
  595. package/internal/util/hardforks.d.ts.map +1 -0
  596. package/internal/util/hardforks.js +88 -0
  597. package/internal/util/hardforks.js.map +1 -0
  598. package/internal/util/hash.d.ts +12 -0
  599. package/internal/util/hash.d.ts.map +1 -0
  600. package/internal/util/hash.js +18 -0
  601. package/internal/util/hash.js.map +1 -0
  602. package/internal/util/io-ts.d.ts +5 -0
  603. package/internal/util/io-ts.d.ts.map +1 -0
  604. package/internal/util/io-ts.js +50 -0
  605. package/internal/util/io-ts.js.map +1 -0
  606. package/internal/util/jsonrpc.d.ts +26 -0
  607. package/internal/util/jsonrpc.d.ts.map +1 -0
  608. package/internal/util/jsonrpc.js +73 -0
  609. package/internal/util/jsonrpc.js.map +1 -0
  610. package/internal/util/keccak.d.ts +2 -0
  611. package/internal/util/keccak.d.ts.map +1 -0
  612. package/internal/util/keccak.js +12 -0
  613. package/internal/util/keccak.js.map +1 -0
  614. package/internal/util/keys-derivation.d.ts +3 -0
  615. package/internal/util/keys-derivation.d.ts.map +1 -0
  616. package/internal/util/keys-derivation.js +18 -0
  617. package/internal/util/keys-derivation.js.map +1 -0
  618. package/internal/util/lang.d.ts +3 -0
  619. package/internal/util/lang.d.ts.map +1 -0
  620. package/internal/util/lang.js +18 -0
  621. package/internal/util/lang.js.map +1 -0
  622. package/internal/util/lazy.d.ts +29 -0
  623. package/internal/util/lazy.d.ts.map +1 -0
  624. package/internal/util/lazy.js +189 -0
  625. package/internal/util/lazy.js.map +1 -0
  626. package/internal/util/multi-process-mutex.d.ts +12 -0
  627. package/internal/util/multi-process-mutex.d.ts.map +1 -0
  628. package/internal/util/multi-process-mutex.js +116 -0
  629. package/internal/util/multi-process-mutex.js.map +1 -0
  630. package/internal/util/packageInfo.d.ts +19 -0
  631. package/internal/util/packageInfo.d.ts.map +1 -0
  632. package/internal/util/packageInfo.js +54 -0
  633. package/internal/util/packageInfo.js.map +1 -0
  634. package/internal/util/platform.d.ts +2 -0
  635. package/internal/util/platform.d.ts.map +1 -0
  636. package/internal/util/platform.js +8 -0
  637. package/internal/util/platform.js.map +1 -0
  638. package/internal/util/proxy.d.ts +2 -0
  639. package/internal/util/proxy.d.ts.map +1 -0
  640. package/internal/util/proxy.js +19 -0
  641. package/internal/util/proxy.js.map +1 -0
  642. package/internal/util/report-telemetry-consent.d.ts +2 -0
  643. package/internal/util/report-telemetry-consent.d.ts.map +1 -0
  644. package/internal/util/report-telemetry-consent.js +15 -0
  645. package/internal/util/report-telemetry-consent.js.map +1 -0
  646. package/internal/util/scripts-runner.d.ts +8 -0
  647. package/internal/util/scripts-runner.d.ts.map +1 -0
  648. package/internal/util/scripts-runner.js +112 -0
  649. package/internal/util/scripts-runner.js.map +1 -0
  650. package/internal/util/strings.d.ts +15 -0
  651. package/internal/util/strings.d.ts.map +1 -0
  652. package/internal/util/strings.js +30 -0
  653. package/internal/util/strings.js.map +1 -0
  654. package/internal/util/unsafe.d.ts +11 -0
  655. package/internal/util/unsafe.d.ts.map +1 -0
  656. package/internal/util/unsafe.js +17 -0
  657. package/internal/util/unsafe.js.map +1 -0
  658. package/internal/util/wei-values.d.ts +12 -0
  659. package/internal/util/wei-values.d.ts.map +1 -0
  660. package/internal/util/wei-values.js +51 -0
  661. package/internal/util/wei-values.js.map +1 -0
  662. package/internal/vendor/await-semaphore/index.d.ts +12 -0
  663. package/internal/vendor/await-semaphore/index.d.ts.map +1 -0
  664. package/internal/vendor/await-semaphore/index.js +64 -0
  665. package/internal/vendor/await-semaphore/index.js.map +1 -0
  666. package/package.json +172 -0
  667. package/plugins-testing.d.ts +2 -0
  668. package/plugins-testing.d.ts.map +1 -0
  669. package/plugins-testing.js +6 -0
  670. package/plugins-testing.js.map +1 -0
  671. package/plugins.d.ts +5 -0
  672. package/plugins.d.ts.map +1 -0
  673. package/plugins.js +14 -0
  674. package/plugins.js.map +1 -0
  675. package/profiling.d.ts +18 -0
  676. package/profiling.d.ts.map +1 -0
  677. package/profiling.js +32 -0
  678. package/profiling.js.map +1 -0
  679. package/recommended-gitignore.txt +17 -0
  680. package/register.d.ts +2 -0
  681. package/register.d.ts.map +1 -0
  682. package/register.js +32 -0
  683. package/register.js.map +1 -0
  684. package/rl9c6ze5.cjs +1 -0
  685. package/sample-projects/javascript/LICENSE.md +11 -0
  686. package/sample-projects/javascript/README.md +13 -0
  687. package/sample-projects/javascript/contracts/Lock.sol +34 -0
  688. package/sample-projects/javascript/hardhat.config.js +6 -0
  689. package/sample-projects/javascript/ignition/modules/Lock.js +18 -0
  690. package/sample-projects/javascript/test/Lock.js +126 -0
  691. package/sample-projects/javascript-esm/LICENSE.md +11 -0
  692. package/sample-projects/javascript-esm/README.md +13 -0
  693. package/sample-projects/javascript-esm/contracts/Lock.sol +34 -0
  694. package/sample-projects/javascript-esm/hardhat.config.cjs +6 -0
  695. package/sample-projects/javascript-esm/ignition/modules/Lock.js +18 -0
  696. package/sample-projects/javascript-esm/test/Lock.js +128 -0
  697. package/sample-projects/typescript/LICENSE.md +11 -0
  698. package/sample-projects/typescript/README.md +13 -0
  699. package/sample-projects/typescript/contracts/Lock.sol +34 -0
  700. package/sample-projects/typescript/hardhat.config.ts +8 -0
  701. package/sample-projects/typescript/ignition/modules/Lock.ts +20 -0
  702. package/sample-projects/typescript/test/Lock.ts +127 -0
  703. package/sample-projects/typescript/tsconfig.json +11 -0
  704. package/sample-projects/typescript-viem/LICENSE.md +11 -0
  705. package/sample-projects/typescript-viem/README.md +13 -0
  706. package/sample-projects/typescript-viem/contracts/Lock.sol +34 -0
  707. package/sample-projects/typescript-viem/hardhat.config.ts +8 -0
  708. package/sample-projects/typescript-viem/ignition/modules/Lock.ts +21 -0
  709. package/sample-projects/typescript-viem/test/Lock.ts +134 -0
  710. package/sample-projects/typescript-viem/tsconfig.json +11 -0
  711. package/src/builtin-tasks/check.ts +5 -0
  712. package/src/builtin-tasks/clean.ts +24 -0
  713. package/src/builtin-tasks/compile.ts +1596 -0
  714. package/src/builtin-tasks/console.ts +41 -0
  715. package/src/builtin-tasks/flatten.ts +348 -0
  716. package/src/builtin-tasks/help.ts +72 -0
  717. package/src/builtin-tasks/node.ts +385 -0
  718. package/src/builtin-tasks/run.ts +56 -0
  719. package/src/builtin-tasks/task-names.ts +92 -0
  720. package/src/builtin-tasks/test.ts +223 -0
  721. package/src/builtin-tasks/utils/solidity-files-cache.ts +145 -0
  722. package/src/builtin-tasks/utils/watch.ts +64 -0
  723. package/src/builtin-tasks/vars.ts +54 -0
  724. package/src/common/bigInt.ts +106 -0
  725. package/src/common/index.ts +2 -0
  726. package/src/common/napi-rs.ts +15 -0
  727. package/src/config.ts +2 -0
  728. package/src/internal/artifacts.ts +975 -0
  729. package/src/internal/cli/ArgumentsParser.ts +358 -0
  730. package/src/internal/cli/HelpPrinter.ts +278 -0
  731. package/src/internal/cli/analytics.ts +288 -0
  732. package/src/internal/cli/autocomplete.ts +387 -0
  733. package/src/internal/cli/bootstrap.ts +16 -0
  734. package/src/internal/cli/cli.ts +478 -0
  735. package/src/internal/cli/constants.ts +1 -0
  736. package/src/internal/cli/emoji.ts +9 -0
  737. package/src/internal/cli/hardhat-vscode-installation.ts +43 -0
  738. package/src/internal/cli/is-node-version-to-warn-on.ts +54 -0
  739. package/src/internal/cli/project-creation.ts +683 -0
  740. package/src/internal/cli/prompt.ts +141 -0
  741. package/src/internal/cli/types.ts +5 -0
  742. package/src/internal/cli/vars.ts +301 -0
  743. package/src/internal/cli/version-notifier.ts +268 -0
  744. package/src/internal/constants.ts +38 -0
  745. package/src/internal/context.ts +107 -0
  746. package/src/internal/core/config/config-env.ts +219 -0
  747. package/src/internal/core/config/config-loading.ts +356 -0
  748. package/src/internal/core/config/config-resolution.ts +497 -0
  749. package/src/internal/core/config/config-validation.ts +621 -0
  750. package/src/internal/core/config/default-config.ts +197 -0
  751. package/src/internal/core/errors-list.ts +1369 -0
  752. package/src/internal/core/errors.ts +274 -0
  753. package/src/internal/core/execution-mode.ts +39 -0
  754. package/src/internal/core/flamegraph.ts +270 -0
  755. package/src/internal/core/jsonrpc/types/access-list.ts +16 -0
  756. package/src/internal/core/jsonrpc/types/base-types.ts +233 -0
  757. package/src/internal/core/jsonrpc/types/input/blockTag.ts +44 -0
  758. package/src/internal/core/jsonrpc/types/input/callRequest.ts +60 -0
  759. package/src/internal/core/jsonrpc/types/input/debugTraceTransaction.ts +17 -0
  760. package/src/internal/core/jsonrpc/types/input/filterRequest.ts +27 -0
  761. package/src/internal/core/jsonrpc/types/input/hardhat-network.ts +54 -0
  762. package/src/internal/core/jsonrpc/types/input/logAddress.ts +12 -0
  763. package/src/internal/core/jsonrpc/types/input/logTopics.ts +14 -0
  764. package/src/internal/core/jsonrpc/types/input/solc.ts +22 -0
  765. package/src/internal/core/jsonrpc/types/input/subscribeRequest.ts +21 -0
  766. package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +47 -0
  767. package/src/internal/core/jsonrpc/types/input/validation.ts +75 -0
  768. package/src/internal/core/jsonrpc/types/output/block.ts +66 -0
  769. package/src/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.ts +23 -0
  770. package/src/internal/core/jsonrpc/types/output/log.ts +19 -0
  771. package/src/internal/core/jsonrpc/types/output/metadata.ts +32 -0
  772. package/src/internal/core/jsonrpc/types/output/receipt.ts +38 -0
  773. package/src/internal/core/jsonrpc/types/output/transaction.ts +36 -0
  774. package/src/internal/core/params/argumentTypes.ts +327 -0
  775. package/src/internal/core/params/env-variables.ts +72 -0
  776. package/src/internal/core/params/hardhat-params.ts +105 -0
  777. package/src/internal/core/project-structure.ts +53 -0
  778. package/src/internal/core/providers/accounts.ts +385 -0
  779. package/src/internal/core/providers/backwards-compatibility.ts +80 -0
  780. package/src/internal/core/providers/chainId.ts +68 -0
  781. package/src/internal/core/providers/construction.ts +259 -0
  782. package/src/internal/core/providers/errors.ts +128 -0
  783. package/src/internal/core/providers/gas-providers.ts +306 -0
  784. package/src/internal/core/providers/http.ts +312 -0
  785. package/src/internal/core/providers/lazy-initialization.ts +178 -0
  786. package/src/internal/core/providers/util.ts +68 -0
  787. package/src/internal/core/providers/wrapper.ts +44 -0
  788. package/src/internal/core/runtime-environment.ts +467 -0
  789. package/src/internal/core/task-profiling.ts +56 -0
  790. package/src/internal/core/tasks/builtin-tasks.ts +10 -0
  791. package/src/internal/core/tasks/dsl.ts +241 -0
  792. package/src/internal/core/tasks/task-definitions.ts +830 -0
  793. package/src/internal/core/tasks/util.ts +18 -0
  794. package/src/internal/core/typescript-support.ts +93 -0
  795. package/src/internal/core/vars/vars-manager-setup.ts +124 -0
  796. package/src/internal/core/vars/vars-manager.ts +152 -0
  797. package/src/internal/hardhat-network/jsonrpc/client.ts +491 -0
  798. package/src/internal/hardhat-network/jsonrpc/handler.ts +288 -0
  799. package/src/internal/hardhat-network/jsonrpc/server.ts +117 -0
  800. package/src/internal/hardhat-network/provider/fork/AccountState.ts +28 -0
  801. package/src/internal/hardhat-network/provider/modules/logger.ts +27 -0
  802. package/src/internal/hardhat-network/provider/node-types.ts +86 -0
  803. package/src/internal/hardhat-network/provider/output.ts +141 -0
  804. package/src/internal/hardhat-network/provider/provider.ts +676 -0
  805. package/src/internal/hardhat-network/provider/return-data.ts +7 -0
  806. package/src/internal/hardhat-network/provider/utils/assertions.ts +13 -0
  807. package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +277 -0
  808. package/src/internal/hardhat-network/provider/utils/disk-cache.ts +7 -0
  809. package/src/internal/hardhat-network/provider/utils/fork-recomendations-banner.ts +48 -0
  810. package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +3 -0
  811. package/src/internal/hardhat-network/provider/utils/isHexPrefixed.ts +3 -0
  812. package/src/internal/hardhat-network/provider/utils/makeAccount.ts +25 -0
  813. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +20 -0
  814. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +177 -0
  815. package/src/internal/hardhat-network/provider/utils/random.ts +64 -0
  816. package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +40 -0
  817. package/src/internal/hardhat-network/provider/vm/exit.ts +7 -0
  818. package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +114 -0
  819. package/src/internal/hardhat-network/provider/vm/types.ts +39 -0
  820. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +7 -0
  821. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +236 -0
  822. package/src/internal/hardhat-network/stack-traces/constants.ts +2 -0
  823. package/src/internal/hardhat-network/stack-traces/debug.ts +7 -0
  824. package/src/internal/hardhat-network/stack-traces/library-utils.ts +7 -0
  825. package/src/internal/hardhat-network/stack-traces/logger.ts +422 -0
  826. package/src/internal/hardhat-network/stack-traces/message-trace.ts +12 -0
  827. package/src/internal/hardhat-network/stack-traces/panic-errors.ts +32 -0
  828. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +447 -0
  829. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +111 -0
  830. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +7 -0
  831. package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +42 -0
  832. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +7 -0
  833. package/src/internal/lib/hardhat-lib.ts +52 -0
  834. package/src/internal/reset.ts +35 -0
  835. package/src/internal/sentry/anonymizer.ts +351 -0
  836. package/src/internal/sentry/reporter.ts +173 -0
  837. package/src/internal/sentry/subprocess.ts +76 -0
  838. package/src/internal/sentry/transport.ts +50 -0
  839. package/src/internal/solidity/compilation-job.ts +342 -0
  840. package/src/internal/solidity/compiler/compiler-input.ts +26 -0
  841. package/src/internal/solidity/compiler/downloader.ts +384 -0
  842. package/src/internal/solidity/compiler/index.ts +97 -0
  843. package/src/internal/solidity/compiler/solc-info.ts +73 -0
  844. package/src/internal/solidity/compiler/solcjs-runner.js +34 -0
  845. package/src/internal/solidity/dependencyGraph.ts +195 -0
  846. package/src/internal/solidity/parse.ts +71 -0
  847. package/src/internal/solidity/resolver.ts +563 -0
  848. package/src/internal/util/abi-helpers.ts +55 -0
  849. package/src/internal/util/bigint.ts +66 -0
  850. package/src/internal/util/caller-package.ts +47 -0
  851. package/src/internal/util/ci-detection.ts +59 -0
  852. package/src/internal/util/console.ts +23 -0
  853. package/src/internal/util/date.ts +15 -0
  854. package/src/internal/util/download.ts +65 -0
  855. package/src/internal/util/event-emitter.ts +101 -0
  856. package/src/internal/util/fs-utils.ts +223 -0
  857. package/src/internal/util/glob.ts +31 -0
  858. package/src/internal/util/global-dir.ts +146 -0
  859. package/src/internal/util/hardforks.ts +123 -0
  860. package/src/internal/util/hash.ts +16 -0
  861. package/src/internal/util/io-ts.ts +47 -0
  862. package/src/internal/util/jsonrpc.ts +111 -0
  863. package/src/internal/util/keccak.ts +5 -0
  864. package/src/internal/util/keys-derivation.ts +31 -0
  865. package/src/internal/util/lang.ts +21 -0
  866. package/src/internal/util/lazy.ts +247 -0
  867. package/src/internal/util/multi-process-mutex.ts +133 -0
  868. package/src/internal/util/packageInfo.ts +68 -0
  869. package/src/internal/util/platform.ts +5 -0
  870. package/src/internal/util/proxy.ts +18 -0
  871. package/src/internal/util/report-telemetry-consent.ts +19 -0
  872. package/src/internal/util/scripts-runner.ts +119 -0
  873. package/src/internal/util/strings.ts +31 -0
  874. package/src/internal/util/unsafe.ts +15 -0
  875. package/src/internal/util/wei-values.ts +65 -0
  876. package/src/internal/vendor/await-semaphore/index.ts +66 -0
  877. package/src/plugins-testing.ts +1 -0
  878. package/src/plugins.ts +7 -0
  879. package/src/profiling.ts +37 -0
  880. package/src/register.ts +54 -0
  881. package/src/types/artifacts.ts +252 -0
  882. package/src/types/builtin-tasks/compile.ts +108 -0
  883. package/src/types/builtin-tasks/index.ts +2 -0
  884. package/src/types/builtin-tasks/node.ts +6 -0
  885. package/src/types/config.ts +299 -0
  886. package/src/types/index.ts +5 -0
  887. package/src/types/provider.ts +58 -0
  888. package/src/types/runtime.ts +262 -0
  889. package/src/utils/contract-names.ts +171 -0
  890. package/src/utils/remappings.ts +17 -0
  891. package/src/utils/source-names.ts +245 -0
  892. package/types/artifacts.d.ts +237 -0
  893. package/types/artifacts.d.ts.map +1 -0
  894. package/types/artifacts.js +3 -0
  895. package/types/artifacts.js.map +1 -0
  896. package/types/builtin-tasks/compile.d.ts +95 -0
  897. package/types/builtin-tasks/compile.d.ts.map +1 -0
  898. package/types/builtin-tasks/compile.js +12 -0
  899. package/types/builtin-tasks/compile.js.map +1 -0
  900. package/types/builtin-tasks/index.d.ts +3 -0
  901. package/types/builtin-tasks/index.d.ts.map +1 -0
  902. package/types/builtin-tasks/index.js +19 -0
  903. package/types/builtin-tasks/index.js.map +1 -0
  904. package/types/builtin-tasks/node.d.ts +9 -0
  905. package/types/builtin-tasks/node.d.ts.map +1 -0
  906. package/types/builtin-tasks/node.js +3 -0
  907. package/types/builtin-tasks/node.js.map +1 -0
  908. package/types/config.d.ts +222 -0
  909. package/types/config.d.ts.map +1 -0
  910. package/types/config.js +16 -0
  911. package/types/config.js.map +1 -0
  912. package/types/index.d.ts +6 -0
  913. package/types/index.d.ts.map +1 -0
  914. package/types/index.js +22 -0
  915. package/types/index.js.map +1 -0
  916. package/types/provider.d.ts +48 -0
  917. package/types/provider.d.ts.map +1 -0
  918. package/types/provider.js +3 -0
  919. package/types/provider.js.map +1 -0
  920. package/types/runtime.d.ts +167 -0
  921. package/types/runtime.d.ts.map +1 -0
  922. package/types/runtime.js +3 -0
  923. package/types/runtime.js.map +1 -0
  924. package/utils/contract-names.d.ts +36 -0
  925. package/utils/contract-names.d.ts.map +1 -0
  926. package/utils/contract-names.js +140 -0
  927. package/utils/contract-names.js.map +1 -0
  928. package/utils/remappings.d.ts +2 -0
  929. package/utils/remappings.d.ts.map +1 -0
  930. package/utils/remappings.js +15 -0
  931. package/utils/remappings.js.map +1 -0
  932. package/utils/source-names.d.ts +60 -0
  933. package/utils/source-names.d.ts.map +1 -0
  934. package/utils/source-names.js +201 -0
  935. package/utils/source-names.js.map +1 -0
@@ -0,0 +1,952 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const os_1 = __importDefault(require("os"));
30
+ const chalk_1 = __importDefault(require("chalk"));
31
+ const debug_1 = __importDefault(require("debug"));
32
+ const fs_extra_1 = __importDefault(require("fs-extra"));
33
+ const semver_1 = __importDefault(require("semver"));
34
+ const aggregate_error_1 = __importDefault(require("aggregate-error"));
35
+ const artifacts_1 = require("../internal/artifacts");
36
+ const config_env_1 = require("../internal/core/config/config-env");
37
+ const errors_1 = require("../internal/core/errors");
38
+ const errors_list_1 = require("../internal/core/errors-list");
39
+ const compilation_job_1 = require("../internal/solidity/compilation-job");
40
+ const compiler_1 = require("../internal/solidity/compiler");
41
+ const compiler_input_1 = require("../internal/solidity/compiler/compiler-input");
42
+ const downloader_1 = require("../internal/solidity/compiler/downloader");
43
+ const dependencyGraph_1 = require("../internal/solidity/dependencyGraph");
44
+ const parse_1 = require("../internal/solidity/parse");
45
+ const resolver_1 = require("../internal/solidity/resolver");
46
+ const global_dir_1 = require("../internal/util/global-dir");
47
+ const strings_1 = require("../internal/util/strings");
48
+ const builtin_tasks_1 = require("../types/builtin-tasks");
49
+ const contract_names_1 = require("../utils/contract-names");
50
+ const source_names_1 = require("../utils/source-names");
51
+ const fs_utils_1 = require("../internal/util/fs-utils");
52
+ const solc_info_1 = require("../internal/solidity/compiler/solc-info");
53
+ const task_names_1 = require("./task-names");
54
+ const solidity_files_cache_1 = require("./utils/solidity-files-cache");
55
+ function isConsoleLogError(error) {
56
+ const message = error.message;
57
+ return (error.type === "TypeError" &&
58
+ typeof message === "string" &&
59
+ message.includes("log") &&
60
+ message.includes("type(library console)"));
61
+ }
62
+ const log = (0, debug_1.default)("hardhat:core:tasks:compile");
63
+ const COMPILE_TASK_FIRST_SOLC_VERSION_SUPPORTED = "0.4.11";
64
+ const DEFAULT_CONCURRENCY_LEVEL = Math.max(os_1.default.cpus().length - 1, 1);
65
+ /**
66
+ * Returns a list of absolute paths to all the solidity files in the project.
67
+ * This list doesn't include dependencies, for example solidity files inside
68
+ * node_modules.
69
+ *
70
+ * This is the right task to override to change how the solidity files of the
71
+ * project are obtained.
72
+ */
73
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS)
74
+ .addOptionalParam("sourcePath", undefined, undefined, config_env_1.types.string)
75
+ .setAction(async ({ sourcePath }, { config }) => {
76
+ return (0, fs_utils_1.getAllFilesMatching)(sourcePath ?? config.paths.sources, (f) => f.endsWith(".sol"));
77
+ });
78
+ /**
79
+ * Receives a list of absolute paths and returns a list of source names
80
+ * corresponding to each path. For example, receives
81
+ * ["/home/user/project/contracts/Foo.sol"] and returns
82
+ * ["contracts/Foo.sol"]. These source names will be used when the solc input
83
+ * is generated.
84
+ */
85
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES)
86
+ .addOptionalParam("rootPath", undefined, undefined, config_env_1.types.string)
87
+ .addParam("sourcePaths", undefined, undefined, config_env_1.types.any)
88
+ .setAction(async ({ rootPath, sourcePaths, }, { config }) => {
89
+ return Promise.all(sourcePaths.map((p) => (0, source_names_1.localPathToSourceName)(rootPath ?? config.paths.root, p)));
90
+ });
91
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_READ_FILE)
92
+ .addParam("absolutePath", undefined, undefined, config_env_1.types.string)
93
+ .setAction(async ({ absolutePath }) => {
94
+ try {
95
+ return await fs_extra_1.default.readFile(absolutePath, {
96
+ encoding: "utf8",
97
+ });
98
+ }
99
+ catch (e) {
100
+ if (fs_extra_1.default.lstatSync(absolutePath).isDirectory()) {
101
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.INVALID_READ_OF_DIRECTORY, {
102
+ absolutePath,
103
+ });
104
+ }
105
+ // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
106
+ throw e;
107
+ }
108
+ });
109
+ /**
110
+ * DEPRECATED: This subtask is deprecated and will be removed in the future.
111
+ *
112
+ * This task transform the string literal in an import directive.
113
+ * By default it does nothing, but it can be overriden by plugins.
114
+ */
115
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_TRANSFORM_IMPORT_NAME)
116
+ .addParam("importName", undefined, undefined, config_env_1.types.string)
117
+ .setAction(async ({ importName }) => {
118
+ return importName;
119
+ });
120
+ /**
121
+ * This task returns a Record<string, string> representing remappings to be used
122
+ * by the resolver.
123
+ */
124
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_GET_REMAPPINGS).setAction(async () => {
125
+ return {};
126
+ });
127
+ /**
128
+ * Receives a list of source names and returns a dependency graph. This task
129
+ * is responsible for both resolving dependencies (like getting files from
130
+ * node_modules) and generating the graph.
131
+ */
132
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH)
133
+ .addOptionalParam("rootPath", undefined, undefined, config_env_1.types.string)
134
+ .addParam("sourceNames", undefined, undefined, config_env_1.types.any)
135
+ .addOptionalParam("solidityFilesCache", undefined, undefined, config_env_1.types.any)
136
+ .setAction(async ({ rootPath, sourceNames, solidityFilesCache, }, { config, run }) => {
137
+ const parser = new parse_1.Parser(solidityFilesCache);
138
+ const remappings = await run(task_names_1.TASK_COMPILE_GET_REMAPPINGS);
139
+ const resolver = new resolver_1.Resolver(rootPath ?? config.paths.root, parser, remappings, (absolutePath) => run(task_names_1.TASK_COMPILE_SOLIDITY_READ_FILE, { absolutePath }), (importName) => run(task_names_1.TASK_COMPILE_TRANSFORM_IMPORT_NAME, {
140
+ importName,
141
+ deprecationCheck: true,
142
+ }));
143
+ const resolvedFiles = await Promise.all(sourceNames.map((sn) => resolver.resolveSourceName(sn)));
144
+ return dependencyGraph_1.DependencyGraph.createFromResolvedFiles(resolver, resolvedFiles);
145
+ });
146
+ /**
147
+ * Receives a dependency graph and a file in it, and returns the compilation
148
+ * job for that file. The compilation job should have everything that is
149
+ * necessary to compile that file: a compiler config to be used and a list of
150
+ * files to use as input of the compilation.
151
+ *
152
+ * If the file cannot be compiled, a MatchingCompilerFailure should be
153
+ * returned instead.
154
+ *
155
+ * This is the right task to override to change the compiler configuration.
156
+ * For example, if you want to change the compiler settings when targetting
157
+ * goerli, you could do something like this:
158
+ *
159
+ * const compilationJob = await runSuper();
160
+ * if (config.network.name === 'goerli') {
161
+ * compilationJob.solidityConfig.settings = newSettings;
162
+ * }
163
+ * return compilationJob;
164
+ *
165
+ */
166
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOB_FOR_FILE)
167
+ .addParam("dependencyGraph", undefined, undefined, config_env_1.types.any)
168
+ .addParam("file", undefined, undefined, config_env_1.types.any)
169
+ .addOptionalParam("solidityFilesCache", undefined, undefined, config_env_1.types.any)
170
+ .setAction(async ({ dependencyGraph, file, }, { config }) => {
171
+ return (0, compilation_job_1.createCompilationJobFromFile)(dependencyGraph, file, config.solidity);
172
+ });
173
+ /**
174
+ * Receives a dependency graph and returns a tuple with two arrays. The first
175
+ * array is a list of CompilationJobsSuccess, where each item has a list of
176
+ * compilation jobs. The second array is a list of CompilationJobsFailure,
177
+ * where each item has a list of files that couldn't be compiled, grouped by
178
+ * the reason for the failure.
179
+ */
180
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS)
181
+ .addParam("dependencyGraph", undefined, undefined, config_env_1.types.any)
182
+ .addOptionalParam("solidityFilesCache", undefined, undefined, config_env_1.types.any)
183
+ .setAction(async ({ dependencyGraph, solidityFilesCache, }, { run }) => {
184
+ const connectedComponents = dependencyGraph.getConnectedComponents();
185
+ log(`The dependency graph was divided in '${connectedComponents.length}' connected components`);
186
+ const compilationJobsCreationResults = await Promise.all(connectedComponents.map((graph) => (0, compilation_job_1.createCompilationJobsFromConnectedComponent)(graph, (file) => run(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOB_FOR_FILE, {
187
+ file,
188
+ dependencyGraph,
189
+ solidityFilesCache,
190
+ }))));
191
+ let jobs = [];
192
+ let errors = [];
193
+ for (const result of compilationJobsCreationResults) {
194
+ jobs = jobs.concat(result.jobs);
195
+ errors = errors.concat(result.errors);
196
+ }
197
+ return { jobs, errors };
198
+ });
199
+ /**
200
+ * Receives a list of compilation jobs and returns a new list where some of
201
+ * the compilation jobs might've been removed.
202
+ *
203
+ * This task can be overridden to change the way the cache is used, or to use
204
+ * a different approach to filtering out compilation jobs.
205
+ */
206
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_FILTER_COMPILATION_JOBS)
207
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
208
+ .addParam("force", undefined, undefined, config_env_1.types.boolean)
209
+ .addOptionalParam("solidityFilesCache", undefined, undefined, config_env_1.types.any)
210
+ .setAction(async ({ compilationJobs, force, solidityFilesCache, }) => {
211
+ (0, errors_1.assertHardhatInvariant)(solidityFilesCache !== undefined, "The implementation of this task needs a defined solidityFilesCache");
212
+ if (force) {
213
+ log(`force flag enabled, not filtering`);
214
+ return compilationJobs;
215
+ }
216
+ const neededCompilationJobs = compilationJobs.filter((job) => needsCompilation(job, solidityFilesCache));
217
+ const jobsFilteredOutCount = compilationJobs.length - neededCompilationJobs.length;
218
+ log(`'${jobsFilteredOutCount}' jobs were filtered out`);
219
+ return neededCompilationJobs;
220
+ });
221
+ /**
222
+ * Receives a list of compilation jobs and returns a new list where some of
223
+ * the jobs might've been merged.
224
+ */
225
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_MERGE_COMPILATION_JOBS)
226
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
227
+ .setAction(async ({ compilationJobs, }) => {
228
+ return (0, compilation_job_1.mergeCompilationJobsWithoutBug)(compilationJobs);
229
+ });
230
+ /**
231
+ * Prints a message when there's nothing to compile.
232
+ */
233
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_LOG_NOTHING_TO_COMPILE)
234
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
235
+ .setAction(async ({ quiet }) => {
236
+ if (!quiet) {
237
+ console.log("Nothing to compile");
238
+ }
239
+ });
240
+ /**
241
+ * Receives a list of compilation jobs and sends each one to be compiled.
242
+ */
243
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE_JOBS)
244
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
245
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
246
+ .addParam("concurrency", undefined, DEFAULT_CONCURRENCY_LEVEL, config_env_1.types.int)
247
+ .setAction(async ({ compilationJobs, quiet, concurrency, }, { run }) => {
248
+ if (compilationJobs.length === 0) {
249
+ log(`No compilation jobs to compile`);
250
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_NOTHING_TO_COMPILE, { quiet });
251
+ return { artifactsEmittedPerJob: [] };
252
+ }
253
+ log(`Compiling ${compilationJobs.length} jobs`);
254
+ for (const job of compilationJobs) {
255
+ const solcVersion = job.getSolcConfig().version;
256
+ // versions older than 0.4.11 don't work with hardhat
257
+ // see issue https://github.com/nomiclabs/hardhat/issues/2004
258
+ if (semver_1.default.lt(solcVersion, COMPILE_TASK_FIRST_SOLC_VERSION_SUPPORTED)) {
259
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.BUILTIN_TASKS.COMPILE_TASK_UNSUPPORTED_SOLC_VERSION, {
260
+ version: solcVersion,
261
+ firstSupportedVersion: COMPILE_TASK_FIRST_SOLC_VERSION_SUPPORTED,
262
+ });
263
+ }
264
+ }
265
+ const { default: pMap } = await Promise.resolve().then(() => __importStar(require("p-map")));
266
+ const pMapOptions = { concurrency, stopOnError: false };
267
+ try {
268
+ const artifactsEmittedPerJob = await pMap(compilationJobs, async (compilationJob, compilationJobIndex) => {
269
+ const result = await run(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE_JOB, {
270
+ compilationJob,
271
+ compilationJobs,
272
+ compilationJobIndex,
273
+ quiet,
274
+ });
275
+ return {
276
+ compilationJob: result.compilationJob,
277
+ artifactsEmittedPerFile: result.artifactsEmittedPerFile,
278
+ };
279
+ }, pMapOptions);
280
+ return { artifactsEmittedPerJob };
281
+ }
282
+ catch (e) {
283
+ if (!(e instanceof aggregate_error_1.default)) {
284
+ // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
285
+ throw e;
286
+ }
287
+ for (const error of e) {
288
+ if (!errors_1.HardhatError.isHardhatErrorType(error, errors_list_1.ERRORS.BUILTIN_TASKS.COMPILE_FAILURE)) {
289
+ // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
290
+ throw error;
291
+ }
292
+ }
293
+ // error is an aggregate error, and all errors are compilation failures
294
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.BUILTIN_TASKS.COMPILE_FAILURE);
295
+ }
296
+ });
297
+ /**
298
+ * Receives a compilation job and returns a CompilerInput.
299
+ *
300
+ * It's not recommended to override this task to modify the solc
301
+ * configuration, override
302
+ * TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOB_FOR_FILE instead.
303
+ */
304
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILER_INPUT)
305
+ .addParam("compilationJob", undefined, undefined, config_env_1.types.any)
306
+ .setAction(async ({ compilationJob, }) => {
307
+ return (0, compiler_input_1.getInputFromCompilationJob)(compilationJob);
308
+ });
309
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_LOG_DOWNLOAD_COMPILER_START)
310
+ .addParam("isCompilerDownloaded", undefined, undefined, config_env_1.types.boolean)
311
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
312
+ .addParam("solcVersion", undefined, undefined, config_env_1.types.string)
313
+ .setAction(async ({ isCompilerDownloaded, solcVersion, }) => {
314
+ if (isCompilerDownloaded) {
315
+ return;
316
+ }
317
+ console.log(`Downloading compiler ${solcVersion}`);
318
+ });
319
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_LOG_DOWNLOAD_COMPILER_END)
320
+ .addParam("isCompilerDownloaded", undefined, undefined, config_env_1.types.boolean)
321
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
322
+ .addParam("solcVersion", undefined, undefined, config_env_1.types.string)
323
+ .setAction(async ({}) => { });
324
+ /**
325
+ * Receives a solc version and returns a path to a solc binary or to a
326
+ * downloaded solcjs module. It also returns a flag indicating if the returned
327
+ * path corresponds to solc or solcjs.
328
+ */
329
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOLC_BUILD)
330
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
331
+ .addParam("solcVersion", undefined, undefined, config_env_1.types.string)
332
+ .setAction(async ({ quiet, solcVersion, }, { run }) => {
333
+ const compilersCache = await (0, global_dir_1.getCompilersDir)();
334
+ const compilerPlatform = downloader_1.CompilerDownloader.getCompilerPlatform();
335
+ const downloader = downloader_1.CompilerDownloader.getConcurrencySafeDownloader(compilerPlatform, compilersCache);
336
+ await downloader.downloadCompiler(solcVersion,
337
+ // callback called before compiler download
338
+ async (isCompilerDownloaded) => {
339
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_DOWNLOAD_COMPILER_START, {
340
+ solcVersion,
341
+ isCompilerDownloaded,
342
+ quiet,
343
+ });
344
+ },
345
+ // callback called after compiler download
346
+ async (isCompilerDownloaded) => {
347
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_DOWNLOAD_COMPILER_END, {
348
+ solcVersion,
349
+ isCompilerDownloaded,
350
+ quiet,
351
+ });
352
+ });
353
+ const compiler = await downloader.getCompiler(solcVersion);
354
+ if (compiler !== undefined) {
355
+ return compiler;
356
+ }
357
+ log("Native solc binary doesn't work, using solcjs instead. Try running npx hardhat clean --global");
358
+ const wasmDownloader = downloader_1.CompilerDownloader.getConcurrencySafeDownloader(downloader_1.CompilerPlatform.WASM, compilersCache);
359
+ await wasmDownloader.downloadCompiler(solcVersion, async (isCompilerDownloaded) => {
360
+ // callback called before compiler download
361
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_DOWNLOAD_COMPILER_START, {
362
+ solcVersion,
363
+ isCompilerDownloaded,
364
+ quiet,
365
+ });
366
+ },
367
+ // callback called after compiler download
368
+ async (isCompilerDownloaded) => {
369
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_DOWNLOAD_COMPILER_END, {
370
+ solcVersion,
371
+ isCompilerDownloaded,
372
+ quiet,
373
+ });
374
+ });
375
+ const wasmCompiler = await wasmDownloader.getCompiler(solcVersion);
376
+ (0, errors_1.assertHardhatInvariant)(wasmCompiler !== undefined, `WASM build of solc ${solcVersion} isn't working`);
377
+ return wasmCompiler;
378
+ });
379
+ /**
380
+ * Receives an absolute path to a solcjs module and the input to be compiled,
381
+ * and returns the generated output
382
+ */
383
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_RUN_SOLCJS)
384
+ .addParam("input", undefined, undefined, config_env_1.types.any)
385
+ .addParam("solcJsPath", undefined, undefined, config_env_1.types.string)
386
+ .setAction(async ({ input, solcJsPath, }) => {
387
+ const compiler = new compiler_1.Compiler(solcJsPath);
388
+ return compiler.compile(input);
389
+ });
390
+ /**
391
+ * Receives an absolute path to a solc binary and the input to be compiled,
392
+ * and returns the generated output
393
+ */
394
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_RUN_SOLC)
395
+ .addParam("input", undefined, undefined, config_env_1.types.any)
396
+ .addParam("solcPath", undefined, undefined, config_env_1.types.string)
397
+ .addOptionalParam("solcVersion", undefined, undefined, config_env_1.types.string)
398
+ .setAction(async ({ input, solcPath, solcVersion, }) => {
399
+ if (solcVersion !== undefined && semver_1.default.valid(solcVersion) === null) {
400
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.INVALID_VALUE_FOR_TYPE, {
401
+ value: solcVersion,
402
+ name: "solcVersion",
403
+ type: "string",
404
+ });
405
+ }
406
+ const compiler = new compiler_1.NativeCompiler(solcPath, solcVersion);
407
+ return compiler.compile(input);
408
+ });
409
+ /**
410
+ * Receives a CompilerInput and a solc version, compiles the input using a native
411
+ * solc binary or, if that's not possible, using solcjs. Returns the generated
412
+ * output.
413
+ *
414
+ * This task can be overriden to change how solc is obtained or used.
415
+ */
416
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE_SOLC)
417
+ .addParam("input", undefined, undefined, config_env_1.types.any)
418
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
419
+ .addParam("solcVersion", undefined, undefined, config_env_1.types.string)
420
+ .addParam("compilationJob", undefined, undefined, config_env_1.types.any)
421
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
422
+ .addParam("compilationJobIndex", undefined, undefined, config_env_1.types.int)
423
+ .setAction(async ({ input, quiet, solcVersion, compilationJob, compilationJobs, compilationJobIndex, }, { run }) => {
424
+ const solcBuild = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOLC_BUILD, {
425
+ quiet,
426
+ solcVersion,
427
+ });
428
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_RUN_COMPILER_START, {
429
+ compilationJob,
430
+ compilationJobs,
431
+ compilationJobIndex,
432
+ quiet,
433
+ });
434
+ let output;
435
+ if (solcBuild.isSolcJs) {
436
+ output = await run(task_names_1.TASK_COMPILE_SOLIDITY_RUN_SOLCJS, {
437
+ input,
438
+ solcJsPath: solcBuild.compilerPath,
439
+ });
440
+ }
441
+ else {
442
+ output = await run(task_names_1.TASK_COMPILE_SOLIDITY_RUN_SOLC, {
443
+ input,
444
+ solcPath: solcBuild.compilerPath,
445
+ solcVersion,
446
+ });
447
+ }
448
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_RUN_COMPILER_END, {
449
+ compilationJob,
450
+ compilationJobs,
451
+ compilationJobIndex,
452
+ output,
453
+ quiet,
454
+ });
455
+ return { output, solcBuild };
456
+ });
457
+ /**
458
+ * This task is just a proxy to the task that compiles with solc.
459
+ *
460
+ * Override this to use a different task to compile a job.
461
+ */
462
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE, async (taskArgs, { run }) => {
463
+ return run(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE_SOLC, taskArgs);
464
+ });
465
+ /**
466
+ * Receives a compilation output and prints its errors and any other
467
+ * information useful to the user.
468
+ */
469
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_LOG_COMPILATION_ERRORS)
470
+ .addParam("output", undefined, undefined, config_env_1.types.any)
471
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
472
+ .setAction(async ({ output }) => {
473
+ if (output?.errors === undefined) {
474
+ return;
475
+ }
476
+ for (const error of output.errors) {
477
+ if (error.severity === "error") {
478
+ const errorMessage = getFormattedInternalCompilerErrorMessage(error) ??
479
+ error.formattedMessage;
480
+ console.error(errorMessage.replace(/^\w+:/, (t) => chalk_1.default.red.bold(t)));
481
+ }
482
+ else {
483
+ console.warn(error.formattedMessage.replace(/^\w+:/, (t) => chalk_1.default.yellow.bold(t)));
484
+ }
485
+ }
486
+ const hasConsoleErrors = output.errors.some(isConsoleLogError);
487
+ if (hasConsoleErrors) {
488
+ console.error(chalk_1.default.red(`The console.log call you made isn’t supported. See https://hardhat.org/console-log for the list of supported methods.`));
489
+ console.log();
490
+ }
491
+ });
492
+ /**
493
+ * Receives a solc output and checks if there are errors. Throws if there are
494
+ * errors.
495
+ *
496
+ * Override this task to avoid interrupting the compilation process if some
497
+ * job has compilation errors.
498
+ */
499
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_CHECK_ERRORS)
500
+ .addParam("output", undefined, undefined, config_env_1.types.any)
501
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
502
+ .setAction(async ({ output, quiet }, { run }) => {
503
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_COMPILATION_ERRORS, {
504
+ output,
505
+ quiet,
506
+ });
507
+ if (hasCompilationErrors(output)) {
508
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.BUILTIN_TASKS.COMPILE_FAILURE);
509
+ }
510
+ });
511
+ /**
512
+ * Saves to disk the artifacts for a compilation job. These artifacts
513
+ * include the main artifacts, the debug files, and the build info.
514
+ */
515
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_EMIT_ARTIFACTS)
516
+ .addParam("compilationJob", undefined, undefined, config_env_1.types.any)
517
+ .addParam("input", undefined, undefined, config_env_1.types.any)
518
+ .addParam("output", undefined, undefined, config_env_1.types.any)
519
+ .addParam("solcBuild", undefined, undefined, config_env_1.types.any)
520
+ .setAction(async ({ compilationJob, input, output, solcBuild, }, { artifacts, run }) => {
521
+ const pathToBuildInfo = await artifacts.saveBuildInfo(compilationJob.getSolcConfig().version, solcBuild.longVersion, input, output);
522
+ const artifactsEmittedPerFile = await Promise.all(compilationJob
523
+ .getResolvedFiles()
524
+ .filter((f) => compilationJob.emitsArtifacts(f))
525
+ .map(async (file) => {
526
+ const artifactsEmitted = await Promise.all(Object.entries(output.contracts?.[file.sourceName] ?? {}).map(async ([contractName, contractOutput]) => {
527
+ log(`Emitting artifact for contract '${contractName}'`);
528
+ const artifact = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_ARTIFACT_FROM_COMPILATION_OUTPUT, {
529
+ sourceName: file.sourceName,
530
+ contractName,
531
+ contractOutput,
532
+ });
533
+ await artifacts.saveArtifactAndDebugFile(artifact, pathToBuildInfo);
534
+ return artifact.contractName;
535
+ }));
536
+ return {
537
+ file,
538
+ artifactsEmitted,
539
+ };
540
+ }));
541
+ return { artifactsEmittedPerFile };
542
+ });
543
+ /**
544
+ * Generates the artifact for contract `contractName` given its compilation
545
+ * output.
546
+ */
547
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_ARTIFACT_FROM_COMPILATION_OUTPUT)
548
+ .addParam("sourceName", undefined, undefined, config_env_1.types.string)
549
+ .addParam("contractName", undefined, undefined, config_env_1.types.string)
550
+ .addParam("contractOutput", undefined, undefined, config_env_1.types.any)
551
+ .setAction(async ({ sourceName, contractName, contractOutput, }) => {
552
+ return (0, artifacts_1.getArtifactFromContractOutput)(sourceName, contractName, contractOutput);
553
+ });
554
+ /**
555
+ * Prints a message before running soljs with some input.
556
+ */
557
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_LOG_RUN_COMPILER_START)
558
+ .addParam("compilationJob", undefined, undefined, config_env_1.types.any)
559
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
560
+ .addParam("compilationJobIndex", undefined, undefined, config_env_1.types.int)
561
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
562
+ .setAction(async ({}) => { });
563
+ /**
564
+ * Prints a message after compiling some input
565
+ */
566
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_LOG_RUN_COMPILER_END)
567
+ .addParam("compilationJob", undefined, undefined, config_env_1.types.any)
568
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
569
+ .addParam("compilationJobIndex", undefined, undefined, config_env_1.types.int)
570
+ .addParam("output", undefined, undefined, config_env_1.types.any)
571
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
572
+ .setAction(async ({}) => { });
573
+ /**
574
+ * This is an orchestrator task that uses other subtasks to compile a
575
+ * compilation job.
576
+ */
577
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE_JOB)
578
+ .addParam("compilationJob", undefined, undefined, config_env_1.types.any)
579
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
580
+ .addParam("compilationJobIndex", undefined, undefined, config_env_1.types.int)
581
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
582
+ .addOptionalParam("emitsArtifacts", undefined, true, config_env_1.types.boolean)
583
+ .setAction(async ({ compilationJob, compilationJobs, compilationJobIndex, quiet, emitsArtifacts, }, { run }) => {
584
+ log(`Compiling job with version '${compilationJob.getSolcConfig().version}'`);
585
+ const input = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILER_INPUT, {
586
+ compilationJob,
587
+ });
588
+ const { output, solcBuild } = await run(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE, {
589
+ solcVersion: compilationJob.getSolcConfig().version,
590
+ input,
591
+ quiet,
592
+ compilationJob,
593
+ compilationJobs,
594
+ compilationJobIndex,
595
+ });
596
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_CHECK_ERRORS, { output, quiet });
597
+ let artifactsEmittedPerFile = [];
598
+ if (emitsArtifacts) {
599
+ artifactsEmittedPerFile = (await run(task_names_1.TASK_COMPILE_SOLIDITY_EMIT_ARTIFACTS, {
600
+ compilationJob,
601
+ input,
602
+ output,
603
+ solcBuild,
604
+ })).artifactsEmittedPerFile;
605
+ }
606
+ return {
607
+ artifactsEmittedPerFile,
608
+ compilationJob,
609
+ input,
610
+ output,
611
+ solcBuild,
612
+ };
613
+ });
614
+ /**
615
+ * Receives a list of CompilationJobsFailure and throws an error if it's not
616
+ * empty.
617
+ *
618
+ * This task could be overriden to avoid interrupting the compilation if
619
+ * there's some part of the project that can't be compiled.
620
+ */
621
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_HANDLE_COMPILATION_JOBS_FAILURES)
622
+ .addParam("compilationJobsCreationErrors", undefined, undefined, config_env_1.types.any)
623
+ .setAction(async ({ compilationJobsCreationErrors, }, { run }) => {
624
+ const hasErrors = compilationJobsCreationErrors.length > 0;
625
+ if (hasErrors) {
626
+ log(`There were errors creating the compilation jobs, throwing`);
627
+ const reasons = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS_FAILURE_REASONS, { compilationJobsCreationErrors });
628
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.BUILTIN_TASKS.COMPILATION_JOBS_CREATION_FAILURE, {
629
+ reasons,
630
+ });
631
+ }
632
+ });
633
+ /**
634
+ * Receives a list of CompilationJobsFailure and returns an error message
635
+ * that describes the failure.
636
+ */
637
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS_FAILURE_REASONS)
638
+ .addParam("compilationJobsCreationErrors", undefined, undefined, config_env_1.types.any)
639
+ .setAction(async ({ compilationJobsCreationErrors: errors, }) => {
640
+ const noCompatibleSolc = [];
641
+ const incompatibleOverridenSolc = [];
642
+ const directlyImportsIncompatibleFile = [];
643
+ const indirectlyImportsIncompatibleFile = [];
644
+ const other = [];
645
+ for (const error of errors) {
646
+ if (error.reason ===
647
+ builtin_tasks_1.CompilationJobCreationErrorReason.NO_COMPATIBLE_SOLC_VERSION_FOUND) {
648
+ noCompatibleSolc.push(error);
649
+ }
650
+ else if (error.reason ===
651
+ builtin_tasks_1.CompilationJobCreationErrorReason.INCOMPATIBLE_OVERRIDEN_SOLC_VERSION) {
652
+ incompatibleOverridenSolc.push(error);
653
+ }
654
+ else if (error.reason ===
655
+ builtin_tasks_1.CompilationJobCreationErrorReason.DIRECTLY_IMPORTS_INCOMPATIBLE_FILE) {
656
+ directlyImportsIncompatibleFile.push(error);
657
+ }
658
+ else if (error.reason ===
659
+ builtin_tasks_1.CompilationJobCreationErrorReason.INDIRECTLY_IMPORTS_INCOMPATIBLE_FILE) {
660
+ indirectlyImportsIncompatibleFile.push(error);
661
+ }
662
+ else if (error.reason === builtin_tasks_1.CompilationJobCreationErrorReason.OTHER_ERROR) {
663
+ other.push(error);
664
+ }
665
+ else {
666
+ // add unrecognized errors to `other`
667
+ other.push(error);
668
+ }
669
+ }
670
+ let errorMessage = "";
671
+ if (incompatibleOverridenSolc.length > 0) {
672
+ errorMessage += `The compiler version for the following files is fixed through an override in your config file to a version that is incompatible with their Solidity version pragmas.
673
+
674
+ `;
675
+ for (const error of incompatibleOverridenSolc) {
676
+ const { sourceName } = error.file;
677
+ const { versionPragmas } = error.file.content;
678
+ const versionsRange = versionPragmas.join(" ");
679
+ log(`File ${sourceName} has an incompatible overridden compiler`);
680
+ errorMessage += ` * ${sourceName} (${versionsRange})\n`;
681
+ }
682
+ errorMessage += "\n";
683
+ }
684
+ if (noCompatibleSolc.length > 0) {
685
+ errorMessage += `The Solidity version pragma statement in these files doesn't match any of the configured compilers in your config. Change the pragma or configure additional compiler versions in your hardhat config.
686
+
687
+ `;
688
+ for (const error of noCompatibleSolc) {
689
+ const { sourceName } = error.file;
690
+ const { versionPragmas } = error.file.content;
691
+ const versionsRange = versionPragmas.join(" ");
692
+ log(`File ${sourceName} doesn't match any of the configured compilers`);
693
+ errorMessage += ` * ${sourceName} (${versionsRange})\n`;
694
+ }
695
+ errorMessage += "\n";
696
+ }
697
+ if (directlyImportsIncompatibleFile.length > 0) {
698
+ errorMessage += `These files import other files that use a different and incompatible version of Solidity:
699
+
700
+ `;
701
+ for (const error of directlyImportsIncompatibleFile) {
702
+ const { sourceName } = error.file;
703
+ const { versionPragmas } = error.file.content;
704
+ const versionsRange = versionPragmas.join(" ");
705
+ const incompatibleDirectImportsFiles = error.extra?.incompatibleDirectImports ?? [];
706
+ const incompatibleDirectImports = incompatibleDirectImportsFiles.map((x) => `${x.sourceName} (${x.content.versionPragmas.join(" ")})`);
707
+ log(`File ${sourceName} imports files ${incompatibleDirectImportsFiles
708
+ .map((x) => x.sourceName)
709
+ .join(", ")} that use an incompatible version of Solidity`);
710
+ let directImportsText = "";
711
+ if (incompatibleDirectImports.length === 1) {
712
+ directImportsText = ` imports ${incompatibleDirectImports[0]}`;
713
+ }
714
+ else if (incompatibleDirectImports.length === 2) {
715
+ directImportsText = ` imports ${incompatibleDirectImports[0]} and ${incompatibleDirectImports[1]}`;
716
+ }
717
+ else if (incompatibleDirectImports.length > 2) {
718
+ const otherImportsCount = incompatibleDirectImports.length - 2;
719
+ directImportsText = ` imports ${incompatibleDirectImports[0]}, ${incompatibleDirectImports[1]} and ${otherImportsCount} other ${(0, strings_1.pluralize)(otherImportsCount, "file")}. Use --verbose to see the full list.`;
720
+ }
721
+ errorMessage += ` * ${sourceName} (${versionsRange})${directImportsText}\n`;
722
+ }
723
+ errorMessage += "\n";
724
+ }
725
+ if (indirectlyImportsIncompatibleFile.length > 0) {
726
+ errorMessage += `These files depend on other files that use a different and incompatible version of Solidity:
727
+
728
+ `;
729
+ for (const error of indirectlyImportsIncompatibleFile) {
730
+ const { sourceName } = error.file;
731
+ const { versionPragmas } = error.file.content;
732
+ const versionsRange = versionPragmas.join(" ");
733
+ const incompatibleIndirectImports = error.extra?.incompatibleIndirectImports ?? [];
734
+ const incompatibleImports = incompatibleIndirectImports.map(({ dependency }) => `${dependency.sourceName} (${dependency.content.versionPragmas.join(" ")})`);
735
+ for (const { dependency, path: dependencyPath, } of incompatibleIndirectImports) {
736
+ const dependencyPathText = [
737
+ sourceName,
738
+ ...dependencyPath.map((x) => x.sourceName),
739
+ dependency.sourceName,
740
+ ].join(" -> ");
741
+ log(`File ${sourceName} depends on file ${dependency.sourceName} that uses an incompatible version of Solidity
742
+ The dependency path is ${dependencyPathText}
743
+ `);
744
+ }
745
+ let indirectImportsText = "";
746
+ if (incompatibleImports.length === 1) {
747
+ indirectImportsText = ` depends on ${incompatibleImports[0]}`;
748
+ }
749
+ else if (incompatibleImports.length === 2) {
750
+ indirectImportsText = ` depends on ${incompatibleImports[0]} and ${incompatibleImports[1]}`;
751
+ }
752
+ else if (incompatibleImports.length > 2) {
753
+ const otherImportsCount = incompatibleImports.length - 2;
754
+ indirectImportsText = ` depends on ${incompatibleImports[0]}, ${incompatibleImports[1]} and ${otherImportsCount} other ${(0, strings_1.pluralize)(otherImportsCount, "file")}. Use --verbose to see the full list.`;
755
+ }
756
+ errorMessage += ` * ${sourceName} (${versionsRange})${indirectImportsText}\n`;
757
+ }
758
+ errorMessage += "\n";
759
+ }
760
+ if (other.length > 0) {
761
+ errorMessage += `These files and its dependencies cannot be compiled with your config. This can happen because they have incompatible Solidity pragmas, or don't match any of your configured Solidity compilers.
762
+
763
+ ${other.map((x) => ` * ${x.file.sourceName}`).join("\n")}
764
+
765
+ `;
766
+ }
767
+ errorMessage += `To learn more, run the command again with --verbose
768
+
769
+ Read about compiler configuration at https://hardhat.org/config
770
+ `;
771
+ return errorMessage;
772
+ });
773
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY_LOG_COMPILATION_RESULT)
774
+ .addParam("compilationJobs", undefined, undefined, config_env_1.types.any)
775
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
776
+ .setAction(async ({ compilationJobs }) => {
777
+ let count = 0;
778
+ const evmVersions = new Set();
779
+ const unknownEvmVersions = new Set();
780
+ for (const job of compilationJobs) {
781
+ count += job
782
+ .getResolvedFiles()
783
+ .filter((file) => job.emitsArtifacts(file)).length;
784
+ const solcVersion = job.getSolcConfig().version;
785
+ const evmTarget = job.getSolcConfig().settings?.evmVersion ??
786
+ (0, solc_info_1.getEvmVersionFromSolcVersion)(solcVersion);
787
+ if (evmTarget !== undefined) {
788
+ evmVersions.add(evmTarget);
789
+ }
790
+ else {
791
+ unknownEvmVersions.add(`unknown evm version for solc version ${solcVersion}`);
792
+ }
793
+ }
794
+ const targetVersionsList = Array.from(evmVersions)
795
+ // Alphabetically sort evm versions. The unknown ones are added at the end
796
+ .sort()
797
+ .concat(Array.from(unknownEvmVersions).sort());
798
+ if (count > 0) {
799
+ console.log(`Compiled ${count} Solidity ${(0, strings_1.pluralize)(count, "file")} successfully (evm ${(0, strings_1.pluralize)(targetVersionsList.length, "target", "targets")}: ${targetVersionsList.join(", ")}).`);
800
+ }
801
+ });
802
+ /**
803
+ * Main task for compiling the solidity files in the project.
804
+ *
805
+ * The main responsibility of this task is to orchestrate and connect most of
806
+ * the subtasks related to compiling solidity.
807
+ */
808
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_SOLIDITY)
809
+ .addParam("force", undefined, undefined, config_env_1.types.boolean)
810
+ .addParam("quiet", undefined, undefined, config_env_1.types.boolean)
811
+ .addParam("concurrency", undefined, DEFAULT_CONCURRENCY_LEVEL, config_env_1.types.int)
812
+ .setAction(async ({ force, quiet, concurrency, }, { artifacts, config, run }) => {
813
+ const rootPath = config.paths.root;
814
+ const sourcePaths = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS, { sourcePath: config.paths.sources });
815
+ const sourceNames = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES, {
816
+ rootPath,
817
+ sourcePaths,
818
+ });
819
+ const solidityFilesCachePath = (0, solidity_files_cache_1.getSolidityFilesCachePath)(config.paths);
820
+ let solidityFilesCache = await solidity_files_cache_1.SolidityFilesCache.readFromFile(solidityFilesCachePath);
821
+ const dependencyGraph = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH, { rootPath, sourceNames, solidityFilesCache });
822
+ solidityFilesCache = await invalidateCacheMissingArtifacts(solidityFilesCache, artifacts, dependencyGraph.getResolvedFiles());
823
+ const compilationJobsCreationResult = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS, {
824
+ dependencyGraph,
825
+ solidityFilesCache,
826
+ });
827
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_HANDLE_COMPILATION_JOBS_FAILURES, {
828
+ compilationJobsCreationErrors: compilationJobsCreationResult.errors,
829
+ });
830
+ const compilationJobs = compilationJobsCreationResult.jobs;
831
+ const filteredCompilationJobs = await run(task_names_1.TASK_COMPILE_SOLIDITY_FILTER_COMPILATION_JOBS, { compilationJobs, force, solidityFilesCache });
832
+ const mergedCompilationJobs = await run(task_names_1.TASK_COMPILE_SOLIDITY_MERGE_COMPILATION_JOBS, { compilationJobs: filteredCompilationJobs });
833
+ const { artifactsEmittedPerJob, } = await run(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE_JOBS, {
834
+ compilationJobs: mergedCompilationJobs,
835
+ quiet,
836
+ concurrency,
837
+ });
838
+ // update cache using the information about the emitted artifacts
839
+ for (const { compilationJob: compilationJob, artifactsEmittedPerFile: artifactsEmittedPerFile, } of artifactsEmittedPerJob) {
840
+ for (const { file, artifactsEmitted } of artifactsEmittedPerFile) {
841
+ solidityFilesCache.addFile(file.absolutePath, {
842
+ lastModificationDate: file.lastModificationDate.valueOf(),
843
+ contentHash: file.contentHash,
844
+ sourceName: file.sourceName,
845
+ solcConfig: compilationJob.getSolcConfig(),
846
+ imports: file.content.imports,
847
+ versionPragmas: file.content.versionPragmas,
848
+ artifacts: artifactsEmitted,
849
+ });
850
+ }
851
+ }
852
+ const allArtifactsEmittedPerFile = solidityFilesCache.getEntries();
853
+ // We know this is the actual implementation, so we use some
854
+ // non-public methods here.
855
+ const artifactsImpl = artifacts;
856
+ artifactsImpl.addValidArtifacts(allArtifactsEmittedPerFile);
857
+ await solidityFilesCache.writeToFile(solidityFilesCachePath);
858
+ await run(task_names_1.TASK_COMPILE_SOLIDITY_LOG_COMPILATION_RESULT, {
859
+ compilationJobs: mergedCompilationJobs,
860
+ quiet,
861
+ });
862
+ });
863
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_REMOVE_OBSOLETE_ARTIFACTS, async (_, { artifacts }) => {
864
+ // We know this is the actual implementation, so we use some
865
+ // non-public methods here.
866
+ const artifactsImpl = artifacts;
867
+ await artifactsImpl.removeObsoleteArtifacts();
868
+ });
869
+ /**
870
+ * Returns a list of compilation tasks.
871
+ *
872
+ * This is the task to override to add support for other languages.
873
+ */
874
+ (0, config_env_1.subtask)(task_names_1.TASK_COMPILE_GET_COMPILATION_TASKS, async () => {
875
+ return [task_names_1.TASK_COMPILE_SOLIDITY];
876
+ });
877
+ /**
878
+ * Main compile task.
879
+ *
880
+ * This is a meta-task that just gets all the compilation tasks and runs them.
881
+ * Right now there's only a "compile solidity" task.
882
+ */
883
+ (0, config_env_1.task)(task_names_1.TASK_COMPILE, "Compiles the entire project, building all artifacts")
884
+ .addFlag("force", "Force compilation ignoring cache")
885
+ .addFlag("quiet", "Makes the compilation process less verbose")
886
+ .addParam("concurrency", "Number of compilation jobs executed in parallel. Defaults to the number of CPU cores - 1", DEFAULT_CONCURRENCY_LEVEL, config_env_1.types.int)
887
+ .setAction(async (compilationArgs, { run }) => {
888
+ const compilationTasks = await run(task_names_1.TASK_COMPILE_GET_COMPILATION_TASKS);
889
+ for (const compilationTask of compilationTasks) {
890
+ await run(compilationTask, compilationArgs);
891
+ }
892
+ await run(task_names_1.TASK_COMPILE_REMOVE_OBSOLETE_ARTIFACTS);
893
+ });
894
+ /**
895
+ * If a file is present in the cache, but some of its artifacts are missing on
896
+ * disk, we remove it from the cache to force it to be recompiled.
897
+ */
898
+ async function invalidateCacheMissingArtifacts(solidityFilesCache, artifacts, resolvedFiles) {
899
+ const paths = new Set(await artifacts.getArtifactPaths());
900
+ for (const file of resolvedFiles) {
901
+ const cacheEntry = solidityFilesCache.getEntry(file.absolutePath);
902
+ if (cacheEntry === undefined) {
903
+ continue;
904
+ }
905
+ const { artifacts: emittedArtifacts } = cacheEntry;
906
+ for (const emittedArtifact of emittedArtifacts) {
907
+ const fqn = (0, contract_names_1.getFullyQualifiedName)(file.sourceName, emittedArtifact);
908
+ const path = artifacts.formArtifactPathFromFullyQualifiedName(fqn);
909
+ if (!paths.has(path)) {
910
+ log(`Invalidate cache for '${file.absolutePath}' because artifact '${fqn}' doesn't exist`);
911
+ solidityFilesCache.removeEntry(file.absolutePath);
912
+ break;
913
+ }
914
+ }
915
+ }
916
+ artifacts.clearCache?.();
917
+ return solidityFilesCache;
918
+ }
919
+ /**
920
+ * Checks if the given compilation job needs to be done.
921
+ */
922
+ function needsCompilation(job, cache) {
923
+ for (const file of job.getResolvedFiles()) {
924
+ const hasChanged = cache.hasFileChanged(file.absolutePath, file.contentHash,
925
+ // we only check if the solcConfig is different for files that
926
+ // emit artifacts
927
+ job.emitsArtifacts(file) ? job.getSolcConfig() : undefined);
928
+ if (hasChanged) {
929
+ return true;
930
+ }
931
+ }
932
+ return false;
933
+ }
934
+ function hasCompilationErrors(output) {
935
+ return output.errors?.some((x) => x.severity === "error");
936
+ }
937
+ /**
938
+ * This function returns a properly formatted Internal Compiler Error message.
939
+ *
940
+ * This is present due to a bug in Solidity. See: https://github.com/ethereum/solidity/issues/9926
941
+ *
942
+ * If the error is not an ICE, or if it's properly formatted, this function returns undefined.
943
+ */
944
+ function getFormattedInternalCompilerErrorMessage(error) {
945
+ if (error.formattedMessage.trim() !== "InternalCompilerError:") {
946
+ return;
947
+ }
948
+ // We trim any final `:`, as we found some at the end of the error messages,
949
+ // and then trim just in case a blank space was left
950
+ return `${error.type}: ${error.message}`.replace(/[:\s]*$/g, "").trim();
951
+ }
952
+ //# sourceMappingURL=compile.js.map