hardhat 3.1.12 → 3.2.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/CHANGELOG.md +23 -0
- package/dist/src/internal/builtin-plugins/coverage/helpers.d.ts +5 -0
- package/dist/src/internal/builtin-plugins/coverage/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/helpers.js +12 -0
- package/dist/src/internal/builtin-plugins/coverage/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.js +2 -5
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +3 -5
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/test.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/test.js +4 -15
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/test.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts +11 -10
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js +80 -13
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts +5 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js +13 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js +4 -5
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.js +13 -17
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js +8 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts +33 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts +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 +15 -1
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js +7 -2
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js +0 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.d.ts +10 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js +29 -6
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.d.ts +6 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js +11 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/config.js +13 -7
- package/dist/src/internal/builtin-plugins/solidity/config.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 +9 -6
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js.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 +26 -9
- package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
- package/dist/src/types/network.d.ts +1 -1
- package/dist/src/types/network.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/internal/builtin-plugins/coverage/helpers.ts +31 -0
- package/src/internal/builtin-plugins/coverage/hook-handlers/hre.ts +2 -10
- package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +3 -12
- package/src/internal/builtin-plugins/coverage/hook-handlers/test.ts +4 -25
- package/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts +118 -18
- package/src/internal/builtin-plugins/gas-analytics/helpers.ts +31 -0
- package/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts +6 -10
- package/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.ts +18 -26
- package/src/internal/builtin-plugins/gas-analytics/index.ts +9 -1
- package/src/internal/builtin-plugins/gas-analytics/type-extensions.ts +1 -0
- package/src/internal/builtin-plugins/gas-analytics/types.ts +37 -0
- package/src/internal/builtin-plugins/network-manager/network-manager.ts +29 -2
- package/src/internal/builtin-plugins/node/json-rpc/handler.ts +8 -2
- package/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.ts +0 -5
- package/src/internal/builtin-plugins/solidity/build-system/compiler/index.ts +44 -9
- package/src/internal/builtin-plugins/solidity/build-system/solc-info.ts +15 -0
- package/src/internal/builtin-plugins/solidity/config.ts +13 -6
- package/src/internal/builtin-plugins/solidity-test/task-action.ts +10 -13
- package/src/internal/builtin-plugins/test/task-action.ts +38 -18
- package/src/types/network.ts +2 -2
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +5 -5
- package/templates/hardhat-3/02-mocha-ethers/package.json +6 -6
- package/templates/hardhat-3/03-minimal/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# hardhat
|
|
2
2
|
|
|
3
|
+
## 3.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#8064](https://github.com/NomicFoundation/hardhat/pull/8064) [`392fc38`](https://github.com/NomicFoundation/hardhat/commit/392fc388556e9ec3ca1309db0ffb2ded24439ee2) Thanks [@schaable](https://github.com/schaable)! - Add `--gas-stats-json <path>` global option to write gas usage statistics to a JSON file ([#7990](https://github.com/NomicFoundation/hardhat/issues/7990)).
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#8061](https://github.com/NomicFoundation/hardhat/pull/8061) [`c03f647`](https://github.com/NomicFoundation/hardhat/commit/c03f6476cc62ae31e745e0e1a72371d3cba8e9dc) Thanks [@ChristopherDedominici](https://github.com/ChristopherDedominici)! - Fixed bug to preserve revert data in JSON-RPC responses for non-ProviderErrors ([8061](https://github.com/NomicFoundation/hardhat/pull/8061)).
|
|
12
|
+
|
|
13
|
+
- [#8060](https://github.com/NomicFoundation/hardhat/pull/8060) [`4461d1e`](https://github.com/NomicFoundation/hardhat/commit/4461d1e760c42e186c4b64e4332ca2c6333b86bf) Thanks [@kanej](https://github.com/kanej)! - Updated `network.createServer` signature to type non-generic chainTypes
|
|
14
|
+
|
|
15
|
+
- [#8038](https://github.com/NomicFoundation/hardhat/pull/8038) [`465d00d`](https://github.com/NomicFoundation/hardhat/commit/465d00d6f67b72752ffa54a88ee90027667f0030) Thanks [@schaable](https://github.com/schaable)! - Aggregate deployment gas statistics (min, avg, median, max, count) instead of showing only the last deployment cost and size ([#8037](https://github.com/NomicFoundation/hardhat/issues/8037))
|
|
16
|
+
|
|
17
|
+
- [#8060](https://github.com/NomicFoundation/hardhat/pull/8060) [`0e8abcf`](https://github.com/NomicFoundation/hardhat/commit/0e8abcf376b7b3618261512c98ae5dcfef716216) Thanks [@kanej](https://github.com/kanej)! - Added guard against `http` network configs in `network.createServer(...)`
|
|
18
|
+
|
|
19
|
+
- [#8036](https://github.com/NomicFoundation/hardhat/pull/8036) [`954825a`](https://github.com/NomicFoundation/hardhat/commit/954825a35f5813625c4a72d8e887895d7a71e78b) Thanks [@schaable](https://github.com/schaable)! - Aggregate `--gas-stats` output when using multiple test runners, printing a single consolidated table at the end instead of separate tables per runner ([#7500](https://github.com/NomicFoundation/hardhat/issues/7500)).
|
|
20
|
+
|
|
21
|
+
- [#8062](https://github.com/NomicFoundation/hardhat/pull/8062) [`45963d4`](https://github.com/NomicFoundation/hardhat/commit/45963d4ef98f505e7f1e40414ead94baaa566d79) Thanks [@ChristopherDedominici](https://github.com/ChristopherDedominici)! - Fixed compiler download for old versions in ARM64 ([8062](https://github.com/NomicFoundation/hardhat/pull/8062)).
|
|
22
|
+
|
|
23
|
+
- Updated dependencies:
|
|
24
|
+
- @nomicfoundation/hardhat-errors@3.0.9
|
|
25
|
+
|
|
3
26
|
## 3.1.12
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import type { CoverageManager } from "./types.js";
|
|
2
|
+
import type { HookContext } from "../../../types/hooks.js";
|
|
3
|
+
import type { HardhatRuntimeEnvironment } from "../../../types/hre.js";
|
|
1
4
|
export declare function getCoveragePath(rootPath: string): string;
|
|
5
|
+
export declare function getCoverageManager(hookContextOrHre: HookContext | HardhatRuntimeEnvironment): CoverageManager;
|
|
6
|
+
export declare function setCoverageManager(hre: HardhatRuntimeEnvironment, coverageManager: CoverageManager): void;
|
|
2
7
|
/**
|
|
3
8
|
* The following helpers are kept for backward compatibility with older versions
|
|
4
9
|
* of test runner plugins (hardhat-mocha, hardhat-node-test-runner) that import
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAevE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,WAAW,GAAG,yBAAyB,GACxD,eAAe,CAOjB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,yBAAyB,EAC9B,eAAe,EAAE,eAAe,GAC/B,IAAI,CAMN;AAED;;;;GAIG;AAEH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
|
|
3
|
+
import { HardhatRuntimeEnvironmentImplementation } from "../../core/hre.js";
|
|
4
|
+
import { CoverageManagerImplementation } from "./coverage-manager.js";
|
|
2
5
|
import { testRunDone, testRunStart, testWorkerDone, } from "./hook-handlers/test.js";
|
|
3
6
|
export function getCoveragePath(rootPath) {
|
|
4
7
|
return path.join(rootPath, "coverage");
|
|
5
8
|
}
|
|
9
|
+
export function getCoverageManager(hookContextOrHre) {
|
|
10
|
+
assertHardhatInvariant("_coverage" in hookContextOrHre &&
|
|
11
|
+
hookContextOrHre._coverage instanceof CoverageManagerImplementation, "Expected _coverage to be an instance of CoverageManagerImplementation");
|
|
12
|
+
return hookContextOrHre._coverage;
|
|
13
|
+
}
|
|
14
|
+
export function setCoverageManager(hre, coverageManager) {
|
|
15
|
+
assertHardhatInvariant(hre instanceof HardhatRuntimeEnvironmentImplementation, "Expected HRE to be an instance of HardhatRuntimeEnvironmentImplementation");
|
|
16
|
+
hre._coverage = coverageManager;
|
|
17
|
+
}
|
|
6
18
|
/**
|
|
7
19
|
* The following helpers are kept for backward compatibility with older versions
|
|
8
20
|
* of test runner plugins (hardhat-mocha, hardhat-node-test-runner) that import
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,gBAAyD;IAEzD,sBAAsB,CACpB,WAAW,IAAI,gBAAgB;QAC7B,gBAAgB,CAAC,SAAS,YAAY,6BAA6B,EACrE,uEAAuE,CACxE,CAAC;IACF,OAAO,gBAAgB,CAAC,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAA8B,EAC9B,eAAgC;IAEhC,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;IACF,GAAG,CAAC,SAAS,GAAG,eAAe,CAAC;AAClC,CAAC;AAED;;;;GAIG;AAEH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hre.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/hre.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"hre.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/hre.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;8BAKxD,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAAzE,wBAoBG"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
|
|
2
|
-
import { HardhatRuntimeEnvironmentImplementation } from "../../../core/hre.js";
|
|
3
1
|
import { CoverageManagerImplementation } from "../coverage-manager.js";
|
|
4
|
-
import { getCoveragePath } from "../helpers.js";
|
|
2
|
+
import { getCoveragePath, setCoverageManager } from "../helpers.js";
|
|
5
3
|
export default async () => ({
|
|
6
4
|
created: async (context, hre) => {
|
|
7
5
|
if (context.globalOptions.coverage) {
|
|
8
6
|
const coveragePath = getCoveragePath(hre.config.paths.root);
|
|
9
7
|
const coverageManager = new CoverageManagerImplementation(coveragePath);
|
|
10
|
-
|
|
11
|
-
hre._coverage = coverageManager;
|
|
8
|
+
setCoverageManager(hre, coverageManager);
|
|
12
9
|
// NOTE: We register this hook dynamically because we use the information about
|
|
13
10
|
// the existence of onCoverageData hook handlers to determine whether coverage
|
|
14
11
|
// is enabled or not.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hre.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/hre.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hre.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/hre.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEpE,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,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,eAAe,GAAG,IAAI,6BAA6B,CAAC,YAAY,CAAC,CAAC;YAExE,kBAAkB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAEzC,+EAA+E;YAC/E,8EAA8E;YAC9E,qBAAqB;YACrB,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE;gBACpC,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;oBAC/C,MAAM,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAE5C,OAAO;gBACT,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;8BAmBvC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBA0GG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { HardhatError } from "@nomicfoundation/hardhat-errors";
|
|
3
3
|
import { ensureError } from "@nomicfoundation/hardhat-utils/error";
|
|
4
4
|
import { readUtf8File } from "@nomicfoundation/hardhat-utils/fs";
|
|
5
5
|
import { findClosestPackageRoot } from "@nomicfoundation/hardhat-utils/package";
|
|
6
6
|
import debug from "debug";
|
|
7
|
-
import {
|
|
7
|
+
import { getCoverageManager } from "../helpers.js";
|
|
8
8
|
import { instrumentSolidityFileForCompilationJob } from "../instrumentation.js";
|
|
9
9
|
const log = debug("hardhat:core:coverage:hook-handlers:solidity");
|
|
10
10
|
const COVERAGE_LIBRARY_PATH = "__hardhat_coverage_library_a3e9cfe2-41b4-4a1f-ad9e-ac62dd82979e.sol";
|
|
@@ -52,9 +52,7 @@ export default async () => ({
|
|
|
52
52
|
break;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
context._coverage instanceof CoverageManagerImplementation, "Expected _coverage to be defined in the HookContext, as it's should be defined in the HRE");
|
|
57
|
-
await context._coverage.addMetadata(coverageMetadata);
|
|
55
|
+
await getCoverageManager(context).addMetadata(coverageMetadata);
|
|
58
56
|
return await next(context, sourceName, fsPath, source, solcVersion);
|
|
59
57
|
}
|
|
60
58
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"AAGA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,
|
|
1
|
+
{"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"AAGA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,uCAAuC,EAAE,MAAM,uBAAuB,CAAC;AAEhF,MAAM,GAAG,GAAG,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAElE,MAAM,qBAAqB,GACzB,qEAAqE,CAAC;AAExE,eAAe,KAAK,IAAqC,EAAE,CAAC,CAAC;IAC3D,mCAAmC,EAAE,KAAK,EACxC,OAAO,EACP,UAAU,EACV,MAAM,EACN,WAAW,EACX,WAAW,EACX,IAAI,EACJ,EAAE;QACF,wEAAwE;QACxE,oCAAoC;QAEpC,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC;QAE3E,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,uCAAuC,CAAC;oBACnE,yBAAyB,EAAE,WAAW;oBACtC,UAAU;oBACV,WAAW;oBACX,mBAAmB,EAAE,qBAAqB;iBAC3C,CAAC,CAAC;gBAEH,uEAAuE;gBACvE,mBAAmB;gBACnB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,MAAM,WAAW,GAAG,EAAE,CAAC;gBACvB,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;oBACpC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC7B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACvB,UAAU,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;gBAED,MAAM,gBAAgB,GAAqB,EAAE,CAAC;gBAE9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;wBACf,KAAK,WAAW;4BACd,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EACzB,MAAM,CACP,CAAC;4BACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC/C,gBAAgB,CAAC,IAAI,CAAC;gCACpB,YAAY;gCACZ,GAAG;gCACH,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;6BACrB,CAAC,CAAC;4BACH,MAAM;wBACR;4BACE,+DAA+D;4BAC/D,kEAAkE;4BAClE,sCAAsC;4BACtC,GAAG,CAAC,oCAAoC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;4BAClD,MAAM;oBACV,CAAC;gBACH,CAAC;gBAED,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAEhE,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEf,mEAAmE;gBACnE,0EAA0E;gBAC1E,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EACzD;oBACE,UAAU;iBACX,EACD,CAAC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,iCAAiC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QACpE,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACnC,2EAA2E;YAC3E,wEAAwE;YACxE,oEAAoE;YACpE,IAAI,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3D,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAC7D;oBACE,UAAU,EAAE,qBAAqB;iBAClC,CACF,CAAC;YACJ,CAAC;YAED,4EAA4E;YAC5E,0EAA0E;YAC1E,2CAA2C;YAC3C,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAE/D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;YACpD,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;8BAIhD,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAApD,wBAeG;AAEH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isObject } from "@nomicfoundation/hardhat-utils/lang";
|
|
3
|
-
import { CoverageManagerImplementation } from "../coverage-manager.js";
|
|
1
|
+
import { getCoverageManager } from "../helpers.js";
|
|
4
2
|
export default async () => ({
|
|
5
3
|
onTestRunStart: async (context, id, next) => {
|
|
6
4
|
await next(context, id);
|
|
@@ -17,26 +15,17 @@ export default async () => ({
|
|
|
17
15
|
});
|
|
18
16
|
export async function testRunStart(context, id) {
|
|
19
17
|
if (context.globalOptions.coverage === true) {
|
|
20
|
-
|
|
21
|
-
isObject(context._coverage) &&
|
|
22
|
-
context._coverage instanceof CoverageManagerImplementation, "Expected HookContext#_coverage to be an instance of CoverageManagerImplementation");
|
|
23
|
-
await context._coverage.clearData(id);
|
|
18
|
+
await getCoverageManager(context).clearData(id);
|
|
24
19
|
}
|
|
25
20
|
}
|
|
26
21
|
export async function testWorkerDone(context, id) {
|
|
27
22
|
if (context.globalOptions.coverage === true) {
|
|
28
|
-
|
|
29
|
-
isObject(context._coverage) &&
|
|
30
|
-
context._coverage instanceof CoverageManagerImplementation, "Expected HookContext#_coverage to be an instance of CoverageManagerImplementation");
|
|
31
|
-
await context._coverage.saveData(id);
|
|
23
|
+
await getCoverageManager(context).saveData(id);
|
|
32
24
|
}
|
|
33
25
|
}
|
|
34
26
|
export async function testRunDone(context, id) {
|
|
35
27
|
if (context.globalOptions.coverage === true) {
|
|
36
|
-
|
|
37
|
-
isObject(context._coverage) &&
|
|
38
|
-
context._coverage instanceof CoverageManagerImplementation, "Expected HookContext#_coverage to be an instance of CoverageManagerImplementation");
|
|
39
|
-
await context._coverage.report(id);
|
|
28
|
+
await getCoverageManager(context).report(id);
|
|
40
29
|
}
|
|
41
30
|
}
|
|
42
31
|
//# sourceMappingURL=test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAe,KAAK,IAAiC,EAAE,CAAC,CAAC;IACvD,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAC1C,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAC5C,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAoB,EACpB,EAAU;IAEV,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAoB,EACpB,EAAU;IAEV,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAoB,EACpB,EAAU;IAEV,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import type { GasAnalyticsManager, GasMeasurement } from "./types.js";
|
|
1
|
+
import type { GasAnalyticsManager, GasMeasurement, GasStatsJson } from "./types.js";
|
|
2
2
|
interface ContractGasStats {
|
|
3
|
-
deployment?:
|
|
4
|
-
gas: number;
|
|
5
|
-
size: number;
|
|
6
|
-
};
|
|
3
|
+
deployment?: GasStats;
|
|
7
4
|
functions: Map<string, // function name or signature (if overloaded)
|
|
8
5
|
GasStats>;
|
|
9
6
|
}
|
|
@@ -13,14 +10,11 @@ interface GasStats {
|
|
|
13
10
|
max: number;
|
|
14
11
|
avg: number;
|
|
15
12
|
median: number;
|
|
16
|
-
|
|
13
|
+
count: number;
|
|
17
14
|
}
|
|
18
15
|
type GasMeasurementsByContract = Map<string, ContractGasMeasurements>;
|
|
19
16
|
interface ContractGasMeasurements {
|
|
20
|
-
|
|
21
|
-
gas: number;
|
|
22
|
-
size: number;
|
|
23
|
-
};
|
|
17
|
+
deployments: number[];
|
|
24
18
|
functions: Map<string, // functionSig
|
|
25
19
|
number[]>;
|
|
26
20
|
}
|
|
@@ -32,6 +26,9 @@ export declare class GasAnalyticsManagerImplementation implements GasAnalyticsMa
|
|
|
32
26
|
clearGasMeasurements(id: string): Promise<void>;
|
|
33
27
|
saveGasMeasurements(id: string): Promise<void>;
|
|
34
28
|
reportGasStats(...ids: string[]): Promise<void>;
|
|
29
|
+
writeGasStatsJson(outputPath: string, ...ids: string[]): Promise<void>;
|
|
30
|
+
enableReport(): void;
|
|
31
|
+
disableReport(): void;
|
|
35
32
|
/**
|
|
36
33
|
* @private exposed for testing purposes only
|
|
37
34
|
*/
|
|
@@ -48,6 +45,10 @@ export declare class GasAnalyticsManagerImplementation implements GasAnalyticsMa
|
|
|
48
45
|
* @private exposed for testing purposes only
|
|
49
46
|
*/
|
|
50
47
|
_generateGasStatsReport(gasStatsByContract: GasStatsByContract): string;
|
|
48
|
+
/**
|
|
49
|
+
* @private exposed for testing purposes only
|
|
50
|
+
*/
|
|
51
|
+
_generateGasStatsJson(gasStatsByContract: GasStatsByContract): GasStatsJson;
|
|
51
52
|
}
|
|
52
53
|
export declare function avg(values: number[]): number;
|
|
53
54
|
export declare function median(values: number[]): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas-analytics-manager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"gas-analytics-manager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,cAAc,EACd,YAAY,EAEb,MAAM,YAAY,CAAC;AA2BpB,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,EAAE,GAAG,CACZ,MAAM,EAAE,6CAA6C;IACrD,QAAQ,CACT,CAAC;CACH;AAED,KAAK,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAExD,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,KAAK,yBAAyB,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAEtE,UAAU,uBAAuB;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,GAAG,CACZ,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,CACT,CAAC;CACH;AAED,qBAAa,iCAAkC,YAAW,mBAAmB;;IACpE,eAAe,EAAE,cAAc,EAAE,CAAM;gBAIlC,gBAAgB,EAAE,MAAM;IAI7B,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAIjD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,cAAc,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/C,iBAAiB,CAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAG,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC;IAuBT,YAAY,IAAI,IAAI;IAIpB,aAAa,IAAI,IAAI;IAU5B;;OAEG;IACU,oBAAoB,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE;;OAEG;IACI,kBAAkB,IAAI,kBAAkB;IA+C/C;;OAEG;IACI,yBAAyB,IAAI,yBAAyB;IAuC7D;;OAEG;IACI,uBAAuB,CAC5B,kBAAkB,EAAE,kBAAkB,GACrC,MAAM;IAmFT;;OAEG;IACI,qBAAqB,CAC1B,kBAAkB,EAAE,kBAAkB,GACrC,YAAY;CAkChB;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE5C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAO/C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBnD;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { HardhatError } from "@nomicfoundation/hardhat-errors";
|
|
3
4
|
import { formatTable } from "@nomicfoundation/hardhat-utils/format";
|
|
4
|
-
import { ensureDir, getAllFilesMatching, readJsonFile, remove, writeJsonFile, } from "@nomicfoundation/hardhat-utils/fs";
|
|
5
|
+
import { ensureDir, exists, getAllFilesMatching, isDirectory, readJsonFile, remove, writeJsonFile, } from "@nomicfoundation/hardhat-utils/fs";
|
|
5
6
|
import { findDuplicates } from "@nomicfoundation/hardhat-utils/lang";
|
|
6
7
|
import chalk from "chalk";
|
|
7
8
|
import debug from "debug";
|
|
9
|
+
import { parseFullyQualifiedName } from "../../../utils/contract-names.js";
|
|
8
10
|
const gasStatsLog = debug("hardhat:core:gas-analytics:gas-analytics-manager:gas-stats");
|
|
9
11
|
export class GasAnalyticsManagerImplementation {
|
|
10
12
|
gasMeasurements = [];
|
|
11
13
|
#gasStatsPath;
|
|
14
|
+
#reportEnabled = true;
|
|
12
15
|
constructor(gasStatsRootPath) {
|
|
13
16
|
this.#gasStatsPath = path.join(gasStatsRootPath, "gas-stats");
|
|
14
17
|
}
|
|
@@ -28,6 +31,9 @@ export class GasAnalyticsManagerImplementation {
|
|
|
28
31
|
gasStatsLog("Saved gas measurements", id, filePath);
|
|
29
32
|
}
|
|
30
33
|
async reportGasStats(...ids) {
|
|
34
|
+
if (!this.#reportEnabled) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
31
37
|
await this._loadGasMeasurements(...ids);
|
|
32
38
|
const gasStatsByContract = this._calculateGasStats();
|
|
33
39
|
const report = this._generateGasStatsReport(gasStatsByContract);
|
|
@@ -35,6 +41,27 @@ export class GasAnalyticsManagerImplementation {
|
|
|
35
41
|
console.log();
|
|
36
42
|
gasStatsLog("Printed markdown report");
|
|
37
43
|
}
|
|
44
|
+
async writeGasStatsJson(outputPath, ...ids) {
|
|
45
|
+
if (!this.#reportEnabled) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
await this._loadGasMeasurements(...ids);
|
|
49
|
+
const gasStatsByContract = this._calculateGasStats();
|
|
50
|
+
const resolvedPath = path.resolve(outputPath);
|
|
51
|
+
if ((await exists(resolvedPath)) && (await isDirectory(resolvedPath))) {
|
|
52
|
+
throw new HardhatError(HardhatError.ERRORS.CORE.BUILTIN_TASKS.INVALID_FILE_PATH, { path: outputPath });
|
|
53
|
+
}
|
|
54
|
+
await ensureDir(path.dirname(resolvedPath));
|
|
55
|
+
const json = this._generateGasStatsJson(gasStatsByContract);
|
|
56
|
+
await writeJsonFile(resolvedPath, json);
|
|
57
|
+
gasStatsLog("Written gas stats JSON to", resolvedPath);
|
|
58
|
+
}
|
|
59
|
+
enableReport() {
|
|
60
|
+
this.#reportEnabled = true;
|
|
61
|
+
}
|
|
62
|
+
disableReport() {
|
|
63
|
+
this.#reportEnabled = false;
|
|
64
|
+
}
|
|
38
65
|
async #getGasMeasurementsPath(id) {
|
|
39
66
|
const gasMeasurementsPath = path.join(this.#gasStatsPath, id);
|
|
40
67
|
await ensureDir(gasMeasurementsPath);
|
|
@@ -67,10 +94,13 @@ export class GasAnalyticsManagerImplementation {
|
|
|
67
94
|
const contractGasStats = {
|
|
68
95
|
functions: new Map(),
|
|
69
96
|
};
|
|
70
|
-
if (measurements.
|
|
97
|
+
if (measurements.deployments.length > 0) {
|
|
71
98
|
contractGasStats.deployment = {
|
|
72
|
-
|
|
73
|
-
|
|
99
|
+
min: Math.min(...measurements.deployments),
|
|
100
|
+
max: Math.max(...measurements.deployments),
|
|
101
|
+
avg: Math.round(avg(measurements.deployments)),
|
|
102
|
+
median: Math.round(median(measurements.deployments)),
|
|
103
|
+
count: measurements.deployments.length,
|
|
74
104
|
};
|
|
75
105
|
}
|
|
76
106
|
const overloadedFnNames = findDuplicates([...measurements.functions.keys()].map(getFunctionName));
|
|
@@ -82,7 +112,7 @@ export class GasAnalyticsManagerImplementation {
|
|
|
82
112
|
max: Math.max(...gasValues),
|
|
83
113
|
avg: Math.round(avg(gasValues)),
|
|
84
114
|
median: Math.round(median(gasValues)),
|
|
85
|
-
|
|
115
|
+
count: gasValues.length,
|
|
86
116
|
};
|
|
87
117
|
contractGasStats.functions.set(isOverloaded ? functionSig : functionName, stats);
|
|
88
118
|
}
|
|
@@ -99,15 +129,13 @@ export class GasAnalyticsManagerImplementation {
|
|
|
99
129
|
let contractMeasurements = measurementsByContract.get(currentMeasurement.contractFqn);
|
|
100
130
|
if (contractMeasurements === undefined) {
|
|
101
131
|
contractMeasurements = {
|
|
132
|
+
deployments: [],
|
|
102
133
|
functions: new Map(),
|
|
103
134
|
};
|
|
104
135
|
measurementsByContract.set(currentMeasurement.contractFqn, contractMeasurements);
|
|
105
136
|
}
|
|
106
137
|
if (currentMeasurement.type === "deployment") {
|
|
107
|
-
contractMeasurements.
|
|
108
|
-
gas: currentMeasurement.gas,
|
|
109
|
-
size: currentMeasurement.size,
|
|
110
|
-
};
|
|
138
|
+
contractMeasurements.deployments.push(currentMeasurement.gas);
|
|
111
139
|
}
|
|
112
140
|
else {
|
|
113
141
|
let measurements = contractMeasurements.functions.get(currentMeasurement.functionSig);
|
|
@@ -162,26 +190,65 @@ export class GasAnalyticsManagerImplementation {
|
|
|
162
190
|
`${gasStats.avg}`,
|
|
163
191
|
`${gasStats.median}`,
|
|
164
192
|
`${gasStats.max}`,
|
|
165
|
-
`${gasStats.
|
|
193
|
+
`${gasStats.count}`,
|
|
166
194
|
],
|
|
167
195
|
});
|
|
168
196
|
}
|
|
169
197
|
if (contractGasStats.deployment !== undefined) {
|
|
170
198
|
rows.push({
|
|
171
199
|
type: "header",
|
|
172
|
-
cells: [
|
|
200
|
+
cells: [
|
|
201
|
+
"Deployment",
|
|
202
|
+
"Min",
|
|
203
|
+
"Average",
|
|
204
|
+
"Median",
|
|
205
|
+
"Max",
|
|
206
|
+
"#deployments",
|
|
207
|
+
].map((s) => chalk.yellow(s)),
|
|
173
208
|
});
|
|
174
209
|
rows.push({
|
|
175
210
|
type: "row",
|
|
176
211
|
cells: [
|
|
177
|
-
|
|
178
|
-
`${contractGasStats.deployment.
|
|
212
|
+
"",
|
|
213
|
+
`${contractGasStats.deployment.min}`,
|
|
214
|
+
`${contractGasStats.deployment.avg}`,
|
|
215
|
+
`${contractGasStats.deployment.median}`,
|
|
216
|
+
`${contractGasStats.deployment.max}`,
|
|
217
|
+
`${contractGasStats.deployment.count}`,
|
|
179
218
|
],
|
|
180
219
|
});
|
|
181
220
|
}
|
|
182
221
|
}
|
|
183
222
|
return formatTable(rows);
|
|
184
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* @private exposed for testing purposes only
|
|
226
|
+
*/
|
|
227
|
+
_generateGasStatsJson(gasStatsByContract) {
|
|
228
|
+
const sortedContracts = [...gasStatsByContract.entries()]
|
|
229
|
+
.map(([internalFqn, stats]) => ({
|
|
230
|
+
userFqn: getUserFqn(internalFqn),
|
|
231
|
+
stats,
|
|
232
|
+
}))
|
|
233
|
+
.sort((a, b) => a.userFqn.localeCompare(b.userFqn));
|
|
234
|
+
const contracts = {};
|
|
235
|
+
for (const { userFqn, stats } of sortedContracts) {
|
|
236
|
+
const { sourceName, contractName } = parseFullyQualifiedName(userFqn);
|
|
237
|
+
const deployment = stats.deployment !== undefined ? { ...stats.deployment } : null;
|
|
238
|
+
let functions = null;
|
|
239
|
+
if (stats.functions.size > 0) {
|
|
240
|
+
functions = {};
|
|
241
|
+
// Sort functions by removing trailing ) and comparing alphabetically.
|
|
242
|
+
// This ensures that overloaded functions with fewer params come first
|
|
243
|
+
// (e.g., foo(uint256) comes before foo(uint256,uint256)). In other
|
|
244
|
+
// scenarios, removing the trailing ) has no effect on the order.
|
|
245
|
+
const sortedFunctions = [...stats.functions.entries()].sort(([a], [b]) => a.split(")")[0].localeCompare(b.split(")")[0]));
|
|
246
|
+
functions = Object.fromEntries(sortedFunctions);
|
|
247
|
+
}
|
|
248
|
+
contracts[userFqn] = { sourceName, contractName, deployment, functions };
|
|
249
|
+
}
|
|
250
|
+
return { contracts };
|
|
251
|
+
}
|
|
185
252
|
}
|
|
186
253
|
export function avg(values) {
|
|
187
254
|
return values.reduce((a, c) => a + c, 0) / values.length;
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"gas-analytics-manager.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts"],"names":[],"mappings":"AASA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EACL,SAAS,EACT,MAAM,EACN,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,MAAM,EACN,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,MAAM,WAAW,GAAG,KAAK,CACvB,4DAA4D,CAC7D,CAAC;AA8BF,MAAM,OAAO,iCAAiC;IACrC,eAAe,GAAqB,EAAE,CAAC;IACrC,aAAa,CAAS;IAC/B,cAAc,GAAG,IAAI,CAAC;IAEtB,YAAY,gBAAwB;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAEM,iBAAiB,CAAC,cAA8B;QACrD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,EAAU;QAC1C,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,WAAW,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,EAAU;QACzC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,mBAAmB,EACnB,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAC9B,CAAC;QACF,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,WAAW,CAAC,wBAAwB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,GAAG,GAAa;QAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,GAAG,CAAC,CAAC;QAExC,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,UAAkB,EAClB,GAAG,GAAa;QAEhB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,GAAG,CAAC,CAAC;QAExC,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,EACxD,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACxC,WAAW,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAEM,YAAY;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,EAAU;QACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACrC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB,CAAC,GAAG,GAAa;QAChD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YACjE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAmB,QAAQ,CAAC,CAAC;gBAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;gBACD,WAAW,CAAC,yBAAyB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,kBAAkB;QACvB,MAAM,kBAAkB,GAAuB,IAAI,GAAG,EAAE,CAAC;QACzD,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEhE,KAAK,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,sBAAsB,EAAE,CAAC;YACjE,MAAM,gBAAgB,GAAqB;gBACzC,SAAS,EAAE,IAAI,GAAG,EAAE;aACrB,CAAC;YAEF,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,gBAAgB,CAAC,UAAU,GAAG;oBAC5B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;oBAC1C,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;oBAC1C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBAC9C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACpD,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM;iBACvC,CAAC;YACJ,CAAC;YAED,MAAM,iBAAiB,GAAG,cAAc,CACtC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CACxD,CAAC;YAEF,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC9D,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;gBAElD,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAa;oBACtB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;oBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;oBAC3B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC/B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrC,KAAK,EAAE,SAAS,CAAC,MAAM;iBACxB,CAAC;gBAEF,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAC5B,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EACzC,KAAK,CACN,CAAC;YACJ,CAAC;YAED,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,yBAAyB;QAC9B,MAAM,sBAAsB,GAA8B,IAAI,GAAG,EAAE,CAAC;QAEpE,KAAK,MAAM,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACtD,IAAI,oBAAoB,GAAG,sBAAsB,CAAC,GAAG,CACnD,kBAAkB,CAAC,WAAW,CAC/B,CAAC;YACF,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACvC,oBAAoB,GAAG;oBACrB,WAAW,EAAE,EAAE;oBACf,SAAS,EAAE,IAAI,GAAG,EAAE;iBACrB,CAAC;gBACF,sBAAsB,CAAC,GAAG,CACxB,kBAAkB,CAAC,WAAW,EAC9B,oBAAoB,CACrB,CAAC;YACJ,CAAC;YAED,IAAI,kBAAkB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC7C,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,IAAI,YAAY,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,CACnD,kBAAkB,CAAC,WAAW,CAC/B,CAAC;gBACF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,YAAY,GAAG,EAAE,CAAC;oBAClB,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAChC,kBAAkB,CAAC,WAAW,EAC9B,YAAY,CACb,CAAC;gBACJ,CAAC;gBAED,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,uBAAuB,CAC5B,kBAAsC;QAEtC,MAAM,IAAI,GAAgB,EAAE,CAAC;QAE7B,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,sDAAsD;QACtD,MAAM,eAAe,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1E,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;QAEF,KAAK,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,IAAI,eAAe,EAAE,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;aAC/C,CAAC,CAAC;YAEH,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE;wBACL,eAAe;wBACf,KAAK;wBACL,SAAS;wBACT,QAAQ;wBACR,KAAK;wBACL,QAAQ;qBACT,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC9B,CAAC,CAAC;YACL,CAAC;YAED,sEAAsE;YACtE,sEAAsE;YACtE,mEAAmE;YACnE,iEAAiE;YACjE,MAAM,eAAe,GAAG,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;YAEF,KAAK,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC9D,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE;wBACL,mBAAmB;wBACnB,GAAG,QAAQ,CAAC,GAAG,EAAE;wBACjB,GAAG,QAAQ,CAAC,GAAG,EAAE;wBACjB,GAAG,QAAQ,CAAC,MAAM,EAAE;wBACpB,GAAG,QAAQ,CAAC,GAAG,EAAE;wBACjB,GAAG,QAAQ,CAAC,KAAK,EAAE;qBACpB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,gBAAgB,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE;wBACL,YAAY;wBACZ,KAAK;wBACL,SAAS;wBACT,QAAQ;wBACR,KAAK;wBACL,cAAc;qBACf,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC9B,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE;wBACL,EAAE;wBACF,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE;wBACpC,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE;wBACpC,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE;wBACvC,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE;wBACpC,GAAG,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE;qBACvC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,qBAAqB,CAC1B,kBAAsC;QAEtC,MAAM,eAAe,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;YAChC,KAAK;SACN,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAyC,EAAE,CAAC;QAE3D,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC;YACjD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAEtE,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAElE,IAAI,SAAS,GAA6C,IAAI,CAAC;YAC/D,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC7B,SAAS,GAAG,EAAE,CAAC;gBACf,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE;gBACnE,iEAAiE;gBACjE,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACzD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;gBACF,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAClD,CAAC;YAED,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAC3E,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,MAAgB;IAClC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAgB;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACb,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,yEAAyE;QACzE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import type { GasAnalyticsManager } from "./types.js";
|
|
2
|
+
import type { HookContext } from "../../../types/hooks.js";
|
|
3
|
+
import type { HardhatRuntimeEnvironment } from "../../../types/hre.js";
|
|
4
|
+
export declare function getGasAnalyticsManager(hookContextOrHre: HookContext | HardhatRuntimeEnvironment): GasAnalyticsManager;
|
|
5
|
+
export declare function setGasAnalyticsManager(hre: HardhatRuntimeEnvironment, gasAnalyticsManager: GasAnalyticsManager): void;
|
|
1
6
|
/**
|
|
2
7
|
* The following helpers are kept for backward compatibility with older versions
|
|
3
8
|
* of test runner plugins (hardhat-mocha, hardhat-node-test-runner) that import
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAcvE,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,WAAW,GAAG,yBAAyB,GACxD,mBAAmB,CAQrB;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,yBAAyB,EAC9B,mBAAmB,EAAE,mBAAmB,GACvC,IAAI,CAMN;AAED;;;;GAIG;AAEH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,EACE,aAAa,EACb,WAAW,EACX,aAAa,GACd,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,GACA,MAAM,CAcR"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
|
|
1
2
|
import chalk from "chalk";
|
|
3
|
+
import { HardhatRuntimeEnvironmentImplementation } from "../../core/hre.js";
|
|
4
|
+
import { GasAnalyticsManagerImplementation } from "./gas-analytics-manager.js";
|
|
2
5
|
import { testRunDone, testRunStart, testWorkerDone, } from "./hook-handlers/test.js";
|
|
6
|
+
export function getGasAnalyticsManager(hookContextOrHre) {
|
|
7
|
+
assertHardhatInvariant("_gasAnalytics" in hookContextOrHre &&
|
|
8
|
+
hookContextOrHre._gasAnalytics instanceof
|
|
9
|
+
GasAnalyticsManagerImplementation, "Expected _gasAnalytics to be an instance of GasAnalyticsManagerImplementation");
|
|
10
|
+
return hookContextOrHre._gasAnalytics;
|
|
11
|
+
}
|
|
12
|
+
export function setGasAnalyticsManager(hre, gasAnalyticsManager) {
|
|
13
|
+
assertHardhatInvariant(hre instanceof HardhatRuntimeEnvironmentImplementation, "Expected HRE to be an instance of HardhatRuntimeEnvironmentImplementation");
|
|
14
|
+
hre._gasAnalytics = gasAnalyticsManager;
|
|
15
|
+
}
|
|
3
16
|
/**
|
|
4
17
|
* The following helpers are kept for backward compatibility with older versions
|
|
5
18
|
* of test runner plugins (hardhat-mocha, hardhat-node-test-runner) that import
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/gas-analytics/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,UAAU,sBAAsB,CACpC,gBAAyD;IAEzD,sBAAsB,CACpB,eAAe,IAAI,gBAAgB;QACjC,gBAAgB,CAAC,aAAa;YAC5B,iCAAiC,EACrC,+EAA+E,CAChF,CAAC;IACF,OAAO,gBAAgB,CAAC,aAAa,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAA8B,EAC9B,mBAAwC;IAExC,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;IACF,GAAG,CAAC,aAAa,GAAG,mBAAmB,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AAEH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,EACE,aAAa,EACb,WAAW,EACX,aAAa,GAKd;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,UAAU,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,WAAW,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +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;
|
|
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;8BAKxD,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAAzE,wBAuBG"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
|
|
2
|
-
import { HardhatRuntimeEnvironmentImplementation } from "../../../core/hre.js";
|
|
3
1
|
import { GasAnalyticsManagerImplementation } from "../gas-analytics-manager.js";
|
|
2
|
+
import { setGasAnalyticsManager } from "../helpers.js";
|
|
4
3
|
export default async () => ({
|
|
5
4
|
created: async (context, hre) => {
|
|
6
|
-
if (context.globalOptions.gasStats
|
|
5
|
+
if (context.globalOptions.gasStats ||
|
|
6
|
+
context.globalOptions.gasStatsJson !== undefined) {
|
|
7
7
|
const gasAnalyticsManager = new GasAnalyticsManagerImplementation(hre.config.paths.cache);
|
|
8
|
-
|
|
9
|
-
hre._gasAnalytics = gasAnalyticsManager;
|
|
8
|
+
setGasAnalyticsManager(hre, gasAnalyticsManager);
|
|
10
9
|
// NOTE: We register this hook dynamically to avoid a circular dependency
|
|
11
10
|
// between gas-analytics and network-manager plugins. The network-manager
|
|
12
11
|
// checks for the existence of onGasReported handlers to determine if gas
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hre.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hre.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,eAAe,KAAK,IAAsD,EAAE,CAAC,CAAC;IAC5E,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC9B,IACE,OAAO,CAAC,aAAa,CAAC,QAAQ;YAC9B,OAAO,CAAC,aAAa,CAAC,YAAY,KAAK,SAAS,EAChD,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,iCAAiC,CAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CACvB,CAAC;YAEF,sBAAsB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAEjD,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/gas-analytics/hook-handlers/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/gas-analytics/hook-handlers/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;8BAIhD,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAApD,wBAeG;AASH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAUf"}
|