hardhat 3.8.0 → 3.9.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 +16 -0
- package/dist/src/internal/builtin-plugins/coverage/config.d.ts +6 -0
- package/dist/src/internal/builtin-plugins/coverage/config.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/coverage/config.js +18 -0
- package/dist/src/internal/builtin-plugins/coverage/config.js.map +1 -0
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.d.ts +4 -0
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.js +15 -0
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/config.js.map +1 -0
- 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 +10 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/index.js +1 -0
- package/dist/src/internal/builtin-plugins/coverage/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts +20 -0
- package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.d.ts +2 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js +13 -10
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.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 +10 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js +3 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/source-names.d.ts +12 -0
- package/dist/src/internal/builtin-plugins/solidity/source-names.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/source-names.js +18 -0
- package/dist/src/internal/builtin-plugins/solidity/source-names.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/eip712/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/eip712/index.js +7 -12
- package/dist/src/internal/builtin-plugins/solidity-test/eip712/index.js.map +1 -1
- package/dist/src/internal/edr/context.d.ts.map +1 -1
- package/dist/src/internal/edr/context.js +25 -7
- package/dist/src/internal/edr/context.js.map +1 -1
- package/dist/src/internal/{builtin-plugins/solidity-test/eip712 → utils}/glob.d.ts +4 -0
- package/dist/src/internal/utils/glob.d.ts.map +1 -0
- package/dist/src/internal/{builtin-plugins/solidity-test/eip712 → utils}/glob.js +3 -3
- package/dist/src/internal/utils/glob.js.map +1 -0
- package/package.json +1 -1
- package/src/internal/builtin-plugins/coverage/config.ts +28 -0
- package/src/internal/builtin-plugins/coverage/hook-handlers/config.ts +30 -0
- package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +15 -2
- package/src/internal/builtin-plugins/coverage/index.ts +1 -0
- package/src/internal/builtin-plugins/coverage/type-extensions.ts +24 -0
- package/src/internal/builtin-plugins/network-manager/edr/genesis-state.ts +22 -14
- package/src/internal/builtin-plugins/network-manager/type-validation.ts +14 -1
- package/src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts +3 -0
- package/src/internal/builtin-plugins/solidity/source-names.ts +19 -0
- package/src/internal/builtin-plugins/solidity-test/eip712/index.ts +8 -16
- package/src/internal/edr/context.ts +39 -23
- package/src/internal/{builtin-plugins/solidity-test/eip712 → utils}/glob.ts +3 -3
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +2 -2
- package/templates/hardhat-3/02-mocha-ethers/package.json +2 -2
- package/templates/hardhat-3/03-minimal/package.json +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/eip712/glob.d.ts.map +0 -1
- package/dist/src/internal/builtin-plugins/solidity-test/eip712/glob.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# hardhat
|
|
2
2
|
|
|
3
|
+
## 3.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#8380](https://github.com/NomicFoundation/hardhat/pull/8380) [`0fd498d`](https://github.com/NomicFoundation/hardhat/commit/0fd498df67fbdefe5ca16c77019f94715bf0401f) Thanks [@kanej](https://github.com/kanej)! - Added support for `coverage.skipFiles`, a list of globs of Solidity files to exclude from coverage instrumentation and reporting during a `--coverage` run.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#8383](https://github.com/NomicFoundation/hardhat/pull/8383) [`1660f1e`](https://github.com/NomicFoundation/hardhat/commit/1660f1e8078a1eca1de27b9256b5adcb6deb37b3) Thanks [@schaable](https://github.com/schaable)! - Fixed an intermittent "Provider for provided chain type does not exist" error that could occur when multiple network connections were created concurrently.
|
|
12
|
+
|
|
13
|
+
- [#8371](https://github.com/NomicFoundation/hardhat/pull/8371) [`287620e`](https://github.com/NomicFoundation/hardhat/commit/287620efca6d5459cbccd5df020e08f830df8449) Thanks [@gultekinmakif](https://github.com/gultekinmakif)! - Account overrides that share an address with the network's built-in genesis accounts are now correctly merged into a single genesis entry.
|
|
14
|
+
|
|
15
|
+
- [#8375](https://github.com/NomicFoundation/hardhat/pull/8375) [`931a5f0`](https://github.com/NomicFoundation/hardhat/commit/931a5f0699d310965b338a773f5a69c1dbcb2ec3) Thanks [@schaable](https://github.com/schaable)! - Suppressed the solc initcode size warning for Solidity test contracts and when running under `--coverage`.
|
|
16
|
+
|
|
17
|
+
- [#8372](https://github.com/NomicFoundation/hardhat/pull/8372) [`5f6aff2`](https://github.com/NomicFoundation/hardhat/commit/5f6aff268841e947a2dd32a72a18885adf3d78de) Thanks [@gultekinmakif](https://github.com/gultekinmakif)! - Improved validation for `initialDate` network configuration. Invalid `Date` objects and unparseable date `string`s are now rejected during config loading rather than causing a runtime error later.
|
|
18
|
+
|
|
3
19
|
## 3.8.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HardhatUserConfig } from "../../../config.js";
|
|
2
|
+
import type { CoverageConfig } from "../../../types/config.js";
|
|
3
|
+
import type { HardhatUserConfigValidationError } from "../../../types/hooks.js";
|
|
4
|
+
export declare function validateCoverageUserConfig(userConfig: unknown): HardhatUserConfigValidationError[];
|
|
5
|
+
export declare function resolveCoverageConfig(userConfig: HardhatUserConfig): CoverageConfig;
|
|
6
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAahF,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,OAAO,GAClB,gCAAgC,EAAE,CAEpC;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,iBAAiB,GAC5B,cAAc,CAIhB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { validateUserConfigZodType } from "@nomicfoundation/hardhat-zod-utils";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const userConfigType = z.object({
|
|
4
|
+
coverage: z
|
|
5
|
+
.object({
|
|
6
|
+
skipFiles: z.array(z.string()).optional(),
|
|
7
|
+
})
|
|
8
|
+
.optional(),
|
|
9
|
+
});
|
|
10
|
+
export function validateCoverageUserConfig(userConfig) {
|
|
11
|
+
return validateUserConfigZodType(userConfig, userConfigType);
|
|
12
|
+
}
|
|
13
|
+
export function resolveCoverageConfig(userConfig) {
|
|
14
|
+
return {
|
|
15
|
+
skipFiles: userConfig.coverage?.skipFiles ?? [],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,0BAA0B,CACxC,UAAmB;IAEnB,OAAO,yBAAyB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAA6B;IAE7B,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;8BAOrC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAAtD,wBAsBE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { resolveCoverageConfig, validateCoverageUserConfig, } from "../config.js";
|
|
2
|
+
export default async () => {
|
|
3
|
+
const handlers = {
|
|
4
|
+
validateUserConfig: async (userConfig) => validateCoverageUserConfig(userConfig),
|
|
5
|
+
resolveUserConfig: async (userConfig, resolveConfigurationVariable, next) => {
|
|
6
|
+
const resolvedConfig = await next(userConfig, resolveConfigurationVariable);
|
|
7
|
+
return {
|
|
8
|
+
...resolvedConfig,
|
|
9
|
+
coverage: resolveCoverageConfig(userConfig),
|
|
10
|
+
};
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
return handlers;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/config.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAEtB,eAAe,KAAK,IAAmC,EAAE;IACvD,MAAM,QAAQ,GAAyB;QACrC,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CACvC,0BAA0B,CAAC,UAAU,CAAC;QACxC,iBAAiB,EAAE,KAAK,EACtB,UAAU,EACV,4BAA4B,EAC5B,IAAI,EACJ,EAAE;YACF,MAAM,cAAc,GAAG,MAAM,IAAI,CAC/B,UAAU,EACV,4BAA4B,CAC7B,CAAC;YAEF,OAAO;gBACL,GAAG,cAAc;gBACjB,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC;aAC5C,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,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;8BAiBvC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBAoHG"}
|
|
@@ -3,15 +3,24 @@ import { getCoverageLibrary } from "@nomicfoundation/edr/coverage";
|
|
|
3
3
|
import { HardhatError } from "@nomicfoundation/hardhat-errors";
|
|
4
4
|
import { createDebug } from "@nomicfoundation/hardhat-utils/debug";
|
|
5
5
|
import { ensureError } from "@nomicfoundation/hardhat-utils/error";
|
|
6
|
+
import { matchesAnyGlob } from "../../../utils/glob.js";
|
|
7
|
+
import { toUserSourceName } from "../../solidity/source-names.js";
|
|
6
8
|
import { getCoverageManager } from "../helpers/accessors.js";
|
|
7
9
|
import { instrumentSolidityFileForCompilationJob } from "../instrumentation.js";
|
|
8
10
|
const log = createDebug("hardhat:core:coverage:hook-handlers:solidity");
|
|
9
11
|
export default async () => ({
|
|
10
12
|
preprocessProjectFileBeforeBuilding: async (context, sourceName, fsPath, fileContent, solcVersion, next) => {
|
|
13
|
+
// This hook runs on every project file of every build. Coverage is the
|
|
14
|
+
// only reason to preprocess them, so when it is off we pass the file
|
|
15
|
+
// through untouched and keep the common path free of the work below.
|
|
16
|
+
if (!context.globalOptions.coverage) {
|
|
17
|
+
return await next(context, sourceName, fsPath, fileContent, solcVersion);
|
|
18
|
+
}
|
|
11
19
|
// NOTE: We do not want to instrument the test project files as we don't
|
|
12
20
|
// want to report coverage for them.
|
|
13
21
|
const isTestSource = (await context.solidity.getScope(fsPath)) === "tests";
|
|
14
|
-
|
|
22
|
+
const isSkipped = matchesAnyGlob(toUserSourceName(sourceName), context.config.coverage.skipFiles);
|
|
23
|
+
if (!isTestSource && !isSkipped) {
|
|
15
24
|
try {
|
|
16
25
|
const { source, metadata } = instrumentSolidityFileForCompilationJob({
|
|
17
26
|
compilationJobSolcVersion: solcVersion,
|
|
@@ -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,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uCAAuC,EAAE,MAAM,uBAAuB,CAAC;AAEhF,MAAM,GAAG,GAAG,WAAW,CAAC,8CAA8C,CAAC,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;
|
|
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,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uCAAuC,EAAE,MAAM,uBAAuB,CAAC;AAEhF,MAAM,GAAG,GAAG,WAAW,CAAC,8CAA8C,CAAC,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,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC3E,CAAC;QAED,wEAAwE;QACxE,oCAAoC;QACpC,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC;QAE3E,MAAM,SAAS,GAAG,cAAc,CAC9B,gBAAgB,CAAC,UAAU,CAAC,EAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAClC,CAAC;QAEF,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,uCAAuC,CAAC;oBACnE,yBAAyB,EAAE,WAAW;oBACtC,UAAU;oBACV,WAAW;iBACZ,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,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC3E,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,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;YAEzC,2EAA2E;YAC3E,wEAAwE;YACxE,oEAAoE;YACpE,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAC7D;oBACE,UAAU,EAAE,WAAW,CAAC,QAAQ;iBACjC,CACF,CAAC;YACJ,CAAC;YAED,4EAA4E;YAC5E,0EAA0E;YAC1E,2CAA2C;YAC3C,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG;gBACxC,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK/D,mBAAmB,sBAAsB,CAAC;AAE1C,QAAA,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK/D,mBAAmB,sBAAsB,CAAC;AAE1C,QAAA,MAAM,aAAa,EAAE,aAiBnB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -11,6 +11,7 @@ const hardhatPlugin = definePlugin({
|
|
|
11
11
|
],
|
|
12
12
|
hookHandlers: {
|
|
13
13
|
clean: () => import("./hook-handlers/clean.js"),
|
|
14
|
+
config: () => import("./hook-handlers/config.js"),
|
|
14
15
|
hre: () => import("./hook-handlers/hre.js"),
|
|
15
16
|
solidity: () => import("./hook-handlers/solidity.js"),
|
|
16
17
|
test: () => import("./hook-handlers/test.js"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,MAAM,aAAa,GAAkB,YAAY,CAAC;IAChD,EAAE,EAAE,kBAAkB;IACtB,KAAK,EAAE,EAAE;IACT,aAAa,EAAE;QACb,UAAU,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,uBAAuB;SACrC,CAAC;KACH;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC;QAC/C,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;QAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC;QACrD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC;KAC9C;IACD,UAAU,EAAE,SAAS;CACtB,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,MAAM,aAAa,GAAkB,YAAY,CAAC;IAChD,EAAE,EAAE,kBAAkB;IACtB,KAAK,EAAE,EAAE;IACT,aAAa,EAAE;QACb,UAAU,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,uBAAuB;SACrC,CAAC;KACH;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC;QAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC;QACjD,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;QAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC;QACrD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC;KAC9C;IACD,UAAU,EAAE,SAAS;CACtB,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -3,5 +3,25 @@ declare module "../../../types/global-options.js" {
|
|
|
3
3
|
coverage: boolean;
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
+
declare module "../../../types/config.js" {
|
|
7
|
+
interface CoverageUserConfig {
|
|
8
|
+
/**
|
|
9
|
+
* Globs of Solidity source files to exclude from coverage instrumentation.
|
|
10
|
+
* A project file whose project-relative source name matches any of these
|
|
11
|
+
* globs is not instrumented during a `--coverage` run, and so does not
|
|
12
|
+
* appear in coverage reports.
|
|
13
|
+
*/
|
|
14
|
+
skipFiles?: string[];
|
|
15
|
+
}
|
|
16
|
+
interface HardhatUserConfig {
|
|
17
|
+
coverage?: CoverageUserConfig;
|
|
18
|
+
}
|
|
19
|
+
interface CoverageConfig {
|
|
20
|
+
skipFiles: string[];
|
|
21
|
+
}
|
|
22
|
+
interface HardhatConfig {
|
|
23
|
+
coverage: CoverageConfig;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
6
26
|
export {};
|
|
7
27
|
//# sourceMappingURL=type-extensions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAiB,aAAa;QAC5B,QAAQ,EAAE,OAAO,CAAC;KACnB;CACF"}
|
|
1
|
+
{"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAiB,aAAa;QAC5B,QAAQ,EAAE,OAAO,CAAC;KACnB;CACF;AAED,OAAO,QAAQ,0BAA0B,CAAC;IACxC,UAAiB,kBAAkB;QACjC;;;;;WAKG;QACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB;IAED,UAAiB,iBAAiB;QAChC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;KAC/B;IAED,UAAiB,cAAc;QAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB;IAED,UAAiB,aAAa;QAC5B,QAAQ,EAAE,cAAc,CAAC;KAC1B;CACF"}
|
|
@@ -2,10 +2,11 @@ import type { EdrNetworkAccountsConfig, EdrNetworkForkingConfig } from "../../..
|
|
|
2
2
|
import type { ChainType } from "../../../../types/network.js";
|
|
3
3
|
import { type AccountOverride } from "@nomicfoundation/edr";
|
|
4
4
|
export declare function getGenesisStateAndOwnedAccounts(accountsConfig: EdrNetworkAccountsConfig, forkingConfig: EdrNetworkForkingConfig | undefined, chainType: ChainType, specId: string): Promise<{
|
|
5
|
-
genesisState: Map<
|
|
5
|
+
genesisState: Map<string, AccountOverride>;
|
|
6
6
|
ownedAccounts: Array<{
|
|
7
7
|
secretKey: string;
|
|
8
8
|
balance: bigint;
|
|
9
9
|
}>;
|
|
10
10
|
}>;
|
|
11
|
+
export declare function mergeGenesisState(genesisState: Map<string, AccountOverride>, chainGenesisState: readonly AccountOverride[]): void;
|
|
11
12
|
//# sourceMappingURL=genesis-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genesis-state.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/network-manager/edr/genesis-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"genesis-state.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/network-manager/edr/genesis-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAkD9B,wBAAsB,+BAA+B,CACnD,cAAc,EAAE,wBAAwB,EACxC,aAAa,EAAE,uBAAuB,GAAG,SAAS,EAClD,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C,aAAa,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D,CAAC,CAuDD;AA4CD,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1C,iBAAiB,EAAE,SAAS,eAAe,EAAE,GAC5C,IAAI,CAaN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { l1GenesisState, l1HardforkFromString, opGenesisState, opHardforkFromString, } from "@nomicfoundation/edr";
|
|
2
|
+
import { bytesToHexString } from "@nomicfoundation/hardhat-utils/hex";
|
|
2
3
|
import { AsyncMutex } from "@nomicfoundation/hardhat-utils/synchronization";
|
|
3
4
|
import { hexToBytes } from "ethereum-cryptography/utils";
|
|
4
5
|
import { OPTIMISM_CHAIN_TYPE } from "../../../constants.js";
|
|
@@ -79,26 +80,28 @@ async function createGenesisStateAndOwnedAccounts(accountsConfig, forkingConfig,
|
|
|
79
80
|
balance: BigInt(balance),
|
|
80
81
|
code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
|
|
81
82
|
};
|
|
82
|
-
return [address, accountOverride];
|
|
83
|
+
return [bytesToHexString(address), accountOverride];
|
|
83
84
|
}));
|
|
84
85
|
const chainGenesisState = forkingConfig !== undefined
|
|
85
86
|
? [] // TODO: Add support for overriding remote fork state when the local fork is different
|
|
86
87
|
: chainType === OPTIMISM_CHAIN_TYPE
|
|
87
88
|
? opGenesisState(opHardforkFromString(specId))
|
|
88
89
|
: l1GenesisState(l1HardforkFromString(specId));
|
|
90
|
+
mergeGenesisState(genesisState, chainGenesisState);
|
|
91
|
+
return { genesisState, ownedAccounts };
|
|
92
|
+
}
|
|
93
|
+
export function mergeGenesisState(genesisState, chainGenesisState) {
|
|
89
94
|
for (const account of chainGenesisState) {
|
|
90
|
-
const
|
|
95
|
+
const addressKey = bytesToHexString(account.address);
|
|
96
|
+
const existingOverride = genesisState.get(addressKey);
|
|
91
97
|
if (existingOverride !== undefined) {
|
|
92
98
|
// Favor the genesis state specified by the user
|
|
93
|
-
account.balance =
|
|
94
|
-
account.nonce =
|
|
95
|
-
account.code =
|
|
96
|
-
account.storage =
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
genesisState.set(account.address, account);
|
|
99
|
+
account.balance = existingOverride.balance ?? account.balance;
|
|
100
|
+
account.nonce = existingOverride.nonce ?? account.nonce;
|
|
101
|
+
account.code = existingOverride.code ?? account.code;
|
|
102
|
+
account.storage = existingOverride.storage ?? account.storage;
|
|
100
103
|
}
|
|
104
|
+
genesisState.set(addressKey, account);
|
|
101
105
|
}
|
|
102
|
-
return { genesisState, ownedAccounts };
|
|
103
106
|
}
|
|
104
107
|
//# sourceMappingURL=genesis-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genesis-state.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/network-manager/edr/genesis-state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"genesis-state.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/network-manager/edr/genesis-state.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAE9E,mEAAmE;AACnE,IAAI,qBAAgE,CAAC;AAErE,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,4BAA4B,GAe9B,IAAI,OAAO,EAAE,CAAC;AAElB,MAAM,iCAAiC,GAAG,IAAI,UAAU,EAAE,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,cAAwC,EACxC,aAAkD,EAClD,SAAoB,EACpB,MAAc;IAKd,MAAM,MAAM,GAAG,4BAA4B;SACxC,GAAG,CAAC,cAAc,CAAC;QACpB,EAAE,GAAG,CAAC,aAAa,IAAI,gCAAgC,CAAC;QACxD,EAAE,GAAG,CAAC,SAAS,CAAC;QAChB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,iCAAiC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QACrE,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,kBAAkB,GAAG,4BAA4B;aACpD,GAAG,CAAC,cAAc,CAAC;YACpB,EAAE,GAAG,CAAC,aAAa,IAAI,gCAAgC,CAAC;YACxD,EAAE,GAAG,CAAC,SAAS,CAAC;YAChB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kCAAkC,CACrD,cAAc,EACd,aAAa,EACb,SAAS,EACT,MAAM,CACP,CAAC;QAEF,IAAI,mBAAmB,GAAG,4BAA4B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3E,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,mBAAmB,GAAG,IAAI,OAAO,EAAE,CAAC;YACpC,4BAA4B,CAAC,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,qBAAqB,GACzB,aAAa,IAAI,gCAAgC,CAAC;QACpD,IAAI,kBAAkB,GAAG,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACxE,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;YAChC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACzD,CAAC;QAED,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,cAAwC,EACxC,aAAkD,EAClD,SAAoB,EACpB,MAAc;IAKd,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACxC,qBAAqB,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC;IAEvC,MAAM,aAAa,GAAG,MAAM,iCAAiC,CAAC,cAAc,CAAC,CAAC;IAE9E,MAAM,YAAY,GAAiC,IAAI,GAAG,CACxD,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,MAAM,eAAe,GAAoB;YACvC,OAAO;YACP,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,IAAI,UAAU,EAAE,EAAE,sEAAsE;SAC/F,CAAC;QAEF,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,iBAAiB,GACrB,aAAa,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE,CAAC,sFAAsF;QAC3F,CAAC,CAAC,SAAS,KAAK,mBAAmB;YACjC,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAErD,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAEnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,YAA0C,EAC1C,iBAA6C;IAE7C,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,gDAAgD;YAChD,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YAC9D,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;YACxD,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YACrD,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;QAChE,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-validation.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/network-manager/type-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"type-validation.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/network-manager/type-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAobhF,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,iBAAiB,GAC5B,OAAO,CAAC,gCAAgC,EAAE,CAAC,CAE7C;AAID,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,+BAA+B,CAE7C;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,2BAA2B,CASzC;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,0BAA0B,CAUxC;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,uBAAuB,CAOpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,sBAAsB,CAOlC"}
|
|
@@ -198,7 +198,16 @@ const edrNetworkUserConfigSchema = z.object({
|
|
|
198
198
|
forking: z.optional(edrNetworkForkingUserConfigSchema),
|
|
199
199
|
hardfork: z.optional(z.string()),
|
|
200
200
|
initialBaseFeePerGas: z.optional(gasUnitUserConfigSchema),
|
|
201
|
-
initialDate: z.optional(unionType([z.string(), z.instanceof(Date)], "Expected a string or a Date"))
|
|
201
|
+
initialDate: z.optional(unionType([z.string(), z.instanceof(Date)], "Expected a string or a Date").refine((val) => {
|
|
202
|
+
if (typeof val === "string")
|
|
203
|
+
return !Number.isNaN(Date.parse(val));
|
|
204
|
+
if (val instanceof Date)
|
|
205
|
+
return !Number.isNaN(val.getTime());
|
|
206
|
+
// already union of string/Date, all types are exhausted
|
|
207
|
+
return true;
|
|
208
|
+
}, {
|
|
209
|
+
message: "initialDate must be a parseable date string or a valid Date",
|
|
210
|
+
})),
|
|
202
211
|
loggingEnabled: z.optional(z.boolean()),
|
|
203
212
|
minGasPrice: z.optional(gasUnitUserConfigSchema),
|
|
204
213
|
mining: z.optional(edrNetworkMiningUserConfigSchema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-validation.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/network-manager/type-validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type-validation.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/network-manager/type-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warning-suppression.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oCAAoC,4JAC0G,CAAC;AAC5J,eAAO,MAAM,YAAY,yCAAyC,CAAC;AACnE,eAAO,MAAM,cAAc,2DAC+B,CAAC;
|
|
1
|
+
{"version":3,"file":"warning-suppression.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oCAAoC,4JAC0G,CAAC;AAC5J,eAAO,MAAM,YAAY,yCAAyC,CAAC;AACnE,eAAO,MAAM,cAAc,2DAC+B,CAAC;AA+C3D;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,yBAAyB,EAAE,MAAM,EACjC,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAqDT"}
|
|
@@ -4,6 +4,7 @@ export const NATSPEC_MEMORY_SAFE_ASSEMBLY_WARNING = "Natspec memory-safe-assembl
|
|
|
4
4
|
export const SPDX_WARNING = "SPDX license identifier not provided";
|
|
5
5
|
export const PRAGMA_WARNING = "Source file does not specify required compiler version";
|
|
6
6
|
const CONTRACT_SIZE_WARNING = "Contract code size is";
|
|
7
|
+
const INIT_CODE_SIZE_WARNING = "Contract initcode size is";
|
|
7
8
|
// Suppression rules are grouped by scope. Each array has its own match logic
|
|
8
9
|
// in `shouldSuppressWarning` function; add new entries to the array that fits, or add
|
|
9
10
|
// a new array + block for a new scope.
|
|
@@ -22,6 +23,7 @@ const TEST_FILE_WARNING_MESSAGES = [
|
|
|
22
23
|
SPDX_WARNING,
|
|
23
24
|
PRAGMA_WARNING,
|
|
24
25
|
CONTRACT_SIZE_WARNING,
|
|
26
|
+
INIT_CODE_SIZE_WARNING,
|
|
25
27
|
];
|
|
26
28
|
// Warnings suppressed only when running with `--coverage`. An entry with no
|
|
27
29
|
// `filePath` matches the message anywhere (e.g. contract-size warnings that
|
|
@@ -30,6 +32,7 @@ const TEST_FILE_WARNING_MESSAGES = [
|
|
|
30
32
|
// (e.g. the injected coverage library file, which users can't edit).
|
|
31
33
|
const COVERAGE_MODE_RULES = [
|
|
32
34
|
{ message: CONTRACT_SIZE_WARNING },
|
|
35
|
+
{ message: INIT_CODE_SIZE_WARNING },
|
|
33
36
|
{
|
|
34
37
|
message: NATSPEC_MEMORY_SAFE_ASSEMBLY_WARNING,
|
|
35
38
|
filePath: COVERAGE_LIBRARY_FILE_NAME,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warning-suppression.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,CAAC,MAAM,oCAAoC,GAC/C,yJAAyJ,CAAC;AAC5J,MAAM,CAAC,MAAM,YAAY,GAAG,sCAAsC,CAAC;AACnE,MAAM,CAAC,MAAM,cAAc,GACzB,wDAAwD,CAAC;AAC3D,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"warning-suppression.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,CAAC,MAAM,oCAAoC,GAC/C,yJAAyJ,CAAC;AAC5J,MAAM,CAAC,MAAM,YAAY,GAAG,sCAAsC,CAAC;AACnE,MAAM,CAAC,MAAM,cAAc,GACzB,wDAAwD,CAAC;AAC3D,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAE3D,6EAA6E;AAC7E,sFAAsF;AACtF,uCAAuC;AAEvC,2EAA2E;AAC3E,6CAA6C;AAC7C,MAAM,mBAAmB,GAGpB;IACH;QACE,OAAO,EAAE,oCAAoC;QAC7C,mDAAmD;QACnD,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;KAChD;CACF,CAAC;AAEF,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,0BAA0B,GAAsB;IACpD,YAAY;IACZ,cAAc;IACd,qBAAqB;IACrB,sBAAsB;CACvB,CAAC;AAEF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AACvE,qEAAqE;AACrE,MAAM,mBAAmB,GAGpB;IACH,EAAE,OAAO,EAAE,qBAAqB,EAAE;IAClC,EAAE,OAAO,EAAE,sBAAsB,EAAE;IACnC;QACE,OAAO,EAAE,oCAAoC;QAC7C,QAAQ,EAAE,0BAA0B;KACrC;CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAoB,EACpB,yBAAiC,EACjC,mBAA2B,EAC3B,QAAiB;IAEjB,2DAA2D;IAC3D,IACE,QAAQ;QACR,mBAAmB,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CACP,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YACnC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACxE,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gEAAgE;IAChE,IACE,mBAAmB,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CACP,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CACvC,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAkC;IAClC,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,gCAAgC;QAChC,2CAA2C;QAC3C,wDAAwD;QACxD,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6DAA6D;QAC7D,WAAW;QACX,2FAA2F;QAC3F,4EAA4E;QAC5E,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,EAC7D,GAAG,CACJ,CAAC;QAEF,wCAAwC;QACxC,kEAAkE;QAClE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC/D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recovers the user-facing source name from a solc input source name by
|
|
3
|
+
* stripping the Hardhat project prefix.
|
|
4
|
+
*
|
|
5
|
+
* Project files have an input source name like `project/contracts/Foo.sol`,
|
|
6
|
+
* whereas the user writes paths — and config globs — against the
|
|
7
|
+
* project-relative `contracts/Foo.sol`. npm package input source names
|
|
8
|
+
* (`npm/<pkg>@<version>/...`) don't carry the project prefix and are returned
|
|
9
|
+
* unchanged.
|
|
10
|
+
*/
|
|
11
|
+
export declare function toUserSourceName(inputSourceName: string): string;
|
|
12
|
+
//# sourceMappingURL=source-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-names.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/solidity/source-names.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HARDHAT_PROJECT_INPUT_SOURCE_NAME_ROOT } from "./constants.js";
|
|
2
|
+
const PROJECT_INPUT_SOURCE_NAME_PREFIX = `${HARDHAT_PROJECT_INPUT_SOURCE_NAME_ROOT}/`;
|
|
3
|
+
/**
|
|
4
|
+
* Recovers the user-facing source name from a solc input source name by
|
|
5
|
+
* stripping the Hardhat project prefix.
|
|
6
|
+
*
|
|
7
|
+
* Project files have an input source name like `project/contracts/Foo.sol`,
|
|
8
|
+
* whereas the user writes paths — and config globs — against the
|
|
9
|
+
* project-relative `contracts/Foo.sol`. npm package input source names
|
|
10
|
+
* (`npm/<pkg>@<version>/...`) don't carry the project prefix and are returned
|
|
11
|
+
* unchanged.
|
|
12
|
+
*/
|
|
13
|
+
export function toUserSourceName(inputSourceName) {
|
|
14
|
+
return inputSourceName.startsWith(PROJECT_INPUT_SOURCE_NAME_PREFIX)
|
|
15
|
+
? inputSourceName.slice(PROJECT_INPUT_SOURCE_NAME_PREFIX.length)
|
|
16
|
+
: inputSourceName;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=source-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-names.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/solidity/source-names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,gCAAgC,GAAG,GAAG,sCAAsC,GAAG,CAAC;AAEtF;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,eAAuB;IACtD,OAAO,eAAe,CAAC,UAAU,CAAC,gCAAgC,CAAC;QACjE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,gCAAgC,CAAC,MAAM,CAAC;QAChE,CAAC,CAAC,eAAe,CAAC;AACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity-test/eip712/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAgB9D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity-test/eip712/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAgB9D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,oBAAoB,EAAE,kBAAkB,EAAE,EAC1C,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9C,MAAM,EAAE,iBAAiB,GACxB,MAAM,EAAE,CAsEV"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { bytesIncludesUtf8String, bytesToUtf8String, } from "@nomicfoundation/hardhat-utils/bytes";
|
|
2
|
-
import {
|
|
2
|
+
import { isPathSelected } from "../../../utils/glob.js";
|
|
3
|
+
import { toUserSourceName } from "../../solidity/source-names.js";
|
|
3
4
|
import { buildUserDefinedValueTypeIndex, extractStructsFromAst, } from "./ast-walker.js";
|
|
4
5
|
import { canonicalizeStructs } from "./canonicalize.js";
|
|
5
|
-
import { isPathSelected } from "./glob.js";
|
|
6
|
-
// When a transitive project file doesn't produce an artifact — and so is
|
|
7
|
-
// missing from `inputToUserSource` — stripping this prefix recovers the
|
|
8
|
-
// user-facing path that the user's include/exclude globs are written against.
|
|
9
|
-
const PROJECT_INPUT_SOURCE_NAME_PREFIX = `${HARDHAT_PROJECT_INPUT_SOURCE_NAME_ROOT}/`;
|
|
10
6
|
/**
|
|
11
7
|
* Walks every compiled source's AST, extracts every struct definition, and
|
|
12
8
|
* returns the flat list of canonical EIP-712 type strings expected by EDR's
|
|
@@ -55,12 +51,11 @@ export function collectEip712CanonicalTypes(buildInfosAndOutputs, inputToUserSou
|
|
|
55
51
|
// the index must cover every source in the build.
|
|
56
52
|
const userDefinedValueTypeI = buildUserDefinedValueTypeIndex(Object.values(sources).map((s) => s.ast));
|
|
57
53
|
for (const [inputSourceName, source] of Object.entries(sources)) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
54
|
+
// A transitive project file that doesn't produce an artifact is missing
|
|
55
|
+
// from `inputToUserSource`; recovering the user source name from the
|
|
56
|
+
// input source name covers that case.
|
|
57
|
+
const userSourceName = inputToUserSource.get(inputSourceName) ??
|
|
58
|
+
toUserSourceName(inputSourceName);
|
|
64
59
|
// Collect every source so non-selected files can serve as dep targets;
|
|
65
60
|
// selection is enforced at emit time via `selectedNames`.
|
|
66
61
|
const structs = extractStructsFromAst(source.ast, userSourceName, userDefinedValueTypeI);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity-test/eip712/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity-test/eip712/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOxD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CACzC,oBAA0C,EAC1C,iBAA8C,EAC9C,MAAyB;IAEzB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;QACzD,sEAAsE;QACtE,4EAA4E;QAC5E,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAA4B,IAAI,CAAC,KAAK,CACtD,iBAAiB,CAAC,MAAM,CAAC,CAC1B,CAAC;QAEF,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,+CAA+C;QAC/C,EAAE;QACF,mEAAmE;QACnE,gEAAgE;QAChE,qEAAqE;QACrE,+DAA+D;QAC/D,uEAAuE;QACvE,uEAAuE;QACvE,8CAA8C;QAC9C,EAAE;QACF,qEAAqE;QACrE,kEAAkE;QAClE,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,qBAAqB,GAAG,8BAA8B,CAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACzC,CAAC;QAEF,KAAK,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,wEAAwE;YACxE,qEAAqE;YACrE,sCAAsC;YACtC,MAAM,cAAc,GAClB,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC;gBACtC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAEpC,uEAAuE;YACvE,0DAA0D;YAC1D,MAAM,OAAO,GAAG,qBAAqB,CACnC,MAAM,CAAC,GAAG,EACV,cAAc,EACd,qBAAqB,CACtB,CAAC;YACF,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YAE3B,IAAI,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EASX,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EASX,MAAM,sBAAsB,CAAC;AAQ9B,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC,CAiB/D"}
|
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
import { EdrContext, GENERIC_CHAIN_TYPE, genericChainProviderFactory, L1_CHAIN_TYPE, l1ProviderFactory, l1SolidityTestRunnerFactory, OP_CHAIN_TYPE, opProviderFactory, opSolidityTestRunnerFactory, } from "@nomicfoundation/edr";
|
|
2
|
+
// We cache the initialization *promise* (assigned synchronously, before any
|
|
3
|
+
// await) rather than the resolved context. This way concurrent callers share a
|
|
4
|
+
// single in-flight initialization and always receive a fully-registered
|
|
5
|
+
// context, instead of racing on a half-initialized one.
|
|
2
6
|
let _globalEdrContext;
|
|
3
7
|
export async function getGlobalEdrContext() {
|
|
4
8
|
if (_globalEdrContext === undefined) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const context = createGlobalEdrContext();
|
|
10
|
+
_globalEdrContext = context;
|
|
11
|
+
// If initialization fails, clear the cached promise so a later call can
|
|
12
|
+
// retry instead of permanently returning a rejected promise. The identity
|
|
13
|
+
// guard prevents a stale rejection from wiping a newer promise created by
|
|
14
|
+
// a retry.
|
|
15
|
+
context.catch(() => {
|
|
16
|
+
if (_globalEdrContext === context) {
|
|
17
|
+
_globalEdrContext = undefined;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
11
20
|
}
|
|
12
|
-
return _globalEdrContext;
|
|
21
|
+
return await _globalEdrContext;
|
|
22
|
+
}
|
|
23
|
+
async function createGlobalEdrContext() {
|
|
24
|
+
const context = new EdrContext();
|
|
25
|
+
await context.registerProviderFactory(GENERIC_CHAIN_TYPE, genericChainProviderFactory());
|
|
26
|
+
await context.registerProviderFactory(L1_CHAIN_TYPE, l1ProviderFactory());
|
|
27
|
+
await context.registerProviderFactory(OP_CHAIN_TYPE, opProviderFactory());
|
|
28
|
+
await context.registerSolidityTestRunnerFactory(L1_CHAIN_TYPE, l1SolidityTestRunnerFactory());
|
|
29
|
+
await context.registerSolidityTestRunnerFactory(OP_CHAIN_TYPE, opSolidityTestRunnerFactory());
|
|
30
|
+
return context;
|
|
13
31
|
}
|
|
14
32
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,IAAI,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/internal/edr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,4EAA4E;AAC5E,+EAA+E;AAC/E,wEAAwE;AACxE,wDAAwD;AACxD,IAAI,iBAAkD,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACzC,iBAAiB,GAAG,OAAO,CAAC;QAE5B,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,WAAW;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YACjB,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;gBAClC,iBAAiB,GAAG,SAAS,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,iBAAiB,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IAEjC,MAAM,OAAO,CAAC,uBAAuB,CACnC,kBAAkB,EAClB,2BAA2B,EAAE,CAC9B,CAAC;IACF,MAAM,OAAO,CAAC,uBAAuB,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,CAAC,uBAAuB,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,CAAC,iCAAiC,CAC7C,aAAa,EACb,2BAA2B,EAAE,CAC9B,CAAC;IACF,MAAM,OAAO,CAAC,iCAAiC,CAC7C,aAAa,EACb,2BAA2B,EAAE,CAC9B,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -4,4 +4,8 @@
|
|
|
4
4
|
* nothing. `exclude` then narrows the included set.
|
|
5
5
|
*/
|
|
6
6
|
export declare function isPathSelected(path: string, include: string[], exclude: string[]): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Returns true if `value` matches at least one of the given glob patterns.
|
|
9
|
+
*/
|
|
10
|
+
export declare function matchesAnyGlob(value: string, patterns: string[]): boolean;
|
|
7
11
|
//# sourceMappingURL=glob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/glob.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAcT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE"}
|
|
@@ -9,10 +9,10 @@ export function isPathSelected(path, include, exclude) {
|
|
|
9
9
|
if (include.length === 0) {
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
|
-
if (!
|
|
12
|
+
if (!matchesAnyGlob(path, include)) {
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
|
-
if (exclude.length > 0 &&
|
|
15
|
+
if (exclude.length > 0 && matchesAnyGlob(path, exclude)) {
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
18
|
return true;
|
|
@@ -20,7 +20,7 @@ export function isPathSelected(path, include, exclude) {
|
|
|
20
20
|
/**
|
|
21
21
|
* Returns true if `value` matches at least one of the given glob patterns.
|
|
22
22
|
*/
|
|
23
|
-
function
|
|
23
|
+
export function matchesAnyGlob(value, patterns) {
|
|
24
24
|
for (const pattern of patterns) {
|
|
25
25
|
if (getCompiledGlob(pattern).test(value)) {
|
|
26
26
|
return true;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../src/internal/utils/glob.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,OAAiB,EACjB,OAAiB;IAEjB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,QAAkB;IAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,IAAI,MAAM,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,gEAAgE;gBAChE,wDAAwD;gBACxD,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;gBACrD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;gBAC3C,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;oBAC9B,KAAK,IAAI,UAAU,CAAC;oBACpB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;qBAAM,CAAC;oBACN,KAAK,IAAI,IAAI,CAAC;oBACd,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,OAAO,CAAC;gBACjB,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,IAAI,MAAM,CAAC;YAChB,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,KAAK,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,KAAK,IAAI,KAAK,CAAC;YACf,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,sBAAsB,CACzC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAC1B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAErB,KAAK,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBACzC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBAEZ,SAAS;YACX,CAAC;YAED,KAAK,IAAI,KAAK,CAAC;YACf,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;YAClB,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,CAAC;YACX,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAa;IACtD,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAe,EAAE,KAAa;IAClD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,CAAC,GAAG,GAAG,CAAC;YACV,CAAC;QACH,CAAC;QAED,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,CAAC,GAAG,GAAG,CAAC;YACV,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,EAAE,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.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": {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { HardhatUserConfig } from "../../../config.js";
|
|
2
|
+
import type { CoverageConfig } from "../../../types/config.js";
|
|
3
|
+
import type { HardhatUserConfigValidationError } from "../../../types/hooks.js";
|
|
4
|
+
|
|
5
|
+
import { validateUserConfigZodType } from "@nomicfoundation/hardhat-zod-utils";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
|
|
8
|
+
const userConfigType = z.object({
|
|
9
|
+
coverage: z
|
|
10
|
+
.object({
|
|
11
|
+
skipFiles: z.array(z.string()).optional(),
|
|
12
|
+
})
|
|
13
|
+
.optional(),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export function validateCoverageUserConfig(
|
|
17
|
+
userConfig: unknown,
|
|
18
|
+
): HardhatUserConfigValidationError[] {
|
|
19
|
+
return validateUserConfigZodType(userConfig, userConfigType);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function resolveCoverageConfig(
|
|
23
|
+
userConfig: HardhatUserConfig,
|
|
24
|
+
): CoverageConfig {
|
|
25
|
+
return {
|
|
26
|
+
skipFiles: userConfig.coverage?.skipFiles ?? [],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ConfigHooks } from "../../../../types/hooks.js";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
resolveCoverageConfig,
|
|
5
|
+
validateCoverageUserConfig,
|
|
6
|
+
} from "../config.js";
|
|
7
|
+
|
|
8
|
+
export default async (): Promise<Partial<ConfigHooks>> => {
|
|
9
|
+
const handlers: Partial<ConfigHooks> = {
|
|
10
|
+
validateUserConfig: async (userConfig) =>
|
|
11
|
+
validateCoverageUserConfig(userConfig),
|
|
12
|
+
resolveUserConfig: async (
|
|
13
|
+
userConfig,
|
|
14
|
+
resolveConfigurationVariable,
|
|
15
|
+
next,
|
|
16
|
+
) => {
|
|
17
|
+
const resolvedConfig = await next(
|
|
18
|
+
userConfig,
|
|
19
|
+
resolveConfigurationVariable,
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
...resolvedConfig,
|
|
24
|
+
coverage: resolveCoverageConfig(userConfig),
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return handlers;
|
|
30
|
+
};
|
|
@@ -8,6 +8,8 @@ import { HardhatError } from "@nomicfoundation/hardhat-errors";
|
|
|
8
8
|
import { createDebug } from "@nomicfoundation/hardhat-utils/debug";
|
|
9
9
|
import { ensureError } from "@nomicfoundation/hardhat-utils/error";
|
|
10
10
|
|
|
11
|
+
import { matchesAnyGlob } from "../../../utils/glob.js";
|
|
12
|
+
import { toUserSourceName } from "../../solidity/source-names.js";
|
|
11
13
|
import { getCoverageManager } from "../helpers/accessors.js";
|
|
12
14
|
import { instrumentSolidityFileForCompilationJob } from "../instrumentation.js";
|
|
13
15
|
|
|
@@ -22,12 +24,23 @@ export default async (): Promise<Partial<SolidityHooks>> => ({
|
|
|
22
24
|
solcVersion,
|
|
23
25
|
next,
|
|
24
26
|
) => {
|
|
27
|
+
// This hook runs on every project file of every build. Coverage is the
|
|
28
|
+
// only reason to preprocess them, so when it is off we pass the file
|
|
29
|
+
// through untouched and keep the common path free of the work below.
|
|
30
|
+
if (!context.globalOptions.coverage) {
|
|
31
|
+
return await next(context, sourceName, fsPath, fileContent, solcVersion);
|
|
32
|
+
}
|
|
33
|
+
|
|
25
34
|
// NOTE: We do not want to instrument the test project files as we don't
|
|
26
35
|
// want to report coverage for them.
|
|
27
|
-
|
|
28
36
|
const isTestSource = (await context.solidity.getScope(fsPath)) === "tests";
|
|
29
37
|
|
|
30
|
-
|
|
38
|
+
const isSkipped = matchesAnyGlob(
|
|
39
|
+
toUserSourceName(sourceName),
|
|
40
|
+
context.config.coverage.skipFiles,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
if (!isTestSource && !isSkipped) {
|
|
31
44
|
try {
|
|
32
45
|
const { source, metadata } = instrumentSolidityFileForCompilationJob({
|
|
33
46
|
compilationJobSolcVersion: solcVersion,
|
|
@@ -16,6 +16,7 @@ const hardhatPlugin: HardhatPlugin = definePlugin({
|
|
|
16
16
|
],
|
|
17
17
|
hookHandlers: {
|
|
18
18
|
clean: () => import("./hook-handlers/clean.js"),
|
|
19
|
+
config: () => import("./hook-handlers/config.js"),
|
|
19
20
|
hre: () => import("./hook-handlers/hre.js"),
|
|
20
21
|
solidity: () => import("./hook-handlers/solidity.js"),
|
|
21
22
|
test: () => import("./hook-handlers/test.js"),
|
|
@@ -3,3 +3,27 @@ declare module "../../../types/global-options.js" {
|
|
|
3
3
|
coverage: boolean;
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
+
|
|
7
|
+
declare module "../../../types/config.js" {
|
|
8
|
+
export interface CoverageUserConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Globs of Solidity source files to exclude from coverage instrumentation.
|
|
11
|
+
* A project file whose project-relative source name matches any of these
|
|
12
|
+
* globs is not instrumented during a `--coverage` run, and so does not
|
|
13
|
+
* appear in coverage reports.
|
|
14
|
+
*/
|
|
15
|
+
skipFiles?: string[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface HardhatUserConfig {
|
|
19
|
+
coverage?: CoverageUserConfig;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface CoverageConfig {
|
|
23
|
+
skipFiles: string[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface HardhatConfig {
|
|
27
|
+
coverage: CoverageConfig;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
opHardforkFromString,
|
|
13
13
|
type AccountOverride,
|
|
14
14
|
} from "@nomicfoundation/edr";
|
|
15
|
+
import { bytesToHexString } from "@nomicfoundation/hardhat-utils/hex";
|
|
15
16
|
import { AsyncMutex } from "@nomicfoundation/hardhat-utils/synchronization";
|
|
16
17
|
import { hexToBytes } from "ethereum-cryptography/utils";
|
|
17
18
|
|
|
@@ -50,7 +51,7 @@ const genesisStateAndAccountsCache: WeakMap<
|
|
|
50
51
|
Map<
|
|
51
52
|
string,
|
|
52
53
|
{
|
|
53
|
-
genesisState: Map<
|
|
54
|
+
genesisState: Map<string, AccountOverride>;
|
|
54
55
|
ownedAccounts: Array<{ secretKey: string; balance: bigint }>;
|
|
55
56
|
}
|
|
56
57
|
>
|
|
@@ -66,7 +67,7 @@ export async function getGenesisStateAndOwnedAccounts(
|
|
|
66
67
|
chainType: ChainType,
|
|
67
68
|
specId: string,
|
|
68
69
|
): Promise<{
|
|
69
|
-
genesisState: Map<
|
|
70
|
+
genesisState: Map<string, AccountOverride>;
|
|
70
71
|
ownedAccounts: Array<{ secretKey: string; balance: bigint }>;
|
|
71
72
|
}> {
|
|
72
73
|
const cached = genesisStateAndAccountsCache
|
|
@@ -131,7 +132,7 @@ async function createGenesisStateAndOwnedAccounts(
|
|
|
131
132
|
chainType: ChainType,
|
|
132
133
|
specId: string,
|
|
133
134
|
): Promise<{
|
|
134
|
-
genesisState: Map<
|
|
135
|
+
genesisState: Map<string, AccountOverride>;
|
|
135
136
|
ownedAccounts: Array<{ secretKey: string; balance: bigint }>;
|
|
136
137
|
}> {
|
|
137
138
|
if (microEthSignerAddress === undefined) {
|
|
@@ -142,7 +143,7 @@ async function createGenesisStateAndOwnedAccounts(
|
|
|
142
143
|
|
|
143
144
|
const ownedAccounts = await hardhatAccountsToEdrOwnedAccounts(accountsConfig);
|
|
144
145
|
|
|
145
|
-
const genesisState: Map<
|
|
146
|
+
const genesisState: Map<string, AccountOverride> = new Map(
|
|
146
147
|
ownedAccounts.map(({ secretKey, balance }) => {
|
|
147
148
|
const address = hexToBytes(addr.fromPrivateKey(secretKey));
|
|
148
149
|
const accountOverride: AccountOverride = {
|
|
@@ -151,7 +152,7 @@ async function createGenesisStateAndOwnedAccounts(
|
|
|
151
152
|
code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
|
|
152
153
|
};
|
|
153
154
|
|
|
154
|
-
return [address, accountOverride];
|
|
155
|
+
return [bytesToHexString(address), accountOverride];
|
|
155
156
|
}),
|
|
156
157
|
);
|
|
157
158
|
|
|
@@ -162,18 +163,25 @@ async function createGenesisStateAndOwnedAccounts(
|
|
|
162
163
|
? opGenesisState(opHardforkFromString(specId))
|
|
163
164
|
: l1GenesisState(l1HardforkFromString(specId));
|
|
164
165
|
|
|
166
|
+
mergeGenesisState(genesisState, chainGenesisState);
|
|
167
|
+
|
|
168
|
+
return { genesisState, ownedAccounts };
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export function mergeGenesisState(
|
|
172
|
+
genesisState: Map<string, AccountOverride>,
|
|
173
|
+
chainGenesisState: readonly AccountOverride[],
|
|
174
|
+
): void {
|
|
165
175
|
for (const account of chainGenesisState) {
|
|
166
|
-
const
|
|
176
|
+
const addressKey = bytesToHexString(account.address);
|
|
177
|
+
const existingOverride = genesisState.get(addressKey);
|
|
167
178
|
if (existingOverride !== undefined) {
|
|
168
179
|
// Favor the genesis state specified by the user
|
|
169
|
-
account.balance =
|
|
170
|
-
account.nonce =
|
|
171
|
-
account.code =
|
|
172
|
-
account.storage =
|
|
173
|
-
} else {
|
|
174
|
-
genesisState.set(account.address, account);
|
|
180
|
+
account.balance = existingOverride.balance ?? account.balance;
|
|
181
|
+
account.nonce = existingOverride.nonce ?? account.nonce;
|
|
182
|
+
account.code = existingOverride.code ?? account.code;
|
|
183
|
+
account.storage = existingOverride.storage ?? account.storage;
|
|
175
184
|
}
|
|
185
|
+
genesisState.set(addressKey, account);
|
|
176
186
|
}
|
|
177
|
-
|
|
178
|
-
return { genesisState, ownedAccounts };
|
|
179
187
|
}
|
|
@@ -322,7 +322,20 @@ const edrNetworkUserConfigSchema = z.object({
|
|
|
322
322
|
hardfork: z.optional(z.string()),
|
|
323
323
|
initialBaseFeePerGas: z.optional(gasUnitUserConfigSchema),
|
|
324
324
|
initialDate: z.optional(
|
|
325
|
-
unionType(
|
|
325
|
+
unionType(
|
|
326
|
+
[z.string(), z.instanceof(Date)],
|
|
327
|
+
"Expected a string or a Date",
|
|
328
|
+
).refine(
|
|
329
|
+
(val) => {
|
|
330
|
+
if (typeof val === "string") return !Number.isNaN(Date.parse(val));
|
|
331
|
+
if (val instanceof Date) return !Number.isNaN(val.getTime());
|
|
332
|
+
// already union of string/Date, all types are exhausted
|
|
333
|
+
return true;
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
message: "initialDate must be a parseable date string or a valid Date",
|
|
337
|
+
},
|
|
338
|
+
),
|
|
326
339
|
),
|
|
327
340
|
loggingEnabled: z.optional(z.boolean()),
|
|
328
341
|
minGasPrice: z.optional(gasUnitUserConfigSchema),
|
|
@@ -8,6 +8,7 @@ export const SPDX_WARNING = "SPDX license identifier not provided";
|
|
|
8
8
|
export const PRAGMA_WARNING =
|
|
9
9
|
"Source file does not specify required compiler version";
|
|
10
10
|
const CONTRACT_SIZE_WARNING = "Contract code size is";
|
|
11
|
+
const INIT_CODE_SIZE_WARNING = "Contract initcode size is";
|
|
11
12
|
|
|
12
13
|
// Suppression rules are grouped by scope. Each array has its own match logic
|
|
13
14
|
// in `shouldSuppressWarning` function; add new entries to the array that fits, or add
|
|
@@ -32,6 +33,7 @@ const TEST_FILE_WARNING_MESSAGES: readonly string[] = [
|
|
|
32
33
|
SPDX_WARNING,
|
|
33
34
|
PRAGMA_WARNING,
|
|
34
35
|
CONTRACT_SIZE_WARNING,
|
|
36
|
+
INIT_CODE_SIZE_WARNING,
|
|
35
37
|
];
|
|
36
38
|
|
|
37
39
|
// Warnings suppressed only when running with `--coverage`. An entry with no
|
|
@@ -44,6 +46,7 @@ const COVERAGE_MODE_RULES: ReadonlyArray<{
|
|
|
44
46
|
filePath?: string;
|
|
45
47
|
}> = [
|
|
46
48
|
{ message: CONTRACT_SIZE_WARNING },
|
|
49
|
+
{ message: INIT_CODE_SIZE_WARNING },
|
|
47
50
|
{
|
|
48
51
|
message: NATSPEC_MEMORY_SAFE_ASSEMBLY_WARNING,
|
|
49
52
|
filePath: COVERAGE_LIBRARY_FILE_NAME,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { HARDHAT_PROJECT_INPUT_SOURCE_NAME_ROOT } from "./constants.js";
|
|
2
|
+
|
|
3
|
+
const PROJECT_INPUT_SOURCE_NAME_PREFIX = `${HARDHAT_PROJECT_INPUT_SOURCE_NAME_ROOT}/`;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Recovers the user-facing source name from a solc input source name by
|
|
7
|
+
* stripping the Hardhat project prefix.
|
|
8
|
+
*
|
|
9
|
+
* Project files have an input source name like `project/contracts/Foo.sol`,
|
|
10
|
+
* whereas the user writes paths — and config globs — against the
|
|
11
|
+
* project-relative `contracts/Foo.sol`. npm package input source names
|
|
12
|
+
* (`npm/<pkg>@<version>/...`) don't carry the project prefix and are returned
|
|
13
|
+
* unchanged.
|
|
14
|
+
*/
|
|
15
|
+
export function toUserSourceName(inputSourceName: string): string {
|
|
16
|
+
return inputSourceName.startsWith(PROJECT_INPUT_SOURCE_NAME_PREFIX)
|
|
17
|
+
? inputSourceName.slice(PROJECT_INPUT_SOURCE_NAME_PREFIX.length)
|
|
18
|
+
: inputSourceName;
|
|
19
|
+
}
|
|
@@ -7,25 +7,20 @@ import {
|
|
|
7
7
|
bytesToUtf8String,
|
|
8
8
|
} from "@nomicfoundation/hardhat-utils/bytes";
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { isPathSelected } from "../../../utils/glob.js";
|
|
11
|
+
import { toUserSourceName } from "../../solidity/source-names.js";
|
|
11
12
|
|
|
12
13
|
import {
|
|
13
14
|
buildUserDefinedValueTypeIndex,
|
|
14
15
|
extractStructsFromAst,
|
|
15
16
|
} from "./ast-walker.js";
|
|
16
17
|
import { canonicalizeStructs } from "./canonicalize.js";
|
|
17
|
-
import { isPathSelected } from "./glob.js";
|
|
18
18
|
|
|
19
19
|
export interface Eip712TypesConfig {
|
|
20
20
|
include: string[];
|
|
21
21
|
exclude: string[];
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
// When a transitive project file doesn't produce an artifact — and so is
|
|
25
|
-
// missing from `inputToUserSource` — stripping this prefix recovers the
|
|
26
|
-
// user-facing path that the user's include/exclude globs are written against.
|
|
27
|
-
const PROJECT_INPUT_SOURCE_NAME_PREFIX = `${HARDHAT_PROJECT_INPUT_SOURCE_NAME_ROOT}/`;
|
|
28
|
-
|
|
29
24
|
/**
|
|
30
25
|
* Walks every compiled source's AST, extracts every struct definition, and
|
|
31
26
|
* returns the flat list of canonical EIP-712 type strings expected by EDR's
|
|
@@ -89,15 +84,12 @@ export function collectEip712CanonicalTypes(
|
|
|
89
84
|
);
|
|
90
85
|
|
|
91
86
|
for (const [inputSourceName, source] of Object.entries(sources)) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
)
|
|
98
|
-
? inputSourceName.slice(PROJECT_INPUT_SOURCE_NAME_PREFIX.length)
|
|
99
|
-
: inputSourceName;
|
|
100
|
-
}
|
|
87
|
+
// A transitive project file that doesn't produce an artifact is missing
|
|
88
|
+
// from `inputToUserSource`; recovering the user source name from the
|
|
89
|
+
// input source name covers that case.
|
|
90
|
+
const userSourceName =
|
|
91
|
+
inputToUserSource.get(inputSourceName) ??
|
|
92
|
+
toUserSourceName(inputSourceName);
|
|
101
93
|
|
|
102
94
|
// Collect every source so non-selected files can serve as dep targets;
|
|
103
95
|
// selection is enforced at emit time via `selectedNames`.
|
|
@@ -10,32 +10,48 @@ import {
|
|
|
10
10
|
opSolidityTestRunnerFactory,
|
|
11
11
|
} from "@nomicfoundation/edr";
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
// We cache the initialization *promise* (assigned synchronously, before any
|
|
14
|
+
// await) rather than the resolved context. This way concurrent callers share a
|
|
15
|
+
// single in-flight initialization and always receive a fully-registered
|
|
16
|
+
// context, instead of racing on a half-initialized one.
|
|
17
|
+
let _globalEdrContext: Promise<EdrContext> | undefined;
|
|
14
18
|
|
|
15
19
|
export async function getGlobalEdrContext(): Promise<EdrContext> {
|
|
16
20
|
if (_globalEdrContext === undefined) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
);
|
|
30
|
-
await _globalEdrContext.registerSolidityTestRunnerFactory(
|
|
31
|
-
L1_CHAIN_TYPE,
|
|
32
|
-
l1SolidityTestRunnerFactory(),
|
|
33
|
-
);
|
|
34
|
-
await _globalEdrContext.registerSolidityTestRunnerFactory(
|
|
35
|
-
OP_CHAIN_TYPE,
|
|
36
|
-
opSolidityTestRunnerFactory(),
|
|
37
|
-
);
|
|
21
|
+
const context = createGlobalEdrContext();
|
|
22
|
+
_globalEdrContext = context;
|
|
23
|
+
|
|
24
|
+
// If initialization fails, clear the cached promise so a later call can
|
|
25
|
+
// retry instead of permanently returning a rejected promise. The identity
|
|
26
|
+
// guard prevents a stale rejection from wiping a newer promise created by
|
|
27
|
+
// a retry.
|
|
28
|
+
context.catch(() => {
|
|
29
|
+
if (_globalEdrContext === context) {
|
|
30
|
+
_globalEdrContext = undefined;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
38
33
|
}
|
|
39
34
|
|
|
40
|
-
return _globalEdrContext;
|
|
35
|
+
return await _globalEdrContext;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async function createGlobalEdrContext(): Promise<EdrContext> {
|
|
39
|
+
const context = new EdrContext();
|
|
40
|
+
|
|
41
|
+
await context.registerProviderFactory(
|
|
42
|
+
GENERIC_CHAIN_TYPE,
|
|
43
|
+
genericChainProviderFactory(),
|
|
44
|
+
);
|
|
45
|
+
await context.registerProviderFactory(L1_CHAIN_TYPE, l1ProviderFactory());
|
|
46
|
+
await context.registerProviderFactory(OP_CHAIN_TYPE, opProviderFactory());
|
|
47
|
+
await context.registerSolidityTestRunnerFactory(
|
|
48
|
+
L1_CHAIN_TYPE,
|
|
49
|
+
l1SolidityTestRunnerFactory(),
|
|
50
|
+
);
|
|
51
|
+
await context.registerSolidityTestRunnerFactory(
|
|
52
|
+
OP_CHAIN_TYPE,
|
|
53
|
+
opSolidityTestRunnerFactory(),
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
return context;
|
|
41
57
|
}
|
|
@@ -15,11 +15,11 @@ export function isPathSelected(
|
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
if (!
|
|
18
|
+
if (!matchesAnyGlob(path, include)) {
|
|
19
19
|
return false;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
if (exclude.length > 0 &&
|
|
22
|
+
if (exclude.length > 0 && matchesAnyGlob(path, exclude)) {
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -29,7 +29,7 @@ export function isPathSelected(
|
|
|
29
29
|
/**
|
|
30
30
|
* Returns true if `value` matches at least one of the given glob patterns.
|
|
31
31
|
*/
|
|
32
|
-
function
|
|
32
|
+
export function matchesAnyGlob(value: string, patterns: string[]): boolean {
|
|
33
33
|
for (const pattern of patterns) {
|
|
34
34
|
if (getCompiledGlob(pattern).test(value)) {
|
|
35
35
|
return true;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "A TypeScript Hardhat project using Node Test Runner and Viem",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"hardhat": "workspace:^3.
|
|
8
|
+
"hardhat": "workspace:^3.9.0",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-viem": "workspace:^5.0.7",
|
|
10
10
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.1.7",
|
|
11
11
|
"@types/node": "^22.8.5",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@nomicfoundation/hardhat-node-test-runner": "workspace:^3.0.17",
|
|
21
21
|
"@nomicfoundation/hardhat-viem": "workspace:^3.0.9",
|
|
22
22
|
"@nomicfoundation/hardhat-viem-assertions": "workspace:^3.1.1",
|
|
23
|
-
"@nomicfoundation/hardhat-verify": "workspace:^3.0.
|
|
23
|
+
"@nomicfoundation/hardhat-verify": "workspace:^3.0.20",
|
|
24
24
|
"@nomicfoundation/ignition-core": "workspace:^3.1.7"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "A TypeScript Hardhat project using Mocha and Ethers.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"hardhat": "workspace:^3.
|
|
8
|
+
"hardhat": "workspace:^3.9.0",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-mocha-ethers": "workspace:^3.0.7",
|
|
10
10
|
"@nomicfoundation/hardhat-ethers": "workspace:^4.0.13",
|
|
11
11
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.1.7",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@nomicfoundation/hardhat-mocha": "workspace:^3.0.21",
|
|
29
29
|
"@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.10",
|
|
30
30
|
"@nomicfoundation/hardhat-typechain": "workspace:^3.1.1",
|
|
31
|
-
"@nomicfoundation/hardhat-verify": "workspace:^3.0.
|
|
31
|
+
"@nomicfoundation/hardhat-verify": "workspace:^3.0.20",
|
|
32
32
|
"@nomicfoundation/ignition-core": "workspace:^3.1.7"
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity-test/eip712/glob.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAcT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/solidity-test/eip712/glob.ts"],"names":[],"mappings":"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"}
|