hardhat 3.8.0 → 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/src/config.d.ts.map +1 -1
  3. package/dist/src/config.js +6 -5
  4. package/dist/src/config.js.map +1 -1
  5. package/dist/src/hhu.d.ts +3 -0
  6. package/dist/src/hhu.d.ts.map +1 -0
  7. package/dist/src/hhu.js +14 -0
  8. package/dist/src/hhu.js.map +1 -0
  9. package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.d.ts.map +1 -1
  10. package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.js +4 -1
  11. package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.js.map +1 -1
  12. package/dist/src/internal/builtin-plugins/coverage/config.d.ts +6 -0
  13. package/dist/src/internal/builtin-plugins/coverage/config.d.ts.map +1 -0
  14. package/dist/src/internal/builtin-plugins/coverage/config.js +18 -0
  15. package/dist/src/internal/builtin-plugins/coverage/config.js.map +1 -0
  16. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.d.ts +4 -0
  17. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.d.ts.map +1 -0
  18. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.js +15 -0
  19. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.js.map +1 -0
  20. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.d.ts.map +1 -1
  21. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +10 -1
  22. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
  23. package/dist/src/internal/builtin-plugins/coverage/index.d.ts.map +1 -1
  24. package/dist/src/internal/builtin-plugins/coverage/index.js +1 -0
  25. package/dist/src/internal/builtin-plugins/coverage/index.js.map +1 -1
  26. package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts +20 -0
  27. package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts.map +1 -1
  28. package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.d.ts +2 -2
  29. package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.d.ts.map +1 -1
  30. package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js +21 -23
  31. package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js.map +1 -1
  32. package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.d.ts +2 -2
  33. package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.d.ts.map +1 -1
  34. package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js +21 -27
  35. package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js.map +1 -1
  36. package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.d.ts +3 -1
  37. package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.d.ts.map +1 -1
  38. package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.js +18 -10
  39. package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.js.map +1 -1
  40. package/dist/src/internal/builtin-plugins/hhu/index.d.ts +4 -0
  41. package/dist/src/internal/builtin-plugins/hhu/index.d.ts.map +1 -0
  42. package/dist/src/internal/builtin-plugins/hhu/index.js +9 -0
  43. package/dist/src/internal/builtin-plugins/hhu/index.js.map +1 -0
  44. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/index.d.ts +3 -0
  45. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/index.d.ts.map +1 -0
  46. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/index.js +8 -0
  47. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/index.js.map +1 -0
  48. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/zero-address.d.ts +4 -0
  49. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/zero-address.d.ts.map +1 -0
  50. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/zero-address.js +6 -0
  51. package/dist/src/internal/builtin-plugins/hhu/tasks/constants/zero-address.js.map +1 -0
  52. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/index.d.ts +3 -0
  53. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/index.d.ts.map +1 -0
  54. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/index.js +27 -0
  55. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/index.js.map +1 -0
  56. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/pad.d.ts +10 -0
  57. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/pad.d.ts.map +1 -0
  58. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/pad.js +31 -0
  59. package/dist/src/internal/builtin-plugins/hhu/tasks/convert/pad.js.map +1 -0
  60. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/block-number.d.ts +4 -0
  61. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/block-number.d.ts.map +1 -0
  62. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/block-number.js +17 -0
  63. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/block-number.js.map +1 -0
  64. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/index.d.ts +3 -0
  65. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/index.d.ts.map +1 -0
  66. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/index.js +8 -0
  67. package/dist/src/internal/builtin-plugins/hhu/tasks/fetch/index.js.map +1 -0
  68. package/dist/src/internal/builtin-plugins/hhu/tasks/index.d.ts +11 -0
  69. package/dist/src/internal/builtin-plugins/hhu/tasks/index.d.ts.map +1 -0
  70. package/dist/src/internal/builtin-plugins/hhu/tasks/index.js +20 -0
  71. package/dist/src/internal/builtin-plugins/hhu/tasks/index.js.map +1 -0
  72. package/dist/src/internal/builtin-plugins/hhu/tasks/utils-task.d.ts +13 -0
  73. package/dist/src/internal/builtin-plugins/hhu/tasks/utils-task.d.ts.map +1 -0
  74. package/dist/src/internal/builtin-plugins/hhu/tasks/utils-task.js +17 -0
  75. package/dist/src/internal/builtin-plugins/hhu/tasks/utils-task.js.map +1 -0
  76. package/dist/src/internal/builtin-plugins/hhu/types.d.ts +45 -0
  77. package/dist/src/internal/builtin-plugins/hhu/types.d.ts.map +1 -0
  78. package/dist/src/internal/builtin-plugins/hhu/types.js +2 -0
  79. package/dist/src/internal/builtin-plugins/hhu/types.js.map +1 -0
  80. package/dist/src/internal/builtin-plugins/index.d.ts.map +1 -1
  81. package/dist/src/internal/builtin-plugins/index.js +5 -0
  82. package/dist/src/internal/builtin-plugins/index.js.map +1 -1
  83. package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.d.ts +2 -1
  84. package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.d.ts.map +1 -1
  85. package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js +13 -10
  86. package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js.map +1 -1
  87. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts +1 -0
  88. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts.map +1 -1
  89. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js +17 -0
  90. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js.map +1 -1
  91. package/dist/src/internal/builtin-plugins/network-manager/index.d.ts.map +1 -1
  92. package/dist/src/internal/builtin-plugins/network-manager/index.js +2 -10
  93. package/dist/src/internal/builtin-plugins/network-manager/index.js.map +1 -1
  94. package/dist/src/internal/builtin-plugins/network-manager/network-option.d.ts +9 -0
  95. package/dist/src/internal/builtin-plugins/network-manager/network-option.d.ts.map +1 -0
  96. package/dist/src/internal/builtin-plugins/network-manager/network-option.js +15 -0
  97. package/dist/src/internal/builtin-plugins/network-manager/network-option.js.map +1 -0
  98. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/automatic-sender-handler.d.ts +4 -2
  99. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/automatic-sender-handler.d.ts.map +1 -1
  100. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/automatic-sender-handler.js +28 -6
  101. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/automatic-sender-handler.js.map +1 -1
  102. package/dist/src/internal/builtin-plugins/network-manager/type-validation.d.ts.map +1 -1
  103. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +10 -1
  104. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
  105. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.d.ts.map +1 -1
  106. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js +3 -0
  107. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js.map +1 -1
  108. package/dist/src/internal/builtin-plugins/solidity/source-names.d.ts +12 -0
  109. package/dist/src/internal/builtin-plugins/solidity/source-names.d.ts.map +1 -0
  110. package/dist/src/internal/builtin-plugins/solidity/source-names.js +18 -0
  111. package/dist/src/internal/builtin-plugins/solidity/source-names.js.map +1 -0
  112. package/dist/src/internal/builtin-plugins/solidity-test/config.d.ts.map +1 -1
  113. package/dist/src/internal/builtin-plugins/solidity-test/config.js +1 -4
  114. package/dist/src/internal/builtin-plugins/solidity-test/config.js.map +1 -1
  115. package/dist/src/internal/builtin-plugins/solidity-test/eip712/index.d.ts.map +1 -1
  116. package/dist/src/internal/builtin-plugins/solidity-test/eip712/index.js +7 -12
  117. package/dist/src/internal/builtin-plugins/solidity-test/eip712/index.js.map +1 -1
  118. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.d.ts.map +1 -1
  119. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js +3 -1
  120. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js.map +1 -1
  121. package/dist/src/internal/cli/help/get-global-help-string.d.ts +3 -1
  122. package/dist/src/internal/cli/help/get-global-help-string.d.ts.map +1 -1
  123. package/dist/src/internal/cli/help/get-global-help-string.js +3 -3
  124. package/dist/src/internal/cli/help/get-global-help-string.js.map +1 -1
  125. package/dist/src/internal/cli/help/get-help-string.d.ts +3 -1
  126. package/dist/src/internal/cli/help/get-help-string.d.ts.map +1 -1
  127. package/dist/src/internal/cli/help/get-help-string.js +4 -4
  128. package/dist/src/internal/cli/help/get-help-string.js.map +1 -1
  129. package/dist/src/internal/cli/help/utils.d.ts +3 -1
  130. package/dist/src/internal/cli/help/utils.d.ts.map +1 -1
  131. package/dist/src/internal/cli/help/utils.js +2 -2
  132. package/dist/src/internal/cli/help/utils.js.map +1 -1
  133. package/dist/src/internal/cli/hhu.d.ts +14 -0
  134. package/dist/src/internal/cli/hhu.d.ts.map +1 -0
  135. package/dist/src/internal/cli/hhu.js +184 -0
  136. package/dist/src/internal/cli/hhu.js.map +1 -0
  137. package/dist/src/internal/cli/main.d.ts +0 -25
  138. package/dist/src/internal/cli/main.d.ts.map +1 -1
  139. package/dist/src/internal/cli/main.js +23 -303
  140. package/dist/src/internal/cli/main.js.map +1 -1
  141. package/dist/src/internal/cli/parser.d.ts +25 -0
  142. package/dist/src/internal/cli/parser.d.ts.map +1 -0
  143. package/dist/src/internal/cli/parser.js +282 -0
  144. package/dist/src/internal/cli/parser.js.map +1 -0
  145. package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts +1 -1
  146. package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts.map +1 -1
  147. package/dist/src/internal/cli/telemetry/analytics/analytics.js +2 -1
  148. package/dist/src/internal/cli/telemetry/analytics/analytics.js.map +1 -1
  149. package/dist/src/internal/cli/telemetry/analytics/types.d.ts +1 -0
  150. package/dist/src/internal/cli/telemetry/analytics/types.d.ts.map +1 -1
  151. package/dist/src/internal/edr/context.d.ts.map +1 -1
  152. package/dist/src/internal/edr/context.js +25 -7
  153. package/dist/src/internal/edr/context.js.map +1 -1
  154. package/dist/src/internal/using-hardhat2-plugin-errors.d.ts +2 -2
  155. package/dist/src/internal/using-hardhat2-plugin-errors.d.ts.map +1 -1
  156. package/dist/src/internal/using-hardhat2-plugin-errors.js +7 -3
  157. package/dist/src/internal/using-hardhat2-plugin-errors.js.map +1 -1
  158. package/dist/src/internal/{builtin-plugins/solidity-test/eip712 → utils}/glob.d.ts +4 -0
  159. package/dist/src/internal/utils/glob.d.ts.map +1 -0
  160. package/dist/src/internal/{builtin-plugins/solidity-test/eip712 → utils}/glob.js +3 -3
  161. package/dist/src/internal/utils/glob.js.map +1 -0
  162. package/dist/src/plugins.d.ts.map +1 -1
  163. package/dist/src/plugins.js +3 -2
  164. package/dist/src/plugins.js.map +1 -1
  165. package/package.json +4 -4
  166. package/src/config.ts +17 -5
  167. package/src/hhu.ts +18 -0
  168. package/src/internal/builtin-plugins/artifacts/hook-handlers/hre.ts +11 -3
  169. package/src/internal/builtin-plugins/coverage/config.ts +28 -0
  170. package/src/internal/builtin-plugins/coverage/hook-handlers/config.ts +30 -0
  171. package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +15 -2
  172. package/src/internal/builtin-plugins/coverage/index.ts +1 -0
  173. package/src/internal/builtin-plugins/coverage/type-extensions.ts +24 -0
  174. package/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.ts +32 -32
  175. package/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.ts +32 -36
  176. package/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.ts +22 -9
  177. package/src/internal/builtin-plugins/hhu/index.ts +13 -0
  178. package/src/internal/builtin-plugins/hhu/tasks/constants/index.ts +18 -0
  179. package/src/internal/builtin-plugins/hhu/tasks/constants/zero-address.ts +9 -0
  180. package/src/internal/builtin-plugins/hhu/tasks/convert/index.ts +40 -0
  181. package/src/internal/builtin-plugins/hhu/tasks/convert/pad.ts +61 -0
  182. package/src/internal/builtin-plugins/hhu/tasks/fetch/block-number.ts +28 -0
  183. package/src/internal/builtin-plugins/hhu/tasks/fetch/index.ts +18 -0
  184. package/src/internal/builtin-plugins/hhu/tasks/index.ts +36 -0
  185. package/src/internal/builtin-plugins/hhu/tasks/utils-task.ts +29 -0
  186. package/src/internal/builtin-plugins/hhu/types.ts +57 -0
  187. package/src/internal/builtin-plugins/index.ts +6 -0
  188. package/src/internal/builtin-plugins/network-manager/edr/genesis-state.ts +22 -14
  189. package/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.ts +33 -0
  190. package/src/internal/builtin-plugins/network-manager/index.ts +3 -10
  191. package/src/internal/builtin-plugins/network-manager/network-option.ts +17 -0
  192. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/automatic-sender-handler.ts +39 -9
  193. package/src/internal/builtin-plugins/network-manager/type-validation.ts +14 -1
  194. package/src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts +3 -0
  195. package/src/internal/builtin-plugins/solidity/source-names.ts +19 -0
  196. package/src/internal/builtin-plugins/solidity-test/config.ts +1 -4
  197. package/src/internal/builtin-plugins/solidity-test/eip712/index.ts +8 -16
  198. package/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.ts +6 -1
  199. package/src/internal/cli/help/get-global-help-string.ts +3 -2
  200. package/src/internal/cli/help/get-help-string.ts +4 -3
  201. package/src/internal/cli/help/utils.ts +2 -1
  202. package/src/internal/cli/hhu.ts +298 -0
  203. package/src/internal/cli/main.ts +41 -495
  204. package/src/internal/cli/parser.ts +472 -0
  205. package/src/internal/cli/telemetry/analytics/analytics.ts +5 -1
  206. package/src/internal/cli/telemetry/analytics/types.ts +3 -0
  207. package/src/internal/edr/context.ts +39 -23
  208. package/src/internal/using-hardhat2-plugin-errors.ts +12 -3
  209. package/src/internal/{builtin-plugins/solidity-test/eip712 → utils}/glob.ts +3 -3
  210. package/src/plugins.ts +5 -2
  211. package/templates/hardhat-3/01-node-test-runner-viem/package.json +6 -6
  212. package/templates/hardhat-3/02-mocha-ethers/package.json +9 -9
  213. package/templates/hardhat-3/03-minimal/package.json +1 -1
  214. package/dist/src/internal/builtin-plugins/solidity-test/eip712/glob.d.ts.map +0 -1
  215. package/dist/src/internal/builtin-plugins/solidity-test/eip712/glob.js.map +0 -1
