hardhat 3.0.0-next.4 → 3.0.0-next.6

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 (117) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/src/internal/builtin-plugins/coverage/index.d.ts +1 -0
  3. package/dist/src/internal/builtin-plugins/coverage/index.d.ts.map +1 -1
  4. package/dist/src/internal/builtin-plugins/coverage/index.js +12 -6
  5. package/dist/src/internal/builtin-plugins/coverage/index.js.map +1 -1
  6. package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts +7 -0
  7. package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts.map +1 -0
  8. package/dist/src/internal/builtin-plugins/coverage/type-extensions.js +2 -0
  9. package/dist/src/internal/builtin-plugins/coverage/type-extensions.js.map +1 -0
  10. package/dist/src/internal/builtin-plugins/index.d.ts +1 -0
  11. package/dist/src/internal/builtin-plugins/index.d.ts.map +1 -1
  12. package/dist/src/internal/builtin-plugins/index.js +2 -0
  13. package/dist/src/internal/builtin-plugins/index.js.map +1 -1
  14. package/dist/src/internal/builtin-plugins/network-manager/base-provider.d.ts.map +1 -1
  15. package/dist/src/internal/builtin-plugins/network-manager/base-provider.js +2 -5
  16. package/dist/src/internal/builtin-plugins/network-manager/base-provider.js.map +1 -1
  17. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.d.ts +2 -1
  18. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.d.ts.map +1 -1
  19. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js +76 -75
  20. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js.map +1 -1
  21. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-context.js +2 -2
  22. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-context.js.map +1 -1
  23. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts +2 -1
  24. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts.map +1 -1
  25. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js +6 -7
  26. package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
  27. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts +18 -3
  28. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts.map +1 -1
  29. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js +78 -25
  30. package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js.map +1 -1
  31. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts +3 -5
  32. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts.map +1 -1
  33. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js +71 -81
  34. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js.map +1 -1
  35. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.d.ts +3 -2
  36. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.d.ts.map +1 -1
  37. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.js +9 -4
  38. package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.js.map +1 -1
  39. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.d.ts.map +1 -1
  40. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js +5 -3
  41. package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js.map +1 -1
  42. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts +2 -0
  43. package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts.map +1 -1
  44. package/dist/src/internal/builtin-plugins/network-manager/type-validation.d.ts.map +1 -1
  45. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +60 -26
  46. package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
  47. package/dist/src/internal/builtin-plugins/solidity-test/reporter.d.ts.map +1 -1
  48. package/dist/src/internal/builtin-plugins/solidity-test/reporter.js +2 -2
  49. package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
  50. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.d.ts.map +1 -1
  51. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js +4 -2
  52. package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js.map +1 -1
  53. package/dist/src/internal/builtin-plugins/telemetry/index.d.ts +4 -0
  54. package/dist/src/internal/builtin-plugins/telemetry/index.d.ts.map +1 -0
  55. package/dist/src/internal/builtin-plugins/telemetry/index.js +20 -0
  56. package/dist/src/internal/builtin-plugins/telemetry/index.js.map +1 -0
  57. package/dist/src/internal/builtin-plugins/telemetry/task-action.d.ts +8 -0
  58. package/dist/src/internal/builtin-plugins/telemetry/task-action.d.ts.map +1 -0
  59. package/dist/src/internal/builtin-plugins/telemetry/task-action.js +25 -0
  60. package/dist/src/internal/builtin-plugins/telemetry/task-action.js.map +1 -0
  61. package/dist/src/internal/cli/init/init.d.ts.map +1 -1
  62. package/dist/src/internal/cli/init/init.js +0 -4
  63. package/dist/src/internal/cli/init/init.js.map +1 -1
  64. package/dist/src/internal/cli/main.d.ts.map +1 -1
  65. package/dist/src/internal/cli/main.js +0 -3
  66. package/dist/src/internal/cli/main.js.map +1 -1
  67. package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts +1 -1
  68. package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts.map +1 -1
  69. package/dist/src/internal/cli/telemetry/analytics/analytics.js +7 -7
  70. package/dist/src/internal/cli/telemetry/analytics/analytics.js.map +1 -1
  71. package/dist/src/internal/cli/telemetry/analytics/types.d.ts +3 -3
  72. package/dist/src/internal/cli/telemetry/analytics/types.d.ts.map +1 -1
  73. package/dist/src/internal/cli/telemetry/sentry/subprocess.js +1 -0
  74. package/dist/src/internal/cli/telemetry/sentry/subprocess.js.map +1 -1
  75. package/dist/src/internal/cli/telemetry/telemetry-permissions.d.ts +5 -15
  76. package/dist/src/internal/cli/telemetry/telemetry-permissions.d.ts.map +1 -1
  77. package/dist/src/internal/cli/telemetry/telemetry-permissions.js +29 -65
  78. package/dist/src/internal/cli/telemetry/telemetry-permissions.js.map +1 -1
  79. package/dist/src/types/utils.d.ts +6 -0
  80. package/dist/src/types/utils.d.ts.map +1 -1
  81. package/package.json +8 -8
  82. package/src/internal/builtin-plugins/coverage/index.ts +13 -6
  83. package/src/internal/builtin-plugins/coverage/type-extensions.ts +6 -0
  84. package/src/internal/builtin-plugins/index.ts +3 -0
  85. package/src/internal/builtin-plugins/network-manager/base-provider.ts +2 -7
  86. package/src/internal/builtin-plugins/network-manager/config-resolution.ts +86 -73
  87. package/src/internal/builtin-plugins/network-manager/edr/edr-context.ts +4 -4
  88. package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +17 -17
  89. package/src/internal/builtin-plugins/network-manager/edr/types/hardfork.ts +75 -8
  90. package/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.ts +98 -91
  91. package/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.ts +19 -5
  92. package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +44 -33
  93. package/src/internal/builtin-plugins/network-manager/type-extensions/config.ts +2 -0
  94. package/src/internal/builtin-plugins/network-manager/type-validation.ts +79 -37
  95. package/src/internal/builtin-plugins/solidity-test/reporter.ts +4 -3
  96. package/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.ts +4 -2
  97. package/src/internal/builtin-plugins/telemetry/index.ts +23 -0
  98. package/src/internal/builtin-plugins/telemetry/task-action.ts +45 -0
  99. package/src/internal/cli/init/init.ts +0 -5
  100. package/src/internal/cli/main.ts +0 -5
  101. package/src/internal/cli/telemetry/analytics/analytics.ts +11 -11
  102. package/src/internal/cli/telemetry/analytics/types.ts +3 -3
  103. package/src/internal/cli/telemetry/sentry/subprocess.ts +1 -0
  104. package/src/internal/cli/telemetry/telemetry-permissions.ts +35 -84
  105. package/src/types/utils.ts +7 -0
  106. package/templates/01-node-test-runner-viem/package.json +2 -2
  107. package/templates/02-mocha-ethers/package.json +2 -2
  108. package/dist/src/internal/builtin-plugins/coverage/task-action.d.ts +0 -2
  109. package/dist/src/internal/builtin-plugins/coverage/task-action.d.ts.map +0 -1
  110. package/dist/src/internal/builtin-plugins/coverage/task-action.js +0 -5
  111. package/dist/src/internal/builtin-plugins/coverage/task-action.js.map +0 -1
  112. package/dist/src/internal/cli/prompt/prompt.d.ts +0 -9
  113. package/dist/src/internal/cli/prompt/prompt.d.ts.map +0 -1
  114. package/dist/src/internal/cli/prompt/prompt.js +0 -43
  115. package/dist/src/internal/cli/prompt/prompt.js.map +0 -1
  116. package/src/internal/builtin-plugins/coverage/task-action.ts +0 -9
  117. package/src/internal/cli/prompt/prompt.ts +0 -53
