hardhat 3.7.0 → 3.8.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.
Files changed (109) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/src/cli.js +4 -1
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/internal/builtin-plugins/artifacts/index.d.ts.map +1 -1
  5. package/dist/src/internal/builtin-plugins/artifacts/index.js +3 -2
  6. package/dist/src/internal/builtin-plugins/artifacts/index.js.map +1 -1
  7. package/dist/src/internal/builtin-plugins/clean/index.d.ts.map +1 -1
  8. package/dist/src/internal/builtin-plugins/clean/index.js +3 -2
  9. package/dist/src/internal/builtin-plugins/clean/index.js.map +1 -1
  10. package/dist/src/internal/builtin-plugins/console/index.d.ts.map +1 -1
  11. package/dist/src/internal/builtin-plugins/console/index.js +3 -2
  12. package/dist/src/internal/builtin-plugins/console/index.js.map +1 -1
  13. package/dist/src/internal/builtin-plugins/coverage/index.d.ts.map +1 -1
  14. package/dist/src/internal/builtin-plugins/coverage/index.js +3 -2
  15. package/dist/src/internal/builtin-plugins/coverage/index.js.map +1 -1
  16. package/dist/src/internal/builtin-plugins/flatten/index.d.ts.map +1 -1
  17. package/dist/src/internal/builtin-plugins/flatten/index.js +3 -2
  18. package/dist/src/internal/builtin-plugins/flatten/index.js.map +1 -1
  19. package/dist/src/internal/builtin-plugins/gas-analytics/index.d.ts.map +1 -1
  20. package/dist/src/internal/builtin-plugins/gas-analytics/index.js +3 -2
  21. package/dist/src/internal/builtin-plugins/gas-analytics/index.js.map +1 -1
  22. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts +1 -0
  23. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts.map +1 -1
  24. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js +5 -0
  25. package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js.map +1 -1
  26. package/dist/src/internal/builtin-plugins/network-manager/index.d.ts.map +1 -1
  27. package/dist/src/internal/builtin-plugins/network-manager/index.js +3 -2
  28. package/dist/src/internal/builtin-plugins/network-manager/index.js.map +1 -1
  29. package/dist/src/internal/builtin-plugins/network-manager/provider-errors.d.ts +0 -12
  30. package/dist/src/internal/builtin-plugins/network-manager/provider-errors.d.ts.map +1 -1
  31. package/dist/src/internal/builtin-plugins/network-manager/provider-errors.js +0 -28
  32. package/dist/src/internal/builtin-plugins/network-manager/provider-errors.js.map +1 -1
  33. package/dist/src/internal/builtin-plugins/node/index.d.ts.map +1 -1
  34. package/dist/src/internal/builtin-plugins/node/index.js +3 -2
  35. package/dist/src/internal/builtin-plugins/node/index.js.map +1 -1
  36. package/dist/src/internal/builtin-plugins/run/index.d.ts.map +1 -1
  37. package/dist/src/internal/builtin-plugins/run/index.js +3 -2
  38. package/dist/src/internal/builtin-plugins/run/index.js.map +1 -1
  39. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts +6 -0
  40. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts.map +1 -1
  41. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js +8 -0
  42. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
  43. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.d.ts.map +1 -1
  44. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js +1 -0
  45. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js.map +1 -1
  46. package/dist/src/internal/builtin-plugins/solidity/config.js +7 -1
  47. package/dist/src/internal/builtin-plugins/solidity/config.js.map +1 -1
  48. package/dist/src/internal/builtin-plugins/solidity/index.d.ts.map +1 -1
  49. package/dist/src/internal/builtin-plugins/solidity/index.js +3 -2
  50. package/dist/src/internal/builtin-plugins/solidity/index.js.map +1 -1
  51. package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.d.ts.map +1 -1
  52. package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js +5 -2
  53. package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js.map +1 -1
  54. package/dist/src/internal/builtin-plugins/solidity-test/index.d.ts.map +1 -1
  55. package/dist/src/internal/builtin-plugins/solidity-test/index.js +3 -2
  56. package/dist/src/internal/builtin-plugins/solidity-test/index.js.map +1 -1
  57. package/dist/src/internal/builtin-plugins/telemetry/index.d.ts.map +1 -1
  58. package/dist/src/internal/builtin-plugins/telemetry/index.js +3 -2
  59. package/dist/src/internal/builtin-plugins/telemetry/index.js.map +1 -1
  60. package/dist/src/internal/builtin-plugins/test/index.d.ts.map +1 -1
  61. package/dist/src/internal/builtin-plugins/test/index.js +3 -2
  62. package/dist/src/internal/builtin-plugins/test/index.js.map +1 -1
  63. package/dist/src/internal/cli/main.d.ts +1 -0
  64. package/dist/src/internal/cli/main.d.ts.map +1 -1
  65. package/dist/src/internal/cli/main.js +4 -0
  66. package/dist/src/internal/cli/main.js.map +1 -1
  67. package/dist/src/internal/core/plugins/loaded-plugins-registry.d.ts +4 -0
  68. package/dist/src/internal/core/plugins/loaded-plugins-registry.d.ts.map +1 -0
  69. package/dist/src/internal/core/plugins/loaded-plugins-registry.js +8 -0
  70. package/dist/src/internal/core/plugins/loaded-plugins-registry.js.map +1 -0
  71. package/dist/src/internal/core/plugins/unused-plugins-warning.d.ts +3 -0
  72. package/dist/src/internal/core/plugins/unused-plugins-warning.d.ts.map +1 -0
  73. package/dist/src/internal/core/plugins/unused-plugins-warning.js +29 -0
  74. package/dist/src/internal/core/plugins/unused-plugins-warning.js.map +1 -0
  75. package/dist/src/plugins.d.ts +13 -0
  76. package/dist/src/plugins.d.ts.map +1 -1
  77. package/dist/src/plugins.js +16 -0
  78. package/dist/src/plugins.js.map +1 -1
  79. package/package.json +4 -4
  80. package/src/cli.ts +4 -1
  81. package/src/internal/builtin-plugins/artifacts/index.ts +5 -2
  82. package/src/internal/builtin-plugins/clean/index.ts +3 -2
  83. package/src/internal/builtin-plugins/console/index.ts +3 -2
  84. package/src/internal/builtin-plugins/coverage/index.ts +3 -2
  85. package/src/internal/builtin-plugins/flatten/index.ts +3 -2
  86. package/src/internal/builtin-plugins/gas-analytics/index.ts +3 -2
  87. package/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.ts +5 -0
  88. package/src/internal/builtin-plugins/network-manager/index.ts +3 -2
  89. package/src/internal/builtin-plugins/network-manager/provider-errors.ts +0 -34
  90. package/src/internal/builtin-plugins/node/index.ts +3 -2
  91. package/src/internal/builtin-plugins/run/index.ts +3 -2
  92. package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +11 -0
  93. package/src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts +1 -0
  94. package/src/internal/builtin-plugins/solidity/config.ts +7 -1
  95. package/src/internal/builtin-plugins/solidity/index.ts +3 -2
  96. package/src/internal/builtin-plugins/solidity/solidity-hooks.ts +8 -2
  97. package/src/internal/builtin-plugins/solidity-test/index.ts +3 -2
  98. package/src/internal/builtin-plugins/telemetry/index.ts +3 -2
  99. package/src/internal/builtin-plugins/test/index.ts +3 -2
  100. package/src/internal/cli/main.ts +6 -0
  101. package/src/internal/core/plugins/loaded-plugins-registry.ts +11 -0
  102. package/src/internal/core/plugins/unused-plugins-warning.ts +47 -0
  103. package/src/plugins.ts +19 -0
  104. package/templates/hardhat-3/01-node-test-runner-viem/package.json +11 -11
  105. package/templates/hardhat-3/01-node-test-runner-viem/tsconfig.json +2 -1
  106. package/templates/hardhat-3/02-mocha-ethers/package.json +14 -14
  107. package/templates/hardhat-3/02-mocha-ethers/tsconfig.json +2 -1
  108. package/templates/hardhat-3/03-minimal/package.json +1 -1
  109. package/templates/hardhat-3/03-minimal/tsconfig.json +2 -1
