hardhat 3.2.0 → 3.4.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 +88 -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/artifacts/artifact-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.js +5 -13
- package/dist/src/internal/builtin-plugins/artifacts/artifact-manager.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/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/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/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/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 +2 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/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.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/hre.js +23 -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 +25 -17
- 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 +12 -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 +149 -26
- 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 +70 -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/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/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/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/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.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/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 +7 -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 +6 -2
- 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 +198 -76
- 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 +3 -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 +5 -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 +35 -7
- 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 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.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/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.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 +4 -2
- package/dist/src/internal/builtin-plugins/solidity/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/config.js +266 -84
- 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/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/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 +227 -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/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.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 -5
- 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 -12
- 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/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 +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 +122 -39
- 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/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 +4 -8
- 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/cli/main.d.ts.map +1 -1
- package/dist/src/internal/cli/main.js +8 -0
- package/dist/src/internal/cli/main.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/artifacts.d.ts +5 -4
- package/dist/src/types/artifacts.d.ts.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 +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 +11 -5
- package/dist/src/types/solidity/compilation-job.d.ts.map +1 -1
- package/dist/src/types/solidity/solidity-artifacts.d.ts +29 -0
- package/dist/src/types/solidity/solidity-artifacts.d.ts.map +1 -1
- package/package.json +10 -9
- package/src/internal/builtin-global-options.ts +15 -1
- package/src/internal/builtin-plugins/artifacts/artifact-manager.ts +9 -15
- package/src/internal/builtin-plugins/console/task-action.ts +2 -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/snapshot-cheatcodes.ts +1 -2
- package/src/internal/builtin-plugins/gas-analytics/types.ts +11 -2
- 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/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 +2 -1
- 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 +30 -0
- package/src/internal/builtin-plugins/network-manager/hook-handlers/network.ts +27 -24
- package/src/internal/builtin-plugins/network-manager/http-provider.ts +1 -0
- package/src/internal/builtin-plugins/network-manager/network-manager.ts +213 -37
- 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 +115 -34
- 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/handlers-array.ts +10 -30
- 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/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 +10 -2
- package/src/internal/builtin-plugins/node/task-action.ts +2 -2
- package/src/internal/builtin-plugins/run/task-action.ts +2 -1
- package/src/internal/builtin-plugins/solidity/build-system/artifacts.ts +10 -2
- package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +297 -99
- package/src/internal/builtin-plugins/solidity/build-system/cache.ts +3 -0
- package/src/internal/builtin-plugins/solidity/build-system/compilation-job.ts +49 -16
- 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 -2
- package/src/internal/builtin-plugins/solidity/build-system/dependency-graph.ts +9 -7
- 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 +1 -0
- package/src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts +2 -2
- package/src/internal/builtin-plugins/solidity/config.ts +359 -124
- package/src/internal/builtin-plugins/solidity/constants.ts +21 -0
- 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/tasks/build.ts +359 -74
- package/src/internal/builtin-plugins/solidity/type-extensions.ts +289 -32
- package/src/internal/builtin-plugins/solidity-test/config.ts +11 -2
- 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 -15
- 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/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 +192 -57
- package/src/internal/builtin-plugins/solidity-test/type-extensions.ts +1 -2
- package/src/internal/builtin-plugins/test/index.ts +0 -7
- package/src/internal/builtin-plugins/test/task-action.ts +4 -10
- 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/cli/main.ts +14 -0
- 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/artifacts.ts +5 -4
- package/src/types/global-options.ts +1 -0
- package/src/types/hooks.ts +37 -0
- package/src/types/network.ts +48 -0
- package/src/types/solidity/build-system.ts +66 -3
- package/src/types/solidity/compilation-job.ts +12 -5
- package/src/types/solidity/solidity-artifacts.ts +32 -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 -19
- 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 -46
- package/dist/src/internal/builtin-plugins/gas-analytics/helpers.js.map +0 -1
- package/src/internal/builtin-plugins/gas-analytics/helpers.ts +0 -86
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import type { SolidityBuildInfoOutput } from "../../../../types/solidity/solidity-artifacts.js";
|
|
2
|
+
import type {
|
|
3
|
+
BuildInfoAndOutput,
|
|
4
|
+
EdrArtifactWithMetadata,
|
|
5
|
+
} from "../edr-artifacts.js";
|
|
6
|
+
import type { RawInlineOverride } from "./types.js";
|
|
7
|
+
import type { ArtifactId, TestFunctionOverride } from "@nomicfoundation/edr";
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
HardhatError,
|
|
11
|
+
assertHardhatInvariant,
|
|
12
|
+
} from "@nomicfoundation/hardhat-errors";
|
|
13
|
+
import { bytesToUtf8String } from "@nomicfoundation/hardhat-utils/bytes";
|
|
14
|
+
|
|
15
|
+
import { getFullyQualifiedName } from "../../../../utils/contract-names.js";
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
buildInfoContainsInlineConfig,
|
|
19
|
+
resolveFunctionSelector,
|
|
20
|
+
buildConfigOverride,
|
|
21
|
+
getFunctionFqn,
|
|
22
|
+
} from "./helpers.js";
|
|
23
|
+
import { extractInlineConfigFromAst } from "./parsing.js";
|
|
24
|
+
import { validateInlineOverrides } from "./validation.js";
|
|
25
|
+
|
|
26
|
+
export type { RawInlineOverride } from "./types.js";
|
|
27
|
+
export {
|
|
28
|
+
buildInfoContainsInlineConfig,
|
|
29
|
+
resolveFunctionSelector,
|
|
30
|
+
buildConfigOverride,
|
|
31
|
+
getFunctionFqn,
|
|
32
|
+
} from "./helpers.js";
|
|
33
|
+
export {
|
|
34
|
+
extractInlineConfigFromAst,
|
|
35
|
+
extractDocText,
|
|
36
|
+
parseInlineConfigLine,
|
|
37
|
+
} from "./parsing.js";
|
|
38
|
+
export { validateInlineOverrides } from "./validation.js";
|
|
39
|
+
|
|
40
|
+
interface CollectedOverrides {
|
|
41
|
+
overrides: RawInlineOverride[];
|
|
42
|
+
artifactIdsByFqn: Map<string, ArtifactId>;
|
|
43
|
+
methodIdentifiersByContract: Map<string, Record<string, string>>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Extracts per-test inline configuration overrides from the NatSpec comments
|
|
48
|
+
* in the solc AST. It only extracts them from the build info where each
|
|
49
|
+
* test artifact's file was compiled as a root file.
|
|
50
|
+
*/
|
|
51
|
+
export function getTestFunctionOverrides(
|
|
52
|
+
testSuiteArtifacts: EdrArtifactWithMetadata[],
|
|
53
|
+
buildInfosAndOutputs: BuildInfoAndOutput[],
|
|
54
|
+
): TestFunctionOverride[] {
|
|
55
|
+
const allRawOverrides = collectRawOverrides(
|
|
56
|
+
testSuiteArtifacts,
|
|
57
|
+
buildInfosAndOutputs,
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
validateInlineOverrides(allRawOverrides.overrides);
|
|
61
|
+
|
|
62
|
+
return buildTestFunctionOverrides(allRawOverrides);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function collectRawOverrides(
|
|
66
|
+
testSuiteArtifacts: EdrArtifactWithMetadata[],
|
|
67
|
+
buildInfosAndOutputs: BuildInfoAndOutput[],
|
|
68
|
+
): CollectedOverrides {
|
|
69
|
+
const overrides: RawInlineOverride[] = [];
|
|
70
|
+
const methodIdentifiersByContract = new Map<string, Record<string, string>>();
|
|
71
|
+
|
|
72
|
+
// Note: We group the artifacts by their build info, so that we only process
|
|
73
|
+
// the relevant build infos, and only the root files of each of them.
|
|
74
|
+
//
|
|
75
|
+
// The last part is important, as a test file can be present in multiple build
|
|
76
|
+
// infos in the presence of partial recompilations
|
|
77
|
+
//
|
|
78
|
+
// At the same time, the same root file could have produced multiple test
|
|
79
|
+
// artifacts, so we need a two-level map to avoid processing the root files
|
|
80
|
+
// multiple times.
|
|
81
|
+
|
|
82
|
+
// Build lookup structures for fast access
|
|
83
|
+
const artifactsGroupedByBuildInfo = new Map<
|
|
84
|
+
/* buildInfoId */ string,
|
|
85
|
+
Map</* inputSourceName */ string, EdrArtifactWithMetadata[]>
|
|
86
|
+
>();
|
|
87
|
+
|
|
88
|
+
const artifactIdsByFqn = new Map<string, ArtifactId>();
|
|
89
|
+
const buildInfoAndOutputById: Map<string, BuildInfoAndOutput> = new Map(
|
|
90
|
+
buildInfosAndOutputs.map((bio) => [bio.buildInfoId, bio]),
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
for (const edrArtifactWithMetadata of testSuiteArtifacts) {
|
|
94
|
+
const fqn = getFullyQualifiedName(
|
|
95
|
+
edrArtifactWithMetadata.edrArtifact.id.source,
|
|
96
|
+
edrArtifactWithMetadata.edrArtifact.id.name,
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
const buildInfoId = edrArtifactWithMetadata.buildInfoId;
|
|
100
|
+
let artifactsBySource = artifactsGroupedByBuildInfo.get(buildInfoId);
|
|
101
|
+
|
|
102
|
+
if (artifactsBySource === undefined) {
|
|
103
|
+
artifactsBySource = new Map();
|
|
104
|
+
artifactsGroupedByBuildInfo.set(buildInfoId, artifactsBySource);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
let artifacts = artifactsBySource.get(
|
|
108
|
+
edrArtifactWithMetadata.edrArtifact.id.source,
|
|
109
|
+
);
|
|
110
|
+
if (artifacts === undefined) {
|
|
111
|
+
artifacts = [];
|
|
112
|
+
artifactsBySource.set(
|
|
113
|
+
edrArtifactWithMetadata.edrArtifact.id.source,
|
|
114
|
+
artifacts,
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
artifacts.push(edrArtifactWithMetadata);
|
|
119
|
+
artifactIdsByFqn.set(fqn, edrArtifactWithMetadata.edrArtifact.id);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
for (const [
|
|
123
|
+
buildInfoId,
|
|
124
|
+
artifactsBySource,
|
|
125
|
+
] of artifactsGroupedByBuildInfo.entries()) {
|
|
126
|
+
const buildInfoAndOutput = buildInfoAndOutputById.get(buildInfoId);
|
|
127
|
+
if (buildInfoAndOutput === undefined) {
|
|
128
|
+
// We can throw for this error for the first artifact with this build info
|
|
129
|
+
// as all of them have the same problem.
|
|
130
|
+
const artifacts = artifactsBySource.values().next().value;
|
|
131
|
+
|
|
132
|
+
assertHardhatInvariant(
|
|
133
|
+
artifacts !== undefined && artifacts.length > 0,
|
|
134
|
+
"An artifact must be present for the build info",
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
const anyArtifact = artifacts[0];
|
|
138
|
+
|
|
139
|
+
const fqn = getFullyQualifiedName(
|
|
140
|
+
anyArtifact.userSourceName,
|
|
141
|
+
anyArtifact.edrArtifact.id.name,
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
throw new HardhatError(
|
|
145
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.BUILD_INFO_NOT_FOUND_FOR_CONTRACT,
|
|
146
|
+
{
|
|
147
|
+
fqn,
|
|
148
|
+
},
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (!buildInfoContainsInlineConfig(buildInfoAndOutput.buildInfo)) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const buildInfoOutput: SolidityBuildInfoOutput = JSON.parse(
|
|
157
|
+
bytesToUtf8String(buildInfoAndOutput.output),
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
for (const [
|
|
161
|
+
inputSourceName,
|
|
162
|
+
sourceArtifacts,
|
|
163
|
+
] of artifactsBySource.entries()) {
|
|
164
|
+
const contractNames = new Set(
|
|
165
|
+
sourceArtifacts.map((a) => a.edrArtifact.id.name),
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
const source = buildInfoOutput.output.sources[inputSourceName];
|
|
169
|
+
const extracted = extractInlineConfigFromAst(
|
|
170
|
+
source.ast,
|
|
171
|
+
inputSourceName,
|
|
172
|
+
contractNames,
|
|
173
|
+
);
|
|
174
|
+
overrides.push(...extracted);
|
|
175
|
+
|
|
176
|
+
for (const artifact of sourceArtifacts) {
|
|
177
|
+
const contractName = artifact.edrArtifact.id.name;
|
|
178
|
+
const fqn = getFullyQualifiedName(inputSourceName, contractName);
|
|
179
|
+
|
|
180
|
+
const methodIdentifiers =
|
|
181
|
+
buildInfoOutput.output.contracts?.[inputSourceName][contractName]?.evm
|
|
182
|
+
?.methodIdentifiers;
|
|
183
|
+
|
|
184
|
+
methodIdentifiersByContract.set(fqn, methodIdentifiers ?? {});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return { overrides, artifactIdsByFqn, methodIdentifiersByContract };
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function buildTestFunctionOverrides(
|
|
193
|
+
collected: CollectedOverrides,
|
|
194
|
+
): TestFunctionOverride[] {
|
|
195
|
+
const { overrides, artifactIdsByFqn, methodIdentifiersByContract } =
|
|
196
|
+
collected;
|
|
197
|
+
|
|
198
|
+
// Group overrides by function. When the AST provides a functionSelector
|
|
199
|
+
// (public/external functions in solc >= 0.6.0), use it to distinguish
|
|
200
|
+
// overloaded functions. Otherwise fall back to function name only.
|
|
201
|
+
const overridesByFunction = new Map<string, RawInlineOverride[]>();
|
|
202
|
+
for (const override of overrides) {
|
|
203
|
+
const functionFqn = getFunctionFqn(
|
|
204
|
+
override.inputSourceName,
|
|
205
|
+
override.contractName,
|
|
206
|
+
override.functionName,
|
|
207
|
+
);
|
|
208
|
+
const groupKey =
|
|
209
|
+
override.functionSelector !== undefined
|
|
210
|
+
? `${functionFqn}#${override.functionSelector}`
|
|
211
|
+
: functionFqn;
|
|
212
|
+
const existing = overridesByFunction.get(groupKey);
|
|
213
|
+
if (existing === undefined) {
|
|
214
|
+
overridesByFunction.set(groupKey, [override]);
|
|
215
|
+
} else {
|
|
216
|
+
existing.push(override);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// Build TestFunctionOverride objects
|
|
221
|
+
const testFunctionOverrides: TestFunctionOverride[] = [];
|
|
222
|
+
for (const [_groupKey, groupOverrides] of overridesByFunction.entries()) {
|
|
223
|
+
const firstOverride = groupOverrides[0];
|
|
224
|
+
const functionFqn = getFunctionFqn(
|
|
225
|
+
firstOverride.inputSourceName,
|
|
226
|
+
firstOverride.contractName,
|
|
227
|
+
firstOverride.functionName,
|
|
228
|
+
);
|
|
229
|
+
const contractFqn = `${firstOverride.inputSourceName}:${firstOverride.contractName}`;
|
|
230
|
+
|
|
231
|
+
const artifactId = artifactIdsByFqn.get(contractFqn);
|
|
232
|
+
assertHardhatInvariant(
|
|
233
|
+
artifactId !== undefined,
|
|
234
|
+
`Missing artifact id for "${contractFqn}"`,
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
// Use the AST-provided selector when available, otherwise fall back to
|
|
238
|
+
// resolving via methodIdentifiers.
|
|
239
|
+
let selector: string | undefined;
|
|
240
|
+
if (firstOverride.functionSelector !== undefined) {
|
|
241
|
+
selector = `0x${firstOverride.functionSelector}`;
|
|
242
|
+
} else {
|
|
243
|
+
const methodIdentifiers = methodIdentifiersByContract.get(contractFqn);
|
|
244
|
+
assertHardhatInvariant(
|
|
245
|
+
methodIdentifiers !== undefined,
|
|
246
|
+
`Missing method identifiers for "${contractFqn}"`,
|
|
247
|
+
);
|
|
248
|
+
|
|
249
|
+
selector = resolveFunctionSelector(
|
|
250
|
+
methodIdentifiers,
|
|
251
|
+
firstOverride.functionName,
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
if (selector === undefined) {
|
|
256
|
+
throw new HardhatError(
|
|
257
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_UNRESOLVED_SELECTOR,
|
|
258
|
+
{ functionFqn },
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
testFunctionOverrides.push({
|
|
263
|
+
identifier: {
|
|
264
|
+
contractArtifact: artifactId,
|
|
265
|
+
functionSelector: selector,
|
|
266
|
+
},
|
|
267
|
+
config: buildConfigOverride(groupOverrides),
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return testFunctionOverrides;
|
|
272
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { RawInlineOverride } from "./types.js";
|
|
2
|
+
|
|
3
|
+
import { HardhatError } from "@nomicfoundation/hardhat-errors";
|
|
4
|
+
import { isObject } from "@nomicfoundation/hardhat-utils/lang";
|
|
5
|
+
import {
|
|
6
|
+
kebabToCamelCase,
|
|
7
|
+
snakeToCamelCase,
|
|
8
|
+
} from "@nomicfoundation/hardhat-utils/string";
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
HARDHAT_CONFIG_PREFIX,
|
|
12
|
+
FORGE_CONFIG_PREFIX,
|
|
13
|
+
TOP_LEVEL_KEYS,
|
|
14
|
+
} from "./constants.js";
|
|
15
|
+
import { getFunctionFqn } from "./helpers.js";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Extracts raw inline config overrides from a solc AST for a single source
|
|
19
|
+
* file.
|
|
20
|
+
*/
|
|
21
|
+
export function extractInlineConfigFromAst(
|
|
22
|
+
ast: unknown,
|
|
23
|
+
inputSourceName: string,
|
|
24
|
+
contractNames: Set<string>,
|
|
25
|
+
): RawInlineOverride[] {
|
|
26
|
+
if (!isObject(ast) || ast.nodeType !== "SourceUnit") {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const results: RawInlineOverride[] = [];
|
|
31
|
+
const nodes: unknown[] = Array.isArray(ast.nodes) ? ast.nodes : [];
|
|
32
|
+
for (const node of nodes) {
|
|
33
|
+
if (!isObject(node) || node.nodeType !== "ContractDefinition") {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const contractName = node.name;
|
|
38
|
+
if (typeof contractName !== "string") {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (!contractNames.has(contractName)) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const members: unknown[] = Array.isArray(node.nodes) ? node.nodes : [];
|
|
47
|
+
for (const member of members) {
|
|
48
|
+
if (!isObject(member) || member.nodeType !== "FunctionDefinition") {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const fnName = member.name;
|
|
53
|
+
if (
|
|
54
|
+
typeof fnName !== "string" ||
|
|
55
|
+
(!fnName.startsWith("test") && !fnName.startsWith("invariant"))
|
|
56
|
+
) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const fnSelector =
|
|
61
|
+
typeof member.functionSelector === "string"
|
|
62
|
+
? member.functionSelector
|
|
63
|
+
: undefined;
|
|
64
|
+
|
|
65
|
+
const docText = extractDocText(member.documentation);
|
|
66
|
+
if (docText === undefined) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
for (const line of docText.split("\n")) {
|
|
71
|
+
const parsed = parseInlineConfigLine(
|
|
72
|
+
line,
|
|
73
|
+
inputSourceName,
|
|
74
|
+
contractName,
|
|
75
|
+
fnName,
|
|
76
|
+
);
|
|
77
|
+
if (parsed !== undefined) {
|
|
78
|
+
parsed.functionSelector = fnSelector;
|
|
79
|
+
results.push(parsed);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return results;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Extracts the documentation text from a FunctionDefinition's documentation
|
|
90
|
+
* field, which can be a StructuredDocumentation node, a plain string, or null.
|
|
91
|
+
*/
|
|
92
|
+
export function extractDocText(doc: unknown): string | undefined {
|
|
93
|
+
if (
|
|
94
|
+
isObject(doc) &&
|
|
95
|
+
doc.nodeType === "StructuredDocumentation" &&
|
|
96
|
+
typeof doc.text === "string"
|
|
97
|
+
) {
|
|
98
|
+
return doc.text;
|
|
99
|
+
} else if (typeof doc === "string") {
|
|
100
|
+
return doc;
|
|
101
|
+
} else {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Parses a single line from a NatSpec comment and returns a RawInlineOverride
|
|
108
|
+
* if the line contains a valid inline config directive. The line must start
|
|
109
|
+
* with either "hardhat-config:" or "forge-config:", followed by a key=value pair.
|
|
110
|
+
* Returns undefined if the line does not contain an inline config directive.
|
|
111
|
+
*/
|
|
112
|
+
export function parseInlineConfigLine(
|
|
113
|
+
line: string,
|
|
114
|
+
inputSourceName: string,
|
|
115
|
+
contractName: string,
|
|
116
|
+
functionName: string,
|
|
117
|
+
): RawInlineOverride | undefined {
|
|
118
|
+
// Strip leading whitespace and optional leading '*' from NatSpec text.
|
|
119
|
+
// Solc's StructuredDocumentation.text has delimiters (///, /**, */) removed.
|
|
120
|
+
// For /// comments, text has leading whitespace; for /** */ blocks, interior
|
|
121
|
+
// lines may start with " * ". The regex handles both styles.
|
|
122
|
+
const trimmedLine = line.replace(/^\s*\*?\s*/, "");
|
|
123
|
+
const functionFqn = getFunctionFqn(
|
|
124
|
+
inputSourceName,
|
|
125
|
+
contractName,
|
|
126
|
+
functionName,
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
let keyValueSegment: string;
|
|
130
|
+
|
|
131
|
+
if (trimmedLine.startsWith(HARDHAT_CONFIG_PREFIX)) {
|
|
132
|
+
keyValueSegment = trimmedLine.slice(HARDHAT_CONFIG_PREFIX.length).trim();
|
|
133
|
+
} else if (trimmedLine.startsWith(FORGE_CONFIG_PREFIX)) {
|
|
134
|
+
keyValueSegment = trimmedLine.slice(FORGE_CONFIG_PREFIX.length).trim();
|
|
135
|
+
} else {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const eqIndex = keyValueSegment.indexOf("=");
|
|
140
|
+
if (eqIndex === -1) {
|
|
141
|
+
throw new HardhatError(
|
|
142
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_INVALID_SYNTAX,
|
|
143
|
+
{
|
|
144
|
+
line: trimmedLine,
|
|
145
|
+
functionFqn,
|
|
146
|
+
},
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const rawKey = keyValueSegment.slice(0, eqIndex).trim();
|
|
151
|
+
let parsedKey = rawKey;
|
|
152
|
+
const rawValue = keyValueSegment.slice(eqIndex + 1).trim();
|
|
153
|
+
|
|
154
|
+
// Detect profile prefix: if the first dot-segment is NOT a known top-level
|
|
155
|
+
// category, treat it as a profile name.
|
|
156
|
+
const firstDot = rawKey.indexOf(".");
|
|
157
|
+
if (firstDot !== -1) {
|
|
158
|
+
const firstSegment = rawKey.slice(0, firstDot);
|
|
159
|
+
if (!TOP_LEVEL_KEYS.includes(firstSegment)) {
|
|
160
|
+
// It's a profile. Validate it.
|
|
161
|
+
const profile = firstSegment;
|
|
162
|
+
if (profile !== "default") {
|
|
163
|
+
throw new HardhatError(
|
|
164
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_UNSUPPORTED_PROFILE,
|
|
165
|
+
{
|
|
166
|
+
profile,
|
|
167
|
+
functionFqn,
|
|
168
|
+
},
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
// Strip the "default." prefix
|
|
172
|
+
parsedKey = rawKey.slice(firstDot + 1);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
parsedKey = snakeToCamelCase(kebabToCamelCase(parsedKey));
|
|
177
|
+
|
|
178
|
+
return {
|
|
179
|
+
inputSourceName,
|
|
180
|
+
contractName,
|
|
181
|
+
functionName,
|
|
182
|
+
key: parsedKey,
|
|
183
|
+
rawKey,
|
|
184
|
+
rawValue,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface RawInlineOverride {
|
|
2
|
+
inputSourceName: string;
|
|
3
|
+
contractName: string;
|
|
4
|
+
functionName: string;
|
|
5
|
+
functionSelector?: string; // from AST, hex without 0x prefix
|
|
6
|
+
key: string; // parsed camelCase key, without profile prefix
|
|
7
|
+
rawKey: string; // original key as written by the user, for error messages
|
|
8
|
+
rawValue: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { RawInlineOverride } from "./types.js";
|
|
2
|
+
|
|
3
|
+
import { HardhatError } from "@nomicfoundation/hardhat-errors";
|
|
4
|
+
|
|
5
|
+
import { KEY_TYPES } from "./constants.js";
|
|
6
|
+
import { getFunctionFqn } from "./helpers.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Validates a list of raw inline overrides, checking for:
|
|
10
|
+
* - Valid keys
|
|
11
|
+
* - No duplicate keys for the same function
|
|
12
|
+
* - Values of the expected type (numbers must be non-negative integers, booleans
|
|
13
|
+
* must be "true" or "false")
|
|
14
|
+
*
|
|
15
|
+
* Throws a HardhatError if any validation fails.
|
|
16
|
+
*/
|
|
17
|
+
export function validateInlineOverrides(overrides: RawInlineOverride[]): void {
|
|
18
|
+
const seen = new Set<string>();
|
|
19
|
+
|
|
20
|
+
for (const {
|
|
21
|
+
inputSourceName,
|
|
22
|
+
contractName,
|
|
23
|
+
functionName,
|
|
24
|
+
functionSelector,
|
|
25
|
+
rawKey,
|
|
26
|
+
rawValue,
|
|
27
|
+
key,
|
|
28
|
+
} of overrides) {
|
|
29
|
+
const functionFqn = getFunctionFqn(
|
|
30
|
+
inputSourceName,
|
|
31
|
+
contractName,
|
|
32
|
+
functionName,
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// Validate key
|
|
36
|
+
if (!Object.hasOwn(KEY_TYPES, key)) {
|
|
37
|
+
throw new HardhatError(
|
|
38
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_INVALID_KEY,
|
|
39
|
+
{
|
|
40
|
+
key: rawKey,
|
|
41
|
+
validKeys: Object.keys(KEY_TYPES).join(", "),
|
|
42
|
+
functionFqn,
|
|
43
|
+
},
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Validate key matches test type
|
|
48
|
+
const dotIndex = key.indexOf(".");
|
|
49
|
+
if (dotIndex !== -1) {
|
|
50
|
+
const keyCategory = key.slice(0, dotIndex);
|
|
51
|
+
const isFuzzTest = functionName.startsWith("test");
|
|
52
|
+
const isInvariantTest = functionName.startsWith("invariant");
|
|
53
|
+
|
|
54
|
+
if (
|
|
55
|
+
(isFuzzTest && keyCategory === "invariant") ||
|
|
56
|
+
(isInvariantTest && keyCategory === "fuzz")
|
|
57
|
+
) {
|
|
58
|
+
const testType = isFuzzTest ? "fuzz" : "invariant";
|
|
59
|
+
const validPrefix = isFuzzTest ? "fuzz." : "invariant.";
|
|
60
|
+
const validKeys = Object.keys(KEY_TYPES)
|
|
61
|
+
.filter((k) => k.startsWith(validPrefix) || !k.includes("."))
|
|
62
|
+
.join(", ");
|
|
63
|
+
|
|
64
|
+
throw new HardhatError(
|
|
65
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_INVALID_KEY_FOR_TEST_TYPE,
|
|
66
|
+
{
|
|
67
|
+
key: rawKey,
|
|
68
|
+
functionFqn,
|
|
69
|
+
testType,
|
|
70
|
+
validKeys,
|
|
71
|
+
},
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Check for duplicates (include selector to allow same key on overloaded functions)
|
|
77
|
+
const functionId =
|
|
78
|
+
functionSelector !== undefined
|
|
79
|
+
? `${functionFqn}#${functionSelector}`
|
|
80
|
+
: functionFqn;
|
|
81
|
+
const dedupeKey = `${functionId}-${key}`;
|
|
82
|
+
if (seen.has(dedupeKey)) {
|
|
83
|
+
throw new HardhatError(
|
|
84
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_DUPLICATE_KEY,
|
|
85
|
+
{ key: rawKey, functionFqn },
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
seen.add(dedupeKey);
|
|
89
|
+
|
|
90
|
+
// Validate value type
|
|
91
|
+
const expectedType = KEY_TYPES[key];
|
|
92
|
+
if (expectedType === "number") {
|
|
93
|
+
if (
|
|
94
|
+
!/^(0|[1-9]\d*)$/.test(rawValue) ||
|
|
95
|
+
!Number.isSafeInteger(Number(rawValue))
|
|
96
|
+
) {
|
|
97
|
+
throw new HardhatError(
|
|
98
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_INVALID_VALUE,
|
|
99
|
+
{
|
|
100
|
+
value: rawValue,
|
|
101
|
+
key: rawKey,
|
|
102
|
+
expectedType: "non-negative integer",
|
|
103
|
+
functionFqn,
|
|
104
|
+
},
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
} else {
|
|
108
|
+
const lowerValue = rawValue.toLowerCase();
|
|
109
|
+
if (lowerValue !== "true" && lowerValue !== "false") {
|
|
110
|
+
throw new HardhatError(
|
|
111
|
+
HardhatError.ERRORS.CORE.SOLIDITY_TESTS.INLINE_CONFIG_INVALID_VALUE,
|
|
112
|
+
{
|
|
113
|
+
value: rawValue,
|
|
114
|
+
key: rawKey,
|
|
115
|
+
expectedType: "boolean",
|
|
116
|
+
functionFqn,
|
|
117
|
+
},
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
TestReporterResult,
|
|
4
4
|
TestStatus,
|
|
5
5
|
} from "./types.js";
|
|
6
|
+
import type { Colorizer } from "../../utils/colorizer.js";
|
|
6
7
|
import type { TestResult } from "@nomicfoundation/edr";
|
|
7
8
|
|
|
8
9
|
import { bytesToHexString } from "@nomicfoundation/hardhat-utils/hex";
|
|
@@ -11,12 +12,9 @@ import chalk from "chalk";
|
|
|
11
12
|
import { sendErrorTelemetry } from "../../cli/telemetry/sentry/reporter.js";
|
|
12
13
|
import { SolidityTestStackTraceGenerationError } from "../network-manager/edr/stack-traces/stack-trace-generation-errors.js";
|
|
13
14
|
import { encodeStackTraceEntry } from "../network-manager/edr/stack-traces/stack-trace-solidity-errors.js";
|
|
15
|
+
import { formatTraces } from "../network-manager/edr/utils/trace-formatters.js";
|
|
14
16
|
|
|
15
|
-
import {
|
|
16
|
-
type Colorizer,
|
|
17
|
-
formatArtifactId,
|
|
18
|
-
formatTraces,
|
|
19
|
-
} from "./formatters.js";
|
|
17
|
+
import { formatArtifactId } from "./formatters.js";
|
|
20
18
|
import { getMessageFromLastStackTraceEntry } from "./stack-trace-solidity-errors.js";
|
|
21
19
|
|
|
22
20
|
class Indenter {
|
|
@@ -147,6 +145,8 @@ export async function* testReporter(
|
|
|
147
145
|
suiteSuccessCount++;
|
|
148
146
|
if (verbosity >= 5) {
|
|
149
147
|
printSetUpTraces = true;
|
|
148
|
+
}
|
|
149
|
+
if (verbosity >= 4) {
|
|
150
150
|
printExecutionTraces = true;
|
|
151
151
|
}
|
|
152
152
|
break;
|
|
@@ -184,7 +184,7 @@ export async function* testReporter(
|
|
|
184
184
|
if (printSetUpTraces && functionName === "setUp") {
|
|
185
185
|
return true;
|
|
186
186
|
}
|
|
187
|
-
if (printExecutionTraces && functionName !== "setUp
|
|
187
|
+
if (printExecutionTraces && functionName !== "setUp") {
|
|
188
188
|
return true;
|
|
189
189
|
}
|
|
190
190
|
return false;
|