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.
- package/CHANGELOG.md +24 -0
- package/dist/src/internal/builtin-plugins/coverage/index.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/coverage/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/index.js +12 -6
- package/dist/src/internal/builtin-plugins/coverage/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts +7 -0
- package/dist/src/internal/builtin-plugins/coverage/type-extensions.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/coverage/type-extensions.js +2 -0
- package/dist/src/internal/builtin-plugins/coverage/type-extensions.js.map +1 -0
- package/dist/src/internal/builtin-plugins/index.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/index.js +2 -0
- package/dist/src/internal/builtin-plugins/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/base-provider.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/base-provider.js +2 -5
- package/dist/src/internal/builtin-plugins/network-manager/base-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/config-resolution.d.ts +2 -1
- package/dist/src/internal/builtin-plugins/network-manager/config-resolution.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js +76 -75
- package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-context.js +2 -2
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-context.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts +2 -1
- 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 +6 -7
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts +18 -3
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js +78 -25
- package/dist/src/internal/builtin-plugins/network-manager/edr/types/hardfork.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts +3 -5
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js +71 -81
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.d.ts +3 -2
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.js +9 -4
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js +5 -3
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts +2 -0
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts.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 +60 -26
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js +2 -2
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js +4 -2
- package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.js.map +1 -1
- package/dist/src/internal/builtin-plugins/telemetry/index.d.ts +4 -0
- package/dist/src/internal/builtin-plugins/telemetry/index.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/telemetry/index.js +20 -0
- package/dist/src/internal/builtin-plugins/telemetry/index.js.map +1 -0
- package/dist/src/internal/builtin-plugins/telemetry/task-action.d.ts +8 -0
- package/dist/src/internal/builtin-plugins/telemetry/task-action.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/telemetry/task-action.js +25 -0
- package/dist/src/internal/builtin-plugins/telemetry/task-action.js.map +1 -0
- package/dist/src/internal/cli/init/init.d.ts.map +1 -1
- package/dist/src/internal/cli/init/init.js +0 -4
- package/dist/src/internal/cli/init/init.js.map +1 -1
- package/dist/src/internal/cli/main.d.ts.map +1 -1
- package/dist/src/internal/cli/main.js +0 -3
- package/dist/src/internal/cli/main.js.map +1 -1
- package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts +1 -1
- package/dist/src/internal/cli/telemetry/analytics/analytics.d.ts.map +1 -1
- package/dist/src/internal/cli/telemetry/analytics/analytics.js +7 -7
- package/dist/src/internal/cli/telemetry/analytics/analytics.js.map +1 -1
- package/dist/src/internal/cli/telemetry/analytics/types.d.ts +3 -3
- package/dist/src/internal/cli/telemetry/analytics/types.d.ts.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/subprocess.js +1 -0
- package/dist/src/internal/cli/telemetry/sentry/subprocess.js.map +1 -1
- package/dist/src/internal/cli/telemetry/telemetry-permissions.d.ts +5 -15
- package/dist/src/internal/cli/telemetry/telemetry-permissions.d.ts.map +1 -1
- package/dist/src/internal/cli/telemetry/telemetry-permissions.js +29 -65
- package/dist/src/internal/cli/telemetry/telemetry-permissions.js.map +1 -1
- package/dist/src/types/utils.d.ts +6 -0
- package/dist/src/types/utils.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/internal/builtin-plugins/coverage/index.ts +13 -6
- package/src/internal/builtin-plugins/coverage/type-extensions.ts +6 -0
- package/src/internal/builtin-plugins/index.ts +3 -0
- package/src/internal/builtin-plugins/network-manager/base-provider.ts +2 -7
- package/src/internal/builtin-plugins/network-manager/config-resolution.ts +86 -73
- package/src/internal/builtin-plugins/network-manager/edr/edr-context.ts +4 -4
- package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +17 -17
- package/src/internal/builtin-plugins/network-manager/edr/types/hardfork.ts +75 -8
- package/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.ts +98 -91
- package/src/internal/builtin-plugins/network-manager/edr/utils/hardfork.ts +19 -5
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +44 -33
- package/src/internal/builtin-plugins/network-manager/type-extensions/config.ts +2 -0
- package/src/internal/builtin-plugins/network-manager/type-validation.ts +79 -37
- package/src/internal/builtin-plugins/solidity-test/reporter.ts +4 -3
- package/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.ts +4 -2
- package/src/internal/builtin-plugins/telemetry/index.ts +23 -0
- package/src/internal/builtin-plugins/telemetry/task-action.ts +45 -0
- package/src/internal/cli/init/init.ts +0 -5
- package/src/internal/cli/main.ts +0 -5
- package/src/internal/cli/telemetry/analytics/analytics.ts +11 -11
- package/src/internal/cli/telemetry/analytics/types.ts +3 -3
- package/src/internal/cli/telemetry/sentry/subprocess.ts +1 -0
- package/src/internal/cli/telemetry/telemetry-permissions.ts +35 -84
- package/src/types/utils.ts +7 -0
- package/templates/01-node-test-runner-viem/package.json +2 -2
- package/templates/02-mocha-ethers/package.json +2 -2
- package/dist/src/internal/builtin-plugins/coverage/task-action.d.ts +0 -2
- package/dist/src/internal/builtin-plugins/coverage/task-action.d.ts.map +0 -1
- package/dist/src/internal/builtin-plugins/coverage/task-action.js +0 -5
- package/dist/src/internal/builtin-plugins/coverage/task-action.js.map +0 -1
- package/dist/src/internal/cli/prompt/prompt.d.ts +0 -9
- package/dist/src/internal/cli/prompt/prompt.d.ts.map +0 -1
- package/dist/src/internal/cli/prompt/prompt.js +0 -43
- package/dist/src/internal/cli/prompt/prompt.js.map +0 -1
- package/src/internal/builtin-plugins/coverage/task-action.ts +0 -9
- 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
|
|
12
|
-
// This is a special scenario where only the
|
|
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: "
|
|
19
|
-
user_id: "
|
|
18
|
+
client_id: "hardhat_telemetry_config",
|
|
19
|
+
user_id: "hardhat_telemetry_config",
|
|
20
20
|
user_properties: {},
|
|
21
21
|
events: [
|
|
22
22
|
{
|
|
23
|
-
name: "
|
|
23
|
+
name: "TelemetryConfig",
|
|
24
24
|
params: {
|
|
25
|
-
|
|
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":"AAOA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,GAAG,GAAG,KAAK,CAAC,iCAAiC,CAAC,CAAC;AAErD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC5C,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAErC,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,
|
|
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
|
|
18
|
+
export interface TelemetryConfigPayload extends BasePayload {
|
|
19
19
|
events: Array<{
|
|
20
|
-
name: "
|
|
20
|
+
name: "TelemetryConfig";
|
|
21
21
|
params: {
|
|
22
|
-
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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
|
-
*
|
|
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
|
|
7
|
-
*
|
|
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
|
|
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":"
|
|
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 {
|
|
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
|
-
*
|
|
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
|
|
15
|
-
*
|
|
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
|
|
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.
|
|
43
|
-
return process.env.
|
|
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
|
-
|
|
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.
|
|
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
|
|
42
|
+
* Retrieves the user's telemetry enabled status from the config file.
|
|
70
43
|
*
|
|
71
|
-
* @param
|
|
72
|
-
*
|
|
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
|
|
77
|
-
|
|
78
|
-
log(`Looking for telemetry
|
|
79
|
-
if (await exists(
|
|
80
|
-
// Telemetry
|
|
81
|
-
const
|
|
82
|
-
log(`Telemetry
|
|
83
|
-
return
|
|
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
|
|
86
|
-
return
|
|
56
|
+
log("No telemetry config file found, assuming telemetry is enabled");
|
|
57
|
+
return true;
|
|
87
58
|
}
|
|
88
|
-
async function
|
|
59
|
+
async function getTelemetryConfigFilePath() {
|
|
89
60
|
const configDir = await getTelemetryDir();
|
|
90
|
-
return path.join(configDir, "telemetry-
|
|
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
|
|
103
|
-
|
|
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":"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,
|
|
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.
|
|
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.
|
|
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.
|
|
73
|
+
"@nomicfoundation/hardhat-test-utils": "^3.0.0-next.6"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@ignored/edr": "0.10.0-alpha.
|
|
77
|
-
"@ignored/edr-optimism": "0.
|
|
78
|
-
"@nomicfoundation/hardhat-errors": "^3.0.0-next.
|
|
79
|
-
"@nomicfoundation/hardhat-utils": "^3.0.0-next.
|
|
80
|
-
"@nomicfoundation/hardhat-zod-utils": "^3.0.0-next.
|
|
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 {
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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;
|
|
@@ -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 {
|
|
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
|
-
|
|
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. */
|