@@ -0,0 +1,47 @@
1
+ import type { HardhatPlugin } from "../../../types/plugins.js";
2
+
3
+ import { styleText } from "node:util";
4
+
5
+ import { getLoadedPlugins } from "./loaded-plugins-registry.js";
6
+
7
+ export function warnAboutUnusedLoadedPlugins(
8
+ resolvedPlugins: HardhatPlugin[],
9
+ printError: (message: string) => void = (message) => console.error(message),
10
+ loadedPlugins: Iterable<HardhatPlugin> = getLoadedPlugins().values(),
11
+ ): void {
12
+ const resolvedIds = new Set(resolvedPlugins.map((p) => p.id));
13
+
14
+ const unused: HardhatPlugin[] = [];
15
+ for (const plugin of loadedPlugins) {
16
+ if (!resolvedIds.has(plugin.id)) {
17
+ unused.push(plugin);
18
+ }
19
+ }
20
+
21
+ if (unused.length === 0) {
22
+ return;
23
+ }
24
+
25
+ const lines: string[] = [
26
+ "",
27
+ styleText(["bold", "yellow"], "Warning:") +
28
+ " the following plugins were imported but are not present in the `plugins` array of your config:",
29
+ "",
30
+ ];
31
+
32
+ for (const plugin of unused) {
33
+ const name =
34
+ plugin.npmPackage !== undefined && plugin.npmPackage !== null
35
+ ? `${plugin.npmPackage} (id: ${plugin.id})`
36
+ : plugin.id;
37
+ lines.push(` - ${name}`);
38
+ }
39
+
40
+ lines.push(
41
+ "",
42
+ " Add them to the `plugins` array, or remove the unused plugin import(s) to silence this warning.",
43
+ "",
44
+ );
45
+
46
+ printError(lines.join("\n"));
47
+ }
package/src/plugins.ts CHANGED
@@ -1,7 +1,26 @@
1
1
  export { HardhatPluginError } from "@nomicfoundation/hardhat-errors";
