hardhat 3.1.0 → 3.1.2
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/CHANGELOG.md +30 -0
- package/dist/src/internal/builtin-plugins/test/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/test/task-action.js +52 -64
- package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
- package/package.json +2 -2
- package/src/internal/builtin-plugins/test/task-action.ts +60 -70
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +1 -1
- package/templates/hardhat-3/02-mocha-ethers/package.json +1 -1
- package/templates/hardhat-3/03-minimal/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# hardhat
|
|
2
2
|
|
|
3
|
+
## 3.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 3575a52: Bumped EDR version to [`0.12.0-next.21`](https://github.com/NomicFoundation/edr/releases/tag/%40nomicfoundation%2Fedr%400.12.0-next.21).
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- NomicFoundation/edr@44e779c: Added function-level configuration overrides for Solidity tests
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- NomicFoundation/edr@b5ad15c: Added support for instrumentation of Solidity `0.8.32` and `0.8.33`
|
|
16
|
+
|
|
17
|
+
- fd70728: Bumped EDR version to [`0.12.0-next.20`](https://www.npmjs.com/package/@nomicfoundation/edr/v/0.12.0-next.20).
|
|
18
|
+
|
|
19
|
+
Patch Changes
|
|
20
|
+
|
|
21
|
+
- NomicFoundation/edr@34e1ab4: Updated base mainnet eip1559 parameters after SystemConfig update on 2025-12-18
|
|
22
|
+
- NomicFoundation/edr@2272bc0: Fixed excess_blob_gas calculation after Osaka
|
|
23
|
+
|
|
24
|
+
## 3.1.1
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- b3bde25: Disable test summary when mocha is included in runners ([#7781](https://github.com/NomicFoundation/hardhat/issues/7781))
|
|
29
|
+
- 88fcf8b: Bumped EDR version to [`0.12.0-next.19`](https://www.npmjs.com/package/@nomicfoundation/edr/v/0.12.0-next.19).
|
|
30
|
+
|
|
31
|
+
- [faef065](https://github.com/NomicFoundation/edr/commit/faef0656f8c86c6f92c7c309d2373bbca89cbff7): Added support for EIP-7892 (Blob Parameter Only hardforks)
|
|
32
|
+
|
|
3
33
|
## 3.1.0
|
|
4
34
|
|
|
5
35
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-action.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/task-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,yBAAyB,CAAC;AAUjC,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,QAAA,MAAM,WAAW,EAAE,qBAAqB,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"task-action.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/task-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,yBAAyB,CAAC;AAUjC,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,QAAA,MAAM,WAAW,EAAE,qBAAqB,CAAC,mBAAmB,CAiK3D,CAAC;AAyEF,eAAe,WAAW,CAAC"}
|
|
@@ -20,7 +20,9 @@ const runAllTests = async ({ testFiles, chainType, grep, noCompile, verbosity },
|
|
|
20
20
|
}
|
|
21
21
|
const testSummaries = {};
|
|
22
22
|
let failureIndex = 1;
|
|
23
|
-
|
|
23
|
+
const subtasks = Array.from(thisTask.subtasks.values());
|
|
24
|
+
const hasMocha = subtasks.some((subtask) => subtask.id[subtask.id.length - 1] === "mocha");
|
|
25
|
+
for (const subtask of subtasks) {
|
|
24
26
|
const files = getTestFilesForSubtask(subtask, testFiles, subtasksToFiles);
|
|
25
27
|
if (files === undefined) {
|
|
26
28
|
// This scenario occurs when `testFiles` are provided,
|
|
@@ -38,7 +40,7 @@ const runAllTests = async ({ testFiles, chainType, grep, noCompile, verbosity },
|
|
|
38
40
|
if (subtask.options.has("verbosity")) {
|
|
39
41
|
args.verbosity = verbosity;
|
|
40
42
|
}
|
|
41
|
-
if (subtask.options.has("testSummaryIndex")) {
|
|
43
|
+
if (!hasMocha && subtask.options.has("testSummaryIndex")) {
|
|
42
44
|
args.testSummaryIndex = failureIndex;
|
|
43
45
|
const summaryId = subtask.id[subtask.id.length - 1];
|
|
44
46
|
testSummaries[summaryId] = await subtask.run(args);
|
|
@@ -48,74 +50,60 @@ const runAllTests = async ({ testFiles, chainType, grep, noCompile, verbosity },
|
|
|
48
50
|
await subtask.run(args);
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
if (!hasMocha) {
|
|
54
|
+
const passed = [];
|
|
55
|
+
const failed = [];
|
|
56
|
+
const skipped = [];
|
|
57
|
+
const todo = [];
|
|
58
|
+
const outputLines = [];
|
|
59
|
+
for (const [subtaskName, results] of Object.entries(testSummaries)) {
|
|
60
|
+
if (results.passed > 0) {
|
|
61
|
+
passed.push([subtaskName, results.passed]);
|
|
62
|
+
}
|
|
63
|
+
if (results.failed > 0) {
|
|
64
|
+
failed.push([subtaskName, results.failed]);
|
|
65
|
+
}
|
|
66
|
+
if (results.skipped > 0) {
|
|
67
|
+
skipped.push([subtaskName, results.skipped]);
|
|
68
|
+
}
|
|
69
|
+
if (results.todo > 0) {
|
|
70
|
+
todo.push([subtaskName, results.todo]);
|
|
71
|
+
}
|
|
72
|
+
if (results.failureOutput !== "") {
|
|
73
|
+
const output = results.failureOutput;
|
|
74
|
+
if (subtaskName.includes("node")) {
|
|
75
|
+
outputLines.push(`\n${output}\n`);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
outputLines.push(output);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
59
81
|
}
|
|
60
|
-
if (
|
|
61
|
-
|
|
82
|
+
if (passed.length > 0) {
|
|
83
|
+
logSummaryLine("passing", passed, chalk.green);
|
|
62
84
|
}
|
|
63
|
-
if (
|
|
64
|
-
|
|
85
|
+
if (failed.length > 0) {
|
|
86
|
+
logSummaryLine("failing", failed, chalk.red);
|
|
65
87
|
}
|
|
66
|
-
if (
|
|
67
|
-
|
|
88
|
+
if (skipped.length > 0) {
|
|
89
|
+
logSummaryLine("skipped", skipped, chalk.cyan);
|
|
68
90
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
*
|
|
72
|
-
* no failures
|
|
73
|
-
* only node
|
|
74
|
-
* multiple node
|
|
75
|
-
* only solidity
|
|
76
|
-
* - 1 top
|
|
77
|
-
* - 2 bottom but sometimes - 1 instead??? how many do we need bottom
|
|
78
|
-
* multiple solidity
|
|
79
|
-
* single node + single solidity
|
|
80
|
-
* multiple node + multiple solidity
|
|
81
|
-
* single node + multiple solidity
|
|
82
|
-
* multiple node + single solidity
|
|
83
|
-
*
|
|
84
|
-
*/
|
|
85
|
-
if (results.failureOutput !== "") {
|
|
86
|
-
const output = results.failureOutput;
|
|
87
|
-
if (subtaskName.includes("node")) {
|
|
88
|
-
outputLines.push(`\n${output}\n`);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
outputLines.push(output);
|
|
92
|
-
}
|
|
91
|
+
if (todo.length > 0) {
|
|
92
|
+
logSummaryLine("todo", todo, chalk.blue);
|
|
93
93
|
}
|
|
94
|
+
if (outputLines.length > 0) {
|
|
95
|
+
console.log(outputLines
|
|
96
|
+
.map((o) => {
|
|
97
|
+
const nl = o.match(/\n+$/gm);
|
|
98
|
+
if (nl !== null) {
|
|
99
|
+
return o.replace(new RegExp(`${nl[0]}$`), "\n");
|
|
100
|
+
}
|
|
101
|
+
return o;
|
|
102
|
+
})
|
|
103
|
+
.join("\n"));
|
|
104
|
+
}
|
|
105
|
+
console.log();
|
|
94
106
|
}
|
|
95
|
-
if (passed.length > 0) {
|
|
96
|
-
logSummaryLine("passing", passed, chalk.green);
|
|
97
|
-
}
|
|
98
|
-
if (failed.length > 0) {
|
|
99
|
-
logSummaryLine("failing", failed, chalk.red);
|
|
100
|
-
}
|
|
101
|
-
if (skipped.length > 0) {
|
|
102
|
-
logSummaryLine("skipped", skipped, chalk.cyan);
|
|
103
|
-
}
|
|
104
|
-
if (todo.length > 0) {
|
|
105
|
-
logSummaryLine("todo", todo, chalk.blue);
|
|
106
|
-
}
|
|
107
|
-
if (outputLines.length > 0) {
|
|
108
|
-
console.log(outputLines
|
|
109
|
-
.map((o) => {
|
|
110
|
-
const nl = o.match(/\n+$/gm);
|
|
111
|
-
if (nl !== null) {
|
|
112
|
-
return o.replace(new RegExp(`${nl[0]}$`), "\n");
|
|
113
|
-
}
|
|
114
|
-
return o;
|
|
115
|
-
})
|
|
116
|
-
.join("\n"));
|
|
117
|
-
}
|
|
118
|
-
console.log();
|
|
119
107
|
if (hre.globalOptions.coverage === true) {
|
|
120
108
|
assertHardhatInvariant(hre instanceof HardhatRuntimeEnvironmentImplementation, "Expected HRE to be an instance of HardhatRuntimeEnvironmentImplementation");
|
|
121
109
|
const ids = Array.from(thisTask.subtasks.keys());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-action.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/task-action.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAU5E,MAAM,WAAW,GAA+C,KAAK,EACnE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EACpD,GAAG,EACH,EAAE;IACF,+EAA+E;IAC/E,iGAAiG;IACjG,0IAA0I;IAC1I,MAAM,eAAe,GACnB,SAAS,CAAC,MAAM,KAAK,CAAC;QACpB,CAAC,CAAC,MAAM,2BAA2B,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;YACnC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACxC,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,aAAa,GASf,EAAE,CAAC;IAEP,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,
|
|
1
|
+
{"version":3,"file":"task-action.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/task-action.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.2",
|
|
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://github.com/nomicfoundation/hardhat/tree/v-next/v-next/hardhat",
|
|
6
6
|
"repository": {
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@nomicfoundation/hardhat-test-utils": "^2.0.1"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@nomicfoundation/edr": "0.12.0-next.
|
|
74
|
+
"@nomicfoundation/edr": "0.12.0-next.21",
|
|
75
75
|
"@nomicfoundation/hardhat-errors": "^3.0.6",
|
|
76
76
|
"@nomicfoundation/hardhat-utils": "^3.0.5",
|
|
77
77
|
"@nomicfoundation/hardhat-zod-utils": "^3.0.1",
|
|
@@ -61,7 +61,11 @@ const runAllTests: NewTaskActionFunction<TestActionArguments> = async (
|
|
|
61
61
|
> = {};
|
|
62
62
|
|
|
63
63
|
let failureIndex = 1;
|
|
64
|
-
|
|
64
|
+
const subtasks = Array.from(thisTask.subtasks.values());
|
|
65
|
+
const hasMocha = subtasks.some(
|
|
66
|
+
(subtask) => subtask.id[subtask.id.length - 1] === "mocha",
|
|
67
|
+
);
|
|
68
|
+
for (const subtask of subtasks) {
|
|
65
69
|
const files = getTestFilesForSubtask(subtask, testFiles, subtasksToFiles);
|
|
66
70
|
|
|
67
71
|
if (files === undefined) {
|
|
@@ -84,7 +88,7 @@ const runAllTests: NewTaskActionFunction<TestActionArguments> = async (
|
|
|
84
88
|
args.verbosity = verbosity;
|
|
85
89
|
}
|
|
86
90
|
|
|
87
|
-
if (subtask.options.has("testSummaryIndex")) {
|
|
91
|
+
if (!hasMocha && subtask.options.has("testSummaryIndex")) {
|
|
88
92
|
args.testSummaryIndex = failureIndex;
|
|
89
93
|
|
|
90
94
|
const summaryId = subtask.id[subtask.id.length - 1];
|
|
@@ -96,87 +100,73 @@ const runAllTests: NewTaskActionFunction<TestActionArguments> = async (
|
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
102
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
if (!hasMocha) {
|
|
104
|
+
const passed: Array<[string, number]> = [];
|
|
105
|
+
const failed: Array<[string, number]> = [];
|
|
106
|
+
const skipped: Array<[string, number]> = [];
|
|
107
|
+
const todo: Array<[string, number]> = [];
|
|
108
|
+
const outputLines: string[] = [];
|
|
104
109
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
110
|
+
for (const [subtaskName, results] of Object.entries(testSummaries)) {
|
|
111
|
+
if (results.passed > 0) {
|
|
112
|
+
passed.push([subtaskName, results.passed]);
|
|
113
|
+
}
|
|
109
114
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
115
|
+
if (results.failed > 0) {
|
|
116
|
+
failed.push([subtaskName, results.failed]);
|
|
117
|
+
}
|
|
113
118
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
if (results.skipped > 0) {
|
|
120
|
+
skipped.push([subtaskName, results.skipped]);
|
|
121
|
+
}
|
|
117
122
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
if (results.todo > 0) {
|
|
124
|
+
todo.push([subtaskName, results.todo]);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (results.failureOutput !== "") {
|
|
128
|
+
const output = results.failureOutput;
|
|
121
129
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
* multiple node
|
|
128
|
-
* only solidity
|
|
129
|
-
* - 1 top
|
|
130
|
-
* - 2 bottom but sometimes - 1 instead??? how many do we need bottom
|
|
131
|
-
* multiple solidity
|
|
132
|
-
* single node + single solidity
|
|
133
|
-
* multiple node + multiple solidity
|
|
134
|
-
* single node + multiple solidity
|
|
135
|
-
* multiple node + single solidity
|
|
136
|
-
*
|
|
137
|
-
*/
|
|
138
|
-
if (results.failureOutput !== "") {
|
|
139
|
-
const output = results.failureOutput;
|
|
140
|
-
|
|
141
|
-
if (subtaskName.includes("node")) {
|
|
142
|
-
outputLines.push(`\n${output}\n`);
|
|
143
|
-
} else {
|
|
144
|
-
outputLines.push(output);
|
|
130
|
+
if (subtaskName.includes("node")) {
|
|
131
|
+
outputLines.push(`\n${output}\n`);
|
|
132
|
+
} else {
|
|
133
|
+
outputLines.push(output);
|
|
134
|
+
}
|
|
145
135
|
}
|
|
146
136
|
}
|
|
147
|
-
}
|
|
148
137
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
138
|
+
if (passed.length > 0) {
|
|
139
|
+
logSummaryLine("passing", passed, chalk.green);
|
|
140
|
+
}
|
|
152
141
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
142
|
+
if (failed.length > 0) {
|
|
143
|
+
logSummaryLine("failing", failed, chalk.red);
|
|
144
|
+
}
|
|
156
145
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
146
|
+
if (skipped.length > 0) {
|
|
147
|
+
logSummaryLine("skipped", skipped, chalk.cyan);
|
|
148
|
+
}
|
|
160
149
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
150
|
+
if (todo.length > 0) {
|
|
151
|
+
logSummaryLine("todo", todo, chalk.blue);
|
|
152
|
+
}
|
|
164
153
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
154
|
+
if (outputLines.length > 0) {
|
|
155
|
+
console.log(
|
|
156
|
+
outputLines
|
|
157
|
+
.map((o) => {
|
|
158
|
+
const nl = o.match(/\n+$/gm);
|
|
159
|
+
if (nl !== null) {
|
|
160
|
+
return o.replace(new RegExp(`${nl[0]}$`), "\n");
|
|
161
|
+
}
|
|
162
|
+
return o;
|
|
163
|
+
})
|
|
164
|
+
.join("\n"),
|
|
165
|
+
);
|
|
166
|
+
}
|
|
178
167
|
|
|
179
|
-
|
|
168
|
+
console.log();
|
|
169
|
+
}
|
|
180
170
|
|
|
181
171
|
if (hre.globalOptions.coverage === true) {
|
|
182
172
|
assertHardhatInvariant(
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "A TypeScript Hardhat project using Node Test Runner and Viem",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"hardhat": "workspace:^3.1.
|
|
8
|
+
"hardhat": "workspace:^3.1.2",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-viem": "workspace:^5.0.1",
|
|
10
10
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.0.6",
|
|
11
11
|
"@types/node": "^22.8.5",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "A TypeScript Hardhat project using Mocha and Ethers.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"hardhat": "workspace:^3.1.
|
|
8
|
+
"hardhat": "workspace:^3.1.2",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-mocha-ethers": "workspace:^3.0.2",
|
|
10
10
|
"@nomicfoundation/hardhat-ethers": "workspace:^4.0.2",
|
|
11
11
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.0.6",
|