hardhat 3.3.0 → 3.4.1
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 +69 -0
- package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.js +6 -14
- package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.js +10 -10
- package/dist/src/internal/builtin-plugins/artifacts/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/clean/index.js +1 -1
- package/dist/src/internal/builtin-plugins/clean/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/console/index.js +1 -1
- package/dist/src/internal/builtin-plugins/console/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/console/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/console/task-action.js +2 -1
- package/dist/src/internal/builtin-plugins/console/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +2 -2
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
- package/dist/src/internal/builtin-plugins/flatten/index.js +1 -1
- package/dist/src/internal/builtin-plugins/flatten/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.d.ts +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.js +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/exports.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js +1 -2
- package/dist/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts +7 -5
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js +60 -44
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.d.ts +6 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.js +14 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/accessors.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.d.ts +4 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.js +27 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/compat.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.d.ts +36 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.js +86 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers/utils.js.map +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.js +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js +2 -2
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js +1 -2
- package/dist/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts +10 -2
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js +4 -4
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.d.ts +4 -4
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.js +2 -2
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts +6 -3
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js +23 -5
- package/dist/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.js.map +1 -1
- 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 +3 -2
- 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/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js +24 -2
- 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.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js +19 -11
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/network.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/http-provider.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/http-provider.js +2 -2
- package/dist/src/internal/builtin-plugins/network-manager/http-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.d.ts +11 -1
- 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 +91 -24
- package/dist/src/internal/builtin-plugins/network-manager/network-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.d.ts +1 -0
- 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 +22 -8
- 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/request-handlers/handlers/accounts/sender.d.ts +2 -0
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.js +19 -12
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.js +9 -3
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.d.ts +2 -0
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.js +5 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.js +5 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.js +5 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.js +5 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/types.d.ts +9 -0
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/types.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.d.ts +2 -0
- package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.js +3 -0
- package/dist/src/internal/builtin-plugins/network-manager/revert-error-code.js.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts +1 -1
- 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 +2 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/helpers.js +1 -1
- package/dist/src/internal/builtin-plugins/node/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/index.js +1 -1
- package/dist/src/internal/builtin-plugins/node/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js +8 -2
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/task-action.js +2 -2
- package/dist/src/internal/builtin-plugins/node/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/run/index.js +1 -1
- package/dist/src/internal/builtin-plugins/run/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/run/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/run/task-action.js +2 -1
- package/dist/src/internal/builtin-plugins/run/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.js +3 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/artifacts.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts +1 -1
- 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 +125 -39
- 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 +2 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/cache.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.d.ts +3 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.js +12 -4
- package/dist/src/internal/builtin-plugins/solidity/build-system/compilation-job.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js +4 -4
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js +2 -2
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.js +5 -5
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/read-source-file.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js +10 -10
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js +1 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js +2 -2
- package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/config.js +19 -16
- package/dist/src/internal/builtin-plugins/solidity/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/constants.d.ts +3 -0
- package/dist/src/internal/builtin-plugins/solidity/constants.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/constants.js +19 -0
- package/dist/src/internal/builtin-plugins/solidity/constants.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/config.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/config.js.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 +10 -10
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/index.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts +1 -1
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.js +225 -55
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts +30 -4
- package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/type-extensions.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/config.js +5 -3
- package/dist/src/internal/builtin-plugins/solidity-test/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js +2 -2
- package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts +0 -2
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js +0 -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.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/hook-handlers/test.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/hook-handlers/test.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/runner.d.ts +2 -8
- package/dist/src/internal/builtin-plugins/solidity-test/runner.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/runner.js +47 -50
- package/dist/src/internal/builtin-plugins/solidity-test/runner.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 +11 -2
- package/dist/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.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 +108 -32
- 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 +1 -2
- package/dist/src/internal/builtin-plugins/solidity-test/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/telemetry/index.js +1 -1
- package/dist/src/internal/builtin-plugins/telemetry/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/test/hook-handlers/config.js +1 -1
- package/dist/src/internal/builtin-plugins/test/hook-handlers/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/test/index.js +1 -1
- package/dist/src/internal/builtin-plugins/test/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/test/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/test/task-action.js +3 -4
- package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
- package/dist/src/internal/cli/init/init.js +1 -1
- 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 +12 -2
- package/dist/src/internal/cli/main.js.map +1 -1
- package/dist/src/internal/cli/node-version.d.ts.map +1 -1
- package/dist/src/internal/cli/node-version.js +3 -0
- package/dist/src/internal/cli/node-version.js.map +1 -1
- package/dist/src/internal/cli/telemetry/analytics/analytics.js +2 -2
- package/dist/src/internal/cli/telemetry/analytics/analytics.js.map +1 -1
- package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.d.ts +6 -0
- package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.d.ts.map +1 -0
- package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.js +47 -0
- package/dist/src/internal/cli/telemetry/error-reporter/global-error-handlers.js.map +1 -0
- package/dist/src/internal/cli/telemetry/error-reporter/reporter.d.ts +27 -0
- package/dist/src/internal/cli/telemetry/error-reporter/reporter.d.ts.map +1 -0
- package/dist/src/internal/cli/telemetry/error-reporter/reporter.js +40 -0
- package/dist/src/internal/cli/telemetry/error-reporter/reporter.js.map +1 -0
- package/dist/src/internal/cli/telemetry/sentry/anonymizer.js +1 -1
- package/dist/src/internal/cli/telemetry/sentry/anonymizer.js.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/init.d.ts +0 -8
- package/dist/src/internal/cli/telemetry/sentry/init.d.ts.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/init.js +1 -37
- package/dist/src/internal/cli/telemetry/sentry/init.js.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/reporter.d.ts +8 -2
- package/dist/src/internal/cli/telemetry/sentry/reporter.d.ts.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/reporter.js +18 -12
- package/dist/src/internal/cli/telemetry/sentry/reporter.js.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/transport.js +1 -1
- package/dist/src/internal/cli/telemetry/sentry/transport.js.map +1 -1
- package/dist/src/internal/cli/telemetry/telemetry-permissions.js +1 -1
- package/dist/src/internal/cli/telemetry/telemetry-permissions.js.map +1 -1
- package/dist/src/internal/config-loading.js +3 -3
- package/dist/src/internal/config-loading.js.map +1 -1
- package/dist/src/internal/core/configuration-variables.d.ts.map +1 -1
- package/dist/src/internal/core/configuration-variables.js +1 -1
- package/dist/src/internal/core/configuration-variables.js.map +1 -1
- package/dist/src/internal/core/hook-manager.js +3 -3
- package/dist/src/internal/core/hook-manager.js.map +1 -1
- package/dist/src/internal/core/hre.d.ts.map +1 -1
- package/dist/src/internal/core/hre.js +3 -3
- package/dist/src/internal/core/hre.js.map +1 -1
- package/dist/src/internal/core/plugins/resolve-plugin-list.js +1 -1
- package/dist/src/internal/core/plugins/resolve-plugin-list.js.map +1 -1
- package/dist/src/internal/core/tasks/resolved-task.js +4 -4
- package/dist/src/internal/core/tasks/resolved-task.js.map +1 -1
- package/dist/src/internal/core/user-interruptions.js +9 -9
- package/dist/src/internal/core/user-interruptions.js.map +1 -1
- package/dist/src/internal/hre-initialization.js +1 -1
- package/dist/src/internal/hre-initialization.js.map +1 -1
- package/dist/src/types/artifacts.d.ts +5 -4
- package/dist/src/types/artifacts.d.ts.map +1 -1
- package/dist/src/types/network.d.ts +39 -0
- package/dist/src/types/network.d.ts.map +1 -1
- package/dist/src/types/solidity/build-system.d.ts +66 -3
- package/dist/src/types/solidity/build-system.d.ts.map +1 -1
- package/dist/src/types/solidity/build-system.js.map +1 -1
- package/dist/src/types/solidity/compilation-job.d.ts +6 -0
- package/dist/src/types/solidity/compilation-job.d.ts.map +1 -1
- package/dist/src/types/solidity/solidity-artifacts.d.ts +14 -0
- package/dist/src/types/solidity/solidity-artifacts.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/internal/builtin-plugins/artifacts/artifact-manager.ts +10 -16
- package/src/internal/builtin-plugins/artifacts/hook-handlers/hre.ts +16 -10
- package/src/internal/builtin-plugins/clean/index.ts +1 -1
- package/src/internal/builtin-plugins/console/index.ts +1 -1
- package/src/internal/builtin-plugins/console/task-action.ts +2 -1
- package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +2 -2
- package/src/internal/builtin-plugins/flatten/index.ts +1 -1
- package/src/internal/builtin-plugins/gas-analytics/exports.ts +1 -1
- package/src/internal/builtin-plugins/gas-analytics/function-gas-snapshots.ts +1 -2
- package/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts +100 -61
- package/src/internal/builtin-plugins/gas-analytics/helpers/accessors.ts +31 -0
- package/src/internal/builtin-plugins/gas-analytics/helpers/compat.ts +37 -0
- package/src/internal/builtin-plugins/gas-analytics/helpers/utils.ts +112 -0
- package/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts +1 -1
- package/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.ts +1 -1
- package/src/internal/builtin-plugins/gas-analytics/index.ts +4 -2
- package/src/internal/builtin-plugins/gas-analytics/snapshot-cheatcodes.ts +1 -2
- package/src/internal/builtin-plugins/gas-analytics/types.ts +11 -2
- package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +4 -4
- package/src/internal/builtin-plugins/network-manager/edr/genesis-state.ts +1 -1
- package/src/internal/builtin-plugins/network-manager/edr/stack-traces/solidity-stack-trace.ts +4 -0
- package/src/internal/builtin-plugins/network-manager/edr/stack-traces/stack-trace-solidity-errors.ts +28 -4
- package/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.ts +3 -2
- package/src/internal/builtin-plugins/network-manager/hook-handlers/hre.ts +31 -2
- package/src/internal/builtin-plugins/network-manager/hook-handlers/network.ts +22 -16
- package/src/internal/builtin-plugins/network-manager/http-provider.ts +6 -2
- package/src/internal/builtin-plugins/network-manager/network-manager.ts +139 -32
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/hd-wallet-handler.ts +1 -0
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +30 -13
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/sender.ts +25 -17
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/chain-id/chain-id-handler.ts +13 -5
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.ts +7 -1
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-price-handler.ts +7 -1
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-handler.ts +7 -1
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/fixed-gas-price-handler.ts +7 -1
- package/src/internal/builtin-plugins/network-manager/request-handlers/types.ts +10 -0
- package/src/internal/builtin-plugins/network-manager/revert-error-code.ts +2 -0
- package/src/internal/builtin-plugins/network-manager/type-extensions/config.ts +1 -1
- package/src/internal/builtin-plugins/network-manager/type-validation.ts +5 -1
- package/src/internal/builtin-plugins/node/helpers.ts +1 -1
- package/src/internal/builtin-plugins/node/index.ts +1 -1
- package/src/internal/builtin-plugins/node/json-rpc/handler.ts +10 -2
- package/src/internal/builtin-plugins/node/task-action.ts +2 -2
- package/src/internal/builtin-plugins/run/index.ts +1 -1
- package/src/internal/builtin-plugins/run/task-action.ts +2 -1
- package/src/internal/builtin-plugins/solidity/build-system/artifacts.ts +3 -0
- package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +176 -45
- package/src/internal/builtin-plugins/solidity/build-system/cache.ts +2 -0
- package/src/internal/builtin-plugins/solidity/build-system/compilation-job.ts +16 -10
- package/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.ts +4 -4
- package/src/internal/builtin-plugins/solidity/build-system/compiler/index.ts +2 -2
- package/src/internal/builtin-plugins/solidity/build-system/compiler/solcjs-runner.ts +1 -1
- package/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.ts +1 -1
- package/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts +9 -7
- package/src/internal/builtin-plugins/solidity/build-system/read-source-file.ts +2 -2
- package/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts +11 -11
- package/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts +1 -1
- package/src/internal/builtin-plugins/solidity/build-system/solc-info.ts +1 -0
- package/src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts +2 -2
- package/src/internal/builtin-plugins/solidity/config.ts +23 -13
- package/src/internal/builtin-plugins/solidity/constants.ts +21 -0
- package/src/internal/builtin-plugins/solidity/hook-handlers/config.ts +1 -1
- package/src/internal/builtin-plugins/solidity/hook-handlers/hre.ts +14 -10
- package/src/internal/builtin-plugins/solidity/index.ts +1 -1
- package/src/internal/builtin-plugins/solidity/solidity-hooks.ts +1 -1
- package/src/internal/builtin-plugins/solidity/tasks/build.ts +359 -74
- package/src/internal/builtin-plugins/solidity/type-extensions.ts +38 -8
- package/src/internal/builtin-plugins/solidity-test/config.ts +11 -2
- package/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts +2 -2
- package/src/internal/builtin-plugins/solidity-test/helpers.ts +0 -7
- package/src/internal/builtin-plugins/solidity-test/hook-handlers/config.ts +1 -1
- package/src/internal/builtin-plugins/solidity-test/hook-handlers/test.ts +1 -1
- package/src/internal/builtin-plugins/solidity-test/index.ts +1 -1
- package/src/internal/builtin-plugins/solidity-test/reporter.ts +1 -1
- package/src/internal/builtin-plugins/solidity-test/runner.ts +64 -83
- package/src/internal/builtin-plugins/solidity-test/stack-trace-solidity-errors.ts +15 -2
- package/src/internal/builtin-plugins/solidity-test/task-action.ts +161 -43
- package/src/internal/builtin-plugins/solidity-test/type-extensions.ts +1 -2
- package/src/internal/builtin-plugins/telemetry/index.ts +1 -1
- package/src/internal/builtin-plugins/test/hook-handlers/config.ts +1 -1
- package/src/internal/builtin-plugins/test/index.ts +1 -1
- package/src/internal/builtin-plugins/test/task-action.ts +3 -4
- package/src/internal/cli/init/init.ts +1 -1
- package/src/internal/cli/main.ts +19 -3
- package/src/internal/cli/node-version.ts +3 -0
- package/src/internal/cli/telemetry/analytics/analytics.ts +2 -2
- package/src/internal/cli/telemetry/error-reporter/global-error-handlers.ts +64 -0
- package/src/internal/cli/telemetry/error-reporter/reporter.ts +49 -0
- package/src/internal/cli/telemetry/sentry/anonymizer.ts +1 -1
- package/src/internal/cli/telemetry/sentry/init.ts +2 -62
- package/src/internal/cli/telemetry/sentry/reporter.ts +27 -15
- package/src/internal/cli/telemetry/sentry/transport.ts +1 -1
- package/src/internal/cli/telemetry/telemetry-permissions.ts +1 -1
- package/src/internal/config-loading.ts +3 -3
- package/src/internal/core/configuration-variables.ts +19 -18
- package/src/internal/core/hook-manager.ts +3 -3
- package/src/internal/core/hre.ts +5 -3
- package/src/internal/core/plugins/resolve-plugin-list.ts +1 -1
- package/src/internal/core/tasks/resolved-task.ts +4 -4
- package/src/internal/core/user-interruptions.ts +9 -9
- package/src/internal/hre-initialization.ts +1 -1
- package/src/types/artifacts.ts +5 -4
- package/src/types/network.ts +48 -0
- package/src/types/solidity/build-system.ts +66 -3
- package/src/types/solidity/compilation-job.ts +7 -0
- package/src/types/solidity/solidity-artifacts.ts +16 -0
- package/templates/hardhat-2/04-mocha-viem-ts/package.json +1 -1
- package/templates/hardhat-3/01-node-test-runner-viem/gitignore +11 -0
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +12 -12
- package/templates/hardhat-3/01-node-test-runner-viem/scripts/send-op-tx.ts +1 -1
- package/templates/hardhat-3/01-node-test-runner-viem/test/Counter.ts +1 -1
- package/templates/hardhat-3/02-mocha-ethers/gitignore +11 -0
- package/templates/hardhat-3/02-mocha-ethers/package.json +14 -14
- package/templates/hardhat-3/02-mocha-ethers/scripts/send-op-tx.ts +1 -1
- package/templates/hardhat-3/02-mocha-ethers/test/Counter.ts +1 -1
- package/templates/hardhat-3/03-minimal/gitignore +11 -0
- package/templates/hardhat-3/03-minimal/package.json +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts +0 -14
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts.map +0 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js +0 -55
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js.map +0 -1
- package/src/internal/builtin-plugins/gas-analytics/helpers.ts +0 -96
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { isObject } from "@nomicfoundation/hardhat-utils/lang";
|
|
2
|
+
import debug from "debug";
|
|
3
|
+
|
|
4
|
+
import { sendErrorTelemetry } from "./reporter.js";
|
|
5
|
+
|
|
6
|
+
const log = debug("hardhat:core:telemetry:global-error-handlers");
|
|
7
|
+
|
|
8
|
+
function createUnhandledErrorListener(isPromiseRejection: boolean) {
|
|
9
|
+
const description = isPromiseRejection
|
|
10
|
+
? "Unhandled promise rejection"
|
|
11
|
+
: "Uncaught exception";
|
|
12
|
+
|
|
13
|
+
const mechanismType = isPromiseRejection
|
|
14
|
+
? "onunhandledrejection"
|
|
15
|
+
: "onuncaughtexception";
|
|
16
|
+
|
|
17
|
+
async function listener(error: Error | unknown) {
|
|
18
|
+
log(description, error);
|
|
19
|
+
|
|
20
|
+
const telemetryError =
|
|
21
|
+
error instanceof Error
|
|
22
|
+
? error
|
|
23
|
+
: new Error(
|
|
24
|
+
isObject(error) &&
|
|
25
|
+
"message" in error &&
|
|
26
|
+
typeof error.message === "string"
|
|
27
|
+
? error.message
|
|
28
|
+
: "Unknown error",
|
|
29
|
+
{ cause: error },
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
await sendErrorTelemetry(telemetryError, {
|
|
34
|
+
unhandled: true,
|
|
35
|
+
mechanismType,
|
|
36
|
+
});
|
|
37
|
+
} catch (telemetryErrorReportingError) {
|
|
38
|
+
log(
|
|
39
|
+
"Failed to send telemetry for unhandled error",
|
|
40
|
+
telemetryErrorReportingError,
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
console.error();
|
|
45
|
+
console.error(`${description}:`);
|
|
46
|
+
console.error();
|
|
47
|
+
console.error(error);
|
|
48
|
+
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return listener;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Sets up global error handlers that report unhandled errors and promise
|
|
57
|
+
* rejections if authorized by the user.
|
|
58
|
+
*/
|
|
59
|
+
export function setupGlobalUnhandledErrorHandlers(): void {
|
|
60
|
+
log("Setting up global unhandled error handlers");
|
|
61
|
+
|
|
62
|
+
process.on("uncaughtException", createUnhandledErrorListener(false));
|
|
63
|
+
process.on("unhandledRejection", createUnhandledErrorListener(true));
|
|
64
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type * as SentryReporterT from "../sentry/reporter.js";
|
|
2
|
+
|
|
3
|
+
// Sentry's reporter loads a large number of modules, so we only load it if
|
|
4
|
+
// needed.
|
|
5
|
+
let sentryReporterModule: typeof SentryReporterT | undefined;
|
|
6
|
+
|
|
7
|
+
// We cache the `setCliHardhatConfigPath` to avoid loading the reporter just
|
|
8
|
+
// for this setting. We load it and set the config path if needed.
|
|
9
|
+
let cliHardhatConfigPath: string | undefined;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Reports an error if telemetry is authorized by the user.
|
|
13
|
+
*
|
|
14
|
+
* While this function is async, it's expected to always complete quickly,
|
|
15
|
+
* delegating the actual reporting to a subprocess.
|
|
16
|
+
*
|
|
17
|
+
* @param error - The error to report.
|
|
18
|
+
* @param hint - Optional metadata describing how the error was captured, used
|
|
19
|
+
* to tag the event in Sentry so unhandled crashes can be distinguished from
|
|
20
|
+
* errors caught and reported by the CLI.
|
|
21
|
+
* @param hint.unhandled - Whether the error reached a global handler without
|
|
22
|
+
* being caught (e.g. an uncaught exception or unhandled promise rejection).
|
|
23
|
+
* Defaults to `false` (i.e. the error was handled).
|
|
24
|
+
* @param hint.mechanismType - The Sentry mechanism type, used as a tag on the
|
|
25
|
+
* event. Common values are `"onuncaughtexception"`, `"onunhandledrejection"`,
|
|
26
|
+
* `"instrument"`, and `"generic"`. Defaults to `"generic"`.
|
|
27
|
+
*/
|
|
28
|
+
export async function sendErrorTelemetry(
|
|
29
|
+
error: Error,
|
|
30
|
+
hint?: { unhandled?: boolean; mechanismType?: string },
|
|
31
|
+
): Promise<void> {
|
|
32
|
+
if (sentryReporterModule === undefined) {
|
|
33
|
+
sentryReporterModule = await import("../sentry/reporter.js");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (cliHardhatConfigPath !== undefined) {
|
|
37
|
+
sentryReporterModule.setCliHardhatConfigPath(cliHardhatConfigPath);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
await sentryReporterModule.sendErrorTelemetry(error, hint);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Sets the config path used in the Hardhat CLI. This is used for better
|
|
45
|
+
* anonymization of errors.
|
|
46
|
+
*/
|
|
47
|
+
export function setCliHardhatConfigPath(configPath: string): void {
|
|
48
|
+
cliHardhatConfigPath = configPath;
|
|
49
|
+
}
|
|
@@ -359,7 +359,7 @@ export class Anonymizer {
|
|
|
359
359
|
async #anonymizeFrames(frames: StackFrame[]): Promise<StackFrame[]> {
|
|
360
360
|
const anonymizedFrames = await Promise.all(
|
|
361
361
|
frames.map(async (frame) => {
|
|
362
|
-
return this.#anonymizeFrame(frame);
|
|
362
|
+
return await this.#anonymizeFrame(frame);
|
|
363
363
|
}),
|
|
364
364
|
);
|
|
365
365
|
return anonymizedFrames;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
/* This file is inspired by https://github.com/getsentry/sentry-javascript/blob/9.4.0/packages/node/src/sdk/index.ts */
|
|
2
2
|
|
|
3
|
-
import type {
|
|
4
|
-
Client,
|
|
5
|
-
ServerRuntimeClientOptions,
|
|
6
|
-
Transport,
|
|
7
|
-
} from "@sentry/core";
|
|
3
|
+
import type { ServerRuntimeClientOptions, Transport } from "@sentry/core";
|
|
8
4
|
|
|
9
5
|
import os from "node:os";
|
|
10
6
|
import path from "node:path";
|
|
@@ -18,15 +14,12 @@ import {
|
|
|
18
14
|
ServerRuntimeClient,
|
|
19
15
|
stackParserFromStackParserOptions,
|
|
20
16
|
} from "@sentry/core";
|
|
21
|
-
import debug from "debug";
|
|
22
17
|
|
|
23
18
|
import { GENERIC_SERVER_NAME } from "./constants.js";
|
|
24
19
|
import { nodeContextIntegration } from "./vendor/integrations/context.js";
|
|
25
20
|
import { contextLinesIntegration } from "./vendor/integrations/contextlines.js";
|
|
26
21
|
import { createGetModuleFromFilename } from "./vendor/utils/module.js";
|
|
27
22
|
|
|
28
|
-
const log = debug("hardhat:core:sentry:init");
|
|
29
|
-
|
|
30
23
|
interface GlobalCustomSentryReporterOptions {
|
|
31
24
|
/**
|
|
32
25
|
* Sentry's DSN
|
|
@@ -49,12 +42,6 @@ interface GlobalCustomSentryReporterOptions {
|
|
|
49
42
|
* See the transport module for the different options.
|
|
50
43
|
*/
|
|
51
44
|
transport: Transport;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* If `true`, the global unhandled rejection and uncaught exception handlers
|
|
55
|
-
* will be installed.
|
|
56
|
-
*/
|
|
57
|
-
installGlobalHandlers?: boolean;
|
|
58
45
|
}
|
|
59
46
|
|
|
60
47
|
/**
|
|
@@ -72,12 +59,9 @@ interface GlobalCustomSentryReporterOptions {
|
|
|
72
59
|
* The reason that this uses the global instance of sentry (by calling
|
|
73
60
|
* initAndBind), is that using the client directly doesn't work with the linked
|
|
74
61
|
* errors integration.
|
|
75
|
-
*
|
|
76
|
-
* Calling `init` also has an option to set global unhandled rejection and
|
|
77
|
-
* uncaught exception handlers.
|
|
78
62
|
*/
|
|
79
63
|
export function init(options: GlobalCustomSentryReporterOptions): void {
|
|
80
|
-
|
|
64
|
+
initAndBind<ServerRuntimeClient, ServerRuntimeClientOptions>(
|
|
81
65
|
ServerRuntimeClient,
|
|
82
66
|
{
|
|
83
67
|
dsn: options.dsn,
|
|
@@ -113,48 +97,4 @@ export function init(options: GlobalCustomSentryReporterOptions): void {
|
|
|
113
97
|
),
|
|
114
98
|
},
|
|
115
99
|
);
|
|
116
|
-
|
|
117
|
-
setupGlobalUnhandledErrorHandlers(client);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function createUnhandledErrorListener(
|
|
121
|
-
client: Client,
|
|
122
|
-
isPromiseRejection: boolean,
|
|
123
|
-
) {
|
|
124
|
-
const description = isPromiseRejection
|
|
125
|
-
? "Unhandled promise rejection"
|
|
126
|
-
: "Uncaught exception";
|
|
127
|
-
|
|
128
|
-
async function listener(error: Error | unknown) {
|
|
129
|
-
log(description, error);
|
|
130
|
-
|
|
131
|
-
client.captureException(error, {
|
|
132
|
-
captureContext: {
|
|
133
|
-
level: "fatal",
|
|
134
|
-
},
|
|
135
|
-
mechanism: {
|
|
136
|
-
handled: false,
|
|
137
|
-
type: "onuncaughtexception",
|
|
138
|
-
},
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
await client.flush(100);
|
|
142
|
-
await client.close(100);
|
|
143
|
-
|
|
144
|
-
console.error();
|
|
145
|
-
console.error(`${description}:`);
|
|
146
|
-
console.error();
|
|
147
|
-
console.error(error);
|
|
148
|
-
|
|
149
|
-
process.exit(1);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return listener;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function setupGlobalUnhandledErrorHandlers(client: Client) {
|
|
156
|
-
log("Setting up global unhandled error handlers");
|
|
157
|
-
|
|
158
|
-
process.on("uncaughtException", createUnhandledErrorListener(client, false));
|
|
159
|
-
process.on("unhandledRejection", createUnhandledErrorListener(client, true));
|
|
160
100
|
}
|
|
@@ -19,15 +19,16 @@ const log = debug("hardhat:cli:telemetry:sentry:reporter");
|
|
|
19
19
|
export const SENTRY_DSN =
|
|
20
20
|
"https://572b03708e298427cc72fc26dac1e8b2@o385026.ingest.us.sentry.io/4508780138856448"; // PROD
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Use packages/hardhat/src/internal/cli/telemetry/error-reporter/reporter.ts
|
|
24
|
+
* instead.
|
|
25
|
+
*/
|
|
26
|
+
export async function sendErrorTelemetry(
|
|
27
|
+
error: Error,
|
|
28
|
+
hint?: { unhandled?: boolean; mechanismType?: string },
|
|
29
|
+
): Promise<boolean> {
|
|
29
30
|
const instance = await Reporter.getInstance();
|
|
30
|
-
return instance.reportErrorViaSubprocess(error);
|
|
31
|
+
return await instance.reportErrorViaSubprocess(error, hint);
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
export function setCliHardhatConfigPath(configPath: string): void {
|
|
@@ -57,9 +58,7 @@ class Reporter {
|
|
|
57
58
|
this.#hardhatConfigPath = configPath;
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
public static async getInstance(
|
|
61
|
-
shouldSetupErrorHandlers = false,
|
|
62
|
-
): Promise<Reporter> {
|
|
61
|
+
public static async getInstance(): Promise<Reporter> {
|
|
63
62
|
if (this.#instance !== undefined) {
|
|
64
63
|
return this.#instance;
|
|
65
64
|
}
|
|
@@ -94,7 +93,6 @@ class Reporter {
|
|
|
94
93
|
),
|
|
95
94
|
release,
|
|
96
95
|
environment,
|
|
97
|
-
installGlobalHandlers: shouldSetupErrorHandlers,
|
|
98
96
|
});
|
|
99
97
|
|
|
100
98
|
setExtra("nodeVersion", process.version);
|
|
@@ -108,17 +106,31 @@ class Reporter {
|
|
|
108
106
|
this.#instance = undefined;
|
|
109
107
|
}
|
|
110
108
|
|
|
111
|
-
public async reportErrorViaSubprocess(
|
|
109
|
+
public async reportErrorViaSubprocess(
|
|
110
|
+
error: Error,
|
|
111
|
+
hint?: { unhandled?: boolean; mechanismType?: string },
|
|
112
|
+
): Promise<boolean> {
|
|
112
113
|
if (!(await this.#shouldBeReported(error))) {
|
|
113
114
|
log("Error not send: this type of error should not be reported");
|
|
114
115
|
return false;
|
|
115
116
|
}
|
|
116
117
|
|
|
117
|
-
const { captureException } = await import("@sentry/core");
|
|
118
|
+
const { captureException, flush } = await import("@sentry/core");
|
|
118
119
|
|
|
119
120
|
log("Capturing exception");
|
|
120
121
|
|
|
121
|
-
captureException(
|
|
122
|
+
captureException(
|
|
123
|
+
error,
|
|
124
|
+
hint !== undefined
|
|
125
|
+
? {
|
|
126
|
+
mechanism: {
|
|
127
|
+
type: hint.mechanismType ?? "generic",
|
|
128
|
+
handled: hint.unhandled !== true,
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
: undefined,
|
|
132
|
+
);
|
|
133
|
+
await flush();
|
|
122
134
|
|
|
123
135
|
return true;
|
|
124
136
|
}
|
|
@@ -139,7 +139,7 @@ export async function sendEnvelopeToSentryBackend(
|
|
|
139
139
|
dsn: string,
|
|
140
140
|
envelope: Envelope,
|
|
141
141
|
): Promise<TransportMakeRequestResponse> {
|
|
142
|
-
return sendSerializedEnvelopeToSentryBackend(
|
|
142
|
+
return await sendSerializedEnvelopeToSentryBackend(
|
|
143
143
|
dsn,
|
|
144
144
|
serializeEnvelope(envelope),
|
|
145
145
|
);
|
|
@@ -35,7 +35,7 @@ export async function isTelemetryAllowed(
|
|
|
35
35
|
return process.env.HARDHAT_TEST_TELEMETRY_ENABLED === "true" ? true : false;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
return isTelemetryEnabled(telemetryConfigFilePath);
|
|
38
|
+
return await isTelemetryEnabled(telemetryConfigFilePath);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/**
|
|
@@ -34,15 +34,15 @@ export async function resolveHardhatConfigPath(
|
|
|
34
34
|
userProvidedPath?: string,
|
|
35
35
|
): Promise<string> {
|
|
36
36
|
if (userProvidedPath !== undefined) {
|
|
37
|
-
return normalizeConfigPath(userProvidedPath);
|
|
37
|
+
return await normalizeConfigPath(userProvidedPath);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
if (process.env.HARDHAT_CONFIG !== undefined) {
|
|
41
41
|
log("Using config file path from the HARDHAT_CONFIG env var");
|
|
42
|
-
return normalizeConfigPath(process.env.HARDHAT_CONFIG);
|
|
42
|
+
return await normalizeConfigPath(process.env.HARDHAT_CONFIG);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
return findClosestHardhatConfig();
|
|
45
|
+
return await findClosestHardhatConfig();
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -118,24 +118,25 @@ export class LazyResolvedConfigurationVariable extends BaseResolvedConfiguration
|
|
|
118
118
|
const mutex = LazyResolvedConfigurationVariable.#mutexes.get(this.#hooks);
|
|
119
119
|
assertHardhatInvariant(mutex !== undefined, "Mutex must be defined");
|
|
120
120
|
|
|
121
|
-
return mutex.exclusiveRun(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
HardhatError
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
121
|
+
return await mutex.exclusiveRun(
|
|
122
|
+
async () =>
|
|
123
|
+
await this.#hooks.runHandlerChain(
|
|
124
|
+
"configurationVariables",
|
|
125
|
+
"fetchValue",
|
|
126
|
+
[this.#variable],
|
|
127
|
+
async (_context, v) => {
|
|
128
|
+
const value = process.env[v.name];
|
|
129
|
+
|
|
130
|
+
if (typeof value !== "string") {
|
|
131
|
+
throw new HardhatError(
|
|
132
|
+
HardhatError.ERRORS.CORE.GENERAL.ENV_VAR_NOT_FOUND,
|
|
133
|
+
{ name: v.name },
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return value;
|
|
138
|
+
},
|
|
139
|
+
),
|
|
139
140
|
);
|
|
140
141
|
}
|
|
141
142
|
}
|
|
@@ -124,7 +124,7 @@ export class HookManagerImplementation implements HookManager {
|
|
|
124
124
|
return result;
|
|
125
125
|
};
|
|
126
126
|
|
|
127
|
-
return next(...handlerParams);
|
|
127
|
+
return await next(...handlerParams);
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
public async runSequentialHandlers<
|
|
@@ -192,7 +192,7 @@ export class HookManagerImplementation implements HookManager {
|
|
|
192
192
|
handlerParams = params;
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
return Promise.all(
|
|
195
|
+
return await Promise.all(
|
|
196
196
|
handlers.map((handler) => (handler as any)(...handlerParams)),
|
|
197
197
|
);
|
|
198
198
|
}
|
|
@@ -277,7 +277,7 @@ export class HookManagerImplementation implements HookManager {
|
|
|
277
277
|
const categories: Array<
|
|
278
278
|
Partial<HardhatHooks[HookCategoryNameT]> | undefined
|
|
279
279
|
> = await this.#mutex.exclusiveRun(async () => {
|
|
280
|
-
return Promise.all(
|
|
280
|
+
return await Promise.all(
|
|
281
281
|
this.#pluginsInReverseOrder.map(async (plugin) => {
|
|
282
282
|
const existingCategory = this.#staticHookHandlerCategories
|
|
283
283
|
.get(plugin.id)
|
package/src/internal/core/hre.ts
CHANGED
|
@@ -193,7 +193,9 @@ export class HardhatRuntimeEnvironmentImplementation
|
|
|
193
193
|
export async function resolveProjectRoot(
|
|
194
194
|
absolutePathWithinProject: string | undefined,
|
|
195
195
|
): Promise<string> {
|
|
196
|
-
return findClosestPackageRoot(
|
|
196
|
+
return await findClosestPackageRoot(
|
|
197
|
+
absolutePathWithinProject ?? process.cwd(),
|
|
198
|
+
);
|
|
197
199
|
}
|
|
198
200
|
|
|
199
201
|
/**
|
|
@@ -292,7 +294,7 @@ async function runUserConfigExtensions(
|
|
|
292
294
|
hooks: HookManager,
|
|
293
295
|
config: HardhatUserConfig,
|
|
294
296
|
): Promise<HardhatUserConfig> {
|
|
295
|
-
return hooks.runHandlerChain(
|
|
297
|
+
return await hooks.runHandlerChain(
|
|
296
298
|
"config",
|
|
297
299
|
"extendUserConfig",
|
|
298
300
|
[config],
|
|
@@ -320,7 +322,7 @@ async function resolveUserConfig(
|
|
|
320
322
|
paths: resolvePaths(projectRoot, configPath, config.paths),
|
|
321
323
|
} as HardhatConfig;
|
|
322
324
|
|
|
323
|
-
return hooks.runHandlerChain(
|
|
325
|
+
return await hooks.runHandlerChain(
|
|
324
326
|
"config",
|
|
325
327
|
"resolveUserConfig",
|
|
326
328
|
[config, (variable) => resolveConfigurationVariable(hooks, variable)],
|
|
@@ -12,7 +12,7 @@ export async function resolvePluginList(
|
|
|
12
12
|
projectRoot: string,
|
|
13
13
|
userConfigPluginList: HardhatPlugin[] = [],
|
|
14
14
|
): Promise<HardhatPlugin[]> {
|
|
15
|
-
return reverseTopologicalSort(projectRoot, userConfigPluginList);
|
|
15
|
+
return await reverseTopologicalSort(projectRoot, userConfigPluginList);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -175,22 +175,22 @@ export class ResolvedTask implements Task {
|
|
|
175
175
|
if (currentIndex === 0) {
|
|
176
176
|
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions --
|
|
177
177
|
We know that the first action in the array is a NewTaskActionFunction */
|
|
178
|
-
return (actionFn as NewTaskActionFunction)(
|
|
178
|
+
return await (actionFn as NewTaskActionFunction)(
|
|
179
179
|
nextTaskArguments,
|
|
180
180
|
this.#hre,
|
|
181
181
|
);
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
-
return actionFn(
|
|
184
|
+
return await actionFn(
|
|
185
185
|
nextTaskArguments,
|
|
186
186
|
this.#hre,
|
|
187
187
|
async (newTaskArguments: TaskArguments) => {
|
|
188
|
-
return next(newTaskArguments, currentIndex - 1);
|
|
188
|
+
return await next(newTaskArguments, currentIndex - 1);
|
|
189
189
|
},
|
|
190
190
|
);
|
|
191
191
|
};
|
|
192
192
|
|
|
193
|
-
return next(validatedTaskArguments);
|
|
193
|
+
return await next(validatedTaskArguments);
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
/**
|
|
@@ -21,8 +21,8 @@ export class UserInterruptionManagerImplementation
|
|
|
21
21
|
interruptor: string,
|
|
22
22
|
message: string,
|
|
23
23
|
): Promise<void> {
|
|
24
|
-
return this.#mutex.exclusiveRun(async () => {
|
|
25
|
-
return this.#hooks.runHandlerChain(
|
|
24
|
+
return await this.#mutex.exclusiveRun(async () => {
|
|
25
|
+
return await this.#hooks.runHandlerChain(
|
|
26
26
|
"userInterruptions",
|
|
27
27
|
"displayMessage",
|
|
28
28
|
[interruptor, message],
|
|
@@ -35,8 +35,8 @@ export class UserInterruptionManagerImplementation
|
|
|
35
35
|
interruptor: string,
|
|
36
36
|
inputDescription: string,
|
|
37
37
|
): Promise<string> {
|
|
38
|
-
return this.#mutex.exclusiveRun(async () => {
|
|
39
|
-
return this.#hooks.runHandlerChain(
|
|
38
|
+
return await this.#mutex.exclusiveRun(async () => {
|
|
39
|
+
return await this.#hooks.runHandlerChain(
|
|
40
40
|
"userInterruptions",
|
|
41
41
|
"requestInput",
|
|
42
42
|
[interruptor, inputDescription],
|
|
@@ -49,8 +49,8 @@ export class UserInterruptionManagerImplementation
|
|
|
49
49
|
interruptor: string,
|
|
50
50
|
inputDescription: string,
|
|
51
51
|
): Promise<string> {
|
|
52
|
-
return this.#mutex.exclusiveRun(async () => {
|
|
53
|
-
return this.#hooks.runHandlerChain(
|
|
52
|
+
return await this.#mutex.exclusiveRun(async () => {
|
|
53
|
+
return await this.#hooks.runHandlerChain(
|
|
54
54
|
"userInterruptions",
|
|
55
55
|
"requestSecretInput",
|
|
56
56
|
[interruptor, inputDescription],
|
|
@@ -62,7 +62,7 @@ export class UserInterruptionManagerImplementation
|
|
|
62
62
|
public async uninterrupted<ReturnT>(
|
|
63
63
|
f: () => ReturnT,
|
|
64
64
|
): Promise<Awaited<ReturnT>> {
|
|
65
|
-
return this.#mutex.exclusiveRun(f);
|
|
65
|
+
return await this.#mutex.exclusiveRun(f);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -84,7 +84,7 @@ async function defaultRequestInput(
|
|
|
84
84
|
output: process.stdout,
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
-
return new Promise<string>((resolve) => {
|
|
87
|
+
return await new Promise<string>((resolve) => {
|
|
88
88
|
rl.question(
|
|
89
89
|
chalk.blue(`[${interruptor}]`) + ` ${inputDescription}: `,
|
|
90
90
|
(answer) => {
|
|
@@ -138,7 +138,7 @@ async function defaultRequestSecretInput(
|
|
|
138
138
|
}
|
|
139
139
|
};
|
|
140
140
|
|
|
141
|
-
return new Promise<string>((resolve) => {
|
|
141
|
+
return await new Promise<string>((resolve) => {
|
|
142
142
|
rl.question(
|
|
143
143
|
chalk.blue(`[${interruptor}]`) + ` ${inputDescription}: `,
|
|
144
144
|
(answer) => {
|
|
@@ -65,7 +65,7 @@ export async function createHardhatRuntimeEnvironment(
|
|
|
65
65
|
unsafeOptions.globalOptionDefinitions = globalOptionDefinitions;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
return HardhatRuntimeEnvironmentImplementation.create(
|
|
68
|
+
return await HardhatRuntimeEnvironmentImplementation.create(
|
|
69
69
|
config,
|
|
70
70
|
userProvidedGlobalOptions,
|
|
71
71
|
resolvedProjectRoot,
|
package/src/types/artifacts.ts
CHANGED
|
@@ -89,11 +89,11 @@ export interface ArtifactManager {
|
|
|
89
89
|
/**
|
|
90
90
|
* Returns true if an artifact exists.
|
|
91
91
|
*
|
|
92
|
-
* This function doesn't throw if the name is not unique
|
|
92
|
+
* This function doesn't throw if the name is not unique, this means that
|
|
93
|
+
* this method may return `true`, and a successive call to `readArtifact` can
|
|
94
|
+
* throw because of a duplicated name.
|
|
93
95
|
*
|
|
94
96
|
* @param contractNameOrFullyQualifiedName Contract or fully qualified name.
|
|
95
|
-
* @throws Throws an error if a non-unique contract name is used,
|
|
96
|
-
* indicating which fully qualified names can be used instead.
|
|
97
97
|
*/
|
|
98
98
|
artifactExists(contractNameOrFullyQualifiedName: string): Promise<boolean>;
|
|
99
99
|
|
|
@@ -120,7 +120,8 @@ export interface ArtifactManager {
|
|
|
120
120
|
* If it does return an id, it's not guaranteed that the build info is
|
|
121
121
|
* present.
|
|
122
122
|
*
|
|
123
|
-
* @param contractNameOrFullyQualifiedName Contract or fully qualified name,
|
|
123
|
+
* @param contractNameOrFullyQualifiedName Contract or fully qualified name,
|
|
124
|
+
* whose artifact must exist.
|
|
124
125
|
* @throws Throws an error if a non-unique contract name is used,
|
|
125
126
|
* indicating which fully qualified names can be used instead.
|
|
126
127
|
* @throws Throws an error if the artifact doesn't exist.
|
package/src/types/network.ts
CHANGED
|
@@ -48,11 +48,59 @@ export interface NetworkConnectionParams<
|
|
|
48
48
|
override?: NetworkConfigOverride;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
export interface CachedNetworkConnectionParams<
|
|
52
|
+
ChainTypeT extends ChainType | string = DefaultChainType,
|
|
53
|
+
> extends NetworkConnectionParams<ChainTypeT> {
|
|
54
|
+
override?: never;
|
|
55
|
+
}
|
|
56
|
+
|
|
51
57
|
export interface NetworkManager {
|
|
58
|
+
/**
|
|
59
|
+
* Creates a new network connection based on the provided parameters.
|
|
60
|
+
*
|
|
61
|
+
* @param networkOrParams The network name or connection parameters. When
|
|
62
|
+
* omitted, the default network is used.
|
|
63
|
+
*
|
|
64
|
+
* @returns A new {@link NetworkConnection} for the specified network.
|
|
65
|
+
*/
|
|
66
|
+
create<ChainTypeT extends ChainType | string = DefaultChainType>(
|
|
67
|
+
networkOrParams?: NetworkConnectionParams<ChainTypeT> | string,
|
|
68
|
+
): Promise<NetworkConnection<ChainTypeT>>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Creates a new network connection based on the provided parameters.
|
|
72
|
+
*
|
|
73
|
+
* @deprecated Use {@link NetworkManager.create} or
|
|
74
|
+
* {@link NetworkManager.getOrCreate} instead.
|
|
75
|
+
*
|
|
76
|
+
* - {@link NetworkManager.create} always creates a new network instance.
|
|
77
|
+
* - {@link NetworkManager.getOrCreate} returns an existing instance if one exists.
|
|
78
|
+
*
|
|
79
|
+
* `connect` will be removed in a future version of Hardhat.
|
|
80
|
+
*
|
|
81
|
+
* @param networkOrParams The network name or connection parameters. When
|
|
82
|
+
* omitted, the default network is used.
|
|
83
|
+
*
|
|
84
|
+
* @returns A new {@link NetworkConnection} for the specified network.
|
|
85
|
+
*/
|
|
52
86
|
connect<ChainTypeT extends ChainType | string = DefaultChainType>(
|
|
53
87
|
networkOrParams?: NetworkConnectionParams<ChainTypeT> | string,
|
|
54
88
|
): Promise<NetworkConnection<ChainTypeT>>;
|
|
55
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Returns an existing network connection if one was previously created
|
|
92
|
+
* with the same network name and chain type. Creates a new one otherwise.
|
|
93
|
+
*
|
|
94
|
+
* @param networkOrParams The network name or connection parameters. When
|
|
95
|
+
* omitted, the default network is used. Overrides are not supported.
|
|
96
|
+
*
|
|
97
|
+
* @returns A {@link NetworkConnection} for the specified network, cached
|
|
98
|
+
* by network name and chain type.
|
|
99
|
+
*/
|
|
100
|
+
getOrCreate<ChainTypeT extends ChainType | string = DefaultChainType>(
|
|
101
|
+
networkOrParams?: CachedNetworkConnectionParams<ChainTypeT> | string,
|
|
102
|
+
): Promise<NetworkConnection<ChainTypeT>>;
|
|
103
|
+
|
|
56
104
|
/**
|
|
57
105
|
* Spawns an Ethereum JSON-RPC server listening on HTTP and Websocket.
|
|
58
106
|
*
|