hardhat 2.17.3 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +1 -1
  2. package/builtin-tasks/help.js +36 -5
  3. package/builtin-tasks/help.js.map +1 -1
  4. package/internal/cli/ArgumentsParser.d.ts +7 -2
  5. package/internal/cli/ArgumentsParser.d.ts.map +1 -1
  6. package/internal/cli/ArgumentsParser.js +72 -11
  7. package/internal/cli/ArgumentsParser.js.map +1 -1
  8. package/internal/cli/HelpPrinter.d.ts +7 -3
  9. package/internal/cli/HelpPrinter.d.ts.map +1 -1
  10. package/internal/cli/HelpPrinter.js +53 -22
  11. package/internal/cli/HelpPrinter.js.map +1 -1
  12. package/internal/cli/cli.js +69 -27
  13. package/internal/cli/cli.js.map +1 -1
  14. package/internal/core/config/config-env.d.ts +2 -1
  15. package/internal/core/config/config-env.d.ts.map +1 -1
  16. package/internal/core/config/config-env.js +7 -1
  17. package/internal/core/config/config-env.js.map +1 -1
  18. package/internal/core/errors-list.d.ts +42 -0
  19. package/internal/core/errors-list.d.ts.map +1 -1
  20. package/internal/core/errors-list.js +52 -2
  21. package/internal/core/errors-list.js.map +1 -1
  22. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
  23. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -6
  24. package/internal/core/runtime-environment.d.ts +5 -3
  25. package/internal/core/runtime-environment.d.ts.map +1 -1
  26. package/internal/core/runtime-environment.js +30 -7
  27. package/internal/core/runtime-environment.js.map +1 -1
  28. package/internal/core/tasks/dsl.d.ts +10 -1
  29. package/internal/core/tasks/dsl.d.ts.map +1 -1
  30. package/internal/core/tasks/dsl.js +64 -4
  31. package/internal/core/tasks/dsl.js.map +1 -1
  32. package/internal/core/tasks/task-definitions.d.ts +31 -4
  33. package/internal/core/tasks/task-definitions.d.ts.map +1 -1
  34. package/internal/core/tasks/task-definitions.js +51 -5
  35. package/internal/core/tasks/task-definitions.js.map +1 -1
  36. package/internal/core/tasks/util.d.ts +6 -0
  37. package/internal/core/tasks/util.d.ts.map +1 -0
  38. package/internal/core/tasks/util.js +19 -0
  39. package/internal/core/tasks/util.js.map +1 -0
  40. package/internal/hardhat-network/provider/modules/base.d.ts +17 -0
  41. package/internal/hardhat-network/provider/modules/base.d.ts.map +1 -0
  42. package/internal/hardhat-network/provider/modules/base.js +127 -0
  43. package/internal/hardhat-network/provider/modules/base.js.map +1 -0
  44. package/internal/hardhat-network/provider/modules/debug.d.ts +5 -3
  45. package/internal/hardhat-network/provider/modules/debug.d.ts.map +1 -1
  46. package/internal/hardhat-network/provider/modules/debug.js +21 -5
  47. package/internal/hardhat-network/provider/modules/debug.js.map +1 -1
  48. package/internal/hardhat-network/provider/modules/eth.d.ts +2 -7
  49. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  50. package/internal/hardhat-network/provider/modules/eth.js +12 -60
  51. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  52. package/internal/hardhat-network/provider/node.d.ts +1 -0
  53. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  54. package/internal/hardhat-network/provider/node.js +6 -0
  55. package/internal/hardhat-network/provider/node.js.map +1 -1
  56. package/internal/lib/hardhat-lib.d.ts.map +1 -1
  57. package/internal/lib/hardhat-lib.js +1 -1
  58. package/internal/lib/hardhat-lib.js.map +1 -1
  59. package/internal/sentry/anonymizer.d.ts.map +1 -1
  60. package/internal/sentry/anonymizer.js +3 -1
  61. package/internal/sentry/anonymizer.js.map +1 -1
  62. package/package.json +1 -1
  63. package/register.js +1 -1
  64. package/register.js.map +1 -1
  65. package/src/builtin-tasks/help.ts +47 -5
  66. package/src/internal/cli/ArgumentsParser.ts +79 -13
  67. package/src/internal/cli/HelpPrinter.ts +89 -24
  68. package/src/internal/cli/cli.ts +106 -38
  69. package/src/internal/core/config/config-env.ts +11 -0
  70. package/src/internal/core/errors-list.ts +56 -2
  71. package/src/internal/core/runtime-environment.ts +32 -7
  72. package/src/internal/core/tasks/dsl.ts +99 -4
  73. package/src/internal/core/tasks/task-definitions.ts +97 -3
  74. package/src/internal/core/tasks/util.ts +18 -0
  75. package/src/internal/hardhat-network/provider/modules/base.ts +156 -0
  76. package/src/internal/hardhat-network/provider/modules/debug.ts +50 -9
  77. package/src/internal/hardhat-network/provider/modules/eth.ts +16 -91
  78. package/src/internal/hardhat-network/provider/node.ts +12 -0
  79. package/src/internal/lib/hardhat-lib.ts +1 -0
  80. package/src/internal/sentry/anonymizer.ts +3 -1
  81. package/src/register.ts +1 -0
  82. package/src/types/runtime.ts +35 -1
  83. package/types/runtime.d.ts +24 -1
  84. package/types/runtime.d.ts.map +1 -1
