hardhat 3.0.6 → 3.0.8
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 +22 -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 +1 -2
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js +9 -2
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js +13 -5
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts +4 -3
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.js +79 -37
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +3 -3
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/artifacts/build-info-watcher.d.ts +25 -0
- package/dist/src/internal/builtin-plugins/node/artifacts/build-info-watcher.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/node/artifacts/build-info-watcher.js +56 -0
- package/dist/src/internal/builtin-plugins/node/artifacts/build-info-watcher.js.map +1 -0
- package/dist/src/internal/builtin-plugins/node/helpers.d.ts +12 -0
- package/dist/src/internal/builtin-plugins/node/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/node/helpers.js +32 -0
- package/dist/src/internal/builtin-plugins/node/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/server.d.ts +3 -10
- package/dist/src/internal/builtin-plugins/node/json-rpc/server.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/server.js +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/server.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/node/task-action.js +14 -4
- package/dist/src/internal/builtin-plugins/node/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts +13 -5
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js +126 -58
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.js +14 -6
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/index.js +8 -0
- package/dist/src/internal/builtin-plugins/solidity/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts +4 -2
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.js +37 -10
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/config.d.ts +4 -2
- package/dist/src/internal/builtin-plugins/solidity-test/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/config.js +24 -4
- package/dist/src/internal/builtin-plugins/solidity-test/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js +12 -3
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/config.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js +16 -39
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/type-extensions.d.ts +17 -7
- package/dist/src/internal/builtin-plugins/solidity-test/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/core/hook-manager.d.ts.map +1 -1
- package/dist/src/internal/core/hook-manager.js +3 -1
- package/dist/src/internal/core/hook-manager.js.map +1 -1
- package/dist/src/internal/core/hre.d.ts +29 -1
- package/dist/src/internal/core/hre.d.ts.map +1 -1
- package/dist/src/internal/core/hre.js +57 -20
- package/dist/src/internal/core/hre.js.map +1 -1
- package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.d.ts +2 -1
- package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.d.ts.map +1 -1
- package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.js +5 -4
- package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.js.map +1 -1
- package/dist/src/internal/core/plugins/resolve-plugin-list.js +41 -4
- package/dist/src/internal/core/plugins/resolve-plugin-list.js.map +1 -1
- package/dist/src/internal/core/tasks/resolved-task.d.ts.map +1 -1
- package/dist/src/internal/core/tasks/resolved-task.js +1 -1
- package/dist/src/internal/core/tasks/resolved-task.js.map +1 -1
- package/dist/src/internal/utils/package.d.ts +1 -0
- package/dist/src/internal/utils/package.d.ts.map +1 -1
- package/dist/src/internal/utils/package.js +17 -1
- package/dist/src/internal/utils/package.js.map +1 -1
- package/dist/src/types/hre.d.ts +4 -0
- package/dist/src/types/hre.d.ts.map +1 -1
- package/dist/src/types/network.d.ts +40 -0
- package/dist/src/types/network.d.ts.map +1 -1
- package/dist/src/types/plugins.d.ts +8 -0
- package/dist/src/types/plugins.d.ts.map +1 -1
- package/dist/src/types/solidity/build-system.d.ts +23 -8
- package/dist/src/types/solidity/build-system.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +2 -3
- package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +20 -1
- package/src/internal/builtin-plugins/network-manager/hook-handlers/hre.ts +36 -18
- package/src/internal/builtin-plugins/network-manager/hook-handlers/network.ts +1 -1
- package/src/internal/builtin-plugins/network-manager/network-manager.ts +137 -60
- package/src/internal/builtin-plugins/network-manager/type-validation.ts +3 -3
- package/src/internal/builtin-plugins/node/artifacts/build-info-watcher.ts +82 -0
- package/src/internal/builtin-plugins/node/helpers.ts +64 -0
- package/src/internal/builtin-plugins/node/json-rpc/server.ts +3 -10
- package/src/internal/builtin-plugins/node/task-action.ts +31 -5
- package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +203 -98
- package/src/internal/builtin-plugins/solidity/build-system/cache.ts +1 -1
- package/src/internal/builtin-plugins/solidity/hook-handlers/hre.ts +22 -5
- package/src/internal/builtin-plugins/solidity/index.ts +8 -0
- package/src/internal/builtin-plugins/solidity/tasks/build.ts +59 -16
- package/src/internal/builtin-plugins/solidity-test/config.ts +46 -3
- package/src/internal/builtin-plugins/solidity-test/helpers.ts +17 -4
- package/src/internal/builtin-plugins/solidity-test/hook-handlers/config.ts +5 -1
- package/src/internal/builtin-plugins/solidity-test/task-action.ts +21 -48
- package/src/internal/builtin-plugins/solidity-test/type-extensions.ts +23 -9
- package/src/internal/core/hook-manager.ts +9 -1
- package/src/internal/core/hre.ts +102 -32
- package/src/internal/core/plugins/detect-plugin-npm-dependency-problems.ts +5 -0
- package/src/internal/core/plugins/resolve-plugin-list.ts +58 -4
- package/src/internal/core/tasks/resolved-task.ts +1 -0
- package/src/internal/utils/package.ts +31 -1
- package/src/types/hre.ts +4 -0
- package/src/types/network.ts +45 -0
- package/src/types/plugins.ts +5 -0
- package/src/types/solidity/build-system.ts +23 -7
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +3 -3
- package/templates/hardhat-3/02-mocha-ethers/package.json +5 -5
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
*
|
|
16
16
|
* @param basePathForNpmResolution the dir path for node module resolution
|
|
17
17
|
* @param plugin the plugin to be validated
|
|
18
|
+
* @param originalError the original error why we are running this function
|
|
18
19
|
* @throws {HardhatError} with descriptor:
|
|
19
20
|
* - {@link HardhatError.ERRORS.CORE.PLUGINS.PLUGIN_NOT_INSTALLED} if the plugin is
|
|
20
21
|
* not installed as an npm package
|
|
@@ -26,6 +27,7 @@ import {
|
|
|
26
27
|
export async function detectPluginNpmDependencyProblems(
|
|
27
28
|
basePathForNpmResolution: string,
|
|
28
29
|
plugin: HardhatPlugin,
|
|
30
|
+
originalError: Error,
|
|
29
31
|
): Promise<void> {
|
|
30
32
|
if (plugin.npmPackage === null) {
|
|
31
33
|
return;
|
|
@@ -43,6 +45,7 @@ export async function detectPluginNpmDependencyProblems(
|
|
|
43
45
|
{
|
|
44
46
|
pluginId: plugin.id,
|
|
45
47
|
},
|
|
48
|
+
originalError,
|
|
46
49
|
);
|
|
47
50
|
}
|
|
48
51
|
|
|
@@ -71,6 +74,7 @@ export async function detectPluginNpmDependencyProblems(
|
|
|
71
74
|
pluginId: plugin.id,
|
|
72
75
|
peerDependencyName: dependencyName,
|
|
73
76
|
},
|
|
77
|
+
originalError,
|
|
74
78
|
);
|
|
75
79
|
}
|
|
76
80
|
|
|
@@ -91,6 +95,7 @@ export async function detectPluginNpmDependencyProblems(
|
|
|
91
95
|
installedVersion,
|
|
92
96
|
expectedVersion: versionSpec,
|
|
93
97
|
},
|
|
98
|
+
originalError,
|
|
94
99
|
);
|
|
95
100
|
}
|
|
96
101
|
}
|
|
@@ -28,7 +28,7 @@ async function reverseTopologicalSort(
|
|
|
28
28
|
plugins: HardhatPlugin[],
|
|
29
29
|
): Promise<HardhatPlugin[]> {
|
|
30
30
|
const visitedPlugins: Map<string, HardhatPlugin> = new Map();
|
|
31
|
-
const
|
|
31
|
+
const resolvedPlugins: HardhatPlugin[] = [];
|
|
32
32
|
|
|
33
33
|
async function dfs(plugin: HardhatPlugin) {
|
|
34
34
|
const visited = visitedPlugins.get(plugin.id);
|
|
@@ -53,7 +53,7 @@ async function reverseTopologicalSort(
|
|
|
53
53
|
dependencyModules = await Promise.all(plugin.dependencies());
|
|
54
54
|
} catch (error) {
|
|
55
55
|
ensureError(error);
|
|
56
|
-
await detectPluginNpmDependencyProblems(projectRoot, plugin);
|
|
56
|
+
await detectPluginNpmDependencyProblems(projectRoot, plugin, error);
|
|
57
57
|
|
|
58
58
|
throw new HardhatError(
|
|
59
59
|
HardhatError.ERRORS.CORE.PLUGINS.PLUGIN_DEPENDENCY_FAILED_LOAD,
|
|
@@ -69,12 +69,66 @@ async function reverseTopologicalSort(
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
resolvedPlugins.push(plugin);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
for (const plugin of plugins) {
|
|
76
76
|
await dfs(plugin);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
// Resolve conditional dependencies iteratively
|
|
80
|
+
let lastResolvedCount = -1;
|
|
81
|
+
|
|
82
|
+
while (resolvedPlugins.length !== lastResolvedCount) {
|
|
83
|
+
lastResolvedCount = resolvedPlugins.length;
|
|
84
|
+
|
|
85
|
+
for (const plugin of resolvedPlugins) {
|
|
86
|
+
if (plugin.conditionalDependencies === undefined) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
for (const conditionalDependency of plugin.conditionalDependencies) {
|
|
91
|
+
// Check all condition plugins are installed
|
|
92
|
+
let conditionModules;
|
|
93
|
+
try {
|
|
94
|
+
conditionModules = await Promise.all(
|
|
95
|
+
conditionalDependency.condition(),
|
|
96
|
+
);
|
|
97
|
+
} catch (_error) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Check all condition plugins are loaded
|
|
102
|
+
if (
|
|
103
|
+
conditionModules.some(
|
|
104
|
+
(conditionPlugin) =>
|
|
105
|
+
!resolvedPlugins.includes(conditionPlugin.default),
|
|
106
|
+
)
|
|
107
|
+
) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Load the conditional dependency
|
|
112
|
+
let pluginModule;
|
|
113
|
+
try {
|
|
114
|
+
pluginModule = await conditionalDependency.plugin();
|
|
115
|
+
} catch (error) {
|
|
116
|
+
ensureError(error);
|
|
117
|
+
await detectPluginNpmDependencyProblems(projectRoot, plugin, error);
|
|
118
|
+
|
|
119
|
+
throw new HardhatError(
|
|
120
|
+
HardhatError.ERRORS.CORE.PLUGINS.PLUGIN_DEPENDENCY_FAILED_LOAD,
|
|
121
|
+
{
|
|
122
|
+
pluginId: plugin.id,
|
|
123
|
+
},
|
|
124
|
+
error,
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
await dfs(pluginModule.default);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return resolvedPlugins;
|
|
80
134
|
}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import type { PackageJson } from "@nomicfoundation/hardhat-utils/package";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
findClosestPackageRoot,
|
|
7
|
+
findDependencyPackageJson,
|
|
8
|
+
readClosestPackageJson,
|
|
9
|
+
} from "@nomicfoundation/hardhat-utils/package";
|
|
4
10
|
|
|
5
11
|
let cachedHardhatVersion: string | undefined;
|
|
6
12
|
let cachedLatestHardhatVersion: string | undefined;
|
|
13
|
+
let cachedEdrVersion: string | undefined;
|
|
7
14
|
|
|
8
15
|
export async function getHardhatVersion(): Promise<string> {
|
|
9
16
|
if (cachedHardhatVersion !== undefined) {
|
|
@@ -19,6 +26,29 @@ export async function getHardhatVersion(): Promise<string> {
|
|
|
19
26
|
return packageJson.version;
|
|
20
27
|
}
|
|
21
28
|
|
|
29
|
+
export async function getEdrVersion(): Promise<string> {
|
|
30
|
+
if (cachedEdrVersion !== undefined) {
|
|
31
|
+
return cachedEdrVersion;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const hardhatRoot = await findClosestPackageRoot(import.meta.url);
|
|
35
|
+
|
|
36
|
+
const edrPackageJsonPath = await findDependencyPackageJson(
|
|
37
|
+
hardhatRoot,
|
|
38
|
+
"@nomicfoundation/edr",
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
if (edrPackageJsonPath === undefined) {
|
|
42
|
+
return "";
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const rawPackageJson = await readFile(edrPackageJsonPath, "utf-8");
|
|
46
|
+
const edrPackageJson: PackageJson = JSON.parse(rawPackageJson);
|
|
47
|
+
cachedEdrVersion = edrPackageJson.version;
|
|
48
|
+
|
|
49
|
+
return cachedEdrVersion;
|
|
50
|
+
}
|
|
51
|
+
|
|
22
52
|
export async function getLatestHardhatVersion(): Promise<string> {
|
|
23
53
|
const { getRequest } = await import("@nomicfoundation/hardhat-utils/request");
|
|
24
54
|
|
package/src/types/hre.ts
CHANGED
|
@@ -11,6 +11,10 @@ export interface HardhatRuntimeEnvironment {
|
|
|
11
11
|
readonly userConfig: HardhatUserConfig;
|
|
12
12
|
readonly globalOptions: GlobalOptions;
|
|
13
13
|
readonly interruptions: UserInterruptionManager;
|
|
14
|
+
readonly versions: {
|
|
15
|
+
readonly hardhat: string;
|
|
16
|
+
readonly edr: string;
|
|
17
|
+
};
|
|
14
18
|
// These fields are defined using module agumentation despite being part of
|
|
15
19
|
// Hardhat's core:
|
|
16
20
|
// readonly hooks: HookManager;
|
package/src/types/network.ts
CHANGED
|
@@ -52,6 +52,21 @@ export interface NetworkManager {
|
|
|
52
52
|
connect<ChainTypeT extends ChainType | string = DefaultChainType>(
|
|
53
53
|
networkOrParams?: NetworkConnectionParams<ChainTypeT> | string,
|
|
54
54
|
): Promise<NetworkConnection<ChainTypeT>>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Spawns an Ethereum JSON-RPC server listening on HTTP and Websocket.
|
|
58
|
+
*
|
|
59
|
+
* @param networkOrParams The network name or connection parameters.
|
|
60
|
+
* @param hostname Hostname to bind the server to. Defaults to localhost or 0.0.0.0 on docker.
|
|
61
|
+
* @param port Port to listen on. Defaults to a random available port.
|
|
62
|
+
*
|
|
63
|
+
* @return A `JsonRpcServer` instance that can be started with {@link JsonRpcServer.listen}.
|
|
64
|
+
*/
|
|
65
|
+
createServer(
|
|
66
|
+
networkOrParams?: NetworkConnectionParams | string,
|
|
67
|
+
hostname?: string,
|
|
68
|
+
port?: number,
|
|
69
|
+
): Promise<JsonRpcServer>;
|
|
55
70
|
}
|
|
56
71
|
|
|
57
72
|
export interface NetworkConnection<
|
|
@@ -65,3 +80,33 @@ export interface NetworkConnection<
|
|
|
65
80
|
|
|
66
81
|
close(): Promise<void>;
|
|
67
82
|
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* An Ethereum JSON-RPC server that accepts connections via HTTP and websocket.
|
|
86
|
+
*/
|
|
87
|
+
export interface JsonRpcServer {
|
|
88
|
+
/**
|
|
89
|
+
* Starts the Ethereum JSON-RPC server.
|
|
90
|
+
*
|
|
91
|
+
* @returns returns the address and port the server is listening on.
|
|
92
|
+
*/
|
|
93
|
+
listen(): Promise<{ address: string; port: number }>;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Closes the Ethereum JSON-RPC server.
|
|
97
|
+
*
|
|
98
|
+
* @returns A promise that resolves once shutdown is finished.
|
|
99
|
+
*/
|
|
100
|
+
close(): Promise<void>;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Resolves once the Ethereum JSON-RPC server has been
|
|
104
|
+
* closed, including its underlying HTTP and Websocket sockets.
|
|
105
|
+
*
|
|
106
|
+
* Useful for awaiting a shutdown that was initiated elsewhere.
|
|
107
|
+
*
|
|
108
|
+
* @returns A promise that resolves once the server and
|
|
109
|
+
* its sockets have been closed.
|
|
110
|
+
*/
|
|
111
|
+
afterClosed(): Promise<void>;
|
|
112
|
+
}
|
package/src/types/plugins.ts
CHANGED
|
@@ -39,6 +39,11 @@ export interface HardhatPlugin {
|
|
|
39
39
|
*/
|
|
40
40
|
dependencies?: () => Array<Promise<{ default: HardhatPlugin }>>;
|
|
41
41
|
|
|
42
|
+
conditionalDependencies?: Array<{
|
|
43
|
+
condition: () => Array<Promise<{ default: HardhatPlugin }>>;
|
|
44
|
+
plugin: () => Promise<{ default: HardhatPlugin }>;
|
|
45
|
+
}>;
|
|
46
|
+
|
|
42
47
|
/**
|
|
43
48
|
* An object with the different hook handlers that this plugin defines.
|
|
44
49
|
*
|
|
@@ -38,18 +38,18 @@ export interface BuildOptions {
|
|
|
38
38
|
concurrency?: number;
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* If `true`, the build process doesn't print any output.
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
quiet?: boolean;
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* Whether to compile contracts or tests. Defaults to contracts
|
|
47
47
|
*/
|
|
48
|
-
|
|
48
|
+
scope?: BuildScope;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
* The options of the `
|
|
52
|
+
* The options of the `getCompilationJobs` method.
|
|
53
53
|
*
|
|
54
54
|
* Note that this option object includes a `quiet` property, as this process
|
|
55
55
|
* may require downloading compilers, and potentially printing some output.
|
|
@@ -196,7 +196,12 @@ export interface SolidityBuildSystem {
|
|
|
196
196
|
*
|
|
197
197
|
* @returns An array of root file paths.
|
|
198
198
|
*/
|
|
199
|
-
getRootFilePaths(): Promise<string[]>;
|
|
199
|
+
getRootFilePaths(options?: { scope?: BuildScope }): Promise<string[]>;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Given the filesystem path for a source file, returns the build scope
|
|
203
|
+
*/
|
|
204
|
+
getScope(fsPath: string): Promise<BuildScope>;
|
|
200
205
|
|
|
201
206
|
/**
|
|
202
207
|
* Builds the provided files, generating their compilation artifacts.
|
|
@@ -272,6 +277,7 @@ export interface SolidityBuildSystem {
|
|
|
272
277
|
emitArtifacts(
|
|
273
278
|
compilationJob: CompilationJob,
|
|
274
279
|
compilerOutput: CompilerOutput,
|
|
280
|
+
options?: { scope?: BuildScope },
|
|
275
281
|
): Promise<EmitArtifactsResult>;
|
|
276
282
|
|
|
277
283
|
/**
|
|
@@ -287,7 +293,10 @@ export interface SolidityBuildSystem {
|
|
|
287
293
|
|
|
288
294
|
* @param rootFilePaths All the root files of the project.
|
|
289
295
|
*/
|
|
290
|
-
cleanupArtifacts(
|
|
296
|
+
cleanupArtifacts(
|
|
297
|
+
rootFilePaths: string[],
|
|
298
|
+
options?: { scope?: BuildScope },
|
|
299
|
+
): Promise<void>;
|
|
291
300
|
|
|
292
301
|
/**
|
|
293
302
|
* Compiles a build info, returning the output of the compilation, verbatim,
|
|
@@ -301,4 +310,11 @@ export interface SolidityBuildSystem {
|
|
|
301
310
|
buildInfo: SolidityBuildInfo,
|
|
302
311
|
options?: CompileBuildInfoOptions,
|
|
303
312
|
): Promise<CompilerOutput>;
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Gets the artifacts directory for a given target (contracts/tests)
|
|
316
|
+
*/
|
|
317
|
+
getArtifactsDirectory(scope: BuildScope): Promise<string>;
|
|
304
318
|
}
|
|
319
|
+
|
|
320
|
+
export type BuildScope = "contracts" | "tests";
|
|
@@ -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.0.
|
|
8
|
+
"hardhat": "workspace:^3.0.8",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-viem": "workspace:^5.0.0",
|
|
10
10
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.0.0",
|
|
11
11
|
"@types/node": "^22.8.5",
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@nomicfoundation/hardhat-ignition-viem": "workspace:^3.0.0",
|
|
18
18
|
"@nomicfoundation/hardhat-keystore": "workspace:^3.0.0",
|
|
19
|
-
"@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.
|
|
19
|
+
"@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.1",
|
|
20
20
|
"@nomicfoundation/hardhat-node-test-runner": "workspace:^3.0.0",
|
|
21
21
|
"@nomicfoundation/hardhat-viem": "workspace:^3.0.0",
|
|
22
22
|
"@nomicfoundation/hardhat-viem-assertions": "workspace:^3.0.0",
|
|
23
|
-
"@nomicfoundation/hardhat-verify": "workspace:^3.0.
|
|
23
|
+
"@nomicfoundation/hardhat-verify": "workspace:^3.0.4",
|
|
24
24
|
"@nomicfoundation/ignition-core": "workspace:^3.0.0"
|
|
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.0.
|
|
8
|
+
"hardhat": "workspace:^3.0.8",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-mocha-ethers": "workspace:^3.0.0",
|
|
10
10
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.0.0",
|
|
11
11
|
"@types/chai": "^4.2.0",
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"typescript": "~5.8.0"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@nomicfoundation/hardhat-ethers": "workspace:^4.0.
|
|
22
|
+
"@nomicfoundation/hardhat-ethers": "workspace:^4.0.2",
|
|
23
23
|
"@nomicfoundation/hardhat-ethers-chai-matchers": "workspace:^3.0.0",
|
|
24
24
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.0.0",
|
|
25
25
|
"@nomicfoundation/hardhat-ignition-ethers": "workspace:^3.0.0",
|
|
26
26
|
"@nomicfoundation/hardhat-keystore": "workspace:^3.0.0",
|
|
27
|
-
"@nomicfoundation/hardhat-mocha": "workspace:^3.0.
|
|
28
|
-
"@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.
|
|
27
|
+
"@nomicfoundation/hardhat-mocha": "workspace:^3.0.3",
|
|
28
|
+
"@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.1",
|
|
29
29
|
"@nomicfoundation/hardhat-typechain": "workspace:^3.0.0",
|
|
30
|
-
"@nomicfoundation/hardhat-verify": "workspace:^3.0.
|
|
30
|
+
"@nomicfoundation/hardhat-verify": "workspace:^3.0.4",
|
|
31
31
|
"@nomicfoundation/ignition-core": "workspace:^3.0.0"
|
|
32
32
|
}
|
|
33
33
|
}
|