@@ -0,0 +1,282 @@
1
+ import { HardhatError, assertHardhatInvariant, } from "@nomicfoundation/hardhat-errors";
2
+ import { isCi } from "@nomicfoundation/hardhat-utils/ci";
3
+ import { kebabToCamelCase } from "@nomicfoundation/hardhat-utils/string";
4
+ import { ArgumentType, } from "../../types/arguments.js";
5
+ import { parseArgumentValue } from "../core/arguments.js";
6
+ import { isArgumentRequired } from "../core/tasks/utils.js";
7
+ export async function parseBuiltinGlobalOptions(cliArguments, usedCliArguments) {
8
+ let configPath;
9
+ let showStackTraces = isCi();
10
+ let help = false;
11
+ let version = false;
12
+ let init = false;
13
+ // TODO: Use parseGlobalOptions(BUILTIN_GLOBAL_OPTIONS_DEFINITIONS, ...) instead
14
+ for (let i = 0; i < cliArguments.length; i++) {
15
+ const arg = cliArguments[i];
16
+ if (arg === "--init") {
17
+ usedCliArguments[i] = true;
18
+ init = true;
19
+ continue;
20
+ }
21
+ if (arg === "--config") {
22
+ usedCliArguments[i] = true;
23
+ if (configPath !== undefined) {
24
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.DUPLICATED_NAME, {
25
+ name: "--config",
26
+ });
27
+ }
28
+ if (usedCliArguments[i + 1] === undefined ||
29
+ usedCliArguments[i + 1] === true) {
30
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.MISSING_CONFIG_FILE);
31
+ }
32
+ configPath = cliArguments[i + 1];
33
+ i++;
34
+ usedCliArguments[i] = true;
35
+ continue;
36
+ }
37
+ if (arg === "--show-stack-traces") {
38
+ usedCliArguments[i] = true;
39
+ showStackTraces = true;
40
+ continue;
41
+ }
42
+ if (arg === "--help" || arg === "-h") {
43
+ usedCliArguments[i] = true;
44
+ help = true;
45
+ continue;
46
+ }
47
+ if (arg === "--version") {
48
+ usedCliArguments[i] = true;
49
+ version = true;
50
+ continue;
51
+ }
52
+ }
53
+ if (init && configPath !== undefined) {
54
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.CANNOT_COMBINE_INIT_AND_CONFIG_PATH);
55
+ }
56
+ return { init, configPath, showStackTraces, help, version };
57
+ }
58
+ export async function parseGlobalOptions(globalOptionDefinitions, cliArguments, usedCliArguments) {
59
+ const globalOptions = {};
60
+ const optionDefinitions = new Map([...globalOptionDefinitions].map(([key, value]) => [key, value.option]));
61
+ parseOptions(cliArguments, usedCliArguments, optionDefinitions, globalOptions, true);
62
+ return globalOptions;
63
+ }
64
+ /**
65
+ * Parses the task from the cli args.
66
+ *
67
+ * @returns The task, or an array with the unrecognized task id.
68
+ * If no task id is provided, an empty array is returned.
69
+ */
70
+ export function parseTask(cliArguments, usedCliArguments, tasksMap) {
71
+ const taskOrId = getTaskFromCliArguments(cliArguments, usedCliArguments, tasksMap);
72
+ return taskOrId;
73
+ }
74
+ function getTaskFromCliArguments(cliArguments, usedCliArguments, tasksMap) {
75
+ const taskId = [];
76
+ let task;
77
+ for (let i = 0; i < cliArguments.length; i++) {
78
+ if (usedCliArguments[i]) {
79
+ continue;
80
+ }
81
+ const arg = cliArguments[i];
82
+ if (arg.startsWith("-")) {
83
+ /* A standalone '--' is ok because it is used to separate CLI tool arguments
84
+ * from task arguments, ensuring the tool passes subsequent options directly
85
+ * to the task. Everything after "--" should be considered as a positional
86
+ * argument. */
87
+ if (arg === "--" || task !== undefined) {
88
+ break;
89
+ }
90
+ /* At this point in the code, the global options have already been parsed, so
91
+ * the remaining options starting with '--' are task options. Hence, if no task
92
+ * is defined, it means that the option is not assigned to any task, and it's
93
+ * an error. */
94
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.UNRECOGNIZED_OPTION, {
95
+ option: arg,
96
+ });
97
+ }
98
+ if (task === undefined) {
99
+ task = tasksMap.get(arg);
100
+ if (task === undefined) {
101
+ return [arg]; // No task found
102
+ }
103
+ }
104
+ else {
105
+ const subtask = task.subtasks.get(arg);
106
+ if (subtask === undefined) {
107
+ break;
108
+ }
109
+ task = subtask;
110
+ }
111
+ usedCliArguments[i] = true;
112
+ taskId.push(arg);
113
+ }
114
+ if (task === undefined) {
115
+ return taskId;
116
+ }
117
+ return task;
118
+ }
119
+ export function parseTaskArguments(cliArguments, usedCliArguments, task) {
120
+ const taskArguments = {};
121
+ // Parse options
122
+ parseOptions(cliArguments, usedCliArguments, task.options, taskArguments);
123
+ parsePositionalAndVariadicArguments(cliArguments, usedCliArguments, task, taskArguments);
124
+ const unusedIndex = usedCliArguments.indexOf(false);
125
+ if (unusedIndex !== -1) {
126
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.UNUSED_ARGUMENT, {
127
+ value: cliArguments[unusedIndex],
128
+ });
129
+ }
130
+ return taskArguments;
131
+ }
132
+ /**
133
+ * Parses the raw arguments from the command line, returning an array of
134
+ * arguments. If an argument starts with "--" and contains "=" (i.e. "--option=123")
135
+ * it is split into two separate arguments: the option name and the option value.
136
+ */
137
+ export function parseRawArguments(rawArguments) {
138
+ return rawArguments.flatMap((arg) => {
139
+ if (arg.startsWith("--") && arg.includes("=")) {
140
+ const index = arg.indexOf("=");
141
+ const optionName = arg.substring(0, index);
142
+ const optionValue = arg.substring(index + 1);
143
+ return [optionName, optionValue];
144
+ }
145
+ return arg;
146
+ });
147
+ }
148
+ function parseOptions(cliArguments, usedCliArguments, optionDefinitions, providedArguments, ignoreUnknownOption = false) {
149
+ const optionDefinitionsByShortName = new Map();
150
+ for (const optionDefinition of optionDefinitions.values()) {
151
+ if (optionDefinition.shortName !== undefined) {
152
+ optionDefinitionsByShortName.set(optionDefinition.shortName, optionDefinition);
153
+ }
154
+ }
155
+ for (let i = 0; i < cliArguments.length; i++) {
156
+ if (usedCliArguments[i]) {
157
+ continue;
158
+ }
159
+ if (cliArguments[i] === "--") {
160
+ /* A standalone '--' is ok because it is used to separate CLI tool arguments
161
+ * from task arguments, ensuring the tool passes subsequent options directly
162
+ * to the task. Everything after "--" should be considered as a positional
163
+ * argument. */
164
+ break;
165
+ }
166
+ const arg = cliArguments[i];
167
+ let optionDefinition;
168
+ const providedByName = arg.startsWith("--");
169
+ const providedByShortName = !providedByName && arg.startsWith("-");
170
+ if (providedByName) {
171
+ const name = kebabToCamelCase(arg.substring(2));
172
+ optionDefinition = optionDefinitions.get(name);
173
+ }
174
+ else if (providedByShortName) {
175
+ const shortName = arg[1];
176
+ // Check if the short name is valid
177
+ if (Array.from(arg.substring(1)).some((c) => c !== shortName)) {
178
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.CANNOT_GROUP_OPTIONS, {
179
+ option: arg,
180
+ });
181
+ }
182
+ optionDefinition = optionDefinitionsByShortName.get(shortName);
183
+ }
184
+ else {
185
+ continue;
186
+ }
187
+ if (optionDefinition === undefined) {
188
+ if (ignoreUnknownOption === true) {
189
+ continue;
190
+ }
191
+ // Only throw an error when the argument is not a global option, because
192
+ // it might be a option related to a task
193
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.UNRECOGNIZED_OPTION, {
194
+ option: arg,
195
+ });
196
+ }
197
+ if (optionDefinition.hidden === true) {
198
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.NO_HIDDEN_OPTION_CLI, {
199
+ option: arg,
200
+ });
201
+ }
202
+ const optionName = optionDefinition.name;
203
+ // Check if the short name is valid again now that we know its type
204
+ // E.g. --flag --flag
205
+ const optionAlreadyProvided = providedArguments[optionName] !== undefined;
206
+ // E.g. -ff
207
+ const shortOptionGroupedAndRepeated = providedByShortName && arg.length > 2;
208
+ const isLevelOption = optionDefinition.type === ArgumentType.LEVEL;
209
+ if (optionAlreadyProvided ||
210
+ (shortOptionGroupedAndRepeated && !isLevelOption)) {
211
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.CANNOT_REPEAT_OPTIONS, {
212
+ option: arg,
213
+ type: optionDefinition.type,
214
+ });
215
+ }
216
+ usedCliArguments[i] = true;
217
+ if (optionDefinition.type === ArgumentType.FLAG) {
218
+ providedArguments[optionName] = true;
219
+ continue;
220
+ }
221
+ else if (optionDefinition.type === ArgumentType.LEVEL &&
222
+ providedByShortName) {
223
+ providedArguments[optionName] = arg.length - 1;
224
+ continue;
225
+ }
226
+ else if (usedCliArguments[i + 1] !== undefined &&
227
+ usedCliArguments[i + 1] === false) {
228
+ i++;
229
+ providedArguments[optionName] = parseArgumentValue(cliArguments[i], optionDefinition.type, optionName);
230
+ usedCliArguments[i] = true;
231
+ continue;
232
+ }
233
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.MISSING_VALUE_FOR_ARGUMENT, {
234
+ argument: arg,
235
+ });
236
+ }
237
+ }
238
+ function parsePositionalAndVariadicArguments(cliArguments, usedCliArguments, task, providedArguments) {
239
+ let argIndex = 0;
240
+ for (let i = 0; i < cliArguments.length; i++) {
241
+ if (usedCliArguments[i] === true) {
242
+ continue;
243
+ }
244
+ if (cliArguments[i] === "--") {
245
+ /* A standalone '--' is ok because it is used to separate CLI tool arguments
246
+ * from task arguments, ensuring the tool passes subsequent options directly
247
+ * to the task. Everything after "--" should be considered as a positional
248
+ * argument. */
249
+ usedCliArguments[i] = true;
250
+ continue;
251
+ }
252
+ const argumentDefinition = task.positionalArguments[argIndex];
253
+ if (argumentDefinition === undefined) {
254
+ break;
255
+ }
256
+ usedCliArguments[i] = true;
257
+ const formattedValue = parseArgumentValue(cliArguments[i], argumentDefinition.type, argumentDefinition.name);
258
+ if (argumentDefinition.isVariadic === false) {
259
+ providedArguments[argumentDefinition.name] = formattedValue;
260
+ argIndex++;
261
+ continue;
262
+ }
263
+ // Handle variadic arguments. No longer increment "argIndex" because there can
264
+ // only be one variadic argument, and it will consume all remaining arguments.
265
+ providedArguments[argumentDefinition.name] =
266
+ providedArguments[argumentDefinition.name] ?? [];
267
+ const variadicTaskArg = providedArguments[argumentDefinition.name];
268
+ assertHardhatInvariant(Array.isArray(variadicTaskArg), "Variadic argument values should be an array");
269
+ variadicTaskArg.push(formattedValue);
270
+ }
271
+ // Check if all the required arguments have been used
272
+ validateRequiredArguments(task.positionalArguments, providedArguments);
273
+ }
274
+ function validateRequiredArguments(argumentDefinitions, taskArguments) {
275
+ const missingRequiredArgument = argumentDefinitions.find(({ defaultValue, name, type }) => isArgumentRequired(type, defaultValue) &&
276
+ taskArguments[name] === undefined);
277
+ if (missingRequiredArgument === undefined) {
278
+ return;
279
+ }
280
+ throw new HardhatError(HardhatError.ERRORS.CORE.ARGUMENTS.MISSING_VALUE_FOR_ARGUMENT, { argument: missingRequiredArgument.name });
281
+ }
282
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/internal/cli/parser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export declare function sendTelemetryConfigAnalytics(enabled: boolean): Promise<boolean>;
2
- export declare function sendTaskAnalytics(taskId: string[]): Promise<boolean>;
2
+ export declare function sendTaskAnalytics(taskId: string[], command: "hardhat" | "hhu"): Promise<boolean>;
3
3
  export declare function sendProjectTypeAnalytics(hardhatVersion: "hardhat-2" | "hardhat-3", template: string): Promise<boolean>;
