hardhat 3.12.0 → 3.14.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 +34 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.d.ts +3 -2
- package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js +16 -7
- package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.d.ts +7 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.js +10 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.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 +12 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.d.ts +5 -4
- package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js +56 -14
- package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.d.ts +2 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.js +18 -7
- package/dist/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.js +0 -17
- package/dist/src/internal/builtin-plugins/network-manager/chain-descriptors.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +3 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js +10 -4
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts +2 -2
- 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 -2
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.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 +5 -3
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
- package/dist/src/internal/cli/error-handling/error-handler.d.ts.map +1 -0
- package/dist/src/internal/cli/{error-handler.js → error-handling/error-handler.js} +13 -2
- package/dist/src/internal/cli/error-handling/error-handler.js.map +1 -0
- package/dist/src/internal/cli/error-handling/native-binding-error.d.ts +18 -0
- package/dist/src/internal/cli/error-handling/native-binding-error.d.ts.map +1 -0
- package/dist/src/internal/cli/error-handling/native-binding-error.js +57 -0
- package/dist/src/internal/cli/error-handling/native-binding-error.js.map +1 -0
- package/dist/src/internal/cli/hhu.js +1 -1
- package/dist/src/internal/cli/hhu.js.map +1 -1
- package/dist/src/internal/cli/main.js +1 -1
- package/dist/src/internal/cli/main.js.map +1 -1
- package/dist/src/internal/constants.d.ts +10 -0
- package/dist/src/internal/constants.d.ts.map +1 -1
- package/dist/src/internal/constants.js +10 -0
- package/dist/src/internal/constants.js.map +1 -1
- package/dist/src/internal/core/config.d.ts +14 -1
- package/dist/src/internal/core/config.d.ts.map +1 -1
- package/dist/src/internal/core/config.js +13 -5
- package/dist/src/internal/core/config.js.map +1 -1
- package/dist/src/internal/core/configuration-variables.d.ts.map +1 -1
- package/dist/src/internal/core/configuration-variables.js +3 -1
- package/dist/src/internal/core/configuration-variables.js.map +1 -1
- package/dist/src/types/config.d.ts +11 -0
- package/dist/src/types/config.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.ts +26 -4
- package/src/internal/builtin-plugins/gas-analytics/helpers/utils.ts +15 -0
- package/src/internal/builtin-plugins/gas-analytics/index.ts +13 -0
- package/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.ts +90 -13
- package/src/internal/builtin-plugins/gas-analytics/tasks/solidity-test/task-action.ts +29 -6
- package/src/internal/builtin-plugins/network-manager/chain-descriptors.ts +0 -17
- package/src/internal/builtin-plugins/network-manager/type-validation.ts +5 -1
- package/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts +25 -5
- package/src/internal/builtin-plugins/solidity/type-extensions.ts +2 -2
- package/src/internal/builtin-plugins/solidity-test/helpers.ts +6 -2
- package/src/internal/builtin-plugins/solidity-test/reporter.ts +6 -7
- package/src/internal/cli/{error-handler.ts → error-handling/error-handler.ts} +20 -3
- package/src/internal/cli/error-handling/native-binding-error.ts +78 -0
- package/src/internal/cli/hhu.ts +1 -1
- package/src/internal/cli/main.ts +1 -1
- package/src/internal/constants.ts +11 -0
- package/src/internal/core/config.ts +35 -2
- package/src/internal/core/configuration-variables.ts +3 -1
- package/src/types/config.ts +12 -0
- package/templates/01-node-test-runner-viem/package.json +1 -1
- package/templates/02-mocha-ethers/package.json +1 -1
- package/templates/03-minimal/package.json +1 -1
- package/dist/src/internal/cli/error-handler.d.ts.map +0 -1
- package/dist/src/internal/cli/error-handler.js.map +0 -1
- /package/dist/src/internal/cli/{error-handler.d.ts → error-handling/error-handler.d.ts} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface NativeBindingFailure {
|
|
2
|
+
/** The package whose loader failed, e.g. `@nomicfoundation/edr`. */
|
|
3
|
+
parentPackage: string;
|
|
4
|
+
/** The platform package that couldn't be found. */
|
|
5
|
+
missingPackage: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Detect whether a given error is a napi-rs native binding load failure.
|
|
9
|
+
*
|
|
10
|
+
* Packages like `@nomicfoundation/edr` and `@nomicfoundation/solidity-analyzer`
|
|
11
|
+
* ship one prebuilt binary per platform in a separate package, and their
|
|
12
|
+
* generated loader `require`s the one matching the current platform. When that
|
|
13
|
+
* package is missing from the installation the loader throws at import time, so
|
|
14
|
+
* the failure surfaces as an opaque `MODULE_NOT_FOUND` from deep inside
|
|
15
|
+
* `node_modules`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function detectNativeBindingFailure(error: Error): NativeBindingFailure | undefined;
|
|
18
|
+
//# sourceMappingURL=native-binding-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-binding-error.d.ts","sourceRoot":"","sources":["../../../../../src/internal/cli/error-handling/native-binding-error.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,GACX,oBAAoB,GAAG,SAAS,CAuBlC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The platform triple that napi-rs appends to the platform package name, e.g.
|
|
3
|
+
* `@nomicfoundation/edr-linux-x64-gnu`, `@scope/pkg-darwin-arm64`.
|
|
4
|
+
*/
|
|
5
|
+
const PLATFORM_SUFFIX_REGEX = /-(?:android|darwin|freebsd|linux|win32)-(?:arm|arm64|ia32|x64|riscv64|ppc64|s390x)(?:-(?:gnu|musl|msvc|eabi|gnueabihf))?$/;
|
|
6
|
+
/**
|
|
7
|
+
* Matches both the CJS (`Cannot find module 'x'`) and ESM
|
|
8
|
+
* (`Cannot find package 'x' imported from y`) forms.
|
|
9
|
+
*/
|
|
10
|
+
const MISSING_MODULE_REGEX = /Cannot find (?:module|package) '([^']+)'/g;
|
|
11
|
+
/**
|
|
12
|
+
* The packages Hardhat itself ships a native binding for.
|
|
13
|
+
*/
|
|
14
|
+
const HARDHAT_NATIVE_BINDING_PACKAGES = [
|
|
15
|
+
"@nomicfoundation/edr",
|
|
16
|
+
"@nomicfoundation/solidity-analyzer",
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Detect whether a given error is a napi-rs native binding load failure.
|
|
20
|
+
*
|
|
21
|
+
* Packages like `@nomicfoundation/edr` and `@nomicfoundation/solidity-analyzer`
|
|
22
|
+
* ship one prebuilt binary per platform in a separate package, and their
|
|
23
|
+
* generated loader `require`s the one matching the current platform. When that
|
|
24
|
+
* package is missing from the installation the loader throws at import time, so
|
|
25
|
+
* the failure surfaces as an opaque `MODULE_NOT_FOUND` from deep inside
|
|
26
|
+
* `node_modules`.
|
|
27
|
+
*/
|
|
28
|
+
export function detectNativeBindingFailure(error) {
|
|
29
|
+
const chain = errorChain(error);
|
|
30
|
+
// Some link in the chain names the missing platform package.
|
|
31
|
+
for (const chainedError of chain) {
|
|
32
|
+
for (const match of chainedError.message.matchAll(MISSING_MODULE_REGEX)) {
|
|
33
|
+
const moduleName = match[1];
|
|
34
|
+
if (!PLATFORM_SUFFIX_REGEX.test(moduleName)) {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const parentPackage = moduleName.replace(PLATFORM_SUFFIX_REGEX, "");
|
|
38
|
+
if (!HARDHAT_NATIVE_BINDING_PACKAGES.includes(parentPackage)) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
return { missingPackage: moduleName, parentPackage };
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
function errorChain(error) {
|
|
47
|
+
const chain = [];
|
|
48
|
+
const seen = new Set();
|
|
49
|
+
let current = error;
|
|
50
|
+
while (current instanceof Error && !seen.has(current)) {
|
|
51
|
+
seen.add(current);
|
|
52
|
+
chain.push(current);
|
|
53
|
+
current = current.cause;
|
|
54
|
+
}
|
|
55
|
+
return chain;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=native-binding-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-binding-error.js","sourceRoot":"","sources":["../../../../../src/internal/cli/error-handling/native-binding-error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,qBAAqB,GACzB,2HAA2H,CAAC;AAE9H;;;GAGG;AACH,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEzE;;GAEG;AACH,MAAM,+BAA+B,GAAG;IACtC,sBAAsB;IACtB,oCAAoC;CACrC,CAAC;AASF;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAY;IAEZ,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAEhC,6DAA6D;IAC7D,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACxE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAEpE,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7D,SAAS;YACX,CAAC;YAED,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,KAAY;IAC9B,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,IAAI,OAAO,GAAY,KAAK,CAAC;IAE7B,OAAO,OAAO,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -9,7 +9,7 @@ import { NETWORK_GLOBAL_OPTION } from "../builtin-plugins/network-manager/networ
|
|
|
9
9
|
import { globalFlag } from "../core/config.js";
|
|
10
10
|
import { TaskManagerImplementation } from "../core/tasks/task-manager.js";
|
|
11
11
|
import { getHardhatVersion } from "../utils/package.js";
|
|
12
|
-
import { printErrorMessages } from "./error-handler.js";
|
|
12
|
+
import { printErrorMessages } from "./error-handling/error-handler.js";
|
|
13
13
|
import { getGlobalHelpString } from "./help/get-global-help-string.js";
|
|
14
14
|
import { getHelpString } from "./help/get-help-string.js";
|
|
15
15
|
import { parseGlobalOptions, parseRawArguments, parseTask, parseTaskArguments, } from "./parser.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hhu.js","sourceRoot":"","sources":["../../../../src/internal/cli/hhu.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hhu.js","sourceRoot":"","sources":["../../../../src/internal/cli/hhu.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import { resolvePluginList } from "../core/plugins/resolve-plugin-list.js";
|
|
|
16
16
|
import { warnAboutUnusedLoadedPlugins } from "../core/plugins/unused-plugins-warning.js";
|
|
17
17
|
import { setGlobalHardhatRuntimeEnvironment } from "../global-hre-instance.js";
|
|
18
18
|
import { createHardhatRuntimeEnvironment } from "../hre-initialization.js";
|
|
19
|
-
import { printErrorMessages } from "./error-handler.js";
|
|
19
|
+
import { printErrorMessages } from "./error-handling/error-handler.js";
|
|
20
20
|
import { getGlobalHelpString } from "./help/get-global-help-string.js";
|
|
21
21
|
import { getHelpString } from "./help/get-help-string.js";
|
|
22
22
|
import { parseBuiltinGlobalOptions, parseGlobalOptions, parseRawArguments, parseTask, parseTaskArguments, } from "./parser.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/internal/cli/main.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/internal/cli/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,14 @@ export declare const L1_CHAIN_TYPE = "l1";
|
|
|
7
7
|
export declare const OPTIMISM_CHAIN_TYPE = "op";
|
|
8
8
|
export declare const DEFAULT_NETWORK_NAME = "default";
|
|
9
9
|
export declare const DEFAULT_VERBOSITY = 2;
|
|
10
|
+
/**
|
|
11
|
+
* The verbosity level (`-vvvvv`) at and above which stack traces are always
|
|
12
|
+
* collected. Below it, stack traces are produced by re-running the failing
|
|
13
|
+
* test with tracing enabled — much cheaper, but tests with non-deterministic
|
|
14
|
+
* side effects (impure cheatcodes, a fork pinned to `latest`) can't be
|
|
15
|
+
* replayed and report an `UnsafeToReplay` warning instead. Always-on
|
|
16
|
+
* collection records step traces for every test, which balloons memory on
|
|
17
|
+
* large suites, so it's reserved for the highest verbosity.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ALWAYS_COLLECT_STACK_TRACES_VERBOSITY = 5;
|
|
10
20
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAE1D,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAEhF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,eAAO,MAAM,iBAAiB,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAE1D,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAEhF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;;;;GAQG;AACH,eAAO,MAAM,qCAAqC,IAAI,CAAC"}
|
|
@@ -7,4 +7,14 @@ export const L1_CHAIN_TYPE = "l1";
|
|
|
7
7
|
export const OPTIMISM_CHAIN_TYPE = "op";
|
|
8
8
|
export const DEFAULT_NETWORK_NAME = "default";
|
|
9
9
|
export const DEFAULT_VERBOSITY = 2;
|
|
10
|
+
/**
|
|
11
|
+
* The verbosity level (`-vvvvv`) at and above which stack traces are always
|
|
12
|
+
* collected. Below it, stack traces are produced by re-running the failing
|
|
13
|
+
* test with tracing enabled — much cheaper, but tests with non-deterministic
|
|
14
|
+
* side effects (impure cheatcodes, a fork pinned to `latest`) can't be
|
|
15
|
+
* replayed and report an `UnsafeToReplay` warning instead. Always-on
|
|
16
|
+
* collection records step traces for every test, which balloons memory on
|
|
17
|
+
* large suites, so it's reserved for the highest verbosity.
|
|
18
|
+
*/
|
|
19
|
+
export const ALWAYS_COLLECT_STACK_TRACES_VERBOSITY = 5;
|
|
10
20
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC"}
|
|
@@ -4,8 +4,21 @@ import type { EmptyTaskDefinitionBuilder, NewTaskDefinitionBuilder, TaskOverride
|
|
|
4
4
|
import { ArgumentType } from "../../types/arguments.js";
|
|
5
5
|
/**
|
|
6
6
|
* Creates a configuration variable, which will be fetched at runtime.
|
|
7
|
+
*
|
|
8
|
+
* The second argument is an options object with an optional `format` (a
|
|
9
|
+
* template that must include the `{variable}` marker) and an optional
|
|
10
|
+
* `default` value. The default is used as a fallback when the variable can't
|
|
11
|
+
* be resolved from any other source (see {@link ConfigurationVariable.default}).
|
|
7
12
|
*/
|
|
8
|
-
export declare function configVariable(name: string,
|
|
13
|
+
export declare function configVariable(name: string, options?: {
|
|
14
|
+
format?: string;
|
|
15
|
+
default?: string;
|
|
16
|
+
}): ConfigurationVariable;
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated Passing the `format` as a string is deprecated. Pass an options
|
|
19
|
+
* object instead: `configVariable(name, { format })`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function configVariable(name: string, format: string): ConfigurationVariable;
|
|
9
22
|
/**
|
|
10
23
|
* Creates a builder to define a new task.
|
|
11
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/internal/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAUxD
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/internal/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAUxD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,qBAAqB,CAAC;AACzB;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,qBAAqB,CAAC;AA+BzB;;GAEG;AACH,wBAAgB,IAAI,CAClB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EACrB,WAAW,GAAE,MAAW,GACvB,wBAAwB,CAE1B;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EACrB,WAAW,EAAE,MAAM,GAClB,0BAA0B,CAE5B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GACpB,6BAA6B,CAE/B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;CAC1C,GAAG,sBAAsB,CAEzB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,sBAAsB,CAMzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,sBAAsB,CAMzB"}
|
|
@@ -3,15 +3,23 @@ import { ArgumentType } from "../../types/arguments.js";
|
|
|
3
3
|
import { CONFIGURATION_VARIABLE_MARKER } from "./configuration-variables.js";
|
|
4
4
|
import { buildGlobalOptionDefinition } from "./global-options.js";
|
|
5
5
|
import { EmptyTaskDefinitionBuilderImplementation, NewTaskDefinitionBuilderImplementation, TaskOverrideDefinitionBuilderImplementation, } from "./tasks/builders.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export function configVariable(name, formatOrOptions = {}) {
|
|
7
|
+
const { format = CONFIGURATION_VARIABLE_MARKER, default: defaultValue } = typeof formatOrOptions === "string"
|
|
8
|
+
? { format: formatOrOptions }
|
|
9
|
+
: formatOrOptions;
|
|
10
10
|
if (!format.includes(CONFIGURATION_VARIABLE_MARKER)) {
|
|
11
11
|
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL
|
|
12
12
|
.CONFIG_VARIABLE_FORMAT_MUST_INCLUDE_VARIABLE, { format, marker: CONFIGURATION_VARIABLE_MARKER });
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
const configurationVariable = {
|
|
15
|
+
_type: "ConfigurationVariable",
|
|
16
|
+
name,
|
|
17
|
+
format,
|
|
18
|
+
};
|
|
19
|
+
if (defaultValue !== undefined) {
|
|
20
|
+
configurationVariable.default = defaultValue;
|
|
21
|
+
}
|
|
22
|
+
return configurationVariable;
|
|
15
23
|
}
|
|
16
24
|
/**
|
|
17
25
|
* Creates a builder to define a new task.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/internal/core/config.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,wCAAwC,EACxC,sCAAsC,EACtC,2CAA2C,GAC5C,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/internal/core/config.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,wCAAwC,EACxC,sCAAsC,EACtC,2CAA2C,GAC5C,MAAM,qBAAqB,CAAC;AAsB7B,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,kBAAkE,EAAE;IAEpE,MAAM,EAAE,MAAM,GAAG,6BAA6B,EAAE,OAAO,EAAE,YAAY,EAAE,GACrE,OAAO,eAAe,KAAK,QAAQ;QACjC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE;QAC7B,CAAC,CAAC,eAAe,CAAC;IAEtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;aAC7B,4CAA4C,EAC/C,EAAE,MAAM,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAClD,CAAC;IACJ,CAAC;IAED,MAAM,qBAAqB,GAA0B;QACnD,KAAK,EAAE,uBAAuB;QAC9B,IAAI;QACJ,MAAM;KACP,CAAC;IAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,qBAAqB,CAAC,OAAO,GAAG,YAAY,CAAC;IAC/C,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,EAAqB,EACrB,cAAsB,EAAE;IAExB,OAAO,IAAI,sCAAsC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,EAAqB,EACrB,WAAmB;IAEnB,OAAO,IAAI,wCAAwC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAqB;IAErB,OAAO,IAAI,2CAA2C,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAyB,OAMpD;IACC,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAI1B;IACC,OAAO,2BAA2B,CAAC;QACjC,GAAG,OAAO;QACV,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAK3B;IACC,OAAO,2BAA2B,CAAC;QACjC,GAAG,OAAO;QACV,IAAI,EAAE,YAAY,CAAC,KAAK;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC;KACxC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-variables.d.ts","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASxD,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,qBAAqB,GAAG,MAAM,GACvC,6BAA6B,CAM/B;AAED,uBAAe,iCAAkC,YAAW,6BAA6B;;aAQ3D,MAAM,EAAE,MAAM;IAPnC,KAAK,EAAE,+BAA+B,CACX;IAIlC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;gBAEtB,MAAM,EAAE,MAAM;IAO7B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAWtB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAazB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAY5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAa7C;AAED,qBAAa,iCAAkC,SAAQ,iCAAiC;;IAStF,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB;cAW/C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"configuration-variables.d.ts","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASxD,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,qBAAqB,GAAG,MAAM,GACvC,6BAA6B,CAM/B;AAED,uBAAe,iCAAkC,YAAW,6BAA6B;;aAQ3D,MAAM,EAAE,MAAM;IAPnC,KAAK,EAAE,+BAA+B,CACX;IAIlC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;gBAEtB,MAAM,EAAE,MAAM;IAO7B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAWtB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAazB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAY5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAa7C;AAED,qBAAa,iCAAkC,SAAQ,iCAAiC;;IAStF,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB;cAW/C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAmChD;AAED,qBAAa,+BAAgC,SAAQ,iCAAiC;;gBAGxE,KAAK,EAAE,MAAM;cAKT,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAGhD"}
|
|
@@ -85,7 +85,9 @@ export class LazyResolvedConfigurationVariable extends BaseResolvedConfiguration
|
|
|
85
85
|
const mutex = LazyResolvedConfigurationVariable.#mutexes.get(this.#hooks);
|
|
86
86
|
assertHardhatInvariant(mutex !== undefined, "Mutex must be defined");
|
|
87
87
|
return await mutex.exclusiveRun(async () => await this.#hooks.runHandlerChain("configurationVariables", "fetchValue", [this.#variable], async (_context, v) => {
|
|
88
|
-
|
|
88
|
+
// Fall back to the default only when the env var is unset. An empty
|
|
89
|
+
// string still takes precedence
|
|
90
|
+
const value = process.env[v.name] ?? v.default;
|
|
89
91
|
if (typeof value !== "string") {
|
|
90
92
|
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL.ENV_VAR_NOT_FOUND, { name: v.name });
|
|
91
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-variables.js","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"configuration-variables.js","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,17 @@ export interface ConfigurationVariable {
|
|
|
7
7
|
_type: "ConfigurationVariable";
|
|
8
8
|
name: string;
|
|
9
9
|
format?: string;
|
|
10
|
+
/**
|
|
11
|
+
* An optional fallback value, used only when the variable can't be resolved
|
|
12
|
+
* from any other source (e.g. an environment variable or the keystore).
|
|
13
|
+
*
|
|
14
|
+
* By default, the value is resolved from the environment variable first, then
|
|
15
|
+
* any plugin source (like hardhat-keystore), and finally this default. Plugins
|
|
16
|
+
* can customize this, but the built-in resolver and bundled plugins follow this
|
|
17
|
+
* order. If none of them provide a value and no default is set, resolving the
|
|
18
|
+
* variable throws.
|
|
19
|
+
*/
|
|
20
|
+
default?: string;
|
|
10
21
|
}
|
|
11
22
|
/**
|
|
12
23
|
* A resolved configuration variable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,qCAAqC,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,qCAAqC,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,+BAA+B,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvB;;;;;OAKG;IACH,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,gBAAgB,EAAE,qBAAqB,GAAG,MAAM,KAC7C,6BAA6B,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,qBAAqB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,qBAAqB,CAAC;CACrD;AAED;;GAEG;AAGH,MAAM,WAAW,mBAAmB;CAAG;AAEvC;;GAEG;AAGH,MAAM,WAAW,qBAAqB;CAAG;AAEzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED;;GAEG;AAGH,MAAM,WAAW,eAAe;CAAG;AAEnC;;GAEG;AAGH,MAAM,WAAW,iBAAiB;CAAG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.14.0",
|
|
4
4
|
"description": "Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.",
|
|
5
5
|
"homepage": "https://hardhat.org",
|
|
6
6
|
"repository": {
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"@types/semver": "^7.5.8",
|
|
70
70
|
"@types/ws": "^8.5.13",
|
|
71
71
|
"c8": "^12.0.0",
|
|
72
|
-
"eslint": "9.
|
|
72
|
+
"eslint": "9.39.5",
|
|
73
73
|
"expect-type": "^1.4.0",
|
|
74
74
|
"prettier": "3.9.6",
|
|
75
75
|
"rimraf": "^6.1.3",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"@nomicfoundation/hardhat-test-utils": "^2.0.3"
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"@nomicfoundation/edr": "0.
|
|
80
|
+
"@nomicfoundation/edr": "0.17.0",
|
|
81
81
|
"@nomicfoundation/hardhat-errors": "^3.0.17",
|
|
82
82
|
"@nomicfoundation/hardhat-utils": "^4.1.6",
|
|
83
83
|
"@nomicfoundation/hardhat-vendored": "^3.0.4",
|
|
@@ -17,7 +17,11 @@ import {
|
|
|
17
17
|
parseFullyQualifiedName,
|
|
18
18
|
} from "../../../utils/contract-names.js";
|
|
19
19
|
|
|
20
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
formatSectionHeader,
|
|
22
|
+
getUserFqn,
|
|
23
|
+
isWithinTolerance,
|
|
24
|
+
} from "./helpers/utils.js";
|
|
21
25
|
|
|
22
26
|
export const FUNCTION_GAS_SNAPSHOTS_FILE = ".gas-snapshot";
|
|
23
27
|
|
|
@@ -49,6 +53,10 @@ export interface FunctionGasSnapshotComparison {
|
|
|
49
53
|
added: FunctionGasSnapshot[];
|
|
50
54
|
removed: FunctionGasSnapshot[];
|
|
51
55
|
changed: FunctionGasSnapshotChange[];
|
|
56
|
+
// Diffs within the allowed tolerance: they don't fail the check. They are
|
|
57
|
+
// included in the result for programmatic inspection, but are not shown in
|
|
58
|
+
// the default console output.
|
|
59
|
+
tolerated: FunctionGasSnapshotChange[];
|
|
52
60
|
}
|
|
53
61
|
|
|
54
62
|
export interface FunctionGasSnapshotChange {
|
|
@@ -242,6 +250,7 @@ export function parseFunctionGasSnapshots(
|
|
|
242
250
|
export function compareFunctionGasSnapshots(
|
|
243
251
|
previousSnapshots: FunctionGasSnapshot[],
|
|
244
252
|
currentSnapshots: FunctionGasSnapshotWithMetadata[],
|
|
253
|
+
tolerance: number,
|
|
245
254
|
): FunctionGasSnapshotComparison {
|
|
246
255
|
const previousSnapshotsMap = new Map(
|
|
247
256
|
previousSnapshots.map((s) => [
|
|
@@ -252,6 +261,7 @@ export function compareFunctionGasSnapshots(
|
|
|
252
261
|
|
|
253
262
|
const added: FunctionGasSnapshot[] = [];
|
|
254
263
|
const changed: FunctionGasSnapshotChange[] = [];
|
|
264
|
+
const tolerated: FunctionGasSnapshotChange[] = [];
|
|
255
265
|
|
|
256
266
|
for (const current of currentSnapshots) {
|
|
257
267
|
const key = `${current.contractNameOrFqn}#${current.functionSig}`;
|
|
@@ -278,7 +288,7 @@ export function compareFunctionGasSnapshots(
|
|
|
278
288
|
? current.gasUsage.gas
|
|
279
289
|
: current.gasUsage.medianGas;
|
|
280
290
|
|
|
281
|
-
|
|
291
|
+
const change: FunctionGasSnapshotChange = {
|
|
282
292
|
contractNameOrFqn: current.contractNameOrFqn,
|
|
283
293
|
functionSig: current.functionSig,
|
|
284
294
|
kind: currentKind,
|
|
@@ -287,14 +297,23 @@ export function compareFunctionGasSnapshots(
|
|
|
287
297
|
runs:
|
|
288
298
|
currentKind === "fuzz" ? Number(current.gasUsage.runs) : undefined,
|
|
289
299
|
source: current.metadata.source,
|
|
290
|
-
}
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
if (
|
|
303
|
+
tolerance > 0 &&
|
|
304
|
+
isWithinTolerance(change.expected, change.actual, tolerance)
|
|
305
|
+
) {
|
|
306
|
+
tolerated.push(change);
|
|
307
|
+
} else {
|
|
308
|
+
changed.push(change);
|
|
309
|
+
}
|
|
291
310
|
}
|
|
292
311
|
previousSnapshotsMap.delete(key);
|
|
293
312
|
}
|
|
294
313
|
|
|
295
314
|
const removed = Array.from(previousSnapshotsMap.values());
|
|
296
315
|
|
|
297
|
-
return { added, removed, changed };
|
|
316
|
+
return { added, removed, changed, tolerated };
|
|
298
317
|
}
|
|
299
318
|
|
|
300
319
|
export function hasGasUsageChanged(
|
|
@@ -315,6 +334,7 @@ export function hasGasUsageChanged(
|
|
|
315
334
|
export async function checkFunctionGasSnapshots(
|
|
316
335
|
basePath: string,
|
|
317
336
|
suiteResults: SuiteResult[],
|
|
337
|
+
tolerance: number,
|
|
318
338
|
): Promise<FunctionGasSnapshotCheckResult> {
|
|
319
339
|
const functionGasSnapshots = extractFunctionGasSnapshots(suiteResults);
|
|
320
340
|
|
|
@@ -332,6 +352,7 @@ export async function checkFunctionGasSnapshots(
|
|
|
332
352
|
added: [],
|
|
333
353
|
removed: [],
|
|
334
354
|
changed: [],
|
|
355
|
+
tolerated: [],
|
|
335
356
|
},
|
|
336
357
|
noBaseline,
|
|
337
358
|
};
|
|
@@ -343,6 +364,7 @@ export async function checkFunctionGasSnapshots(
|
|
|
343
364
|
const comparison = compareFunctionGasSnapshots(
|
|
344
365
|
previousFunctionGasSnapshots,
|
|
345
366
|
functionGasSnapshots,
|
|
367
|
+
tolerance,
|
|
346
368
|
);
|
|
347
369
|
|
|
348
370
|
return {
|
|
@@ -84,6 +84,21 @@ export function median(values: number[]): number {
|
|
|
84
84
|
: (sorted[mid - 1] + sorted[mid]) / 2;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Whether `actual` drifted from `expected` by at most `tolerance` percent.
|
|
89
|
+
* Cross-multiplied instead of `(diff / expected) * 100 <= tolerance` to
|
|
90
|
+
* avoid floating-point errors from the division (e.g. `(49 / 700) * 100`
|
|
91
|
+
* is `7.000000000000001`, which would fail a tolerance of exactly 7).
|
|
92
|
+
*/
|
|
93
|
+
export function isWithinTolerance(
|
|
94
|
+
expected: number,
|
|
95
|
+
actual: number,
|
|
96
|
+
tolerance: number,
|
|
97
|
+
): boolean {
|
|
98
|
+
const diff = Math.abs(actual - expected);
|
|
99
|
+
return diff * 100 <= tolerance * Math.abs(expected);
|
|
100
|
+
}
|
|
101
|
+
|
|
87
102
|
export function formatSectionHeader(
|
|
88
103
|
sectionName: string,
|
|
89
104
|
{
|
|
@@ -19,6 +19,13 @@ const hardhatPlugin: HardhatPlugin = definePlugin({
|
|
|
19
19
|
description:
|
|
20
20
|
"Check the snapshots match the stored values (Solidity tests only)",
|
|
21
21
|
})
|
|
22
|
+
.addOption({
|
|
23
|
+
name: "tolerance",
|
|
24
|
+
description:
|
|
25
|
+
"Allowed drift percentage for --snapshot-check (Solidity tests only)",
|
|
26
|
+
type: ArgumentType.FLOAT,
|
|
27
|
+
defaultValue: 0,
|
|
28
|
+
})
|
|
22
29
|
.setAction(async () => ({
|
|
23
30
|
default: async (args, _hre, runSuper) => {
|
|
24
31
|
// We don't need to do anything here, as the test task will forward
|
|
@@ -36,6 +43,12 @@ const hardhatPlugin: HardhatPlugin = definePlugin({
|
|
|
36
43
|
name: "snapshotCheck",
|
|
37
44
|
description: "Check the snapshots match the stored values",
|
|
38
45
|
})
|
|
46
|
+
.addOption({
|
|
47
|
+
name: "tolerance",
|
|
48
|
+
description: "Allowed drift percentage for --snapshot-check",
|
|
49
|
+
type: ArgumentType.FLOAT,
|
|
50
|
+
defaultValue: 0,
|
|
51
|
+
})
|
|
39
52
|
.setAction(
|
|
40
53
|
async () => await import("./tasks/solidity-test/task-action.js"),
|
|
41
54
|
)
|