2
2
 
3
+ import type { HardhatPlugin } from "./types/plugins.js";
4
+
5
+ import { registerLoadedPlugin } from "./internal/core/plugins/loaded-plugins-registry.js";
3
6
  import { throwUsingHardhat2PluginError } from "./internal/using-hardhat2-plugin-errors.js";
4
7
 
8
+ /**
9
+ * Defines a Hardhat plugin.
10
+ *
11
+ * Plugin authors should use this helper as the default export of their
12
+ * plugin's `index` module. It registers the plugin's `id` in a process-wide
13
+ * registry of loaded plugins, which the Hardhat CLI uses to detect plugins
14
+ * that are imported but not included in the user's `plugins` array.
15
+ *
16
+ * @param plugin The plugin definition.
17
+ * @returns The same plugin definition, unchanged.
18
+ */
19
+ export function definePlugin(plugin: HardhatPlugin): HardhatPlugin {
20
+ registerLoadedPlugin(plugin);
21
+ return plugin;
22
+ }
23
+
5
24
  /**
6
25
  * @deprecated This function is part of the Hardhat 2 plugin API.
7
26
  */
@@ -5,22 +5,22 @@
5
5
  "description": "A TypeScript Hardhat project using Node Test Runner and Viem",
6
6
  "type": "module",
7
7
  "devDependencies": {
8
- "hardhat": "workspace:^3.7.0",
9
- "@nomicfoundation/hardhat-toolbox-viem": "workspace:^5.0.6",
10
- "@nomicfoundation/hardhat-ignition": "workspace:^3.1.6",
8
+ "hardhat": "workspace:^3.8.0",
9
+ "@nomicfoundation/hardhat-toolbox-viem": "workspace:^5.0.7",
10
+ "@nomicfoundation/hardhat-ignition": "workspace:^3.1.7",
11
11
  "@types/node": "^22.8.5",
12
12
  "forge-std": "foundry-rs/forge-std#v1.9.4",
13
13
  "typescript": "~6.0.3",
14
14
  "viem": "^2.47.6"
15
15
  },
16
16
  "peerDependencies": {
17
- "@nomicfoundation/hardhat-ignition-viem": "workspace:^3.1.5",
18
- "@nomicfoundation/hardhat-keystore": "workspace:^3.0.11",
19
- "@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.9",
20
- "@nomicfoundation/hardhat-node-test-runner": "workspace:^3.0.16",
21
- "@nomicfoundation/hardhat-viem": "workspace:^3.0.8",
22
- "@nomicfoundation/hardhat-viem-assertions": "workspace:^3.1.0",
23
- "@nomicfoundation/hardhat-verify": "workspace:^3.0.18",
24
- "@nomicfoundation/ignition-core": "workspace:^3.1.6"
17
+ "@nomicfoundation/hardhat-ignition-viem": "workspace:^3.1.6",
18
+ "@nomicfoundation/hardhat-keystore": "workspace:^3.0.12",
19
+ "@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.10",
20
+ "@nomicfoundation/hardhat-node-test-runner": "workspace:^3.0.17",
21
+ "@nomicfoundation/hardhat-viem": "workspace:^3.0.9",
22
+ "@nomicfoundation/hardhat-viem-assertions": "workspace:^3.1.1",
23
+ "@nomicfoundation/hardhat-verify": "workspace:^3.0.19",
24
+ "@nomicfoundation/ignition-core": "workspace:^3.1.7"
25
25
  }