@@ -8,21 +8,21 @@ const log = debug("hardhat:cli:telemetry:analytics");
8
8
  const SESSION_ID = Math.random().toString();
9
9
  const ENGAGEMENT_TIME_MSEC = "10000";
10
10
  // Return a boolean for testing purposes to verify that analytics are not sent in CI environments
11
- export async function sendTelemetryConsentAnalytics(consent) {
12
- // This is a special scenario where only the consent is sent, all the other analytics info
13
- // (like node version, hardhat version, etc.) are stripped.
11
+ export async function sendTelemetryConfigAnalytics(enabled) {
12
+ // This is a special scenario where only the telemetry config is sent,
13
+ // all the other analytics info (like node version, hardhat version, etc.) are stripped.
14
14
  if (!isTelemetryAllowedInEnvironment()) {
15
15
  return false;
16
16
  }
17
17
  const payload = {
18
- client_id: "hardhat_telemetry_consent",
19
- user_id: "hardhat_telemetry_consent",
18
+ client_id: "hardhat_telemetry_config",
19
+ user_id: "hardhat_telemetry_config",
20
20
  user_properties: {},
21
21
  events: [
22
22
  {
23
- name: "TelemetryConsentResponse",
23
+ name: "TelemetryConfig",
24
24
  params: {
25
- userConsent: consent ? "yes" : "no",
25
+ enabled,
26
26
  },
27
27
  },
28
28
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/analytics.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,11 @@ export interface BasePayload {
15
15
  };
16
16
  }>;
17
17
  }
18
- export interface TelemetryConsentPayload extends BasePayload {
18
+ export interface TelemetryConfigPayload extends BasePayload {
19
19
  events: Array<{
20
- name: "TelemetryConsentResponse";
20
+ name: "TelemetryConfig";
21
21
  params: {
22
- userConsent: "yes" | "no";
22
+ enabled: boolean;
23
23
  session_id?: string;
24
24
  };
25
25
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAGD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE;YAKN,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,0BAA0B,CAAC;QACjC,MAAM,EAAE;YACN,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;YAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,eAAe,EAAE;QACf,SAAS,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,cAAc,EAAE;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,eAAe,EAAE;YACf,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,UAAU,CAAC;QACjB,MAAM,EAAE;YACN,oBAAoB,EAAE,MAAM,CAAC;YAC7B,UAAU,EAAE,MAAM,CAAC;SACpB,GAAG,UAAU,CAAC;KAChB,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/analytics/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAGD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE;YAKN,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE;YACN,OAAO,EAAE,OAAO,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,eAAe,EAAE;QACf,SAAS,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,cAAc,EAAE;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,eAAe,EAAE;YACf,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,UAAU,CAAC;QACjB,MAAM,EAAE;YACN,oBAAoB,EAAE,MAAM,CAAC;YAC7B,UAAU,EAAE,MAAM,CAAC;SACpB,GAAG,UAAU,CAAC;KAChB,CAAC,CAAC;CACJ"}
@@ -5,6 +5,7 @@ import { SENTRY_DSN } from "./reporter.js";
5
5
  try {
6
6
  init({
7
7
  dsn: SENTRY_DSN,
8
+ serverName: "<user-server>",
8
9
  });
9
10
  }
10
11
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"subprocess.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/sentry/subprocess.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,IAAI,CAAC;IACH,IAAI,CAAC;QACH,GAAG,EAAE,UAAU;KAChB,CAAC,CAAC;AACL,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;IAClC,MAAM,eAAe,CACnB,4EAA4E,CAC7E,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,WAAgB,CAAC;AACrB,IAAI,CAAC;IACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5C,CAAC;AAAC,MAAM,CAAC;IACP,MAAM,eAAe,CACnB,kFAAkF,CACnF,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhE,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,eAAe,CACnB,4CAA4C,eAAe,CAAC,KAAK,EAAE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAAC,OAAO,KAAU,EAAE,CAAC;IACpB,MAAM,eAAe,CACnB,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAC1D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,SAAS,EAAE,CAAC;QAClE,8BAA8B;QAC9B,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE;YACnE,GAAG;SACJ,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,cAAc,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,CAAQ;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,SAAS,EAAE,CAAC;QAClE,8BAA8B;QAC9B,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,YAAY,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"subprocess.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/sentry/subprocess.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,IAAI,CAAC;IACH,IAAI,CAAC;QACH,GAAG,EAAE,UAAU;QACf,UAAU,EAAE,eAAe;KAC5B,CAAC,CAAC;AACL,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;IAClC,MAAM,eAAe,CACnB,4EAA4E,CAC7E,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,WAAgB,CAAC;AACrB,IAAI,CAAC;IACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5C,CAAC;AAAC,MAAM,CAAC;IACP,MAAM,eAAe,CACnB,kFAAkF,CACnF,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhE,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,eAAe,CACnB,4CAA4C,eAAe,CAAC,KAAK,EAAE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAAC,OAAO,KAAU,EAAE,CAAC;IACpB,MAAM,eAAe,CACnB,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAC1D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,SAAS,EAAE,CAAC;QAClE,8BAA8B;QAC9B,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE;YACnE,GAAG;SACJ,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,cAAc,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,CAAQ;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,SAAS,EAAE,CAAC;QAClE,8BAA8B;QAC9B,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,YAAY,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1,21 +1,10 @@
1
1
  /**
2
- * Ensure that the user's telemetry consent is set. If the consent is already provided, returns the answer.
3
- * If not, prompts the user to provide it.
4
- * Consent is only asked in interactive environments.
2
+ * Checks whether telemetry is supported in the current environment and whether the user did not explicitly disable it.
5
3
  *
6
- * @param telemetryConsentFilePath - The path to the telemetry consent file,
7
- * which should only be provided in tests.
8
- * @returns True if the user consents to telemetry and if current environment supports telemetry, false otherwise.
4
+ * @param telemetryConfigFilePath - The path to the telemetry config file, which should only be provided in tests.
5
+ * @returns True if the user did not explicitly disable telemetry and if current environment supports it, false otherwise.
9
6
  */
10
- export declare function ensureTelemetryConsent(telemetryConsentFilePath?: string): Promise<boolean>;
11
- /**
12
- * Checks whether telemetry is supported in the current environment and whether the user has provided consent.
13
- *
14
- * @param telemetryConsentFilePath - The path to the telemetry consent file,
15
- * which should only be provided in tests.
16
- * @returns True if the user consents to telemetry and if current environment supports telemetry, false otherwise.
17
- */
18
- export declare function isTelemetryAllowed(telemetryConsentFilePath?: string): Promise<boolean>;
7
+ export declare function isTelemetryAllowed(telemetryConfigFilePath?: string): Promise<boolean>;
19
8
  /**
20
9
  * Determines if telemetry is allowed in the current environment.
21
10
  * This function checks various environmental factors to decide if telemetry data can be collected.
@@ -25,4 +14,5 @@ export declare function isTelemetryAllowed(telemetryConsentFilePath?: string): P
25
14
  * @returns True if telemetry is allowed in the environment, false otherwise.
26
15
  */
27
16
  export declare function isTelemetryAllowedInEnvironment(): boolean;
17
+ export declare function setTelemetryEnabled(value: boolean): Promise<boolean>;
28
18
  //# sourceMappingURL=telemetry-permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-permissions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/cli/telemetry/telemetry-permissions.ts"],"names":[],"mappings":"AAqBA;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAWzD"}
1
+ {"version":3,"file":"telemetry-permissions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/cli/telemetry/telemetry-permissions.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,uBAAuB,CAAC,EAAE,MAAM,GAC/B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAWzD;AAmCD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ1E"}
@@ -3,50 +3,23 @@ import { isCi } from "@nomicfoundation/hardhat-utils/ci";
3
3
  import { exists, readJsonFile, writeJsonFile, } from "@nomicfoundation/hardhat-utils/fs";
4
4
  import { getTelemetryDir } from "@nomicfoundation/hardhat-utils/global-dir";
5
5
  import debug from "debug";
6
- import { confirmationPromptWithTimeout } from "../prompt/prompt.js";
7
- import { sendTelemetryConsentAnalytics } from "./analytics/analytics.js";
6
+ import { sendTelemetryConfigAnalytics } from "./analytics/analytics.js";
8
7
  const log = debug("hardhat:cli:telemetry:telemetry-permissions");
9
8
  /**
10
- * Ensure that the user's telemetry consent is set. If the consent is already provided, returns the answer.
11
- * If not, prompts the user to provide it.
12
- * Consent is only asked in interactive environments.
9
+ * Checks whether telemetry is supported in the current environment and whether the user did not explicitly disable it.
13
10
  *
14
- * @param telemetryConsentFilePath - The path to the telemetry consent file,
15
- * which should only be provided in tests.
16
- * @returns True if the user consents to telemetry and if current environment supports telemetry, false otherwise.
11
+ * @param telemetryConfigFilePath - The path to the telemetry config file, which should only be provided in tests.
12
+ * @returns True if the user did not explicitly disable telemetry and if current environment supports it, false otherwise.
17
13
  */
18
- export async function ensureTelemetryConsent(telemetryConsentFilePath) {
19
- log("Ensuring that user has provided telemetry consent");
20
- if (!isTelemetryAllowedInEnvironment()) {
21
- return false;
22
- }
23
- const consent = await getTelemetryConsent(telemetryConsentFilePath);
24
- if (consent !== undefined) {
25
- return consent;
26
- }
27
- // Telemetry consent not provided yet, ask for it
28
- return requestTelemetryConsent();
29
- }
30
- /**
31
- * Checks whether telemetry is supported in the current environment and whether the user has provided consent.
32
- *
33
- * @param telemetryConsentFilePath - The path to the telemetry consent file,
34
- * which should only be provided in tests.
35
- * @returns True if the user consents to telemetry and if current environment supports telemetry, false otherwise.
36
- */
37
- export async function isTelemetryAllowed(telemetryConsentFilePath) {
14
+ export async function isTelemetryAllowed(telemetryConfigFilePath) {
38
15
  if (!isTelemetryAllowedInEnvironment()) {
39
16
  return false;
40
17
  }
41
18
  // ATTENTION: only for testing
42
- if (process.env.HARDHAT_TEST_TELEMETRY_CONSENT_VALUE !== undefined) {
43
- return process.env.HARDHAT_TEST_TELEMETRY_CONSENT_VALUE === "true"
44
- ? true
45
- : false;
19
+ if (process.env.HARDHAT_TEST_TELEMETRY_ENABLED !== undefined) {
20
+ return process.env.HARDHAT_TEST_TELEMETRY_ENABLED === "true" ? true : false;
46
21
  }
47
- const consent = await getTelemetryConsent(telemetryConsentFilePath);
48
- log(`Telemetry consent value: ${consent}`);
49
- return consent !== undefined ? consent : false;
22
+ return isTelemetryEnabled(telemetryConfigFilePath);
50
23
  }
51
24
  /**
52
25
  * Determines if telemetry is allowed in the current environment.
@@ -59,47 +32,38 @@ export async function isTelemetryAllowed(telemetryConsentFilePath) {
59
32
  export function isTelemetryAllowedInEnvironment() {
60
33
  const allowed = (!isCi() &&
61
34
  process.stdout.isTTY === true &&
62
- process.env.HARDHAT_DISABLE_TELEMETRY_PROMPT !== "true") ||
35
+ process.env.HARDHAT_DISABLE_TELEMETRY !== "true") ||
63
36
  // ATTENTION: used in tests to force telemetry execution
64
37
  process.env.HARDHAT_TEST_INTERACTIVE_ENV === "true";
65
38
  log(`Telemetry is allowed in the current environment: ${allowed}`);
66
39
  return allowed;
67
40
  }
68
41
  /**
69
- * Retrieves the user's telemetry consent status from the consent file.
42
+ * Retrieves the user's telemetry enabled status from the config file.
70
43
  *
71
- * @param telemetryConsentFilePath - The path to the telemetry consent file,
72
- * which should only be provided in tests.
73
- * @returns True if the user consents to telemetry, false if they do not consent,
74
- * and undefined if no consent has been provided.
44
+ * @param telemetryConfigFilePath - The path to the telemetry config file, which should only be provided in tests.
45
+ * @returns True if the user did not explicitly disable telemetry, false otherwise.
75
46
  */
76
- async function getTelemetryConsent(telemetryConsentFilePath) {
77
- telemetryConsentFilePath ??= await getTelemetryConsentFilePath();
78
- log(`Looking for telemetry consent file at ${telemetryConsentFilePath}`);
79
- if (await exists(telemetryConsentFilePath)) {
80
- // Telemetry consent was already provided, hence return the answer
81
- const consent = (await readJsonFile(telemetryConsentFilePath)).consent;
82
- log(`Telemetry consent value: ${consent}`);
83
- return consent;
47
+ async function isTelemetryEnabled(telemetryConfigFilePath) {
48
+ telemetryConfigFilePath ??= await getTelemetryConfigFilePath();
49
+ log(`Looking for telemetry config file at ${telemetryConfigFilePath}`);
50
+ if (await exists(telemetryConfigFilePath)) {
51
+ // Telemetry enabled value was explicitly set, hence return the answer
52
+ const { enabled } = await readJsonFile(telemetryConfigFilePath);
53
+ log(`Telemetry enabled value: ${enabled}`);
54
+ return enabled;
84
55
  }
85
- log("No telemetry consent file found");
86
- return undefined;
56
+ log("No telemetry config file found, assuming telemetry is enabled");
57
+ return true;
87
58
  }
88
- async function getTelemetryConsentFilePath() {
59
+ async function getTelemetryConfigFilePath() {
89
60
  const configDir = await getTelemetryDir();
90
- return path.join(configDir, "telemetry-consent.json");
91
- }
92
- async function requestTelemetryConsent() {
93
- const consent = await confirmTelemetryConsent();
94
- if (consent === undefined) {
95
- return false;
96
- }
97
- log(`Storing telemetry consent with value: ${consent}`);
98
- await writeJsonFile(await getTelemetryConsentFilePath(), { consent });
99
- await sendTelemetryConsentAnalytics(consent);
100
- return consent;
61
+ return path.join(configDir, "telemetry-config.json");
101
62
  }
102
- async function confirmTelemetryConsent() {
103
- return confirmationPromptWithTimeout("telemetryConsent", "Help us improve Hardhat with anonymous crash reports & basic usage data?");
63
+ export async function setTelemetryEnabled(value) {
64
+ log(`Storing telemetry enabled value: ${value}`);
65
+ await writeJsonFile(await getTelemetryConfigFilePath(), { enabled: value });
66
+ await sendTelemetryConfigAnalytics(value);
67
+ return value;
104
68
  }
105
69
  //# sourceMappingURL=telemetry-permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-permissions.js","sourceRoot":"","sources":["../../../../../src/internal/cli/telemetry/telemetry-permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry-permissions.js","sourceRoot":"","sources":["../../../../../src/internal/cli/telemetry/telemetry-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,MAAM,GAAG,GAAG,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAMjE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,uBAAgC;IAEhC,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9E,CAAC;IAED,OAAO,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B;IAC7C,MAAM,OAAO,GACX,CAAC,CAAC,IAAI,EAAE;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM,CAAC;QACnD,wDAAwD;QACxD,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,MAAM,CAAC;IAEtD,GAAG,CAAC,oDAAoD,OAAO,EAAE,CAAC,CAAC;IAEnE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAC/B,uBAAgC;IAEhC,uBAAuB,KAAK,MAAM,0BAA0B,EAAE,CAAC;IAE/D,GAAG,CAAC,wCAAwC,uBAAuB,EAAE,CAAC,CAAC;IAEvE,IAAI,MAAM,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC1C,sEAAsE;QACtE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CACpC,uBAAuB,CACxB,CAAC;QACF,GAAG,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAE3C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAErE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,0BAA0B;IACvC,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAc;IACtD,GAAG,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IAEjD,MAAM,aAAa,CAAC,MAAM,0BAA0B,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAE5E,MAAM,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -22,4 +22,10 @@ export type Params<T> = T extends (...args: infer P) => any ? P : never;
22
22
  * The return type of a function.
23
23
  */
24
24
  export type Return<T> = T extends (...args: any[]) => infer Ret ? Ret : never;
25
+ /**
26
+ * The same type as T, but with the specified keys required.
27
+ */
28
+ export type RequireField<T, K extends keyof T> = T & {
29
+ [P in K]-?: T[P];
30
+ };
25
31
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/types/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,CAC/C,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,KACvB,GAAG,GACJ,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,CAC9C,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,KACvB,GAAG,GACJ,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,CAAC,SAAS,CACtD,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,KAC5B,GAAG,GACJ,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CACvC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,MAAM,IAAI,CAAC,KAC/B,GAAG,GACJ,IAAI,GACJ,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/types/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,CAC/C,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,KACvB,GAAG,GACJ,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,CAC9C,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,KACvB,GAAG,GACJ,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,CAAC,SAAS,CACtD,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,KAC5B,GAAG,GACJ,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CACvC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,MAAM,IAAI,CAAC,KAC/B,GAAG,GACJ,IAAI,GACJ,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG;KAClD,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat",
3
- "version": "3.0.0-next.4",
3
+ "version": "3.0.0-next.6",
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://github.com/nomicfoundation/hardhat/tree/v-next/v-next/hardhat",
6
6
  "repository": {
@@ -51,7 +51,7 @@
51
51
  ],
52
52
  "devDependencies": {
53
53
  "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
54
- "@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.4",
54
+ "@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.6",
55
55
  "@types/adm-zip": "^0.5.5",
56
56
  "@types/debug": "^4.1.7",
57
57
  "@types/node": "^20.14.9",
@@ -70,14 +70,14 @@
70
70
  "rimraf": "^5.0.5",
71
71
  "typescript": "~5.5.0",
72
72
  "typescript-eslint": "7.7.1",
73
- "@nomicfoundation/hardhat-test-utils": "^3.0.0-next.4"
73
+ "@nomicfoundation/hardhat-test-utils": "^3.0.0-next.6"
74
74
  },
75
75
  "dependencies": {
76
- "@ignored/edr": "0.10.0-alpha.2",
77
- "@ignored/edr-optimism": "0.6.5-alpha.3",
78
- "@nomicfoundation/hardhat-errors": "^3.0.0-next.4",
79
- "@nomicfoundation/hardhat-utils": "^3.0.0-next.4",
80
- "@nomicfoundation/hardhat-zod-utils": "^3.0.0-next.4",
76
+ "@ignored/edr": "0.10.0-alpha.3",
77
+ "@ignored/edr-optimism": "0.13.0-alpha.0",
78
+ "@nomicfoundation/hardhat-errors": "^3.0.0-next.6",
79
+ "@nomicfoundation/hardhat-utils": "^3.0.0-next.6",
80
+ "@nomicfoundation/hardhat-zod-utils": "^3.0.0-next.6",
81
81
  "@nomicfoundation/solidity-analyzer": "^0.1.1",
82
82
  "@sentry/core": "^9.4.0",
83
83
  "@sentry/node": "^9.4.0",
@@ -1,15 +1,22 @@
1
1
  import type { HardhatPlugin } from "../../../types/plugins.js";
2
2
 
3
- import { task } from "../../core/config.js";
3
+ import { ArgumentType } from "../../../types/arguments.js";
4
+ import { globalOption } from "../../core/config.js";
5
+
6
+ import "./type-extensions.js";
4
7
 
5
8
  const hardhatPlugin: HardhatPlugin = {
6
9
  id: "builtin:coverage",
7
- tasks: [
8
- task("coverage")
9
- .setDescription("Not implemented yet - to be available soon")
10
- .setAction(import.meta.resolve("./task-action.js"))
11
- .build(),
10
+ tasks: [],
11
+ globalOptions: [
12
+ globalOption({
13
+ name: "coverage",
14
+ description: "Enables code coverage",
15
+ type: ArgumentType.BOOLEAN,
16
+ defaultValue: false,
17
+ }),
12
18
  ],
19
+ npmPackage: "hardhat",
13
20
  };
14
21
 
15
22
  export default hardhatPlugin;
@@ -0,0 +1,6 @@
1
+ import "../../../types/global-options.js";
2
+ declare module "../../../types/global-options.js" {
3
+ export interface GlobalOptions {
4
+ coverage: boolean;
5
+ }
6
+ }
@@ -10,6 +10,7 @@ import node from "./node/index.js";
10
10
  import run from "./run/index.js";
11
11
  import solidity from "./solidity/index.js";
12
12
  import solidityTest from "./solidity-test/index.js";
13
+ import telemetry from "./telemetry/index.js";
13
14
  import test from "./test/index.js";
14
15
  import verify from "./verify/index.js";
15
16
 
@@ -27,6 +28,7 @@ export type * from "./node/index.js";
27
28
  export type * from "./flatten/index.js";
28
29
  export type * from "./coverage/index.js";
29
30
  export type * from "./verify/index.js";
31
+ export type * from "./telemetry/index.js";
30
32
 
31
33
  // This array should be kept in order, respecting the dependencies between the
32
34
  // plugins.
@@ -43,4 +45,5 @@ export const builtinPlugins: HardhatPlugin[] = [
43
45
  flatten,
44
46
  coverage,
45
47
  verify,
48
+ telemetry,
46
49
  ];
@@ -9,7 +9,7 @@ import type {
9
9
  import EventEmitter from "node:events";
10
10
  import util from "node:util";
11
11
 
12
- import { ensureError } from "@nomicfoundation/hardhat-utils/error";
12
+ import { ensureNodeErrnoExceptionError } from "@nomicfoundation/hardhat-utils/error";
13
13
 
14
14
  export abstract class BaseProvider
15
15
  extends EventEmitter
@@ -44,12 +44,7 @@ export abstract class BaseProvider
44
44
  result,
45
45
  };
46
46
  } catch (error) {
47
- ensureError(error);
48
-
49
- if (!("code" in error) || error.code === undefined) {
50
- throw error;
51
- }
52
-
47
+ ensureNodeErrnoExceptionError(error);
53
48
  /* eslint-disable-next-line @typescript-eslint/restrict-template-expressions
54
49
  -- Allow string interpolation of unknown `error.code`. It will be converted
55
50
  to a number, and we will handle NaN cases appropriately afterwards. */