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.
- package/README.md +1 -1
- package/builtin-tasks/help.js +36 -5
- package/builtin-tasks/help.js.map +1 -1
- package/internal/cli/ArgumentsParser.d.ts +7 -2
- package/internal/cli/ArgumentsParser.d.ts.map +1 -1
- package/internal/cli/ArgumentsParser.js +72 -11
- package/internal/cli/ArgumentsParser.js.map +1 -1
- package/internal/cli/HelpPrinter.d.ts +7 -3
- package/internal/cli/HelpPrinter.d.ts.map +1 -1
- package/internal/cli/HelpPrinter.js +53 -22
- package/internal/cli/HelpPrinter.js.map +1 -1
- package/internal/cli/cli.js +69 -27
- package/internal/cli/cli.js.map +1 -1
- package/internal/core/config/config-env.d.ts +2 -1
- package/internal/core/config/config-env.d.ts.map +1 -1
- package/internal/core/config/config-env.js +7 -1
- package/internal/core/config/config-env.js.map +1 -1
- package/internal/core/errors-list.d.ts +42 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +52 -2
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -6
- package/internal/core/runtime-environment.d.ts +5 -3
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +30 -7
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/core/tasks/dsl.d.ts +10 -1
- package/internal/core/tasks/dsl.d.ts.map +1 -1
- package/internal/core/tasks/dsl.js +64 -4
- package/internal/core/tasks/dsl.js.map +1 -1
- package/internal/core/tasks/task-definitions.d.ts +31 -4
- package/internal/core/tasks/task-definitions.d.ts.map +1 -1
- package/internal/core/tasks/task-definitions.js +51 -5
- package/internal/core/tasks/task-definitions.js.map +1 -1
- package/internal/core/tasks/util.d.ts +6 -0
- package/internal/core/tasks/util.d.ts.map +1 -0
- package/internal/core/tasks/util.js +19 -0
- package/internal/core/tasks/util.js.map +1 -0
- package/internal/hardhat-network/provider/modules/base.d.ts +17 -0
- package/internal/hardhat-network/provider/modules/base.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/base.js +127 -0
- package/internal/hardhat-network/provider/modules/base.js.map +1 -0
- package/internal/hardhat-network/provider/modules/debug.d.ts +5 -3
- package/internal/hardhat-network/provider/modules/debug.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/debug.js +21 -5
- package/internal/hardhat-network/provider/modules/debug.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts +2 -7
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +12 -60
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +1 -0
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +6 -0
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +1 -1
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/internal/sentry/anonymizer.d.ts.map +1 -1
- package/internal/sentry/anonymizer.js +3 -1
- package/internal/sentry/anonymizer.js.map +1 -1
- package/package.json +1 -1
- package/register.js +1 -1
- package/register.js.map +1 -1
- package/src/builtin-tasks/help.ts +47 -5
- package/src/internal/cli/ArgumentsParser.ts +79 -13
- package/src/internal/cli/HelpPrinter.ts +89 -24
- package/src/internal/cli/cli.ts +106 -38
- package/src/internal/core/config/config-env.ts +11 -0
- package/src/internal/core/errors-list.ts +56 -2
- package/src/internal/core/runtime-environment.ts +32 -7
- package/src/internal/core/tasks/dsl.ts +99 -4
- package/src/internal/core/tasks/task-definitions.ts +97 -3
- package/src/internal/core/tasks/util.ts +18 -0
- package/src/internal/hardhat-network/provider/modules/base.ts +156 -0
- package/src/internal/hardhat-network/provider/modules/debug.ts +50 -9
- package/src/internal/hardhat-network/provider/modules/eth.ts +16 -91
- package/src/internal/hardhat-network/provider/node.ts +12 -0
- package/src/internal/lib/hardhat-lib.ts +1 -0
- package/src/internal/sentry/anonymizer.ts +3 -1
- package/src/register.ts +1 -0
- package/src/types/runtime.ts +35 -1
- package/types/runtime.d.ts +24 -1
- package/types/runtime.d.ts.map +1 -1
package/README.md
CHANGED
package/builtin-tasks/help.js
CHANGED
|
@@ -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 (
|
|
13
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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":"
|
|
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
|
|
33
|
-
const
|
|
33
|
+
let scopeOrTaskName;
|
|
34
|
+
const allUnparsedCLAs = [];
|
|
34
35
|
for (let i = 0; i < rawCLAs.length; i++) {
|
|
35
36
|
const arg = rawCLAs[i];
|
|
36
|
-
if (
|
|
37
|
+
if (scopeOrTaskName === undefined) {
|
|
37
38
|
if (!this._hasCLAParamNameFormat(arg)) {
|
|
38
|
-
|
|
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,
|
|
46
|
+
i = this._parseArgumentAt(rawCLAs, i, hardhatParamDefinitions, hardhatArguments, scopeOrTaskName);
|
|
45
47
|
}
|
|
46
48
|
else {
|
|
47
49
|
if (!this._isCLAParamName(arg, hardhatParamDefinitions)) {
|
|
48
|
-
|
|
50
|
+
allUnparsedCLAs.push(arg);
|
|
49
51
|
continue;
|
|
50
52
|
}
|
|
51
|
-
i = this._parseArgumentAt(rawCLAs, i, hardhatParamDefinitions, hardhatArguments,
|
|
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
|
-
|
|
57
|
-
|
|
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,
|
|
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:
|
|
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":";;;
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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 [
|
|
28
|
+
console.log(`To get help for a specific task run: npx ${this._executableName} help [SCOPE] <TASK>\n`);
|
|
36
29
|
}
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"HelpPrinter.js","sourceRoot":"","sources":["../../src/internal/cli/HelpPrinter.ts"],"names":[],"mappings":"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"}
|
package/internal/cli/cli.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
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 =
|
|
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) => {
|