26
26
  }
@@ -5,6 +5,7 @@
5
5
  "target": "es2023",
6
6
  "skipLibCheck": true,
7
7
  "outDir": "dist",
8
- "types": ["node"]
8
+ "types": ["node"],
9
+ "verbatimModuleSyntax": true
9
10
  }
10
11
  }
@@ -5,10 +5,10 @@
5
5
  "description": "A TypeScript Hardhat project using Mocha and Ethers.js",
6
6
  "type": "module",
7
7
  "devDependencies": {
8
- "hardhat": "workspace:^3.7.0",
9
- "@nomicfoundation/hardhat-toolbox-mocha-ethers": "workspace:^3.0.6",
10
- "@nomicfoundation/hardhat-ethers": "workspace:^4.0.12",
11
- "@nomicfoundation/hardhat-ignition": "workspace:^3.1.6",
8
+ "hardhat": "workspace:^3.8.0",
9
+ "@nomicfoundation/hardhat-toolbox-mocha-ethers": "workspace:^3.0.7",
10
+ "@nomicfoundation/hardhat-ethers": "workspace:^4.0.13",
11
+ "@nomicfoundation/hardhat-ignition": "workspace:^3.1.7",
12
12
  "@types/chai": "^5.2.3",
13
13
  "@types/chai-as-promised": "^8.0.1",
14
14
  "@types/mocha": ">=10.0.10",
@@ -20,15 +20,15 @@
20
20
  "typescript": "~6.0.3"
21
21
  },
22
22
  "peerDependencies": {
23
- "@nomicfoundation/hardhat-ethers": "workspace:^4.0.12",
24
- "@nomicfoundation/hardhat-ethers-chai-matchers": "workspace:^3.0.9",
25
- "@nomicfoundation/hardhat-ignition": "workspace:^3.1.6",
26
- "@nomicfoundation/hardhat-ignition-ethers": "workspace:^3.1.5",
27
- "@nomicfoundation/hardhat-keystore": "workspace:^3.0.11",
28
- "@nomicfoundation/hardhat-mocha": "workspace:^3.0.20",
29
- "@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.9",
30
- "@nomicfoundation/hardhat-typechain": "workspace:^3.1.0",
31
- "@nomicfoundation/hardhat-verify": "workspace:^3.0.18",
32
- "@nomicfoundation/ignition-core": "workspace:^3.1.6"
23
+ "@nomicfoundation/hardhat-ethers": "workspace:^4.0.13",
24
+ "@nomicfoundation/hardhat-ethers-chai-matchers": "workspace:^3.0.10",
25
+ "@nomicfoundation/hardhat-ignition": "workspace:^3.1.7",
26
+ "@nomicfoundation/hardhat-ignition-ethers": "workspace:^3.1.6",
27
+ "@nomicfoundation/hardhat-keystore": "workspace:^3.0.12",
28
+ "@nomicfoundation/hardhat-mocha": "workspace:^3.0.21",
29
+ "@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.10",
30
+ "@nomicfoundation/hardhat-typechain": "workspace:^3.1.1",
31
+ "@nomicfoundation/hardhat-verify": "workspace:^3.0.19",
32
+ "@nomicfoundation/ignition-core": "workspace:^3.1.7"
33
33
  }
34
34
  }
@@ -5,6 +5,7 @@
5
5
  "target": "es2023",
6
6
  "skipLibCheck": true,
7
7
  "outDir": "dist",
8
- "types": ["node", "mocha"]
8
+ "types": ["node", "mocha"],
9
+ "verbatimModuleSyntax": true
9
10
  }
10
11
  }
@@ -5,7 +5,7 @@
5
5
  "description": "A minimal Hardhat project",
6
6
  "type": "module",
7
7
  "devDependencies": {
8
- "hardhat": "workspace:^3.7.0",
8
+ "hardhat": "workspace:^3.8.0",
9
9
  "@types/node": "^22.8.5",
10
10
  "typescript": "~6.0.3"
11
11
  }
@@ -5,6 +5,7 @@
5
5
  "target": "es2023",
6
6
  "skipLibCheck": true,
7
7
  "outDir": "dist",
8
- "types": ["node"]
8
+ "types": ["node"],
9
+ "verbatimModuleSyntax": true
9
10
  }
10
11
  }