4
4
  //# sourceMappingURL=analytics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/analytics.ts"],"names":[],"mappings":"AAyBA,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAS1E;AAED,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,WAAW,GAAG,WAAW,EACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAUlB"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/analytics.ts"],"names":[],"mappings":"AAyBA,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,SAAS,GAAG,KAAK,GACzB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,WAAW,GAAG,WAAW,EACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAUlB"}
@@ -30,11 +30,12 @@ export async function sendTelemetryConfigAnalytics(enabled) {
30
30
  await createSubprocessToSendAnalytics(payload);
31
31
  return true;
32
32
  }
33
- export async function sendTaskAnalytics(taskId) {
33
+ export async function sendTaskAnalytics(taskId, command) {
34
34
  const taskAnalyticsEvent = {
35
35
  name: "task",
36
36
  params: {
37
37
  task: taskId.join(", "),
38
+ command,
38
39
  },
39
40
  };
40
41
  return await sendAnalytics(taskAnalyticsEvent);
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/analytics.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export type AnalyticsEvent = {
28
28
  name: "task";
29
29
  params: {
30
30
  task: string;
31
+ command: "hardhat" | "hhu";
31
32
  };
32
33
  } | {
33
34
  name: "init";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAGD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE;YAKN,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE;YACN,OAAO,EAAE,OAAO,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,cAAc,EAAE,WAAW,GAAG,WAAW,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEN,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,eAAe,EAAE;QACf,SAAS,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,cAAc,EAAE;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,eAAe,EAAE;YACf,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,EAAE;YACN,oBAAoB,EAAE,MAAM,CAAC;YAC7B,UAAU,EAAE,MAAM,CAAC;SACpB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;KAC9B,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAGD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE;YAKN,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE;YACN,OAAO,EAAE,OAAO,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QAGb,OAAO,EAAE,SAAS,GAAG,KAAK,CAAC;KAC5B,CAAC;CACH,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,cAAc,EAAE,WAAW,GAAG,WAAW,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEN,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,eAAe,EAAE;QACf,SAAS,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,cAAc,EAAE;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,eAAe,EAAE;YACf,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,EAAE;YACN,oBAAoB,EAAE,MAAM,CAAC;YAC7B,UAAU,EAAE,MAAM,CAAC;SACpB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;KAC9B,CAAC,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EASX,MAAM,sBAAsB,CAAC;AAI9B,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B/D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EASX,MAAM,sBAAsB,CAAC;AAQ9B,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC,CAiB/D"}
@@ -1,14 +1,32 @@
1
1
  import { EdrContext, GENERIC_CHAIN_TYPE, genericChainProviderFactory, L1_CHAIN_TYPE, l1ProviderFactory, l1SolidityTestRunnerFactory, OP_CHAIN_TYPE, opProviderFactory, opSolidityTestRunnerFactory, } from "@nomicfoundation/edr";
2
+ // We cache the initialization *promise* (assigned synchronously, before any
3
+ // await) rather than the resolved context. This way concurrent callers share a
4
+ // single in-flight initialization and always receive a fully-registered
5
+ // context, instead of racing on a half-initialized one.
2
6
  let _globalEdrContext;
3
7
  export async function getGlobalEdrContext() {
4
8
  if (_globalEdrContext === undefined) {
5
- _globalEdrContext = new EdrContext();
6
- await _globalEdrContext.registerProviderFactory(GENERIC_CHAIN_TYPE, genericChainProviderFactory());
7
- await _globalEdrContext.registerProviderFactory(L1_CHAIN_TYPE, l1ProviderFactory());
8
- await _globalEdrContext.registerProviderFactory(OP_CHAIN_TYPE, opProviderFactory());
9
- await _globalEdrContext.registerSolidityTestRunnerFactory(L1_CHAIN_TYPE, l1SolidityTestRunnerFactory());
10
- await _globalEdrContext.registerSolidityTestRunnerFactory(OP_CHAIN_TYPE, opSolidityTestRunnerFactory());
9
+ const context = createGlobalEdrContext();
10
+ _globalEdrContext = context;
11
+ // If initialization fails, clear the cached promise so a later call can
12
+ // retry instead of permanently returning a rejected promise. The identity
13
+ // guard prevents a stale rejection from wiping a newer promise created by
14
+ // a retry.
15
+ context.catch(() => {
16
+ if (_globalEdrContext === context) {
17
+ _globalEdrContext = undefined;
18
+ }
19
+ });
11
20
  }
12
- return _globalEdrContext;
21
+ return await _globalEdrContext;
22
+ }
23
+ async function createGlobalEdrContext() {
24
+ const context = new EdrContext();
25
+ await context.registerProviderFactory(GENERIC_CHAIN_TYPE, genericChainProviderFactory());
26
+ await context.registerProviderFactory(L1_CHAIN_TYPE, l1ProviderFactory());
27
+ await context.registerProviderFactory(OP_CHAIN_TYPE, opProviderFactory());
28
+ await context.registerSolidityTestRunnerFactory(L1_CHAIN_TYPE, l1SolidityTestRunnerFactory());
29
+ await context.registerSolidityTestRunnerFactory(OP_CHAIN_TYPE, opSolidityTestRunnerFactory());
30
+ return context;
13
31
  }
14
32
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,IAAI,iBAAyC,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,iBAAiB,GAAG,IAAI,UAAU,EAAE,CAAC;QACrC,MAAM,iBAAiB,CAAC,uBAAuB,CAC7C,kBAAkB,EAClB,2BAA2B,EAAE,CAC9B,CAAC;QACF,MAAM,iBAAiB,CAAC,uBAAuB,CAC7C,aAAa,EACb,iBAAiB,EAAE,CACpB,CAAC;QACF,MAAM,iBAAiB,CAAC,uBAAuB,CAC7C,aAAa,EACb,iBAAiB,EAAE,CACpB,CAAC;QACF,MAAM,iBAAiB,CAAC,iCAAiC,CACvD,aAAa,EACb,2BAA2B,EAAE,CAC9B,CAAC;QACF,MAAM,iBAAiB,CAAC,iCAAiC,CACvD,aAAa,EACb,2BAA2B,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,4EAA4E;AAC5E,+EAA+E;AAC/E,wEAAwE;AACxE,wDAAwD;AACxD,IAAI,iBAAkD,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACzC,iBAAiB,GAAG,OAAO,CAAC;QAE5B,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,WAAW;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YACjB,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;gBAClC,iBAAiB,GAAG,SAAS,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,iBAAiB,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IAEjC,MAAM,OAAO,CAAC,uBAAuB,CACnC,kBAAkB,EAClB,2BAA2B,EAAE,CAC9B,CAAC;IACF,MAAM,OAAO,CAAC,uBAAuB,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,CAAC,uBAAuB,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,CAAC,iCAAiC,CAC7C,aAAa,EACb,2BAA2B,EAAE,CAC9B,CAAC;IACF,MAAM,OAAO,CAAC,iCAAiC,CAC7C,aAAa,EACb,2BAA2B,EAAE,CAC9B,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { CustomError } from "@nomicfoundation/hardhat-utils/error";
2
2
  export declare class UsingHardhat2PluginError extends CustomError {
3
3
  readonly callerRelativePath: string | undefined;
4
- constructor();
4
+ constructor(apiName: string, migrationHint?: string);
5
5
  }
6
6
  /**
7
7
  * Returns the relative path of the file that called a deprecated Hardhat
@@ -31,5 +31,5 @@ export declare class UsingHardhat2PluginError extends CustomError {
31
31
  * Calling getCallerRelativePath() returns 'plugins/example-plugin/index.js'
32
32
  */
33
33
  export declare function getCallerRelativePath(depth?: number): string | undefined;
34
- export declare function throwUsingHardhat2PluginError(): never;
34
+ export declare function throwUsingHardhat2PluginError(apiName: string, migrationHint?: string): never;
35
35
  //# sourceMappingURL=using-hardhat2-plugin-errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"using-hardhat2-plugin-errors.d.ts","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,SAAgB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;;CAqBxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,GAAG,SAAS,CAyC3E;AAED,wBAAgB,6BAA6B,IAAI,KAAK,CAIrD"}
1
+ {"version":3,"file":"using-hardhat2-plugin-errors.d.ts","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,SAAgB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAC3C,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;CA0BpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,GAAG,SAAS,CAyC3E;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,KAAK,CAIP"}
@@ -4,7 +4,7 @@ import { CustomError } from "@nomicfoundation/hardhat-utils/error";
4
4
  import { shortenPath } from "@nomicfoundation/hardhat-utils/path";
5
5
  export class UsingHardhat2PluginError extends CustomError {
6
6
  callerRelativePath;
7
- constructor() {
7
+ constructor(apiName, migrationHint) {
8
8
  const callerPath = getCallerRelativePath();
9
9
  let message;
10
10
  if (callerPath !== undefined) {
@@ -15,6 +15,10 @@ This file is part of a Hardhat 2 plugin calling an API that was removed in Hardh
15
15
  else {
16
16
  message = `You are trying to use a Hardhat 2 plugin in a Hardhat 3 project.`;
17
17
  }
18
+ message += `\n\nThe removed API is: ${styleText("bold", apiName)}.`;
19
+ if (migrationHint !== undefined) {
20
+ message += `\n\n${migrationHint}`;
21
+ }
18
22
  super(message);
19
23
  // Use a non-enumerable property so that `console.error(error)` does not
20
24
  // print `{ callerRelativePath: '…' }` after the stack trace.
@@ -87,9 +91,9 @@ export function getCallerRelativePath(depth = 5) {
87
91
  return undefined;
88
92
  }
89
93
  }
90
- export function throwUsingHardhat2PluginError() {
94
+ export function throwUsingHardhat2PluginError(apiName, migrationHint) {
91
95
  /* eslint-disable-next-line no-restricted-syntax -- Intentionally throwing a
92
96
  custom error here so that we always print the stack trace */
93
- throw new UsingHardhat2PluginError();
97
+ throw new UsingHardhat2PluginError(apiName, migrationHint);
94
98
  }
95
99
  //# sourceMappingURL=using-hardhat2-plugin-errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"using-hardhat2-plugin-errors.js","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IACvC,kBAAkB,CAAqB;IACvD;QACE,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAE3C,IAAI,OAAe,CAAC;QACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,GAAG;;wFAEwE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACpH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,kEAAkE,CAAC;QAC/E,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAChD,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED;;;;;;;;WAQG;QACH,MAAM,sBAAsB,GAC1B,iDAAiD,CAAC;QAEpD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAExB,4CAA4C;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C;kEAC8D;IAC9D,MAAM,IAAI,wBAAwB,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"using-hardhat2-plugin-errors.js","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IACvC,kBAAkB,CAAqB;IACvD,YAAY,OAAe,EAAE,aAAsB;QACjD,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAE3C,IAAI,OAAe,CAAC;QACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,GAAG;;wFAEwE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACpH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,kEAAkE,CAAC;QAC/E,CAAC;QAED,OAAO,IAAI,2BAA2B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;QAEpE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,OAAO,aAAa,EAAE,CAAC;QACpC,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAChD,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED;;;;;;;;WAQG;QACH,MAAM,sBAAsB,GAC1B,iDAAiD,CAAC;QAEpD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAExB,4CAA4C;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAe,EACf,aAAsB;IAEtB;kEAC8D;IAC9D,MAAM,IAAI,wBAAwB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC"}
@@ -4,4 +4,8 @@
4
4
  * nothing. `exclude` then narrows the included set.
5
5
  */
6
6
  export declare function isPathSelected(path: string, include: string[], exclude: string[]): boolean;
7
+ /**
8
+ * Returns true if `value` matches at least one of the given glob patterns.
9
+ */
10
+ export declare function matchesAnyGlob(value: string, patterns: string[]): boolean;
7
11
  //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/glob.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAcT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE"}
@@ -9,10 +9,10 @@ export function isPathSelected(path, include, exclude) {
9
9
  if (include.length === 0) {
10
10
  return false;
11
11
  }
12
- if (!matchesAny(path, include)) {
12
+ if (!matchesAnyGlob(path, include)) {
13
13
  return false;
14
14
  }
15
- if (exclude.length > 0 && matchesAny(path, exclude)) {
15
+ if (exclude.length > 0 && matchesAnyGlob(path, exclude)) {
16
16
  return false;
17
17
  }
18
18
  return true;
@@ -20,7 +20,7 @@ export function isPathSelected(path, include, exclude) {
20
20
  /**
21
21
  * Returns true if `value` matches at least one of the given glob patterns.
22
22
  */
23
- function matchesAny(value, patterns) {
23
+ export function matchesAnyGlob(value, patterns) {
24
24
  for (const pattern of patterns) {
25
25
  if (getCompiledGlob(pattern).test(value)) {
26
26
  return true;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../src/internal/utils/glob.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAGjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,GAAG,CAE/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,GAAG,CAE7C"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAGjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,GAAG,CAE/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,GAAG,CAE7C"}
@@ -1,6 +1,7 @@
1
1
  export { HardhatPluginError } from "@nomicfoundation/hardhat-errors";
2
2
  import { registerLoadedPlugin } from "./internal/core/plugins/loaded-plugins-registry.js";
3
3
  import { throwUsingHardhat2PluginError } from "./internal/using-hardhat2-plugin-errors.js";
4
+ const LAZY_LOADING_MIGRATION_HINT = "To migrate a plugin to Hardhat 3, export a plugin object with definePlugin from hardhat/plugins and register lazy-loaded logic through dependencies, hook handlers, and task actions.";
4
5
  /**
5
6
  * Defines a Hardhat plugin.
6
7
  *
@@ -20,12 +21,12 @@ export function definePlugin(plugin) {
20
21
  * @deprecated This function is part of the Hardhat 2 plugin API.
21
22
  */
22
23
  export function lazyFunction(..._args) {
23
- throwUsingHardhat2PluginError();
24
+ throwUsingHardhat2PluginError("lazyFunction", LAZY_LOADING_MIGRATION_HINT);
24
25
  }
25
26
  /**
26
27
  * @deprecated This function is part of the Hardhat 2 plugin API.
27
28
  */
28
29
  export function lazyObject(..._args) {
29
- throwUsingHardhat2PluginError();
30
+ throwUsingHardhat2PluginError("lazyObject", LAZY_LOADING_MIGRATION_HINT);
30
31
  }
31
32
  //# sourceMappingURL=plugins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAIrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE3F;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAG,KAAU;IACxC,6BAA6B,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,KAAU;IACtC,6BAA6B,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAIrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE3F,MAAM,2BAA2B,GAC/B,uLAAuL,CAAC;AAE1L;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAG,KAAU;IACxC,6BAA6B,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,KAAU;IACtC,6BAA6B,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;AAC3E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat",
3
- "version": "3.8.0",
3
+ "version": "3.9.1",
4
4
  "description": "Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.",
5
5
  "homepage": "https://hardhat.org",
6
6
  "repository": {
@@ -77,9 +77,9 @@
77
77
  "@nomicfoundation/hardhat-test-utils": "^2.0.3"
78
78
  },
79
79
  "dependencies": {
80
- "@nomicfoundation/edr": "0.12.0",
81
- "@nomicfoundation/hardhat-errors": "^3.0.15",
82
- "@nomicfoundation/hardhat-utils": "^4.1.3",
80
+ "@nomicfoundation/edr": "0.12.1",
81
+ "@nomicfoundation/hardhat-errors": "^3.0.16",
82
+ "@nomicfoundation/hardhat-utils": "^4.1.4",
83
83
  "@nomicfoundation/hardhat-vendored": "^3.0.4",
84
84
  "@nomicfoundation/hardhat-zod-utils": "^3.0.5",
85
85
  "@nomicfoundation/solidity-analyzer": "^0.1.1",