hardhat 3.1.12 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/dist/src/internal/builtin-global-options.d.ts.map +1 -1
- package/dist/src/internal/builtin-global-options.js +14 -1
- package/dist/src/internal/builtin-global-options.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/helpers.d.ts +5 -0
- package/dist/src/internal/builtin-plugins/coverage/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/helpers.js +12 -0
- package/dist/src/internal/builtin-plugins/coverage/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.js +2 -5
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/hre.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +3 -5
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/test.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/test.js +4 -15
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/test.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts +11 -10
- 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 +80 -13
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts +5 -5
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js +25 -3
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.js +4 -5
- 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.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.js +13 -17
- 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 +8 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts +33 -0
- package/dist/src/internal/builtin-plugins/gas-analytics/types.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.js +12 -2
- package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts +9 -3
- 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 +65 -42
- 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.d.ts +11 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js +104 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-formatters.d.ts +6 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-formatters.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-formatters.js +152 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-formatters.js.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-output.d.ts +19 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-output.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-output.js +104 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/trace-output.js.map +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js +1 -1
- 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 +8 -8
- 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 +1 -0
- 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 +2 -2
- 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 +78 -8
- 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/local-accounts.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js +56 -33
- 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-array.d.ts +0 -3
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.js +9 -12
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/artifacts/build-info-watcher.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/node/artifacts/build-info-watcher.js +1 -1
- package/dist/src/internal/builtin-plugins/node/artifacts/build-info-watcher.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/node/helpers.js +6 -2
- package/dist/src/internal/builtin-plugins/node/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js +7 -2
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.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 +4 -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 +5 -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 +86 -47
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/cache.d.ts +1 -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 -3
- 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 +24 -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/compiler.d.ts +16 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js +1 -2
- 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.d.ts +10 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js +29 -6
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.d.ts +2 -2
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.d.ts +6 -0
- 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 +11 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/config.d.ts +4 -2
- package/dist/src/internal/builtin-plugins/solidity/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/config.js +249 -64
- package/dist/src/internal/builtin-plugins/solidity/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/exports.d.ts +3 -0
- package/dist/src/internal/builtin-plugins/solidity/exports.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/exports.js +3 -0
- package/dist/src/internal/builtin-plugins/solidity/exports.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/config.js +2 -1
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/solidity.d.ts +4 -0
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/solidity.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/solidity.js +7 -0
- package/dist/src/internal/builtin-plugins/solidity/hook-handlers/solidity.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/index.js +1 -0
- package/dist/src/internal/builtin-plugins/solidity/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.d.ts +18 -0
- package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js +33 -0
- package/dist/src/internal/builtin-plugins/solidity/solidity-hooks.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts +201 -28
- 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/edr-artifacts.d.ts +12 -6
- package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js +9 -7
- package/dist/src/internal/builtin-plugins/solidity-test/edr-artifacts.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/formatters.d.ts +1 -12
- package/dist/src/internal/builtin-plugins/solidity-test/formatters.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/formatters.js +0 -150
- package/dist/src/internal/builtin-plugins/solidity-test/formatters.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts +4 -3
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js +5 -9
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.js +0 -7
- package/dist/src/internal/builtin-plugins/solidity-test/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/constants.d.ts +7 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/constants.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/constants.js +20 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/constants.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/helpers.d.ts +24 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/helpers.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/helpers.js +68 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/helpers.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/index.d.ts +13 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/index.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/index.js +136 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/index.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/parsing.d.ts +19 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/parsing.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/parsing.js +133 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/parsing.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/types.d.ts +10 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/types.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/types.js +2 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/types.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/validation.d.ts +12 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/validation.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/validation.js +81 -0
- package/dist/src/internal/builtin-plugins/solidity-test/inline-config/validation.js.map +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.d.ts +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 +5 -2
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.d.ts +0 -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 +30 -20
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/test/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/test/index.js +0 -7
- package/dist/src/internal/builtin-plugins/test/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/test/task-action.d.ts +0 -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 +27 -13
- package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
- package/dist/src/internal/cli/help/get-help-string.d.ts.map +1 -1
- package/dist/src/internal/cli/help/get-help-string.js +1 -1
- package/dist/src/internal/cli/help/get-help-string.js.map +1 -1
- package/dist/src/internal/cli/init/init.d.ts.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/init/prompt.d.ts.map +1 -1
- package/dist/src/internal/cli/init/prompt.js +1 -7
- package/dist/src/internal/cli/init/prompt.js.map +1 -1
- package/dist/src/internal/core/hre.d.ts +2 -1
- package/dist/src/internal/core/hre.d.ts.map +1 -1
- package/dist/src/internal/core/hre.js +18 -0
- package/dist/src/internal/core/hre.js.map +1 -1
- package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.d.ts.map +1 -1
- package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.js +6 -1
- package/dist/src/internal/core/plugins/detect-plugin-npm-dependency-problems.js.map +1 -1
- package/dist/src/internal/core/user-interruptions.d.ts.map +1 -1
- package/dist/src/internal/core/user-interruptions.js +2 -5
- package/dist/src/internal/core/user-interruptions.js.map +1 -1
- package/dist/src/internal/utils/colorizer.d.ts +10 -0
- package/dist/src/internal/utils/colorizer.d.ts.map +1 -0
- package/dist/src/internal/utils/colorizer.js +2 -0
- package/dist/src/internal/utils/colorizer.js.map +1 -0
- package/dist/src/internal/utils/package.d.ts.map +1 -1
- package/dist/src/internal/utils/package.js +1 -1
- package/dist/src/internal/utils/package.js.map +1 -1
- package/dist/src/types/global-options.d.ts +1 -0
- package/dist/src/types/global-options.d.ts.map +1 -1
- package/dist/src/types/hooks.d.ts +32 -0
- package/dist/src/types/hooks.d.ts.map +1 -1
- package/dist/src/types/network.d.ts +1 -1
- package/dist/src/types/network.d.ts.map +1 -1
- package/dist/src/types/solidity/compilation-job.d.ts +5 -5
- package/dist/src/types/solidity/compilation-job.d.ts.map +1 -1
- package/dist/src/types/solidity/solidity-artifacts.d.ts +15 -0
- package/dist/src/types/solidity/solidity-artifacts.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/internal/builtin-global-options.ts +15 -1
- package/src/internal/builtin-plugins/coverage/helpers.ts +31 -0
- package/src/internal/builtin-plugins/coverage/hook-handlers/hre.ts +2 -10
- package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +3 -12
- package/src/internal/builtin-plugins/coverage/hook-handlers/test.ts +4 -25
- package/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts +118 -18
- package/src/internal/builtin-plugins/gas-analytics/helpers.ts +44 -3
- package/src/internal/builtin-plugins/gas-analytics/hook-handlers/hre.ts +6 -10
- package/src/internal/builtin-plugins/gas-analytics/hook-handlers/test.ts +18 -26
- package/src/internal/builtin-plugins/gas-analytics/index.ts +9 -1
- package/src/internal/builtin-plugins/gas-analytics/type-extensions.ts +1 -0
- package/src/internal/builtin-plugins/gas-analytics/types.ts +37 -0
- package/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.ts +25 -3
- package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +107 -56
- package/src/internal/builtin-plugins/network-manager/edr/genesis-state.ts +179 -0
- package/src/internal/builtin-plugins/network-manager/edr/utils/trace-formatters.ts +197 -0
- package/src/internal/builtin-plugins/network-manager/edr/utils/trace-output.ts +137 -0
- package/src/internal/builtin-plugins/network-manager/hook-handlers/hre.ts +1 -0
- package/src/internal/builtin-plugins/network-manager/hook-handlers/network.ts +8 -11
- package/src/internal/builtin-plugins/network-manager/http-provider.ts +1 -0
- package/src/internal/builtin-plugins/network-manager/network-manager.ts +112 -12
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +98 -34
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.ts +10 -30
- package/src/internal/builtin-plugins/node/artifacts/build-info-watcher.ts +1 -2
- package/src/internal/builtin-plugins/node/helpers.ts +9 -2
- package/src/internal/builtin-plugins/node/json-rpc/handler.ts +8 -2
- package/src/internal/builtin-plugins/solidity/build-system/artifacts.ts +7 -2
- package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +141 -65
- package/src/internal/builtin-plugins/solidity/build-system/cache.ts +1 -0
- package/src/internal/builtin-plugins/solidity/build-system/compilation-job.ts +34 -7
- package/src/internal/builtin-plugins/solidity/build-system/compiler/compiler.ts +1 -1
- package/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.ts +1 -7
- package/src/internal/builtin-plugins/solidity/build-system/compiler/index.ts +44 -9
- package/src/internal/builtin-plugins/solidity/build-system/solc-config-selection.ts +4 -2
- package/src/internal/builtin-plugins/solidity/build-system/solc-info.ts +15 -0
- package/src/internal/builtin-plugins/solidity/config.ts +337 -105
- package/src/internal/builtin-plugins/solidity/exports.ts +2 -0
- package/src/internal/builtin-plugins/solidity/hook-handlers/config.ts +3 -0
- package/src/internal/builtin-plugins/solidity/hook-handlers/solidity.ts +9 -0
- package/src/internal/builtin-plugins/solidity/index.ts +1 -0
- package/src/internal/builtin-plugins/solidity/solidity-hooks.ts +53 -0
- package/src/internal/builtin-plugins/solidity/type-extensions.ts +258 -31
- package/src/internal/builtin-plugins/solidity-test/edr-artifacts.ts +22 -10
- package/src/internal/builtin-plugins/solidity-test/formatters.ts +1 -213
- package/src/internal/builtin-plugins/solidity-test/helpers.ts +8 -8
- package/src/internal/builtin-plugins/solidity-test/index.ts +0 -7
- package/src/internal/builtin-plugins/solidity-test/inline-config/constants.ts +21 -0
- package/src/internal/builtin-plugins/solidity-test/inline-config/helpers.ts +99 -0
- package/src/internal/builtin-plugins/solidity-test/inline-config/index.ts +272 -0
- package/src/internal/builtin-plugins/solidity-test/inline-config/parsing.ts +186 -0
- package/src/internal/builtin-plugins/solidity-test/inline-config/types.ts +9 -0
- package/src/internal/builtin-plugins/solidity-test/inline-config/validation.ts +122 -0
- package/src/internal/builtin-plugins/solidity-test/reporter.ts +6 -6
- package/src/internal/builtin-plugins/solidity-test/task-action.ts +52 -38
- package/src/internal/builtin-plugins/test/index.ts +0 -7
- package/src/internal/builtin-plugins/test/task-action.ts +39 -24
- package/src/internal/cli/help/get-help-string.ts +2 -2
- package/src/internal/cli/init/init.ts +1 -1
- package/src/internal/cli/init/prompt.ts +1 -14
- package/src/internal/core/hre.ts +33 -0
- package/src/internal/core/plugins/detect-plugin-npm-dependency-problems.ts +8 -1
- package/src/internal/core/user-interruptions.ts +3 -5
- package/src/internal/utils/colorizer.ts +9 -0
- package/src/internal/utils/package.ts +1 -2
- package/src/types/global-options.ts +1 -0
- package/src/types/hooks.ts +37 -0
- package/src/types/network.ts +2 -2
- package/src/types/solidity/compilation-job.ts +5 -5
- package/src/types/solidity/solidity-artifacts.ts +16 -0
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +6 -6
- package/templates/hardhat-3/02-mocha-ethers/package.json +11 -11
- package/templates/hardhat-3/03-minimal/package.json +1 -1
|
@@ -5,6 +5,8 @@ import type {
|
|
|
5
5
|
} from "../../../../../../types/providers.js";
|
|
6
6
|
import type { RequestHandler } from "../../types.js";
|
|
7
7
|
import type { RpcTransactionRequest } from "@nomicfoundation/hardhat-zod-utils/rpc";
|
|
8
|
+
import type * as MicroEthSignerT from "micro-eth-signer";
|
|
9
|
+
import type * as MicroEthSignerTypedDataT from "micro-eth-signer/typed-data";
|
|
8
10
|
|
|
9
11
|
import {
|
|
10
12
|
assertHardhatInvariant,
|
|
@@ -27,27 +29,20 @@ import {
|
|
|
27
29
|
rpcTransactionRequest,
|
|
28
30
|
validateParams,
|
|
29
31
|
} from "@nomicfoundation/hardhat-zod-utils/rpc";
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
// micro-eth-signer is known to be slow to load, so we lazy load it
|
|
34
|
+
let microEthSigner: typeof MicroEthSignerT | undefined;
|
|
35
|
+
let microEthSignerTypedData: typeof MicroEthSignerTypedDataT | undefined;
|
|
33
36
|
|
|
34
37
|
import { getRequestParams } from "../../../json-rpc.js";
|
|
35
38
|
import { ChainId } from "../chain-id/chain-id.js";
|
|
36
39
|
|
|
37
|
-
/**
|
|
38
|
-
* This handler takes a long time to load. Currently, it is only used in the handlers array,
|
|
39
|
-
* where it is imported dynamically, and in the HDWalletHandler, which itself is only loaded
|
|
40
|
-
* dynamically.
|
|
41
|
-
* If we ever need to import this handler elsewhere, we should either import it dynamically
|
|
42
|
-
* or import some of the dependencies of this handler dynamically.
|
|
43
|
-
* It has been identified that micro-eth-signer is one of the most expensive dependencies here.
|
|
44
|
-
* See https://github.com/NomicFoundation/hardhat/pull/6481 for more details.
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
40
|
const EXTRA_ENTROPY = false;
|
|
48
41
|
export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
49
|
-
readonly #
|
|
50
|
-
|
|
42
|
+
readonly #localAccountsHexPrivateKeys: string[];
|
|
43
|
+
|
|
44
|
+
#addressToPrivateKey: Map<string, Uint8Array> | undefined;
|
|
45
|
+
#addresses: string[] | undefined;
|
|
51
46
|
|
|
52
47
|
constructor(
|
|
53
48
|
provider: EthereumProvider,
|
|
@@ -55,7 +50,29 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
55
50
|
) {
|
|
56
51
|
super(provider);
|
|
57
52
|
|
|
58
|
-
this.#
|
|
53
|
+
this.#localAccountsHexPrivateKeys = localAccountsHexPrivateKeys;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async #getAddressesAndPrivateKeysMap(): Promise<{
|
|
57
|
+
addresses: string[];
|
|
58
|
+
addressToPrivateKey: Map<string, Uint8Array>;
|
|
59
|
+
}> {
|
|
60
|
+
if (
|
|
61
|
+
this.#addresses === undefined ||
|
|
62
|
+
this.#addressToPrivateKey === undefined
|
|
63
|
+
) {
|
|
64
|
+
const { addresses, addressToPrivateKey } =
|
|
65
|
+
await this.#initializeAddressesFromPrivateKeys(
|
|
66
|
+
this.#localAccountsHexPrivateKeys,
|
|
67
|
+
);
|
|
68
|
+
this.#addresses = addresses;
|
|
69
|
+
this.#addressToPrivateKey = addressToPrivateKey;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return {
|
|
73
|
+
addresses: this.#addresses,
|
|
74
|
+
addressToPrivateKey: this.#addressToPrivateKey,
|
|
75
|
+
};
|
|
59
76
|
}
|
|
60
77
|
|
|
61
78
|
public async handle(
|
|
@@ -78,9 +95,8 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
78
95
|
jsonRpcRequest.method === "eth_accounts" ||
|
|
79
96
|
jsonRpcRequest.method === "eth_requestAccounts"
|
|
80
97
|
) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
]);
|
|
98
|
+
const { addresses } = await this.#getAddressesAndPrivateKeysMap();
|
|
99
|
+
return this.#createJsonRpcResponse(jsonRpcRequest.id, [...addresses]);
|
|
84
100
|
}
|
|
85
101
|
|
|
86
102
|
const params = getRequestParams(jsonRpcRequest);
|
|
@@ -96,10 +112,20 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
96
112
|
);
|
|
97
113
|
}
|
|
98
114
|
|
|
99
|
-
|
|
115
|
+
if (microEthSignerTypedData === undefined) {
|
|
116
|
+
microEthSignerTypedData = await import(
|
|
117
|
+
"micro-eth-signer/typed-data"
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const privateKey = await this.#getPrivateKeyForAddress(address);
|
|
100
122
|
return this.#createJsonRpcResponse(
|
|
101
123
|
jsonRpcRequest.id,
|
|
102
|
-
|
|
124
|
+
microEthSignerTypedData.personal.sign(
|
|
125
|
+
data,
|
|
126
|
+
privateKey,
|
|
127
|
+
EXTRA_ENTROPY,
|
|
128
|
+
),
|
|
103
129
|
);
|
|
104
130
|
}
|
|
105
131
|
}
|
|
@@ -116,10 +142,20 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
116
142
|
);
|
|
117
143
|
}
|
|
118
144
|
|
|
119
|
-
|
|
145
|
+
if (microEthSignerTypedData === undefined) {
|
|
146
|
+
microEthSignerTypedData = await import(
|
|
147
|
+
"micro-eth-signer/typed-data"
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const privateKey = await this.#getPrivateKeyForAddress(address);
|
|
120
152
|
return this.#createJsonRpcResponse(
|
|
121
153
|
jsonRpcRequest.id,
|
|
122
|
-
|
|
154
|
+
microEthSignerTypedData.personal.sign(
|
|
155
|
+
data,
|
|
156
|
+
privateKey,
|
|
157
|
+
EXTRA_ENTROPY,
|
|
158
|
+
),
|
|
123
159
|
);
|
|
124
160
|
}
|
|
125
161
|
}
|
|
@@ -146,11 +182,19 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
146
182
|
}
|
|
147
183
|
|
|
148
184
|
// if we don't manage the address, the method is forwarded
|
|
149
|
-
const privateKey = this.#getPrivateKeyForAddressOrNull(address);
|
|
185
|
+
const privateKey = await this.#getPrivateKeyForAddressOrNull(address);
|
|
150
186
|
if (privateKey !== null) {
|
|
187
|
+
if (microEthSignerTypedData === undefined) {
|
|
188
|
+
microEthSignerTypedData = await import("micro-eth-signer/typed-data");
|
|
189
|
+
}
|
|
190
|
+
|
|
151
191
|
return this.#createJsonRpcResponse(
|
|
152
192
|
jsonRpcRequest.id,
|
|
153
|
-
signTyped(
|
|
193
|
+
microEthSignerTypedData.signTyped(
|
|
194
|
+
typedMessage,
|
|
195
|
+
privateKey,
|
|
196
|
+
EXTRA_ENTROPY,
|
|
197
|
+
),
|
|
154
198
|
);
|
|
155
199
|
}
|
|
156
200
|
}
|
|
@@ -220,7 +264,7 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
220
264
|
txRequest.nonce = await this.#getNonce(txRequest.from);
|
|
221
265
|
}
|
|
222
266
|
|
|
223
|
-
const privateKey = this.#getPrivateKeyForAddress(txRequest.from);
|
|
267
|
+
const privateKey = await this.#getPrivateKeyForAddress(txRequest.from);
|
|
224
268
|
|
|
225
269
|
const chainId = await this.getChainId();
|
|
226
270
|
|
|
@@ -235,20 +279,32 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
235
279
|
}
|
|
236
280
|
}
|
|
237
281
|
|
|
238
|
-
#
|
|
282
|
+
async #initializeAddressesFromPrivateKeys(
|
|
283
|
+
localAccountsHexPrivateKeys: string[],
|
|
284
|
+
) {
|
|
285
|
+
if (microEthSigner === undefined) {
|
|
286
|
+
microEthSigner = await import("micro-eth-signer");
|
|
287
|
+
}
|
|
288
|
+
|
|
239
289
|
const privateKeys: Uint8Array[] = localAccountsHexPrivateKeys.map((h) =>
|
|
240
290
|
hexStringToBytes(h),
|
|
241
291
|
);
|
|
242
292
|
|
|
293
|
+
const addresses = [];
|
|
294
|
+
const addressToPrivateKey = new Map<string, Uint8Array>();
|
|
243
295
|
for (const pk of privateKeys) {
|
|
244
|
-
const address = addr.fromPrivateKey(pk).toLowerCase();
|
|
245
|
-
|
|
246
|
-
|
|
296
|
+
const address = microEthSigner.addr.fromPrivateKey(pk).toLowerCase();
|
|
297
|
+
addressToPrivateKey.set(address, pk);
|
|
298
|
+
addresses.push(address);
|
|
247
299
|
}
|
|
300
|
+
|
|
301
|
+
return { addresses, addressToPrivateKey };
|
|
248
302
|
}
|
|
249
303
|
|
|
250
|
-
#getPrivateKeyForAddress(address: Uint8Array): Uint8Array {
|
|
251
|
-
const
|
|
304
|
+
async #getPrivateKeyForAddress(address: Uint8Array): Promise<Uint8Array> {
|
|
305
|
+
const { addressToPrivateKey } = await this.#getAddressesAndPrivateKeysMap();
|
|
306
|
+
|
|
307
|
+
const pk = addressToPrivateKey.get(bytesToHexString(address));
|
|
252
308
|
|
|
253
309
|
if (pk === undefined) {
|
|
254
310
|
throw new HardhatError(
|
|
@@ -262,9 +318,11 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
262
318
|
return pk;
|
|
263
319
|
}
|
|
264
320
|
|
|
265
|
-
#getPrivateKeyForAddressOrNull(
|
|
321
|
+
async #getPrivateKeyForAddressOrNull(
|
|
322
|
+
address: Uint8Array,
|
|
323
|
+
): Promise<Uint8Array | null> {
|
|
266
324
|
try {
|
|
267
|
-
return this.#getPrivateKeyForAddress(address);
|
|
325
|
+
return await this.#getPrivateKeyForAddress(address);
|
|
268
326
|
} catch {
|
|
269
327
|
return null;
|
|
270
328
|
}
|
|
@@ -289,6 +347,12 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
289
347
|
chainId: number,
|
|
290
348
|
privateKey: Uint8Array,
|
|
291
349
|
): Promise<Uint8Array> {
|
|
350
|
+
if (microEthSigner === undefined) {
|
|
351
|
+
microEthSigner = await import("micro-eth-signer");
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
const { addr, Transaction } = microEthSigner;
|
|
355
|
+
|
|
292
356
|
const txData = {
|
|
293
357
|
...transactionRequest,
|
|
294
358
|
gasLimit: transactionRequest.gas,
|
|
@@ -8,13 +8,20 @@ import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
|
|
|
8
8
|
|
|
9
9
|
import { isHttpNetworkHdAccountsConfig } from "../type-validation.js";
|
|
10
10
|
|
|
11
|
+
import { AutomaticSenderHandler } from "./handlers/accounts/automatic-sender-handler.js";
|
|
12
|
+
import { FixedSenderHandler } from "./handlers/accounts/fixed-sender-handler.js";
|
|
13
|
+
import { HDWalletHandler } from "./handlers/accounts/hd-wallet-handler.js";
|
|
14
|
+
import { LocalAccountsHandler } from "./handlers/accounts/local-accounts.js";
|
|
15
|
+
import { ChainIdValidatorHandler } from "./handlers/chain-id/chain-id-handler.js";
|
|
16
|
+
import { AutomaticGasHandler } from "./handlers/gas/automatic-gas-handler.js";
|
|
17
|
+
import { AutomaticGasPriceHandler } from "./handlers/gas/automatic-gas-price-handler.js";
|
|
18
|
+
import { FixedGasHandler } from "./handlers/gas/fixed-gas-handler.js";
|
|
19
|
+
import { FixedGasPriceHandler } from "./handlers/gas/fixed-gas-price-handler.js";
|
|
20
|
+
|
|
11
21
|
/**
|
|
12
22
|
* This function returns an handlers array based on the values in the NetworkConnection and NetworkConfig.
|
|
13
23
|
* The order of the handlers, if all are present, is: chain handler, gas handlers (gasPrice first, then gas), sender handler and accounts handler.
|
|
14
24
|
* The order is important to get a correct result when the handlers are executed.
|
|
15
|
-
* The handlers are imported dynamically because some might take a long time to load.
|
|
16
|
-
* Out of the currently supported handlers, LocalAccountsHandler and, consequently, HDWalletHandler have been identified as the most expensive.
|
|
17
|
-
* See https://github.com/NomicFoundation/hardhat/pull/6481 for more details.
|
|
18
25
|
*/
|
|
19
26
|
export async function createHandlersArray<
|
|
20
27
|
ChainTypeT extends ChainType | string,
|
|
@@ -24,9 +31,6 @@ export async function createHandlersArray<
|
|
|
24
31
|
const networkConfig = networkConnection.networkConfig;
|
|
25
32
|
|
|
26
33
|
if (networkConfig.type === "http" && networkConfig.chainId !== undefined) {
|
|
27
|
-
const { ChainIdValidatorHandler } = await import(
|
|
28
|
-
"./handlers/chain-id/chain-id-handler.js"
|
|
29
|
-
);
|
|
30
34
|
requestHandlers.push(
|
|
31
35
|
new ChainIdValidatorHandler(
|
|
32
36
|
networkConnection.provider,
|
|
@@ -39,9 +43,6 @@ export async function createHandlersArray<
|
|
|
39
43
|
networkConfig.gasPrice === undefined ||
|
|
40
44
|
networkConfig.gasPrice === "auto"
|
|
41
45
|
) {
|
|
42
|
-
const { AutomaticGasPriceHandler } = await import(
|
|
43
|
-
"./handlers/gas/automatic-gas-price-handler.js"
|
|
44
|
-
);
|
|
45
46
|
// If you use a hook handler that signs locally, you are required to
|
|
46
47
|
// have all the transaction fields available, including the
|
|
47
48
|
// gasPrice / maxFeePerGas & maxPriorityFeePerGas.
|
|
@@ -56,18 +57,12 @@ export async function createHandlersArray<
|
|
|
56
57
|
new AutomaticGasPriceHandler(networkConnection.provider),
|
|
57
58
|
);
|
|
58
59
|
} else {
|
|
59
|
-
const { FixedGasPriceHandler } = await import(
|
|
60
|
-
"./handlers/gas/fixed-gas-price-handler.js"
|
|
61
|
-
);
|
|
62
60
|
requestHandlers.push(
|
|
63
61
|
new FixedGasPriceHandler(numberToHexString(networkConfig.gasPrice)),
|
|
64
62
|
);
|
|
65
63
|
}
|
|
66
64
|
|
|
67
65
|
if (networkConfig.gas === undefined || networkConfig.gas === "auto") {
|
|
68
|
-
const { AutomaticGasHandler } = await import(
|
|
69
|
-
"./handlers/gas/automatic-gas-handler.js"
|
|
70
|
-
);
|
|
71
66
|
requestHandlers.push(
|
|
72
67
|
new AutomaticGasHandler(
|
|
73
68
|
networkConnection.provider,
|
|
@@ -75,25 +70,16 @@ export async function createHandlersArray<
|
|
|
75
70
|
),
|
|
76
71
|
);
|
|
77
72
|
} else {
|
|
78
|
-
const { FixedGasHandler } = await import(
|
|
79
|
-
"./handlers/gas/fixed-gas-handler.js"
|
|
80
|
-
);
|
|
81
73
|
requestHandlers.push(
|
|
82
74
|
new FixedGasHandler(numberToHexString(networkConfig.gas)),
|
|
83
75
|
);
|
|
84
76
|
}
|
|
85
77
|
|
|
86
78
|
if (networkConfig.from === undefined) {
|
|
87
|
-
const { AutomaticSenderHandler } = await import(
|
|
88
|
-
"./handlers/accounts/automatic-sender-handler.js"
|
|
89
|
-
);
|
|
90
79
|
requestHandlers.push(
|
|
91
80
|
new AutomaticSenderHandler(networkConnection.provider),
|
|
92
81
|
);
|
|
93
82
|
} else {
|
|
94
|
-
const { FixedSenderHandler } = await import(
|
|
95
|
-
"./handlers/accounts/fixed-sender-handler.js"
|
|
96
|
-
);
|
|
97
83
|
requestHandlers.push(
|
|
98
84
|
new FixedSenderHandler(networkConnection.provider, networkConfig.from),
|
|
99
85
|
);
|
|
@@ -103,9 +89,6 @@ export async function createHandlersArray<
|
|
|
103
89
|
const accounts = networkConfig.accounts;
|
|
104
90
|
|
|
105
91
|
if (Array.isArray(accounts)) {
|
|
106
|
-
const { LocalAccountsHandler } = await import(
|
|
107
|
-
"./handlers/accounts/local-accounts.js"
|
|
108
|
-
);
|
|
109
92
|
const resolvedAccounts = await Promise.all(
|
|
110
93
|
accounts.map((acc) => acc.getHexString()),
|
|
111
94
|
);
|
|
@@ -114,9 +97,6 @@ export async function createHandlersArray<
|
|
|
114
97
|
new LocalAccountsHandler(networkConnection.provider, resolvedAccounts),
|
|
115
98
|
);
|
|
116
99
|
} else if (isHttpNetworkHdAccountsConfig(accounts)) {
|
|
117
|
-
const { HDWalletHandler } = await import(
|
|
118
|
-
"./handlers/accounts/hd-wallet-handler.js"
|
|
119
|
-
);
|
|
120
100
|
const hdWalletHandler = await HDWalletHandler.create(
|
|
121
101
|
networkConnection.provider,
|
|
122
102
|
await accounts.mnemonic.get(),
|
|
@@ -2,6 +2,7 @@ import type { FSWatcher } from "chokidar";
|
|
|
2
2
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
|
+
import { watch } from "chokidar";
|
|
5
6
|
import debug from "debug";
|
|
6
7
|
|
|
7
8
|
export type BuildInfoWatcher = FSWatcher;
|
|
@@ -59,8 +60,6 @@ export async function watchBuildInfo(
|
|
|
59
60
|
buildInfoDirPath: string,
|
|
60
61
|
handler: BuildInfoHandler,
|
|
61
62
|
): Promise<BuildInfoWatcher> {
|
|
62
|
-
const { watch } = await import("chokidar");
|
|
63
|
-
|
|
64
63
|
// NOTE: Deleting the build info directory while it is being watched will
|
|
65
64
|
// effectively cause the watcher to stop working.
|
|
66
65
|
// NOTE: We use chokidar's `awaitWriteFinish` option because we are certain
|
|
@@ -2,6 +2,7 @@ import type { BuildInfo } from "../../../types/artifacts.js";
|
|
|
2
2
|
import type { EdrNetworkAccountsConfig } from "../../../types/config.js";
|
|
3
3
|
import type { SolidityBuildInfoOutput } from "../../../types/solidity.js";
|
|
4
4
|
import type { EdrProvider } from "../network-manager/edr/edr-provider.js";
|
|
5
|
+
import type * as MicroEthSignerT from "micro-eth-signer";
|
|
5
6
|
|
|
6
7
|
import path from "node:path";
|
|
7
8
|
|
|
@@ -11,7 +12,9 @@ import {
|
|
|
11
12
|
} from "@nomicfoundation/hardhat-utils/fs";
|
|
12
13
|
import { hexStringToBytes } from "@nomicfoundation/hardhat-utils/hex";
|
|
13
14
|
import chalk from "chalk";
|
|
14
|
-
|
|
15
|
+
|
|
16
|
+
// micro-eth-signer is known to be slow to load, so we lazy load it
|
|
17
|
+
let microEthSigner: typeof MicroEthSignerT | undefined;
|
|
15
18
|
|
|
16
19
|
import { sendErrorTelemetry } from "../../cli/telemetry/sentry/reporter.js";
|
|
17
20
|
import { isDefaultEdrNetworkHDAccountsConfig } from "../network-manager/edr/edr-provider.js";
|
|
@@ -48,8 +51,12 @@ export async function formatEdrNetworkConfigAccounts(
|
|
|
48
51
|
maxPrefixLength = privateKeyPrefix.length;
|
|
49
52
|
}
|
|
50
53
|
|
|
54
|
+
if (microEthSigner === undefined) {
|
|
55
|
+
microEthSigner = await import("micro-eth-signer");
|
|
56
|
+
}
|
|
57
|
+
|
|
51
58
|
for (const [index, account] of accounts.entries()) {
|
|
52
|
-
const address = addr
|
|
59
|
+
const address = microEthSigner.addr
|
|
53
60
|
.fromPrivateKey(hexStringToBytes(await account.privateKey.getHexString()))
|
|
54
61
|
.toLowerCase();
|
|
55
62
|
const balance = (BigInt(account.balance) / 10n ** 18n).toString(10);
|
|
@@ -250,6 +250,12 @@ const _readWsRequest = (msg: string): JsonRpcRequest | JsonRpcRequest[] => {
|
|
|
250
250
|
};
|
|
251
251
|
|
|
252
252
|
const _handleError = (error: Error): JsonRpcResponse => {
|
|
253
|
+
// Extract revert data from the original error before potentially wrapping it.
|
|
254
|
+
// Non-ProviderError errors (e.g. SolidityError) carry .data and .transactionHash
|
|
255
|
+
// that would be lost when wrapped in InternalError below.
|
|
256
|
+
const txHash = extractTxHash(error);
|
|
257
|
+
const returnData = extractReturnData(error);
|
|
258
|
+
|
|
253
259
|
// In case of non-hardhat error, treat it as internal and associate the appropriate error code.
|
|
254
260
|
if (!ProviderError.isProviderError(error)) {
|
|
255
261
|
error = new InternalError(undefined, error);
|
|
@@ -266,8 +272,8 @@ const _handleError = (error: Error): JsonRpcResponse => {
|
|
|
266
272
|
message: error.message,
|
|
267
273
|
data: {
|
|
268
274
|
message: error.message,
|
|
269
|
-
txHash
|
|
270
|
-
data:
|
|
275
|
+
txHash,
|
|
276
|
+
data: returnData,
|
|
271
277
|
},
|
|
272
278
|
},
|
|
273
279
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Artifact
|
|
1
|
+
import type { Artifact } from "../../../../types/artifacts.js";
|
|
2
2
|
import type { CompilationJob } from "../../../../types/solidity/compilation-job.js";
|
|
3
3
|
import type {
|
|
4
4
|
CompilerOutput,
|
|
@@ -107,11 +107,16 @@ declare module "hardhat/types/artifacts" {
|
|
|
107
107
|
export async function getBuildInfo(
|
|
108
108
|
compilationJob: CompilationJob,
|
|
109
109
|
): Promise<SolidityBuildInfo> {
|
|
110
|
-
|
|
110
|
+
// Defaulting to "solc" is safe here: if it's already "solc" or undefined,
|
|
111
|
+
// this doesn't alter the build info id.
|
|
112
|
+
const compilerType = compilationJob.solcConfig.type ?? "solc";
|
|
113
|
+
|
|
114
|
+
const buildInfo: SolidityBuildInfo = {
|
|
111
115
|
_format: "hh3-sol-build-info-1",
|
|
112
116
|
id: await compilationJob.getBuildId(),
|
|
113
117
|
solcVersion: compilationJob.solcConfig.version,
|
|
114
118
|
solcLongVersion: compilationJob.solcLongVersion,
|
|
119
|
+
compilerType,
|
|
115
120
|
userSourceNameMap:
|
|
116
121
|
compilationJob.dependencyGraph.getRootsUserSourceNameMap(),
|
|
117
122
|
input: await compilationJob.getSolcInput(),
|