hardhat 3.0.8 → 3.0.10
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 +18 -0
- package/dist/src/internal/builtin-plugins/coverage/coverage-manager.d.ts +30 -0
- package/dist/src/internal/builtin-plugins/coverage/coverage-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js +47 -39
- package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/flatten/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/flatten/task-action.js +4 -2
- package/dist/src/internal/builtin-plugins/flatten/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.d.ts +2 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.js +2 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts +59 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js +230 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts +11 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js +31 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.d.ts +4 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js +22 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/index.d.ts +5 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/index.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js +18 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.d.ts +7 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.js +2 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts +21 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/types.js +2 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/types.js.map +1 -0
- package/dist/src/internal/builtin-plugins/index.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/index.js +2 -0
- package/dist/src/internal/builtin-plugins/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.js +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts +4 -3
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js +4 -3
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts +2 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts +7 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js +40 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.js +14 -0
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/hooks.d.ts +8 -0
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/hooks.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/hooks.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts +11 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js +2 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.js +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js +4 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/runner.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/runner.js +14 -3
- package/dist/src/internal/builtin-plugins/solidity-test/runner.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js +50 -13
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/types.d.ts +7 -4
- package/dist/src/internal/builtin-plugins/solidity-test/types.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/test/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/test/task-action.js +3 -1
- package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
- package/dist/src/internal/core/hre.d.ts +2 -0
- package/dist/src/internal/core/hre.d.ts.map +1 -1
- package/dist/src/internal/core/hre.js +6 -2
- package/dist/src/internal/core/hre.js.map +1 -1
- package/package.json +4 -3
- package/src/internal/builtin-plugins/coverage/coverage-manager.ts +56 -47
- package/src/internal/builtin-plugins/flatten/task-action.ts +5 -2
- package/src/internal/builtin-plugins/gas-analytics/exports.ts +5 -0
- package/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts +339 -0
- package/src/internal/builtin-plugins/gas-analytics/helpers.ts +44 -0
- package/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts +33 -0
- package/src/internal/builtin-plugins/gas-analytics/index.ts +23 -0
- package/src/internal/builtin-plugins/gas-analytics/type-extensions.ts +6 -0
- package/src/internal/builtin-plugins/gas-analytics/types.ts +24 -0
- package/src/internal/builtin-plugins/index.ts +3 -0
- package/src/internal/builtin-plugins/network-manager/chain-descriptors.ts +1 -1
- package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +6 -0
- package/src/internal/builtin-plugins/network-manager/edr/types/hardfork.ts +1 -0
- package/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.ts +51 -0
- package/src/internal/builtin-plugins/network-manager/network-manager.ts +25 -1
- package/src/internal/builtin-plugins/network-manager/type-extensions/hooks.ts +12 -0
- package/src/internal/builtin-plugins/solidity-test/helpers.ts +20 -8
- package/src/internal/builtin-plugins/solidity-test/index.ts +1 -0
- package/src/internal/builtin-plugins/solidity-test/reporter.ts +4 -1
- package/src/internal/builtin-plugins/solidity-test/runner.ts +16 -3
- package/src/internal/builtin-plugins/solidity-test/task-action.ts +74 -29
- package/src/internal/builtin-plugins/solidity-test/types.ts +10 -6
- package/src/internal/builtin-plugins/test/task-action.ts +3 -1
- package/src/internal/core/hre.ts +7 -2
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +3 -3
- package/templates/hardhat-3/02-mocha-ethers/package.json +3 -3
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { formatTableV2 } from "@nomicfoundation/hardhat-utils/format";
|
|
4
|
+
import { ensureDir, getAllFilesMatching, readJsonFile, remove, writeJsonFile, } from "@nomicfoundation/hardhat-utils/fs";
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
import debug from "debug";
|
|
7
|
+
const gasStatsLog = debug("hardhat:core:gas-analytics:gas-analytics-manager:gas-stats");
|
|
8
|
+
export class GasAnalyticsManagerImplementation {
|
|
9
|
+
gasMeasurements = [];
|
|
10
|
+
#gasStatsPath;
|
|
11
|
+
constructor(gasStatsRootPath) {
|
|
12
|
+
this.#gasStatsPath = path.join(gasStatsRootPath, "gas-stats");
|
|
13
|
+
}
|
|
14
|
+
addGasMeasurement(gasMeasurement) {
|
|
15
|
+
this.gasMeasurements.push(gasMeasurement);
|
|
16
|
+
}
|
|
17
|
+
async clearGasMeasurements(id) {
|
|
18
|
+
const gasMeasurementsPath = await this.#getGasMeasurementsPath(id);
|
|
19
|
+
await remove(gasMeasurementsPath);
|
|
20
|
+
this.gasMeasurements = [];
|
|
21
|
+
gasStatsLog("Cleared gas measurements from disk and memory");
|
|
22
|
+
}
|
|
23
|
+
async saveGasMeasurements(id) {
|
|
24
|
+
const gasMeasurementsPath = await this.#getGasMeasurementsPath(id);
|
|
25
|
+
const filePath = path.join(gasMeasurementsPath, `${crypto.randomUUID()}.json`);
|
|
26
|
+
await writeJsonFile(filePath, this.gasMeasurements);
|
|
27
|
+
gasStatsLog("Saved gas measurements", id, filePath);
|
|
28
|
+
}
|
|
29
|
+
async reportGasStats(...ids) {
|
|
30
|
+
await this._loadGasMeasurements(...ids);
|
|
31
|
+
const gasStatsByContract = this._calculateGasStats();
|
|
32
|
+
const report = this._generateGasStatsReport(gasStatsByContract);
|
|
33
|
+
console.log(report);
|
|
34
|
+
console.log();
|
|
35
|
+
gasStatsLog("Printed markdown report");
|
|
36
|
+
}
|
|
37
|
+
async #getGasMeasurementsPath(id) {
|
|
38
|
+
const gasMeasurementsPath = path.join(this.#gasStatsPath, id);
|
|
39
|
+
await ensureDir(gasMeasurementsPath);
|
|
40
|
+
return gasMeasurementsPath;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @private exposed for testing purposes only
|
|
44
|
+
*/
|
|
45
|
+
async _loadGasMeasurements(...ids) {
|
|
46
|
+
this.gasMeasurements = [];
|
|
47
|
+
for (const id of ids) {
|
|
48
|
+
const gasMeasurementsPath = await this.#getGasMeasurementsPath(id);
|
|
49
|
+
const filePaths = await getAllFilesMatching(gasMeasurementsPath);
|
|
50
|
+
for (const filePath of filePaths) {
|
|
51
|
+
const entries = await readJsonFile(filePath);
|
|
52
|
+
for (const entry of entries) {
|
|
53
|
+
this.gasMeasurements.push(entry);
|
|
54
|
+
}
|
|
55
|
+
gasStatsLog("Loaded gas measurements", id, filePath);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @private exposed for testing purposes only
|
|
61
|
+
*/
|
|
62
|
+
_calculateGasStats() {
|
|
63
|
+
const gasStatsByContract = new Map();
|
|
64
|
+
const measurementsByContract = this._aggregateGasMeasurements();
|
|
65
|
+
for (const [contractFqn, measurements] of measurementsByContract) {
|
|
66
|
+
const contractGasStats = {
|
|
67
|
+
functions: new Map(),
|
|
68
|
+
};
|
|
69
|
+
if (measurements.deployment !== undefined) {
|
|
70
|
+
contractGasStats.deployment = {
|
|
71
|
+
gas: measurements.deployment.gas,
|
|
72
|
+
size: measurements.deployment.size,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const overloadedFnNames = new Set(findDuplicates([...measurements.functions.keys()].map(getFunctionName)));
|
|
76
|
+
for (const [functionSig, gasValues] of measurements.functions) {
|
|
77
|
+
const functionName = getFunctionName(functionSig);
|
|
78
|
+
const isOverloaded = overloadedFnNames.has(functionName);
|
|
79
|
+
const stats = {
|
|
80
|
+
min: Math.min(...gasValues),
|
|
81
|
+
max: Math.max(...gasValues),
|
|
82
|
+
avg: roundTo(avg(gasValues), 2),
|
|
83
|
+
median: roundTo(median(gasValues), 2),
|
|
84
|
+
calls: gasValues.length,
|
|
85
|
+
};
|
|
86
|
+
contractGasStats.functions.set(isOverloaded ? functionSig : functionName, stats);
|
|
87
|
+
}
|
|
88
|
+
gasStatsByContract.set(contractFqn, contractGasStats);
|
|
89
|
+
}
|
|
90
|
+
return gasStatsByContract;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @private exposed for testing purposes only
|
|
94
|
+
*/
|
|
95
|
+
_aggregateGasMeasurements() {
|
|
96
|
+
const measurementsByContract = new Map();
|
|
97
|
+
for (const currentMeasurement of this.gasMeasurements) {
|
|
98
|
+
let contractMeasurements = measurementsByContract.get(currentMeasurement.contractFqn);
|
|
99
|
+
if (contractMeasurements === undefined) {
|
|
100
|
+
contractMeasurements = {
|
|
101
|
+
functions: new Map(),
|
|
102
|
+
};
|
|
103
|
+
measurementsByContract.set(currentMeasurement.contractFqn, contractMeasurements);
|
|
104
|
+
}
|
|
105
|
+
if (currentMeasurement.type === "deployment") {
|
|
106
|
+
contractMeasurements.deployment = {
|
|
107
|
+
gas: currentMeasurement.gas,
|
|
108
|
+
size: currentMeasurement.size,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
let measurements = contractMeasurements.functions.get(currentMeasurement.functionSig);
|
|
113
|
+
if (measurements === undefined) {
|
|
114
|
+
measurements = [];
|
|
115
|
+
contractMeasurements.functions.set(currentMeasurement.functionSig, measurements);
|
|
116
|
+
}
|
|
117
|
+
measurements.push(currentMeasurement.gas);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return measurementsByContract;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* @private exposed for testing purposes only
|
|
124
|
+
*/
|
|
125
|
+
_generateGasStatsReport(gasStatsByContract) {
|
|
126
|
+
const rows = [];
|
|
127
|
+
if (gasStatsByContract.size > 0) {
|
|
128
|
+
rows.push({ type: "title", text: chalk.bold("Gas Usage Statistics") });
|
|
129
|
+
}
|
|
130
|
+
// Sort contracts alphabetically for consistent output
|
|
131
|
+
const sortedContracts = [...gasStatsByContract.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
132
|
+
for (const [contractFqn, contractGasStats] of sortedContracts) {
|
|
133
|
+
rows.push({
|
|
134
|
+
type: "section-header",
|
|
135
|
+
text: chalk.cyan.bold(getUserFqn(contractFqn)),
|
|
136
|
+
});
|
|
137
|
+
if (contractGasStats.functions.size > 0) {
|
|
138
|
+
rows.push({
|
|
139
|
+
type: "header",
|
|
140
|
+
cells: [
|
|
141
|
+
"Function name",
|
|
142
|
+
"Min",
|
|
143
|
+
"Average",
|
|
144
|
+
"Median",
|
|
145
|
+
"Max",
|
|
146
|
+
"#calls",
|
|
147
|
+
].map((s) => chalk.yellow(s)),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
// Sort functions by removing trailing ) and comparing alphabetically.
|
|
151
|
+
// This ensures that overloaded functions with fewer params come first
|
|
152
|
+
// (e.g., foo(uint256) comes before foo(uint256,uint256)). In other
|
|
153
|
+
// scenarios, removing the trailing ) has no effect on the order.
|
|
154
|
+
const sortedFunctions = [...contractGasStats.functions.entries()].sort(([a], [b]) => a.split(")")[0].localeCompare(b.split(")")[0]));
|
|
155
|
+
for (const [functionDisplayName, gasStats] of sortedFunctions) {
|
|
156
|
+
rows.push({
|
|
157
|
+
type: "row",
|
|
158
|
+
cells: [
|
|
159
|
+
functionDisplayName,
|
|
160
|
+
`${gasStats.min}`,
|
|
161
|
+
`${gasStats.avg}`,
|
|
162
|
+
`${gasStats.median}`,
|
|
163
|
+
`${gasStats.max}`,
|
|
164
|
+
`${gasStats.calls}`,
|
|
165
|
+
],
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
if (contractGasStats.deployment !== undefined) {
|
|
169
|
+
rows.push({
|
|
170
|
+
type: "header",
|
|
171
|
+
cells: ["Deployment Cost", "Deployment Size"].map((s) => chalk.yellow(s)),
|
|
172
|
+
});
|
|
173
|
+
rows.push({
|
|
174
|
+
type: "row",
|
|
175
|
+
cells: [
|
|
176
|
+
`${contractGasStats.deployment.gas}`,
|
|
177
|
+
`${contractGasStats.deployment.size}`,
|
|
178
|
+
],
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return formatTableV2(rows);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
export function avg(values) {
|
|
186
|
+
return values.reduce((a, c) => a + c, 0) / values.length;
|
|
187
|
+
}
|
|
188
|
+
export function median(values) {
|
|
189
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
190
|
+
const mid = Math.floor(sorted.length / 2);
|
|
191
|
+
return sorted.length % 2 === 1
|
|
192
|
+
? sorted[mid]
|
|
193
|
+
: (sorted[mid - 1] + sorted[mid]) / 2;
|
|
194
|
+
}
|
|
195
|
+
export function getUserFqn(inputFqn) {
|
|
196
|
+
if (inputFqn.startsWith("project/")) {
|
|
197
|
+
return inputFqn.slice("project/".length);
|
|
198
|
+
}
|
|
199
|
+
if (inputFqn.startsWith("npm/")) {
|
|
200
|
+
const withoutPrefix = inputFqn.slice("npm/".length);
|
|
201
|
+
// Match "<pkg>@<version>/<rest>", where <pkg> may be scoped (@scope/pkg)
|
|
202
|
+
const match = withoutPrefix.match(/^(@?[^@/]+(?:\/[^@/]+)*)@[^/]+\/(.*)$/);
|
|
203
|
+
if (match !== null) {
|
|
204
|
+
return `${match[1]}/${match[2]}`;
|
|
205
|
+
}
|
|
206
|
+
return withoutPrefix;
|
|
207
|
+
}
|
|
208
|
+
return inputFqn;
|
|
209
|
+
}
|
|
210
|
+
export function getFunctionName(signature) {
|
|
211
|
+
return signature.split("(")[0];
|
|
212
|
+
}
|
|
213
|
+
export function findDuplicates(arr) {
|
|
214
|
+
const seen = new Set();
|
|
215
|
+
const duplicates = new Set();
|
|
216
|
+
for (const item of arr) {
|
|
217
|
+
if (seen.has(item)) {
|
|
218
|
+
duplicates.add(item);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
seen.add(item);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return [...duplicates];
|
|
225
|
+
}
|
|
226
|
+
export function roundTo(value, decimals) {
|
|
227
|
+
const factor = 10 ** decimals;
|
|
228
|
+
return Math.round(value * factor) / factor;
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=gas-analytics-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gas-analytics-manager.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE: The following helpers interact with the global HRE instance only;
|
|
3
|
+
* This is OK because:
|
|
4
|
+
* - They are intended for the internal use only. They are exposed via the
|
|
5
|
+
* internal public API only.
|
|
6
|
+
* - We know the HRE has been initialized by the time they are used.
|
|
7
|
+
*/
|
|
8
|
+
export declare function markTestRunStart(id: string): Promise<void>;
|
|
9
|
+
export declare function markTestWorkerDone(id: string): Promise<void>;
|
|
10
|
+
export declare function markTestRunDone(id: string): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/helpers.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAShE;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
|
|
2
|
+
import { HardhatRuntimeEnvironmentImplementation } from "../../core/hre.js";
|
|
3
|
+
/**
|
|
4
|
+
* NOTE: The following helpers interact with the global HRE instance only;
|
|
5
|
+
* This is OK because:
|
|
6
|
+
* - They are intended for the internal use only. They are exposed via the
|
|
7
|
+
* internal public API only.
|
|
8
|
+
* - We know the HRE has been initialized by the time they are used.
|
|
9
|
+
*/
|
|
10
|
+
export async function markTestRunStart(id) {
|
|
11
|
+
const { default: hre } = await import("../../../index.js");
|
|
12
|
+
if (hre.globalOptions.gasStats === true) {
|
|
13
|
+
assertHardhatInvariant(hre instanceof HardhatRuntimeEnvironmentImplementation, "Expected HRE to be an instance of HardhatRuntimeEnvironmentImplementation");
|
|
14
|
+
await hre._gasAnalytics.clearGasMeasurements(id);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export async function markTestWorkerDone(id) {
|
|
18
|
+
const { default: hre } = await import("../../../index.js");
|
|
19
|
+
if (hre.globalOptions.gasStats === true) {
|
|
20
|
+
assertHardhatInvariant(hre instanceof HardhatRuntimeEnvironmentImplementation, "Expected HRE to be an instance of HardhatRuntimeEnvironmentImplementation");
|
|
21
|
+
await hre._gasAnalytics.saveGasMeasurements(id);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export async function markTestRunDone(id) {
|
|
25
|
+
const { default: hre } = await import("../../../index.js");
|
|
26
|
+
if (hre.globalOptions.gasStats === true) {
|
|
27
|
+
assertHardhatInvariant(hre instanceof HardhatRuntimeEnvironmentImplementation, "Expected HRE to be an instance of HardhatRuntimeEnvironmentImplementation");
|
|
28
|
+
await hre._gasAnalytics.reportGasStats(id);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAE5E;;;;;;GAMG;AAEH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACxC,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;QACF,MAAM,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACxC,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;QACF,MAAM,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACxC,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;QACF,MAAM,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hre.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;8BAOxD,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAAzE,wBAyBG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
|
|
2
|
+
import { HardhatRuntimeEnvironmentImplementation } from "../../../core/hre.js";
|
|
3
|
+
import { GasAnalyticsManagerImplementation } from "../gas-analytics-manager.js";
|
|
4
|
+
export default async () => ({
|
|
5
|
+
created: async (context, hre) => {
|
|
6
|
+
if (context.globalOptions.gasStats) {
|
|
7
|
+
const gasAnalyticsManager = new GasAnalyticsManagerImplementation(hre.config.paths.cache);
|
|
8
|
+
assertHardhatInvariant(hre instanceof HardhatRuntimeEnvironmentImplementation, "Expected HRE to be an instance of HardhatRuntimeEnvironmentImplementation");
|
|
9
|
+
hre._gasAnalytics = gasAnalyticsManager;
|
|
10
|
+
// NOTE: We register this hook dynamically to avoid a circular dependency
|
|
11
|
+
// between gas-analytics and network-manager plugins. The network-manager
|
|
12
|
+
// checks for the existence of onGasReported handlers to determine if gas
|
|
13
|
+
// analytics is enabled, rather than directly checking the global option.
|
|
14
|
+
hre.hooks.registerHandlers("network", {
|
|
15
|
+
onGasMeasurement: (_context, gasMeasurement) => {
|
|
16
|
+
gasAnalyticsManager.addGasMeasurement(gasMeasurement);
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=hre.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hre.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAEhF,eAAe,KAAK,IAAsD,EAAE,CAAC,CAAC;IAC5E,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9B,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,mBAAmB,GAAG,IAAI,iCAAiC,CAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CACvB,CAAC;YAEF,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;YAEF,GAAG,CAAC,aAAa,GAAG,mBAAmB,CAAC;YAExC,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE;gBACpC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE;oBAC7C,mBAAmB,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBACxD,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,OAAO,sBAAsB,CAAC;AAE9B,QAAA,MAAM,aAAa,EAAE,aAcpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { globalFlag } from "../../core/config.js";
|
|
2
|
+
import "./type-extensions.js";
|
|
3
|
+
const hardhatPlugin = {
|
|
4
|
+
id: "builtin:gas-analytics",
|
|
5
|
+
tasks: [],
|
|
6
|
+
globalOptions: [
|
|
7
|
+
globalFlag({
|
|
8
|
+
name: "gasStats",
|
|
9
|
+
description: "Collects and displays gas usage statistics for all function calls during tests",
|
|
10
|
+
}),
|
|
11
|
+
],
|
|
12
|
+
hookHandlers: {
|
|
13
|
+
hre: () => import("./hook-handlers/hre.js"),
|
|
14
|
+
},
|
|
15
|
+
npmPackage: "hardhat",
|
|
16
|
+
};
|
|
17
|
+
export default hardhatPlugin;
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAAkB;IACnC,EAAE,EAAE,uBAAuB;IAC3B,KAAK,EAAE,EAAE;IACT,aAAa,EAAE;QACb,UAAU,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,gFAAgF;SACnF,CAAC;KACH;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;KAC5C;IACD,UAAU,EAAE,SAAS;CACtB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAiB,aAAa;QAC5B,QAAQ,EAAE,OAAO,CAAC;KACnB;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-extensions.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface BaseGasMeasurement {
|
|
2
|
+
contractFqn: string;
|
|
3
|
+
gas: number;
|
|
4
|
+
}
|
|
5
|
+
interface FunctionGasMeasurement extends BaseGasMeasurement {
|
|
6
|
+
type: "function";
|
|
7
|
+
functionSig: string;
|
|
8
|
+
}
|
|
9
|
+
interface DeploymentGasMeasurement extends BaseGasMeasurement {
|
|
10
|
+
type: "deployment";
|
|
11
|
+
size: number;
|
|
12
|
+
}
|
|
13
|
+
export type GasMeasurement = FunctionGasMeasurement | DeploymentGasMeasurement;
|
|
14
|
+
export interface GasAnalyticsManager {
|
|
15
|
+
addGasMeasurement(gasMeasurement: GasMeasurement): void;
|
|
16
|
+
clearGasMeasurements(id: string): Promise<void>;
|
|
17
|
+
saveGasMeasurements(id: string): Promise<void>;
|
|
18
|
+
reportGasStats(...ids: string[]): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/types.ts"],"names":[],"mappings":"AAAA,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,sBAAuB,SAAQ,kBAAkB;IACzD,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,wBAAyB,SAAQ,kBAAkB;IAC3D,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAElC,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACxD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/types.ts"],"names":[],"mappings":""}
|
|
@@ -3,6 +3,7 @@ export type * from "./artifacts/index.js";
|
|
|
3
3
|
export type * from "./solidity/index.js";
|
|
4
4
|
export type * from "./test/index.js";
|
|
5
5
|
export type * from "./solidity-test/index.js";
|
|
6
|
+
export type * from "./gas-analytics/index.js";
|
|
6
7
|
export type * from "./network-manager/index.js";
|
|
7
8
|
export type * from "./clean/index.js";
|
|
8
9
|
export type * from "./console/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/builtin-plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/builtin-plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAkB5D,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,sBAAsB,CAAC;AAI1C,eAAO,MAAM,cAAc,EAAE,aAAa,EAczC,CAAC"}
|
|
@@ -3,6 +3,7 @@ import clean from "./clean/index.js";
|
|
|
3
3
|
import console from "./console/index.js";
|
|
4
4
|
import coverage from "./coverage/index.js";
|
|
5
5
|
import flatten from "./flatten/index.js";
|
|
6
|
+
import gasAnalytics from "./gas-analytics/index.js";
|
|
6
7
|
import networkManager from "./network-manager/index.js";
|
|
7
8
|
import node from "./node/index.js";
|
|
8
9
|
import run from "./run/index.js";
|
|
@@ -17,6 +18,7 @@ export const builtinPlugins = [
|
|
|
17
18
|
solidity,
|
|
18
19
|
test,
|
|
19
20
|
coverage,
|
|
21
|
+
gasAnalytics,
|
|
20
22
|
solidityTest,
|
|
21
23
|
networkManager,
|
|
22
24
|
clean,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/builtin-plugins/index.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,IAAI,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/builtin-plugins/index.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAkBnC,8EAA8E;AAC9E,WAAW;AACX,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,KAAK;IACL,OAAO;IACP,GAAG;IACH,IAAI;IACJ,OAAO;IACP,SAAS;CACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-descriptors.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/network-manager/chain-descriptors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chain-descriptors.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/network-manager/chain-descriptors.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import type { RequestArguments, SuccessfulJsonRpcResponse } from "../../../../ty
|
|
|
5
5
|
import type { RequireField } from "../../../../types/utils.js";
|
|
6
6
|
import type { DefaultHDAccountsConfigParams } from "../accounts/constants.js";
|
|
7
7
|
import type { JsonRpcRequestWrapperFunction } from "../network-manager.js";
|
|
8
|
-
import type { SubscriptionEvent, ProviderConfig, TracingConfigWithBuffers } from "@nomicfoundation/edr";
|
|
8
|
+
import type { SubscriptionEvent, ProviderConfig, TracingConfigWithBuffers, GasReportConfig } from "@nomicfoundation/edr";
|
|
9
9
|
import { BaseProvider } from "../base-provider.js";
|
|
10
10
|
export declare const EDR_NETWORK_DEFAULT_COINBASE = "0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e";
|
|
11
11
|
interface EdrNetworkDefaultHDAccountsConfigParams extends DefaultHDAccountsConfigParams {
|
|
@@ -24,13 +24,14 @@ interface EdrProviderConfig {
|
|
|
24
24
|
tracingConfig?: TracingConfigWithBuffers;
|
|
25
25
|
jsonRpcRequestWrapper?: JsonRpcRequestWrapperFunction;
|
|
26
26
|
coverageConfig?: CoverageConfig;
|
|
27
|
+
gasReportConfig?: GasReportConfig;
|
|
27
28
|
}
|
|
28
29
|
export declare class EdrProvider extends BaseProvider {
|
|
29
30
|
#private;
|
|
30
31
|
/**
|
|
31
32
|
* Creates a new instance of `EdrProvider`.
|
|
32
33
|
*/
|
|
33
|
-
static create({ chainDescriptors, networkConfig, loggerConfig, tracingConfig, jsonRpcRequestWrapper, coverageConfig, }: EdrProviderConfig): Promise<EdrProvider>;
|
|
34
|
+
static create({ chainDescriptors, networkConfig, loggerConfig, tracingConfig, jsonRpcRequestWrapper, coverageConfig, gasReportConfig, }: EdrProviderConfig): Promise<EdrProvider>;
|
|
34
35
|
/**
|
|
35
36
|
* @private
|
|
36
37
|
*
|
|
@@ -44,6 +45,6 @@ export declare class EdrProvider extends BaseProvider {
|
|
|
44
45
|
addCompilationResult(solcVersion: string, compilerInput: any, compilerOutput: any): Promise<void>;
|
|
45
46
|
onSubscriptionEvent(event: SubscriptionEvent): void;
|
|
46
47
|
}
|
|
47
|
-
export declare function getProviderConfig(networkConfig: RequireField<EdrNetworkConfig, "chainType">, coverageConfig: CoverageConfig | undefined, chainDescriptors: ChainDescriptorsConfig): Promise<ProviderConfig>;
|
|
48
|
+
export declare function getProviderConfig(networkConfig: RequireField<EdrNetworkConfig, "chainType">, coverageConfig: CoverageConfig | undefined, gasReportConfig: GasReportConfig | undefined, chainDescriptors: ChainDescriptorsConfig): Promise<ProviderConfig>;
|
|
48
49
|
export {};
|
|
49
50
|
//# sourceMappingURL=edr-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edr-provider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/network-manager/edr/edr-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAIV,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EACV,iBAAiB,EAGjB,cAAc,EACd,wBAAwB,
|
|
1
|
+
{"version":3,"file":"edr-provider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/network-manager/edr/edr-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAIV,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EACV,iBAAiB,EAGjB,cAAc,EACd,wBAAwB,EAExB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AA6B9B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA4BnD,eAAO,MAAM,4BAA4B,+CACK,CAAC;AAE/C,UAAU,uCACR,SAAQ,6BAA6B;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,gEAC8B,CAAC;AAChE,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,eAAO,MAAM,6CAA6C,EAAE,uCAKzD,CAAC;AAEJ,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,0BAA0B,GACnC,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,eAAO,MAAM,gCAAgC,EAAE,MAAM,EAqBpD,CAAC;AAEF,UAAU,iBAAiB;IACzB,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,aAAa,EAAE,YAAY,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;IACtD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,WAAY,SAAQ,YAAY;;IAM3C;;OAEG;WACiB,MAAM,CAAC,EACzB,gBAAgB,EAChB,aAAa,EACb,YAAiC,EACjC,aAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0D3C;;;;;;OAMG;IACH,OAAO;IAUM,OAAO,CAClB,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IA+DlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,oBAAoB,CAC/B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,GAAG,EAClB,cAAc,EAAE,GAAG,GAClB,OAAO,CAAC,IAAI,CAAC;IAoET,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAkD3D;AAED,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,YAAY,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAC1D,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,gBAAgB,EAAE,sBAAsB,GACvC,OAAO,CAAC,cAAc,CAAC,CAgFzB"}
|
|
@@ -67,10 +67,10 @@ export class EdrProvider extends BaseProvider {
|
|
|
67
67
|
/**
|
|
68
68
|
* Creates a new instance of `EdrProvider`.
|
|
69
69
|
*/
|
|
70
|
-
static async create({ chainDescriptors, networkConfig, loggerConfig = { enabled: false }, tracingConfig = {}, jsonRpcRequestWrapper, coverageConfig, }) {
|
|
70
|
+
static async create({ chainDescriptors, networkConfig, loggerConfig = { enabled: false }, tracingConfig = {}, jsonRpcRequestWrapper, coverageConfig, gasReportConfig, }) {
|
|
71
71
|
const printLineFn = loggerConfig.printLineFn ?? printLine;
|
|
72
72
|
const replaceLastLineFn = loggerConfig.replaceLastLineFn ?? replaceLastLine;
|
|
73
|
-
const providerConfig = await getProviderConfig(networkConfig, coverageConfig, chainDescriptors);
|
|
73
|
+
const providerConfig = await getProviderConfig(networkConfig, coverageConfig, gasReportConfig, chainDescriptors);
|
|
74
74
|
let edrProvider;
|
|
75
75
|
// We need to catch errors here, as the provider creation can panic unexpectedly,
|
|
76
76
|
// and we want to make sure such a crash is propagated as a ProviderError.
|
|
@@ -248,7 +248,7 @@ export class EdrProvider extends BaseProvider {
|
|
|
248
248
|
return this.#handleEdrResponse(edrResponse);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
-
export async function getProviderConfig(networkConfig, coverageConfig, chainDescriptors) {
|
|
251
|
+
export async function getProviderConfig(networkConfig, coverageConfig, gasReportConfig, chainDescriptors) {
|
|
252
252
|
const specId = hardhatHardforkToEdrSpecId(networkConfig.hardfork, networkConfig.chainType);
|
|
253
253
|
const ownedAccounts = await hardhatAccountsToEdrOwnedAccounts(networkConfig.accounts);
|
|
254
254
|
const genesisState = new Map(ownedAccounts.map(({ secretKey, balance }) => {
|
|
@@ -302,6 +302,7 @@ export async function getProviderConfig(networkConfig, coverageConfig, chainDesc
|
|
|
302
302
|
networkId: BigInt(networkConfig.networkId),
|
|
303
303
|
observability: {
|
|
304
304
|
codeCoverage: coverageConfig,
|
|
305
|
+
gasReport: gasReportConfig,
|
|
305
306
|
},
|
|
306
307
|
ownedAccounts: ownedAccounts.map((account) => account.secretKey),
|
|
307
308
|
precompileOverrides: [],
|