package/README.md CHANGED
@@ -19,7 +19,7 @@ npm install --save-dev hardhat
19
19
  Once it's installed, just run this command and follow its instructions:
20
20
 
21
21
  ```
22
- npx hardhat
22
+ npx hardhat init
23
23
  ```
24
24
 
25
25
  ## Documentation
@@ -3,16 +3,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const HelpPrinter_1 = require("../internal/cli/HelpPrinter");
4
4
  const constants_1 = require("../internal/constants");
5
5
  const config_env_1 = require("../internal/core/config/config-env");
6
+ const errors_1 = require("../internal/core/errors");
7
+ const errors_list_1 = require("../internal/core/errors-list");
6
8
  const hardhat_params_1 = require("../internal/core/params/hardhat-params");
7
9
  const task_names_1 = require("./task-names");
8
10
  (0, config_env_1.task)(task_names_1.TASK_HELP, "Prints this message")
11
+ .addOptionalPositionalParam("scopeOrTask", "An optional scope or task to print more info about")
9
12
  .addOptionalPositionalParam("task", "An optional task to print more info about")
10
- .setAction(async ({ task: taskName }, { tasks, version }) => {
11
- const helpPrinter = new HelpPrinter_1.HelpPrinter(constants_1.HARDHAT_NAME, constants_1.HARDHAT_EXECUTABLE_NAME, version, hardhat_params_1.HARDHAT_PARAM_DEFINITIONS, tasks);
12
- if (taskName !== undefined) {
13
- helpPrinter.printTaskHelp(taskName);
13
+ .setAction(async ({ scopeOrTask, task: taskName }, { tasks, scopes, version }) => {
14
+ const helpPrinter = new HelpPrinter_1.HelpPrinter(constants_1.HARDHAT_NAME, constants_1.HARDHAT_EXECUTABLE_NAME, version, hardhat_params_1.HARDHAT_PARAM_DEFINITIONS, tasks, scopes);
15
+ if (scopeOrTask === undefined) {
16
+ // no params, print global help
17
+ helpPrinter.printGlobalHelp();
14
18
  return;
15
19
  }
16
- helpPrinter.printGlobalHelp();
20
+ const taskDefinition = tasks[scopeOrTask];
21
+ if (taskDefinition !== undefined) {
22
+ // the first param is a valid task
23
+ helpPrinter.printTaskHelp(tasks[scopeOrTask]);
24
+ return;
25
+ }
26
+ const scopeDefinition = scopes[scopeOrTask];
27
+ if (scopeDefinition === undefined) {
28
+ // if the first parameter is neither a task nor a scope,
29
+ // we don't know what the user was trying to print,
30
+ // so we assume that it's an unrecognized task
31
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_TASK, {
32
+ task: scopeOrTask,
33
+ });
34
+ }
35
+ if (taskName === undefined) {
36
+ // if the second parameter is not present, print scope help
37
+ helpPrinter.printScopeHelp(scopeDefinition);
38
+ return;
39
+ }
40
+ const scopedTaskDefinition = scopeDefinition.tasks[taskName];
41
+ if (scopedTaskDefinition === undefined) {
42
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_SCOPED_TASK, {
43
+ scope: scopeOrTask,
44
+ task: taskName,
45
+ });
46
+ }
47
+ helpPrinter.printTaskHelp(scopedTaskDefinition);
17
48
  });
18
49
  //# sourceMappingURL=help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/builtin-tasks/help.ts"],"names":[],"mappings":";;AAAA,6DAA0D;AAC1D,qDAA8E;AAC9E,mEAA0D;AAC1D,2EAAmF;AAEnF,6CAAyC;AAEzC,IAAA,iBAAI,EAAC,sBAAS,EAAE,qBAAqB,CAAC;KACnC,0BAA0B,CACzB,MAAM,EACN,2CAA2C,CAC5C;KACA,SAAS,CACR,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,IAAI,yBAAW,CACjC,wBAAY,EACZ,mCAAuB,EACvB,OAAO,EACP,0CAAyB,EACzB,KAAK,CACN,CAAC;IAEF,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO;KACR;IAED,WAAW,CAAC,eAAe,EAAE,CAAC;AAChC,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/builtin-tasks/help.ts"],"names":[],"mappings":";;AAAA,6DAA0D;AAC1D,qDAA8E;AAC9E,mEAA0D;AAC1D,oDAAuD;AACvD,8DAAsD;AACtD,2EAAmF;AAEnF,6CAAyC;AAEzC,IAAA,iBAAI,EAAC,sBAAS,EAAE,qBAAqB,CAAC;KACnC,0BAA0B,CACzB,aAAa,EACb,oDAAoD,CACrD;KACA,0BAA0B,CACzB,MAAM,EACN,2CAA2C,CAC5C;KACA,SAAS,CACR,KAAK,EACH,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAA2C,EACxE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAC1B,EAAE;IACF,MAAM,WAAW,GAAG,IAAI,yBAAW,CACjC,wBAAY,EACZ,mCAAuB,EACvB,OAAO,EACP,0CAAyB,EACzB,KAAK,EACL,MAAM,CACP,CAAC;IAEF,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,+BAA+B;QAC/B,WAAW,CAAC,eAAe,EAAE,CAAC;QAC9B,OAAO;KACR;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,kCAAkC;QAClC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9C,OAAO;KACR;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,eAAe,KAAK,SAAS,EAAE;QACjC,wDAAwD;QACxD,mDAAmD;QACnD,8CAA8C;QAC9C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE;YACzD,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;KACJ;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,2DAA2D;QAC3D,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC5C,OAAO;KACR;IAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,oBAAoB,KAAK,SAAS,EAAE;QACtC,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,SAAS,CAAC,wBAAwB,EAAE;YAChE,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;KACJ;IAED,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAClD,CAAC,CACF,CAAC"}
@@ -1,11 +1,16 @@
1
- import { HardhatArguments, HardhatParamDefinitions, TaskArguments, TaskDefinition } from "../../types";
1
+ import { HardhatArguments, HardhatParamDefinitions, ScopesMap, TaskArguments, TaskDefinition, TasksMap } from "../../types";
2
2
  export declare class ArgumentsParser {
3
3
  static readonly PARAM_PREFIX = "--";
4
4
  static paramNameToCLA(paramName: string): string;
5
5
  static cLAToParamName(cLA: string): string;
6
6
  parseHardhatArguments(hardhatParamDefinitions: HardhatParamDefinitions, envVariableArguments: HardhatArguments, rawCLAs: string[]): {
7
7
  hardhatArguments: HardhatArguments;
8
- taskName?: string;
8
+ scopeOrTaskName: string | undefined;
9
+ allUnparsedCLAs: string[];
10
+ };
11
+ parseScopeAndTaskNames(allUnparsedCLAs: string[], taskDefinitions: TasksMap, scopeDefinitions: ScopesMap): {
12
+ scopeName?: string;
13
+ taskName: string;
9
14
  unparsedCLAs: string[];
10
15
  };
11
16
  parseTaskArguments(taskDefinition: TaskDefinition, rawCLAs: string[]): TaskArguments;
@@ -1 +1 @@
1
- {"version":3,"file":"ArgumentsParser.d.ts","sourceRoot":"","sources":["../../src/internal/cli/ArgumentsParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,uBAAuB,EAGvB,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,qBAAa,eAAe;IAC1B,gBAAuB,YAAY,QAAQ;WAE7B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;WAUzC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAqB1C,qBAAqB,CAC1B,uBAAuB,EAAE,uBAAuB,EAChD,oBAAoB,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM,EAAE,GAChB;QACD,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;IAuDM,kBAAkB,CACvB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,EAAE,GAChB,aAAa;IAYhB,OAAO,CAAC,wBAAwB;IAmChC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,yBAAyB;CAgDlC"}
1
+ {"version":3,"file":"ArgumentsParser.d.ts","sourceRoot":"","sources":["../../src/internal/cli/ArgumentsParser.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAChB,uBAAuB,EAGvB,SAAS,EACT,aAAa,EACb,cAAc,EACd,QAAQ,EACT,MAAM,aAAa,CAAC;AAIrB,qBAAa,eAAe;IAC1B,gBAAuB,YAAY,QAAQ;WAE7B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;WAUzC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAqB1C,qBAAqB,CAC1B,uBAAuB,EAAE,uBAAuB,EAChD,oBAAoB,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM,EAAE,GAChB;QACD,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B;IAwDM,sBAAsB,CAC3B,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,QAAQ,EACzB,gBAAgB,EAAE,SAAS,GAC1B;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;IAsDM,kBAAkB,CACvB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,EAAE,GAChB,aAAa;IAYhB,OAAO,CAAC,wBAAwB;IAmChC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,yBAAyB;CAgDlC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArgumentsParser = void 0;
4
+ const task_names_1 = require("../../builtin-tasks/task-names");
4
5
  const errors_1 = require("../core/errors");
5
6
  const errors_list_1 = require("../core/errors-list");
6
7
  class ArgumentsParser {
@@ -29,34 +30,94 @@ class ArgumentsParser {
29
30
  }
30
31
  parseHardhatArguments(hardhatParamDefinitions, envVariableArguments, rawCLAs) {
31
32
  const hardhatArguments = {};
32
- let taskName;
33
- const unparsedCLAs = [];
33
+ let scopeOrTaskName;
34
+ const allUnparsedCLAs = [];
34
35
  for (let i = 0; i < rawCLAs.length; i++) {
35
36
  const arg = rawCLAs[i];
36
- if (taskName === undefined) {
37
+ if (scopeOrTaskName === undefined) {
37
38
  if (!this._hasCLAParamNameFormat(arg)) {
38
- taskName = arg;
39
+ scopeOrTaskName = arg;
40
+ allUnparsedCLAs.push(arg);
39
41
  continue;
40
42
  }
41
43
  if (!this._isCLAParamName(arg, hardhatParamDefinitions)) {
42
44
  throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_COMMAND_LINE_ARG, { argument: arg });
43
45
  }
44
- i = this._parseArgumentAt(rawCLAs, i, hardhatParamDefinitions, hardhatArguments, taskName);
46
+ i = this._parseArgumentAt(rawCLAs, i, hardhatParamDefinitions, hardhatArguments, scopeOrTaskName);
45
47
  }
46
48
  else {
47
49
  if (!this._isCLAParamName(arg, hardhatParamDefinitions)) {
48
- unparsedCLAs.push(arg);
50
+ allUnparsedCLAs.push(arg);
49
51
  continue;
50
52
  }
51
- i = this._parseArgumentAt(rawCLAs, i, hardhatParamDefinitions, hardhatArguments, taskName);
53
+ i = this._parseArgumentAt(rawCLAs, i, hardhatParamDefinitions, hardhatArguments, scopeOrTaskName);
52
54
  }
53
55
  }
54
56
  return {
55
57
  hardhatArguments: this._addHardhatDefaultArguments(hardhatParamDefinitions, envVariableArguments, hardhatArguments),
56
- taskName,
57
- unparsedCLAs,
58
+ scopeOrTaskName,
59
+ allUnparsedCLAs,
58
60
  };
59
61
  }
62
+ parseScopeAndTaskNames(allUnparsedCLAs, taskDefinitions, scopeDefinitions) {
63
+ const [firstCLA, secondCLA] = allUnparsedCLAs;
64
+ if (allUnparsedCLAs.length === 0) {
65
+ return {
66
+ taskName: task_names_1.TASK_HELP,
67
+ unparsedCLAs: [],
68
+ };
69
+ }
70
+ else if (allUnparsedCLAs.length === 1) {
71
+ if (scopeDefinitions[firstCLA] !== undefined) {
72
+ // this is a bit of a hack, but it's the easiest way to print
73
+ // the help of a scope when no task is specified
74
+ return {
75
+ taskName: task_names_1.TASK_HELP,
76
+ unparsedCLAs: [firstCLA],
77
+ };
78
+ }
79
+ else if (taskDefinitions[firstCLA] !== undefined) {
80
+ return {
81
+ taskName: firstCLA,
82
+ unparsedCLAs: allUnparsedCLAs.slice(1),
83
+ };
84
+ }
85
+ else {
86
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_TASK, {
87
+ task: firstCLA,
88
+ });
89
+ }
90
+ }
91
+ else {
92
+ const scopeDefinition = scopeDefinitions[firstCLA];
93
+ if (scopeDefinition !== undefined) {
94
+ if (scopeDefinition.tasks[secondCLA] !== undefined) {
95
+ return {
96
+ scopeName: firstCLA,
97
+ taskName: secondCLA,
98
+ unparsedCLAs: allUnparsedCLAs.slice(2),
99
+ };
100
+ }
101
+ else {
102
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_SCOPED_TASK, {
103
+ scope: firstCLA,
104
+ task: secondCLA,
105
+ });
106
+ }
107
+ }
108
+ else if (taskDefinitions[firstCLA] !== undefined) {
109
+ return {
110
+ taskName: firstCLA,
111
+ unparsedCLAs: allUnparsedCLAs.slice(1),
112
+ };
113
+ }
114
+ else {
115
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_TASK, {
116
+ task: firstCLA,
117
+ });
118
+ }
119
+ }
120
+ }
60
121
  parseTaskArguments(taskDefinition, rawCLAs) {
61
122
  const { paramArguments, rawPositionalArguments } = this._parseTaskParamArguments(taskDefinition, rawCLAs);
62
123
  const positionalArguments = this._parsePositionalParamArgs(rawPositionalArguments, taskDefinition.positionalParamDefinitions);
@@ -112,7 +173,7 @@ class ArgumentsParser {
112
173
  _hasCLAParamNameFormat(str) {
113
174
  return str.startsWith(ArgumentsParser.PARAM_PREFIX);
114
175
  }
115
- _parseArgumentAt(rawCLAs, index, paramDefinitions, parsedArguments, taskName) {
176
+ _parseArgumentAt(rawCLAs, index, paramDefinitions, parsedArguments, scopeOrTaskName) {
116
177
  const claArg = rawCLAs[index];
117
178
  const paramName = ArgumentsParser.cLAToParamName(claArg);
118
179
  const definition = paramDefinitions[paramName];
@@ -130,7 +191,7 @@ class ArgumentsParser {
130
191
  if (value === undefined) {
131
192
  throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.MISSING_TASK_ARGUMENT, {
132
193
  param: ArgumentsParser.paramNameToCLA(paramName),
133
- task: taskName ?? "help",
194
+ task: scopeOrTaskName ?? "help",
134
195
  });
135
196
  }
136
197
  // We only parse the arguments of non-subtasks, and those only
@@ -1 +1 @@
1
- {"version":3,"file":"ArgumentsParser.js","sourceRoot":"","sources":["../../src/internal/cli/ArgumentsParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArgumentsParser.js","sourceRoot":"","sources":["../../src/internal/cli/ArgumentsParser.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,17 @@
1
- import { HardhatParamDefinitions, TasksMap } from "../../types";
1
+ import { HardhatParamDefinitions, ScopeDefinition, ScopesMap, TaskDefinition, TasksMap } from "../../types";
2
2
  export declare class HelpPrinter {
3
3
  private readonly _programName;
4
4
  private readonly _executableName;
5
5
  private readonly _version;
6
6
  private readonly _hardhatParamDefinitions;
7
7
  private readonly _tasks;
8
- constructor(_programName: string, _executableName: string, _version: string, _hardhatParamDefinitions: HardhatParamDefinitions, _tasks: TasksMap);
8
+ private readonly _scopes;
9
+ constructor(_programName: string, _executableName: string, _version: string, _hardhatParamDefinitions: HardhatParamDefinitions, _tasks: TasksMap, _scopes: ScopesMap);
9
10
  printGlobalHelp(includeSubtasks?: boolean): void;
10
- printTaskHelp(taskName: string): void;
11
+ printScopeHelp(scopeDefinition: ScopeDefinition, includeSubtasks?: boolean): void;
12
+ printTaskHelp(taskDefinition: TaskDefinition): void;
13
+ private _printTasks;
14
+ private _printScopes;
11
15
  private _getParamValueDescription;
12
16
  private _getParamsList;
13
17
  private _getPositionalParamsList;
@@ -1 +1 @@
1
- {"version":3,"file":"HelpPrinter.d.ts","sourceRoot":"","sources":["../../src/internal/cli/HelpPrinter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAGvB,QAAQ,EACT,MAAM,aAAa,CAAC;AAMrB,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAJN,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,wBAAwB,EAAE,uBAAuB,EACjD,MAAM,EAAE,QAAQ;IAG5B,eAAe,CAAC,eAAe,UAAQ;IAqCvC,aAAa,CAAC,QAAQ,EAAE,MAAM;IAgDrC,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,4BAA4B;CAuBrC"}
1
+ {"version":3,"file":"HelpPrinter.d.ts","sourceRoot":"","sources":["../../src/internal/cli/HelpPrinter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAGvB,eAAe,EACf,SAAS,EACT,cAAc,EACd,QAAQ,EACT,MAAM,aAAa,CAAC;AAMrB,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBALP,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,wBAAwB,EAAE,uBAAuB,EACjD,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,SAAS;IAG9B,eAAe,CAAC,eAAe,UAAQ;IA4BvC,cAAc,CACnB,eAAe,EAAE,eAAe,EAChC,eAAe,UAAQ;IA4BlB,aAAa,CAAC,cAAc,EAAE,cAAc;IA2CnD,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,4BAA4B;CAuBrC"}
@@ -5,47 +5,50 @@ const errors_1 = require("../core/errors");
5
5
  const errors_list_1 = require("../core/errors-list");
6
6
  const ArgumentsParser_1 = require("./ArgumentsParser");
7
7
  class HelpPrinter {
8
- constructor(_programName, _executableName, _version, _hardhatParamDefinitions, _tasks) {
8
+ constructor(_programName, _executableName, _version, _hardhatParamDefinitions, _tasks, _scopes) {
9
9
  this._programName = _programName;
10
10
  this._executableName = _executableName;
11
11
  this._version = _version;
12
12
  this._hardhatParamDefinitions = _hardhatParamDefinitions;
13
13
  this._tasks = _tasks;
14
+ this._scopes = _scopes;
14
15
  }
15
16
  printGlobalHelp(includeSubtasks = false) {
16
17
  console.log(`${this._programName} version ${this._version}\n`);
17
- console.log(`Usage: ${this._executableName} [GLOBAL OPTIONS] <TASK> [TASK OPTIONS]\n`);
18
+ console.log(`Usage: ${this._executableName} [GLOBAL OPTIONS] [SCOPE] <TASK> [TASK OPTIONS]\n`);
18
19
  console.log("GLOBAL OPTIONS:\n");
19
- this._printParamDetails(this._hardhatParamDefinitions);
20
+ let length = this._printParamDetails(this._hardhatParamDefinitions);
20
21
  console.log("\n\nAVAILABLE TASKS:\n");
21
- const tasksToShow = {};
22
- for (const [taskName, taskDefinition] of Object.entries(this._tasks)) {
23
- if (includeSubtasks || !taskDefinition.isSubtask) {
24
- tasksToShow[taskName] = taskDefinition;
25
- }
26
- }
27
- const nameLength = Object.keys(tasksToShow)
28
- .map((n) => n.length)
29
- .reduce((a, b) => Math.max(a, b), 0);
30
- for (const name of Object.keys(tasksToShow).sort()) {
31
- const { description = "" } = this._tasks[name];
32
- console.log(` ${name.padEnd(nameLength)}\t${description}`);
22
+ length = this._printTasks(this._tasks, includeSubtasks, length);
23
+ if (Object.keys(this._scopes).length > 0) {
24
+ console.log("\n\nAVAILABLE TASK SCOPES:\n");
25
+ this._printScopes(this._scopes, length);
33
26
  }
34
27
  console.log("");
35
- console.log(`To get help for a specific task run: npx ${this._executableName} help [task]\n`);
28
+ console.log(`To get help for a specific task run: npx ${this._executableName} help [SCOPE] <TASK>\n`);
36
29
  }
37
- printTaskHelp(taskName) {
38
- const taskDefinition = this._tasks[taskName];
39
- if (taskDefinition === undefined) {
40
- throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_TASK, {
41
- task: taskName,
30
+ printScopeHelp(scopeDefinition, includeSubtasks = false) {
31
+ const name = scopeDefinition.name;
32
+ const description = scopeDefinition.description ?? "";
33
+ console.log(`${this._programName} version ${this._version}`);
34
+ console.log(`\nUsage: hardhat [GLOBAL OPTIONS] ${name} <TASK> [TASK OPTIONS]`);
35
+ console.log(`\nAVAILABLE TASKS:\n`);
36
+ if (this._scopes[name] === undefined) {
37
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_SCOPE, {
38
+ scope: name,
42
39
  });
43
40
  }
41
+ this._printTasks(this._scopes[name].tasks, includeSubtasks);
42
+ console.log(`\n${name}: ${description}`);
43
+ console.log(`\nFor global options help run: ${this._executableName} help\n`);
44
+ }
45
+ printTaskHelp(taskDefinition) {
44
46
  const { description = "", name, paramDefinitions, positionalParamDefinitions, } = taskDefinition;
45
47
  console.log(`${this._programName} version ${this._version}\n`);
46
48
  const paramsList = this._getParamsList(paramDefinitions);
47
49
  const positionalParamsList = this._getPositionalParamsList(positionalParamDefinitions);
48
- console.log(`Usage: ${this._executableName} [GLOBAL OPTIONS] ${name}${paramsList}${positionalParamsList}\n`);
50
+ const scope = taskDefinition.scope !== undefined ? `${taskDefinition.scope} ` : "";
51
+ console.log(`Usage: ${this._executableName} [GLOBAL OPTIONS] ${scope}${name}${paramsList}${positionalParamsList}\n`);
49
52
  if (Object.keys(paramDefinitions).length > 0) {
50
53
  console.log("OPTIONS:\n");
51
54
  this._printParamDetails(paramDefinitions);
@@ -59,6 +62,33 @@ class HelpPrinter {
59
62
  console.log(`${name}: ${description}\n`);
60
63
  console.log(`For global options help run: ${this._executableName} help\n`);
61
64
  }
65
+ _printTasks(tasksMap, includeSubtasks, length = 0) {
66
+ const taskNameList = Object.entries(tasksMap)
67
+ .filter(([, taskDefinition]) => includeSubtasks || !taskDefinition.isSubtask)
68
+ .map(([taskName]) => taskName)
69
+ .sort();
70
+ const nameLength = taskNameList
71
+ .map((n) => n.length)
72
+ .reduce((a, b) => Math.max(a, b), length);
73
+ for (const name of taskNameList) {
74
+ const { description = "" } = tasksMap[name];
75
+ console.log(` ${name.padEnd(nameLength)}\t${description}`);
76
+ }
77
+ return nameLength;
78
+ }
79
+ _printScopes(scopesMap, length) {
80
+ const scopeNamesList = Object.entries(scopesMap)
81
+ .map(([scopeName]) => scopeName)
82
+ .sort();
83
+ const nameLength = scopeNamesList
84
+ .map((n) => n.length)
85
+ .reduce((a, b) => Math.max(a, b), length);
86
+ for (const name of scopeNamesList) {
87
+ const { description = "" } = scopesMap[name];
88
+ console.log(` ${name.padEnd(nameLength)}\t${description}`);
89
+ }
90
+ return nameLength;
91
+ }
62
92
  _getParamValueDescription(paramDefinition) {
63
93
  return `<${paramDefinition.type.name.toUpperCase()}>`;
64
94
  }
@@ -114,6 +144,7 @@ class HelpPrinter {
114
144
  }
115
145
  console.log(msg);
116
146
  }
147
+ return paramsNameLength;
117
148
  }
118
149
  _printPositionalParamDetails(positionalParamDefinitions) {
119
150
  const paramsNameLength = positionalParamDefinitions
@@ -1 +1 @@
1
- {"version":3,"file":"HelpPrinter.js","sourceRoot":"","sources":["../../src/internal/cli/HelpPrinter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HelpPrinter.js","sourceRoot":"","sources":["../../src/internal/cli/HelpPrinter.ts"],"names":[],"mappings":"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"}
@@ -79,7 +79,7 @@ async function main() {
79
79
  try {
80
80
  const envVariableArguments = (0, env_variables_1.getEnvHardhatArguments)(hardhat_params_1.HARDHAT_PARAM_DEFINITIONS, process.env);
81
81
  const argumentsParser = new ArgumentsParser_1.ArgumentsParser();
82
- const { hardhatArguments, taskName: parsedTaskName, unparsedCLAs, } = argumentsParser.parseHardhatArguments(hardhat_params_1.HARDHAT_PARAM_DEFINITIONS, envVariableArguments, process.argv.slice(2));
82
+ const { hardhatArguments, scopeOrTaskName, allUnparsedCLAs } = argumentsParser.parseHardhatArguments(hardhat_params_1.HARDHAT_PARAM_DEFINITIONS, envVariableArguments, process.argv.slice(2));
83
83
  if (hardhatArguments.verbose) {
84
84
  reporter_1.Reporter.setVerbose(true);
85
85
  debug_1.default.enable("hardhat*");
@@ -93,22 +93,29 @@ async function main() {
93
93
  await printVersionMessage();
94
94
  return;
95
95
  }
96
- if (hardhatArguments.config === undefined && !(0, project_structure_1.isCwdInsideProject)()) {
97
- if (process.stdout.isTTY === true ||
98
- process.env.HARDHAT_CREATE_JAVASCRIPT_PROJECT_WITH_DEFAULTS !==
99
- undefined ||
100
- process.env.HARDHAT_CREATE_TYPESCRIPT_PROJECT_WITH_DEFAULTS !==
101
- undefined) {
102
- await (0, project_creation_1.createProject)();
96
+ // ATTENTION! DEPRECATED CODE!
97
+ // The command `npx hardhat`, when used to create a new Hardhat project, will be removed with Hardhat V3.
98
+ // It will become `npx hardhat init`.
99
+ // The code marked with the tag #INIT-DEP can be deleted after HarhatV3 is out.
100
+ // Create a new Hardhat project
101
+ if (scopeOrTaskName === "init") {
102
+ return await createNewProject();
103
+ }
104
+ // #INIT-DEP - START OF DEPRECATED CODE
105
+ else {
106
+ if (scopeOrTaskName === undefined &&
107
+ hardhatArguments.config === undefined &&
108
+ !(0, project_structure_1.isCwdInsideProject)()) {
109
+ await createNewProject();
110
+ // Warning for Hardhat V3 deprecation
111
+ console.warn(chalk_1.default.yellow.bold("\n\nDEPRECATION WARNING\n\n"), chalk_1.default.yellow(`Initializing a project with ${chalk_1.default.white.italic("npx hardhat")} is deprecated and will be removed in the future.\n`), chalk_1.default.yellow(`Please use ${chalk_1.default.white.italic("npx hardhat init")} instead.\n\n`));
103
112
  return;
104
113
  }
105
- // Many terminal emulators in windows fail to run the createProject()
106
- // workflow, and don't present themselves as TTYs. If we are in this
107
- // situation we throw a special error instructing the user to use WSL or
108
- // powershell to initialize the project.
109
- if (process.platform === "win32") {
110
- throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.NOT_INSIDE_PROJECT_ON_WINDOWS);
111
- }
114
+ }
115
+ // #INIT-DEP - END OF DEPRECATED CODE
116
+ // Tasks are only allowed inside a Hardhat project (except the init task)
117
+ if (hardhatArguments.config === undefined && !(0, project_structure_1.isCwdInsideProject)()) {
118
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.NOT_INSIDE_PROJECT);
112
119
  }
113
120
  if (process.env.HARDHAT_EXPERIMENTAL_ALLOW_NON_LOCAL_INSTALLATION !==
114
121
  "true" &&
@@ -123,14 +130,17 @@ async function main() {
123
130
  throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.TYPECHECK_USED_IN_JAVASCRIPT_PROJECT);
124
131
  }
125
132
  }
126
- let taskName = parsedTaskName ?? task_names_1.TASK_HELP;
127
- const showEmptyConfigWarning = true;
128
- const showSolidityConfigWarnings = taskName === task_names_1.TASK_COMPILE;
129
133
  const ctx = context_1.HardhatContext.createHardhatContext();
130
134
  const { resolvedConfig, userConfig } = (0, config_loading_1.loadConfigAndTasks)(hardhatArguments, {
131
- showEmptyConfigWarning,
132
- showSolidityConfigWarnings,
135
+ showEmptyConfigWarning: true,
136
+ showSolidityConfigWarnings: scopeOrTaskName === task_names_1.TASK_COMPILE,
133
137
  });
138
+ const envExtenders = ctx.environmentExtenders;
139
+ const providerExtenders = ctx.providerExtenders;
140
+ const taskDefinitions = ctx.tasksDSL.getTaskDefinitions();
141
+ const scopesDefinitions = ctx.tasksDSL.getScopesDefinitions();
142
+ // eslint-disable-next-line prefer-const
143
+ let { scopeName, taskName, unparsedCLAs } = argumentsParser.parseScopeAndTaskNames(allUnparsedCLAs, taskDefinitions, scopesDefinitions);
134
144
  let telemetryConsent = (0, global_dir_1.hasConsentedTelemetry)();
135
145
  const isHelpCommand = hardhatArguments.help || taskName === task_names_1.TASK_HELP;
136
146
  if (telemetryConsent === undefined &&
@@ -148,19 +158,30 @@ async function main() {
148
158
  if (telemetryConsent === true) {
149
159
  reporter_1.Reporter.setEnabled(true);
150
160
  }
151
- const envExtenders = ctx.environmentExtenders;
152
- const providerExtenders = ctx.providerExtenders;
153
- const taskDefinitions = ctx.tasksDSL.getTaskDefinitions();
154
161
  const [abortAnalytics, hitPromise] = await analytics.sendTaskHit();
155
162
  let taskArguments;
156
163
  // --help is a also special case
157
164
  if (hardhatArguments.help && taskName !== task_names_1.TASK_HELP) {
158
- taskArguments = { task: taskName };
165
+ // we "move" the task and scope names to the task arguments,
166
+ // and run the help task
167
+ if (scopeName !== undefined) {
168
+ taskArguments = { scopeOrTask: scopeName, task: taskName };
169
+ }
170
+ else {
171
+ taskArguments = { scopeOrTask: taskName };
172
+ }
159
173
  taskName = task_names_1.TASK_HELP;
174
+ scopeName = undefined;
160
175
  }
161
176
  else {
162
- const taskDefinition = taskDefinitions[taskName];
177
+ const taskDefinition = ctx.tasksDSL.getTaskDefinition(scopeName, taskName);
163
178
  if (taskDefinition === undefined) {
179
+ if (scopeName !== undefined) {
180
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_SCOPED_TASK, {
181
+ scope: scopeName,
182
+ task: taskName,
183
+ });
184
+ }
164
185
  throw new errors_1.HardhatError(errors_list_1.ERRORS.ARGUMENTS.UNRECOGNIZED_TASK, {
165
186
  task: taskName,
166
187
  });
@@ -172,11 +193,11 @@ async function main() {
172
193
  }
173
194
  taskArguments = argumentsParser.parseTaskArguments(taskDefinition, unparsedCLAs);
174
195
  }
175
- const env = new runtime_environment_1.Environment(resolvedConfig, hardhatArguments, taskDefinitions, envExtenders, ctx.experimentalHardhatNetworkMessageTraceHooks, userConfig, providerExtenders);
196
+ const env = new runtime_environment_1.Environment(resolvedConfig, hardhatArguments, taskDefinitions, scopesDefinitions, envExtenders, ctx.experimentalHardhatNetworkMessageTraceHooks, userConfig, providerExtenders);
176
197
  ctx.setHardhatRuntimeEnvironment(env);
177
198
  try {
178
199
  const timestampBeforeRun = new Date().getTime();
179
- await env.run(taskName, taskArguments);
200
+ await env.run({ scope: scopeName, task: taskName }, taskArguments);
180
201
  const timestampAfterRun = new Date().getTime();
181
202
  if (timestampAfterRun - timestampBeforeRun >
182
203
  ANALYTICS_SLOW_TASK_THRESHOLD &&
@@ -250,6 +271,27 @@ async function main() {
250
271
  process.exit(1);
251
272
  }
252
273
  }
274
+ async function createNewProject() {
275
+ if ((0, project_structure_1.isCwdInsideProject)()) {
276
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.HARDHAT_PROJECT_ALREADY_CREATED, {
277
+ hardhatProjectRootPath: (0, project_structure_1.getUserConfigPath)(),
278
+ });
279
+ }
280
+ if (process.stdout.isTTY === true ||
281
+ process.env.HARDHAT_CREATE_JAVASCRIPT_PROJECT_WITH_DEFAULTS !== undefined ||
282
+ process.env.HARDHAT_CREATE_TYPESCRIPT_PROJECT_WITH_DEFAULTS !== undefined) {
283
+ await (0, project_creation_1.createProject)();
284
+ return;
285
+ }
286
+ // Many terminal emulators in windows fail to run the createProject()
287
+ // workflow, and don't present themselves as TTYs. If we are in this
288
+ // situation we throw a special error instructing the user to use WSL or
289
+ // powershell to initialize the project.
290
+ if (process.platform === "win32") {
291
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.NOT_INSIDE_PROJECT_ON_WINDOWS);
292
+ }
293
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.NOT_IN_INTERACTIVE_SHELL);
294
+ }
253
295
  main()
254
296
  .then(() => process.exit(process.exitCode))
255
297
  .catch((error) => {