hardhat 2.23.0-dev.2 → 2.23.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/README.md +3 -1
- package/builtin-tasks/compile.js +8 -8
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/flatten.js +13 -6
- package/builtin-tasks/flatten.js.map +1 -1
- package/builtin-tasks/node.js +7 -7
- package/builtin-tasks/node.js.map +1 -1
- package/builtin-tasks/test.js +2 -2
- package/builtin-tasks/test.js.map +1 -1
- package/builtin-tasks/utils/watch.js +2 -2
- package/builtin-tasks/utils/watch.js.map +1 -1
- package/common/bigInt.d.ts +1 -1
- package/common/bigInt.d.ts.map +1 -1
- package/console.sol +1 -1
- package/internal/cli/autocomplete.js +1 -1
- package/internal/cli/autocomplete.js.map +1 -1
- package/internal/cli/banner-manager.d.ts +12 -0
- package/internal/cli/banner-manager.d.ts.map +1 -0
- package/internal/cli/banner-manager.js +126 -0
- package/internal/cli/banner-manager.js.map +1 -0
- package/internal/cli/bootstrap.js +4 -5
- package/internal/cli/bootstrap.js.map +1 -1
- package/internal/cli/cli.js +14 -9
- package/internal/cli/cli.js.map +1 -1
- package/internal/cli/constants.d.ts.map +1 -1
- package/internal/cli/constants.js +1 -1
- package/internal/cli/constants.js.map +1 -1
- package/internal/cli/is-node-version-to-warn-on.d.ts +13 -0
- package/internal/cli/is-node-version-to-warn-on.d.ts.map +1 -0
- package/internal/cli/is-node-version-to-warn-on.js +46 -0
- package/internal/cli/is-node-version-to-warn-on.js.map +1 -0
- package/internal/cli/project-creation.d.ts +1 -1
- package/internal/cli/project-creation.d.ts.map +1 -1
- package/internal/cli/project-creation.js +31 -21
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/cli/vars.js +10 -10
- package/internal/cli/vars.js.map +1 -1
- package/internal/cli/version-notifier.js +2 -2
- package/internal/cli/version-notifier.js.map +1 -1
- package/internal/constants.d.ts.map +1 -1
- package/internal/constants.js +1 -0
- package/internal/constants.js.map +1 -1
- package/internal/context.d.ts +1 -2
- package/internal/context.d.ts.map +1 -1
- package/internal/context.js +0 -3
- package/internal/context.js.map +1 -1
- package/internal/core/config/config-env.d.ts +1 -2
- package/internal/core/config/config-env.d.ts.map +1 -1
- package/internal/core/config/config-env.js +1 -8
- package/internal/core/config/config-env.js.map +1 -1
- package/internal/core/config/config-loading.d.ts +1 -1
- package/internal/core/config/config-loading.d.ts.map +1 -1
- package/internal/core/config/config-loading.js +14 -8
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/core/config/config-validation.js +1 -1
- package/internal/core/config/config-validation.js.map +1 -1
- package/internal/core/config/default-config.d.ts.map +1 -1
- package/internal/core/config/default-config.js +57 -32
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/errors-list.d.ts +21 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +27 -1
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/authorization-list.d.ts +21 -0
- package/internal/core/jsonrpc/types/authorization-list.d.ts.map +1 -0
- package/internal/{hardhat-network/provider/PoolState.js → core/jsonrpc/types/authorization-list.js} +12 -15
- package/internal/core/jsonrpc/types/authorization-list.js.map +1 -0
- package/internal/core/jsonrpc/types/base-types.d.ts +2 -0
- package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/base-types.js +12 -8
- package/internal/core/jsonrpc/types/base-types.js.map +1 -1
- package/internal/core/jsonrpc/types/input/logAddress.d.ts +1 -0
- package/internal/core/jsonrpc/types/input/logAddress.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/logTopics.d.ts +1 -0
- package/internal/core/jsonrpc/types/input/logTopics.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +23 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.js +2 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/output/block.d.ts +2 -2
- package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/block.js +2 -1
- package/internal/core/jsonrpc/types/output/block.js.map +1 -1
- package/internal/core/project-structure.js +8 -8
- package/internal/core/project-structure.js.map +1 -1
- package/internal/core/providers/accounts.d.ts.map +1 -1
- package/internal/core/providers/accounts.js +76 -34
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/construction.d.ts +2 -2
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +2 -2
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/http.d.ts.map +1 -1
- package/internal/core/providers/http.js +12 -0
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/providers/lazy-initialization.d.ts.map +1 -1
- package/internal/core/providers/lazy-initialization.js +10 -10
- package/internal/core/providers/lazy-initialization.js.map +1 -1
- package/internal/core/providers/util.d.ts +1 -0
- package/internal/core/providers/util.d.ts.map +1 -1
- package/internal/core/providers/util.js +1 -1
- package/internal/core/providers/util.js.map +1 -1
- package/internal/core/runtime-environment.d.ts +2 -2
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +2 -2
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/core/typescript-support.d.ts +1 -1
- package/internal/core/typescript-support.js +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts +2 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.js +10 -10
- package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.js +2 -1
- package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +0 -52
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +12 -1
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +5 -20
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +47 -171
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.d.ts +2 -15
- package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +2 -50
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.js +10 -7
- package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -1
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +2 -2
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.js +4 -4
- package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +2 -2
- package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
- package/internal/hardhat-network/provider/utils/random.d.ts +4 -3
- package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/random.js +3 -3
- package/internal/hardhat-network/provider/utils/random.js.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts +2 -21
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.js +3 -93
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +3 -2
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/minimal-vm.js +10 -4
- package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -1
- package/internal/hardhat-network/provider/vm/types.d.ts +2 -1
- package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +17 -16
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.js +68 -102
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.d.ts +1 -2
- package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.js +2 -3
- package/internal/hardhat-network/stack-traces/constants.js.map +1 -1
- package/internal/hardhat-network/stack-traces/library-utils.d.ts +2 -11
- package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/library-utils.js +3 -61
- package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
- package/internal/hardhat-network/stack-traces/logger.d.ts +2 -598
- package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/logger.js +379 -601
- package/internal/hardhat-network/stack-traces/logger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +61 -56
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +4 -155
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +12 -37
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
- package/internal/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +1 -1
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/internal/sentry/anonymizer.d.ts +1 -1
- package/internal/sentry/anonymizer.d.ts.map +1 -1
- package/internal/sentry/anonymizer.js +1 -1
- package/internal/sentry/anonymizer.js.map +1 -1
- package/internal/solidity/compiler/downloader.js +1 -1
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/solidity/compiler/solc-info.d.ts.map +1 -1
- package/internal/solidity/compiler/solc-info.js +4 -0
- package/internal/solidity/compiler/solc-info.js.map +1 -1
- package/internal/util/caller-package.js +1 -1
- package/internal/util/caller-package.js.map +1 -1
- package/internal/util/glob.d.ts +1 -1
- package/internal/util/glob.d.ts.map +1 -1
- package/internal/util/glob.js +2 -7
- package/internal/util/glob.js.map +1 -1
- package/internal/util/hardforks.d.ts +2 -1
- package/internal/util/hardforks.d.ts.map +1 -1
- package/internal/util/hardforks.js +2 -0
- package/internal/util/hardforks.js.map +1 -1
- package/internal/util/hash.d.ts +1 -0
- package/internal/util/hash.d.ts.map +1 -1
- package/internal/util/keys-derivation.d.ts +1 -0
- package/internal/util/keys-derivation.d.ts.map +1 -1
- package/internal/util/packageInfo.d.ts +1 -1
- package/internal/util/packageInfo.d.ts.map +1 -1
- package/internal/util/packageInfo.js +3 -3
- package/internal/util/packageInfo.js.map +1 -1
- package/internal/util/request.d.ts +2 -0
- package/internal/util/request.d.ts.map +1 -0
- package/internal/util/request.js +70 -0
- package/internal/util/request.js.map +1 -0
- package/package.json +10 -20
- package/register.js +1 -1
- package/register.js.map +1 -1
- package/sample-projects/javascript/contracts/Lock.sol +1 -1
- package/sample-projects/javascript/hardhat.config.js +1 -1
- package/sample-projects/javascript/ignition/modules/Lock.js +3 -0
- package/sample-projects/javascript-esm/contracts/Lock.sol +1 -1
- package/sample-projects/javascript-esm/hardhat.config.cjs +1 -1
- package/sample-projects/javascript-esm/ignition/modules/Lock.js +3 -0
- package/sample-projects/typescript/contracts/Lock.sol +1 -1
- package/sample-projects/typescript/hardhat.config.ts +1 -1
- package/sample-projects/typescript/ignition/modules/Lock.ts +3 -0
- package/sample-projects/typescript-viem/contracts/Lock.sol +1 -1
- package/sample-projects/typescript-viem/hardhat.config.ts +1 -1
- package/sample-projects/typescript-viem/ignition/modules/Lock.ts +3 -0
- package/src/builtin-tasks/compile.ts +12 -8
- package/src/builtin-tasks/flatten.ts +59 -41
- package/src/builtin-tasks/node.ts +8 -8
- package/src/builtin-tasks/test.ts +2 -2
- package/src/builtin-tasks/utils/watch.ts +2 -2
- package/src/common/bigInt.ts +1 -1
- package/src/internal/cli/autocomplete.ts +1 -1
- package/src/internal/cli/banner-manager.ts +182 -0
- package/src/internal/cli/bootstrap.ts +5 -5
- package/src/internal/cli/cli.ts +24 -15
- package/src/internal/cli/constants.ts +1 -1
- package/src/internal/cli/is-node-version-to-warn-on.ts +54 -0
- package/src/internal/cli/project-creation.ts +48 -22
- package/src/internal/cli/vars.ts +10 -10
- package/src/internal/cli/version-notifier.ts +3 -3
- package/src/internal/constants.ts +1 -0
- package/src/internal/context.ts +0 -5
- package/src/internal/core/config/config-env.ts +0 -10
- package/src/internal/core/config/config-loading.ts +15 -8
- package/src/internal/core/config/config-validation.ts +1 -1
- package/src/internal/core/config/default-config.ts +57 -32
- package/src/internal/core/errors-list.ts +30 -1
- package/src/internal/core/jsonrpc/types/authorization-list.ts +20 -0
- package/src/internal/core/jsonrpc/types/base-types.ts +13 -1
- package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +10 -0
- package/src/internal/core/jsonrpc/types/output/block.ts +2 -1
- package/src/internal/core/project-structure.ts +8 -8
- package/src/internal/core/providers/accounts.ts +95 -50
- package/src/internal/core/providers/construction.ts +1 -3
- package/src/internal/core/providers/http.ts +17 -0
- package/src/internal/core/providers/lazy-initialization.ts +13 -13
- package/src/internal/core/providers/util.ts +1 -1
- package/src/internal/core/runtime-environment.ts +0 -8
- package/src/internal/core/typescript-support.ts +1 -1
- package/src/internal/hardhat-network/jsonrpc/client.ts +1 -4
- package/src/internal/hardhat-network/jsonrpc/handler.ts +2 -1
- package/src/internal/hardhat-network/provider/node-types.ts +0 -70
- package/src/internal/hardhat-network/provider/output.ts +16 -1
- package/src/internal/hardhat-network/provider/provider.ts +57 -236
- package/src/internal/hardhat-network/provider/return-data.ts +5 -73
- package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +6 -3
- package/src/internal/hardhat-network/provider/utils/fork-recomendations-banner.ts +2 -2
- package/src/internal/hardhat-network/provider/utils/makeAccount.ts +1 -6
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +2 -2
- package/src/internal/hardhat-network/provider/utils/random.ts +4 -5
- package/src/internal/hardhat-network/provider/vm/exit.ts +4 -112
- package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +8 -3
- package/src/internal/hardhat-network/provider/vm/types.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +34 -95
- package/src/internal/hardhat-network/stack-traces/constants.ts +1 -2
- package/src/internal/hardhat-network/stack-traces/library-utils.ts +5 -90
- package/src/internal/hardhat-network/stack-traces/logger.ts +378 -600
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +17 -16
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +83 -186
- package/src/internal/lib/hardhat-lib.ts +0 -1
- package/src/internal/sentry/anonymizer.ts +2 -2
- package/src/internal/solidity/compiler/downloader.ts +1 -1
- package/src/internal/solidity/compiler/solc-info.ts +4 -0
- package/src/internal/util/caller-package.ts +2 -2
- package/src/internal/util/glob.ts +6 -6
- package/src/internal/util/hardforks.ts +2 -0
- package/src/internal/util/packageInfo.ts +4 -4
- package/src/internal/util/request.ts +51 -0
- package/src/register.ts +0 -1
- package/src/types/config.ts +2 -0
- package/src/types/index.ts +0 -1
- package/types/config.d.ts +2 -0
- package/types/config.d.ts.map +1 -1
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +1 -1
- package/types/index.js +0 -1
- package/types/index.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.d.ts +0 -29
- package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +0 -1
- package/internal/hardhat-network/provider/BlockchainBase.js +0 -144
- package/internal/hardhat-network/provider/BlockchainBase.js.map +0 -1
- package/internal/hardhat-network/provider/BlockchainData.d.ts +0 -58
- package/internal/hardhat-network/provider/BlockchainData.d.ts.map +0 -1
- package/internal/hardhat-network/provider/BlockchainData.js +0 -178
- package/internal/hardhat-network/provider/BlockchainData.js.map +0 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +0 -24
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +0 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.js +0 -73
- package/internal/hardhat-network/provider/HardhatBlockchain.js.map +0 -1
- package/internal/hardhat-network/provider/MiningTimer.d.ts +0 -28
- package/internal/hardhat-network/provider/MiningTimer.d.ts.map +0 -1
- package/internal/hardhat-network/provider/MiningTimer.js +0 -96
- package/internal/hardhat-network/provider/MiningTimer.js.map +0 -1
- package/internal/hardhat-network/provider/PoolState.d.ts +0 -26
- package/internal/hardhat-network/provider/PoolState.d.ts.map +0 -1
- package/internal/hardhat-network/provider/PoolState.js.map +0 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts +0 -32
- package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +0 -1
- package/internal/hardhat-network/provider/TransactionQueue.js +0 -130
- package/internal/hardhat-network/provider/TransactionQueue.js.map +0 -1
- package/internal/hardhat-network/provider/TxPool.d.ts +0 -83
- package/internal/hardhat-network/provider/TxPool.d.ts.map +0 -1
- package/internal/hardhat-network/provider/TxPool.js +0 -470
- package/internal/hardhat-network/provider/TxPool.js.map +0 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts +0 -2
- package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts.map +0 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js +0 -15
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +0 -1
- package/internal/hardhat-network/provider/filter.d.ts +0 -29
- package/internal/hardhat-network/provider/filter.d.ts.map +0 -1
- package/internal/hardhat-network/provider/filter.js +0 -97
- package/internal/hardhat-network/provider/filter.js.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +0 -33
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +0 -272
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +0 -51
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.js +0 -300
- package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts +0 -4
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js +0 -32
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +0 -10
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.js +0 -29
- package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +0 -1
- package/internal/hardhat-network/provider/modules/base.d.ts +0 -17
- package/internal/hardhat-network/provider/modules/base.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/base.js +0 -127
- package/internal/hardhat-network/provider/modules/base.js.map +0 -1
- package/internal/hardhat-network/provider/modules/debug.d.ts +0 -12
- package/internal/hardhat-network/provider/modules/debug.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/debug.js +0 -52
- package/internal/hardhat-network/provider/modules/debug.js.map +0 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts +0 -107
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/eth.js +0 -1034
- package/internal/hardhat-network/provider/modules/eth.js.map +0 -1
- package/internal/hardhat-network/provider/modules/evm.d.ts +0 -32
- package/internal/hardhat-network/provider/modules/evm.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/evm.js +0 -180
- package/internal/hardhat-network/provider/modules/evm.js.map +0 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +0 -54
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +0 -309
- package/internal/hardhat-network/provider/modules/hardhat.js.map +0 -1
- package/internal/hardhat-network/provider/modules/net.d.ts +0 -13
- package/internal/hardhat-network/provider/modules/net.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/net.js +0 -47
- package/internal/hardhat-network/provider/modules/net.js.map +0 -1
- package/internal/hardhat-network/provider/modules/personal.d.ts +0 -9
- package/internal/hardhat-network/provider/modules/personal.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/personal.js +0 -31
- package/internal/hardhat-network/provider/modules/personal.js.map +0 -1
- package/internal/hardhat-network/provider/modules/web3.d.ts +0 -11
- package/internal/hardhat-network/provider/modules/web3.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/web3.js +0 -38
- package/internal/hardhat-network/provider/modules/web3.js.map +0 -1
- package/internal/hardhat-network/provider/node.d.ts +0 -197
- package/internal/hardhat-network/provider/node.d.ts.map +0 -1
- package/internal/hardhat-network/provider/node.js +0 -1866
- package/internal/hardhat-network/provider/node.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +0 -29
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +0 -137
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +0 -27
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +0 -137
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +0 -33
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +0 -141
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +0 -30
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +0 -97
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +0 -30
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +0 -98
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +0 -40
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +0 -91
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +0 -32
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +0 -87
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +0 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +0 -17
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +0 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js +0 -3
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js.map +0 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts +0 -4
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/makeCommon.js +0 -17
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +0 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +0 -7
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js +0 -31
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +0 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts +0 -4
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.js +0 -20
- package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +0 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +0 -8
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +0 -37
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +0 -1
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts +0 -12
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +0 -62
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +0 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts +0 -3
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.js +0 -12
- package/internal/hardhat-network/provider/utils/txMapToArray.js.map +0 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +0 -4
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.js +0 -356
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +0 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +0 -15
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.js +0 -166
- package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +0 -1
- package/internal/hardhat-network/stack-traces/debug.d.ts +0 -8
- package/internal/hardhat-network/stack-traces/debug.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/debug.js +0 -148
- package/internal/hardhat-network/stack-traces/debug.js.map +0 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +0 -85
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +0 -1168
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +0 -1
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts +0 -24
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +0 -116
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +0 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +0 -55
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/message-trace.js +0 -49
- package/internal/hardhat-network/stack-traces/message-trace.js.map +0 -1
- package/internal/hardhat-network/stack-traces/model.d.ts +0 -140
- package/internal/hardhat-network/stack-traces/model.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/model.js +0 -328
- package/internal/hardhat-network/stack-traces/model.js.map +0 -1
- package/internal/hardhat-network/stack-traces/opcodes.d.ts +0 -266
- package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/opcodes.js +0 -320
- package/internal/hardhat-network/stack-traces/opcodes.js.map +0 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +0 -14
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +0 -167
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +0 -1
- package/internal/hardhat-network/stack-traces/source-maps.d.ts +0 -13
- package/internal/hardhat-network/stack-traces/source-maps.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/source-maps.js +0 -106
- package/internal/hardhat-network/stack-traces/source-maps.js.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +0 -46
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +0 -421
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +0 -17
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +0 -91
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +0 -19
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +0 -170
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +0 -1
- package/src/internal/hardhat-network/provider/MiningTimer.ts +0 -118
- package/src/internal/hardhat-network/provider/utils/makeCommon.ts +0 -20
- package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +0 -699
- package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +0 -235
- package/src/internal/hardhat-network/stack-traces/debug.ts +0 -220
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +0 -1845
- package/src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts +0 -163
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +0 -131
- package/src/internal/hardhat-network/stack-traces/model.ts +0 -409
- package/src/internal/hardhat-network/stack-traces/opcodes.ts +0 -344
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +0 -255
- package/src/internal/hardhat-network/stack-traces/source-maps.ts +0 -167
- package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +0 -135
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +0 -221
- package/src/types/experimental.ts +0 -18
- package/types/experimental.d.ts +0 -5
- package/types/experimental.d.ts.map +0 -1
- package/types/experimental.js +0 -3
- package/types/experimental.js.map +0 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import debug from "debug";
|
|
4
|
+
import { getCacheDir } from "../util/global-dir";
|
|
5
|
+
import { requestJson } from "../util/request";
|
|
6
|
+
|
|
7
|
+
const log = debug("hardhat:util:banner-manager");
|
|
8
|
+
|
|
9
|
+
interface BannerConfig {
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
formattedMessages: string[];
|
|
12
|
+
minSecondsBetweenDisplays: number;
|
|
13
|
+
minSecondsBetweenRequests: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const BANNER_CONFIG_URL =
|
|
17
|
+
"https://raw.githubusercontent.com/NomicFoundation/hardhat/refs/heads/main/banner-config.json";
|
|
18
|
+
|
|
19
|
+
const BANNER_CACHE_FILE_NAME = "banner-config.json";
|
|
20
|
+
|
|
21
|
+
export class BannerManager {
|
|
22
|
+
private static _instance: BannerManager | undefined;
|
|
23
|
+
|
|
24
|
+
private constructor(
|
|
25
|
+
private _bannerConfig: BannerConfig | undefined,
|
|
26
|
+
private _lastDisplayTime: number,
|
|
27
|
+
private _lastRequestTime: number
|
|
28
|
+
) {}
|
|
29
|
+
|
|
30
|
+
public static async getInstance(): Promise<BannerManager> {
|
|
31
|
+
if (this._instance === undefined) {
|
|
32
|
+
log("Initializing BannerManager");
|
|
33
|
+
const { bannerConfig, lastDisplayTime, lastRequestTime } =
|
|
34
|
+
await readCache();
|
|
35
|
+
this._instance = new BannerManager(
|
|
36
|
+
bannerConfig,
|
|
37
|
+
lastDisplayTime,
|
|
38
|
+
lastRequestTime
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return this._instance;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
private async _requestBannerConfig(timeout?: number): Promise<void> {
|
|
46
|
+
if (this._bannerConfig !== undefined) {
|
|
47
|
+
const timeSinceLastRequest = Date.now() - this._lastRequestTime;
|
|
48
|
+
if (
|
|
49
|
+
timeSinceLastRequest <
|
|
50
|
+
this._bannerConfig.minSecondsBetweenRequests * 1000
|
|
51
|
+
) {
|
|
52
|
+
log(
|
|
53
|
+
`Skipping banner config request. Time since last request: ${timeSinceLastRequest}ms`
|
|
54
|
+
);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
const bannerConfig = await requestJson(BANNER_CONFIG_URL, timeout);
|
|
61
|
+
|
|
62
|
+
if (!this._isBannerConfig(bannerConfig)) {
|
|
63
|
+
log(`Invalid banner config received:`, bannerConfig);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
this._bannerConfig = bannerConfig;
|
|
68
|
+
this._lastRequestTime = Date.now();
|
|
69
|
+
|
|
70
|
+
await writeCache({
|
|
71
|
+
bannerConfig: this._bannerConfig,
|
|
72
|
+
lastDisplayTime: this._lastDisplayTime,
|
|
73
|
+
lastRequestTime: this._lastRequestTime,
|
|
74
|
+
});
|
|
75
|
+
} catch (error) {
|
|
76
|
+
log(
|
|
77
|
+
`Error requesting banner config: ${
|
|
78
|
+
error instanceof Error ? error.message : JSON.stringify(error)
|
|
79
|
+
}`
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
private _isBannerConfig(value: unknown): value is BannerConfig {
|
|
85
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
Object.getOwnPropertyNames(value).length === 4 &&
|
|
91
|
+
"enabled" in value &&
|
|
92
|
+
typeof value.enabled === "boolean" &&
|
|
93
|
+
"formattedMessages" in value &&
|
|
94
|
+
Array.isArray(value.formattedMessages) &&
|
|
95
|
+
value.formattedMessages.every((message) => typeof message === "string") &&
|
|
96
|
+
"minSecondsBetweenDisplays" in value &&
|
|
97
|
+
typeof value.minSecondsBetweenDisplays === "number" &&
|
|
98
|
+
"minSecondsBetweenRequests" in value &&
|
|
99
|
+
typeof value.minSecondsBetweenRequests === "number"
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
public async showBanner(timeout?: number): Promise<void> {
|
|
104
|
+
await this._requestBannerConfig(timeout);
|
|
105
|
+
|
|
106
|
+
if (
|
|
107
|
+
this._bannerConfig === undefined ||
|
|
108
|
+
!this._bannerConfig.enabled ||
|
|
109
|
+
this._bannerConfig.formattedMessages.length === 0
|
|
110
|
+
) {
|
|
111
|
+
log("Banner is disabled or no messages available.");
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const { formattedMessages, minSecondsBetweenDisplays } = this._bannerConfig;
|
|
116
|
+
|
|
117
|
+
const timeSinceLastDisplay = Date.now() - this._lastDisplayTime;
|
|
118
|
+
if (timeSinceLastDisplay < minSecondsBetweenDisplays * 1000) {
|
|
119
|
+
log(
|
|
120
|
+
`Skipping banner display. Time since last display: ${timeSinceLastDisplay}ms`
|
|
121
|
+
);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// select a random message from the formattedMessages array
|
|
126
|
+
const randomIndex = Math.floor(Math.random() * formattedMessages.length);
|
|
127
|
+
const message = formattedMessages[randomIndex];
|
|
128
|
+
|
|
129
|
+
console.log(message);
|
|
130
|
+
this._lastDisplayTime = Date.now();
|
|
131
|
+
await writeCache({
|
|
132
|
+
bannerConfig: this._bannerConfig,
|
|
133
|
+
lastDisplayTime: this._lastDisplayTime,
|
|
134
|
+
lastRequestTime: this._lastRequestTime,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
interface BannerCache {
|
|
140
|
+
bannerConfig: BannerConfig | undefined;
|
|
141
|
+
lastDisplayTime: number;
|
|
142
|
+
lastRequestTime: number;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
async function readCache(): Promise<BannerCache> {
|
|
146
|
+
const cacheDir = await getCacheDir();
|
|
147
|
+
const bannerCacheFilePath = path.join(cacheDir, BANNER_CACHE_FILE_NAME);
|
|
148
|
+
|
|
149
|
+
let cache: BannerCache = {
|
|
150
|
+
bannerConfig: undefined,
|
|
151
|
+
lastDisplayTime: 0,
|
|
152
|
+
lastRequestTime: 0,
|
|
153
|
+
};
|
|
154
|
+
try {
|
|
155
|
+
const fileContents = await fs.readFile(bannerCacheFilePath, "utf-8");
|
|
156
|
+
cache = JSON.parse(fileContents);
|
|
157
|
+
} catch (error) {
|
|
158
|
+
log(
|
|
159
|
+
`Error reading cache file: ${
|
|
160
|
+
error instanceof Error ? error.message : JSON.stringify(error)
|
|
161
|
+
}`
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return cache;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
async function writeCache(cache: BannerCache) {
|
|
169
|
+
const cacheDir = await getCacheDir();
|
|
170
|
+
const bannerCacheFilePath = path.join(cacheDir, BANNER_CACHE_FILE_NAME);
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
await fs.mkdir(cacheDir, { recursive: true });
|
|
174
|
+
await fs.writeFile(bannerCacheFilePath, JSON.stringify(cache, null, 2));
|
|
175
|
+
} catch (error) {
|
|
176
|
+
log(
|
|
177
|
+
`Error writing cache file: ${
|
|
178
|
+
error instanceof Error ? error.message : JSON.stringify(error)
|
|
179
|
+
}`
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import semver from "semver";
|
|
3
|
-
import chalk from "chalk";
|
|
4
2
|
|
|
5
|
-
import
|
|
3
|
+
import picocolors from "picocolors";
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
import { isNodeVersionToWarnOn } from "./is-node-version-to-warn-on";
|
|
6
|
+
|
|
7
|
+
if (isNodeVersionToWarnOn(process.version)) {
|
|
8
8
|
console.warn(
|
|
9
|
-
|
|
9
|
+
picocolors.yellow(picocolors.bold(`WARNING:`)),
|
|
10
10
|
`You are currently using Node.js ${process.version}, which is not supported by Hardhat. This can lead to unexpected behavior. See https://hardhat.org/nodejs-versions`
|
|
11
11
|
);
|
|
12
12
|
console.log();
|
package/src/internal/cli/cli.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import picocolors from "picocolors";
|
|
2
2
|
import debug from "debug";
|
|
3
3
|
import "source-map-support/register";
|
|
4
4
|
|
|
@@ -49,6 +49,7 @@ import {
|
|
|
49
49
|
isHardhatVSCodeInstalled,
|
|
50
50
|
} from "./hardhat-vscode-installation";
|
|
51
51
|
import { handleVars } from "./vars";
|
|
52
|
+
import { BannerManager } from "./banner-manager";
|
|
52
53
|
|
|
53
54
|
const log = debug("hardhat:core:cli");
|
|
54
55
|
|
|
@@ -102,7 +103,7 @@ function showViaIRWarning(resolvedConfig: HardhatConfig) {
|
|
|
102
103
|
if (viaIREnabled) {
|
|
103
104
|
console.warn();
|
|
104
105
|
console.warn(
|
|
105
|
-
|
|
106
|
+
picocolors.yellow(
|
|
106
107
|
`Your solidity settings have viaIR enabled, which is not fully supported yet. You can still use Hardhat, but some features, like stack traces, might not work correctly.
|
|
107
108
|
|
|
108
109
|
Learn more at https://hardhat.org/solc-viair`
|
|
@@ -170,14 +171,16 @@ async function main() {
|
|
|
170
171
|
|
|
171
172
|
// Warning for Hardhat V3 deprecation
|
|
172
173
|
console.warn(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
`Initializing a project with ${
|
|
176
|
-
"npx hardhat"
|
|
174
|
+
picocolors.yellow(picocolors.bold("\n\nDEPRECATION WARNING\n\n")),
|
|
175
|
+
picocolors.yellow(
|
|
176
|
+
`Initializing a project with ${picocolors.white(
|
|
177
|
+
picocolors.italic("npx hardhat")
|
|
177
178
|
)} is deprecated and will be removed in the future.\n`
|
|
178
179
|
),
|
|
179
|
-
|
|
180
|
-
`Please use ${
|
|
180
|
+
picocolors.yellow(
|
|
181
|
+
`Please use ${picocolors.white(
|
|
182
|
+
picocolors.italic("npx hardhat init")
|
|
183
|
+
)} instead.\n\n`
|
|
181
184
|
)
|
|
182
185
|
);
|
|
183
186
|
|
|
@@ -234,7 +237,6 @@ async function main() {
|
|
|
234
237
|
taskDefinitions,
|
|
235
238
|
scopesDefinitions,
|
|
236
239
|
envExtenders,
|
|
237
|
-
ctx.experimentalHardhatNetworkMessageTraceHooks,
|
|
238
240
|
userConfig,
|
|
239
241
|
providerExtenders
|
|
240
242
|
);
|
|
@@ -276,7 +278,7 @@ async function main() {
|
|
|
276
278
|
|
|
277
279
|
let taskArguments: TaskArguments;
|
|
278
280
|
|
|
279
|
-
// --help is
|
|
281
|
+
// --help is an also special case
|
|
280
282
|
if (hardhatArguments.help && taskName !== TASK_HELP) {
|
|
281
283
|
// we "move" the task and scope names to the task arguments,
|
|
282
284
|
// and run the help task
|
|
@@ -381,6 +383,11 @@ async function main() {
|
|
|
381
383
|
}
|
|
382
384
|
}
|
|
383
385
|
|
|
386
|
+
if (!isRunningOnCiServer() && process.stdout.isTTY === true) {
|
|
387
|
+
const hardhat3BannerManager = await BannerManager.getInstance();
|
|
388
|
+
await hardhat3BannerManager.showBanner(200);
|
|
389
|
+
}
|
|
390
|
+
|
|
384
391
|
log(`Killing Hardhat after successfully running task ${taskName}`);
|
|
385
392
|
} catch (error) {
|
|
386
393
|
let isHardhatError = false;
|
|
@@ -388,20 +395,22 @@ async function main() {
|
|
|
388
395
|
if (HardhatError.isHardhatError(error)) {
|
|
389
396
|
isHardhatError = true;
|
|
390
397
|
console.error(
|
|
391
|
-
|
|
392
|
-
error.message.replace(/^\w+:/, (t) =>
|
|
398
|
+
picocolors.red(picocolors.bold("Error")),
|
|
399
|
+
error.message.replace(/^\w+:/, (t) =>
|
|
400
|
+
picocolors.red(picocolors.bold(t))
|
|
401
|
+
)
|
|
393
402
|
);
|
|
394
403
|
} else if (HardhatPluginError.isHardhatPluginError(error)) {
|
|
395
404
|
isHardhatError = true;
|
|
396
405
|
console.error(
|
|
397
|
-
|
|
406
|
+
picocolors.red(picocolors.bold(`Error in plugin ${error.pluginName}:`)),
|
|
398
407
|
error.message
|
|
399
408
|
);
|
|
400
409
|
} else if (error instanceof Error) {
|
|
401
|
-
console.error(
|
|
410
|
+
console.error(picocolors.red("An unexpected error occurred:"));
|
|
402
411
|
showStackTraces = true;
|
|
403
412
|
} else {
|
|
404
|
-
console.error(
|
|
413
|
+
console.error(picocolors.red("An unexpected error occurred."));
|
|
405
414
|
showStackTraces = true;
|
|
406
415
|
}
|
|
407
416
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SUPPORTED_NODE_VERSIONS = ["^18.0.0", "^20.0.0"];
|
|
1
|
+
export const SUPPORTED_NODE_VERSIONS = ["^18.0.0", "^20.0.0", "^22.0.0"];
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import semver from "semver";
|
|
2
|
+
|
|
3
|
+
import { assertHardhatInvariant } from "../core/errors";
|
|
4
|
+
import { SUPPORTED_NODE_VERSIONS } from "./constants";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Determine if the node version should trigger an unsupported
|
|
8
|
+
* warning.
|
|
9
|
+
*
|
|
10
|
+
* The current rule is that an unsupported warning will be shown if
|
|
11
|
+
*
|
|
12
|
+
* 1. An odd numbered version of Node.js is used - as this will never go to LTS
|
|
13
|
+
* 2. The version is less than the minimum supported version
|
|
14
|
+
*
|
|
15
|
+
* We intentionally do not warn on newer **even** versions of Node.js.
|
|
16
|
+
*/
|
|
17
|
+
export function isNodeVersionToWarnOn(nodeVersion: string): boolean {
|
|
18
|
+
const supportedVersions = SUPPORTED_NODE_VERSIONS.join(" || ");
|
|
19
|
+
|
|
20
|
+
// If the version is supported, no need to warn and short circuit
|
|
21
|
+
if (semver.satisfies(nodeVersion, supportedVersions)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (_onOddNumberedVersion(nodeVersion)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (_lessThanMinimumSupportedVersion(nodeVersion, supportedVersions)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// A newer version of Node.js that will go to LTS
|
|
34
|
+
// we have opted not to warn.
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function _onOddNumberedVersion(nodeVersion: string) {
|
|
39
|
+
return semver.major(nodeVersion) % 2 === 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function _lessThanMinimumSupportedVersion(
|
|
43
|
+
nodeVersion: string,
|
|
44
|
+
supportedVersions: string
|
|
45
|
+
) {
|
|
46
|
+
const minSupportedVersion = semver.minVersion(supportedVersions);
|
|
47
|
+
|
|
48
|
+
assertHardhatInvariant(
|
|
49
|
+
minSupportedVersion !== null,
|
|
50
|
+
"Unexpectedly failed to parse the minimum supported version of Node.js"
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
return semver.lt(nodeVersion, minSupportedVersion);
|
|
54
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import picocolors from "picocolors";
|
|
2
2
|
import fsExtra from "fs-extra";
|
|
3
3
|
import path from "path";
|
|
4
4
|
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
import { emoji } from "./emoji";
|
|
24
24
|
import { Dependencies, PackageManager } from "./types";
|
|
25
25
|
import { requestTelemetryConsent } from "./analytics";
|
|
26
|
+
import { BannerManager } from "./banner-manager";
|
|
26
27
|
|
|
27
28
|
enum Action {
|
|
28
29
|
CREATE_JAVASCRIPT_PROJECT_ACTION = "Create a JavaScript project",
|
|
@@ -97,28 +98,34 @@ const TYPESCRIPT_VIEM_PEER_DEPENDENCIES: Dependencies = {
|
|
|
97
98
|
// generated with the "colossal" font
|
|
98
99
|
function printAsciiLogo() {
|
|
99
100
|
console.log(
|
|
100
|
-
|
|
101
|
+
picocolors.blue("888 888 888 888 888")
|
|
101
102
|
);
|
|
102
103
|
console.log(
|
|
103
|
-
|
|
104
|
+
picocolors.blue("888 888 888 888 888")
|
|
104
105
|
);
|
|
105
106
|
console.log(
|
|
106
|
-
|
|
107
|
+
picocolors.blue("888 888 888 888 888")
|
|
107
108
|
);
|
|
108
109
|
console.log(
|
|
109
|
-
|
|
110
|
+
picocolors.blue(
|
|
111
|
+
"8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888"
|
|
112
|
+
)
|
|
110
113
|
);
|
|
111
114
|
console.log(
|
|
112
|
-
|
|
115
|
+
picocolors.blue('888 888 "88b 888P" d88" 888 888 "88b "88b 888')
|
|
113
116
|
);
|
|
114
117
|
console.log(
|
|
115
|
-
|
|
118
|
+
picocolors.blue("888 888 .d888888 888 888 888 888 888 .d888888 888")
|
|
116
119
|
);
|
|
117
120
|
console.log(
|
|
118
|
-
|
|
121
|
+
picocolors.blue(
|
|
122
|
+
"888 888 888 888 888 Y88b 888 888 888 888 888 Y88b."
|
|
123
|
+
)
|
|
119
124
|
);
|
|
120
125
|
console.log(
|
|
121
|
-
|
|
126
|
+
picocolors.blue(
|
|
127
|
+
'888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888'
|
|
128
|
+
)
|
|
122
129
|
);
|
|
123
130
|
console.log("");
|
|
124
131
|
}
|
|
@@ -127,7 +134,7 @@ async function printWelcomeMessage() {
|
|
|
127
134
|
const packageJson = await getPackageJson();
|
|
128
135
|
|
|
129
136
|
console.log(
|
|
130
|
-
|
|
137
|
+
picocolors.cyan(
|
|
131
138
|
`${emoji("👷 ")}Welcome to ${HARDHAT_NAME} v${packageJson.version}${emoji(
|
|
132
139
|
" 👷"
|
|
133
140
|
)}\n`
|
|
@@ -200,7 +207,7 @@ Please delete or rename ${pluralize(
|
|
|
200
207
|
"it",
|
|
201
208
|
"them"
|
|
202
209
|
)} and try again.`;
|
|
203
|
-
console.log(
|
|
210
|
+
console.log(picocolors.red(errorMsg));
|
|
204
211
|
process.exit(1);
|
|
205
212
|
}
|
|
206
213
|
|
|
@@ -254,7 +261,7 @@ async function printRecommendedDepsInstallationInstructions(
|
|
|
254
261
|
// exported so we can test that it uses the latest supported version of solidity
|
|
255
262
|
export const EMPTY_HARDHAT_CONFIG = `/** @type import('hardhat/config').HardhatUserConfig */
|
|
256
263
|
module.exports = {
|
|
257
|
-
solidity: "0.8.
|
|
264
|
+
solidity: "0.8.28",
|
|
258
265
|
};
|
|
259
266
|
`;
|
|
260
267
|
|
|
@@ -356,23 +363,25 @@ async function createPackageJson() {
|
|
|
356
363
|
|
|
357
364
|
function showStarOnGitHubMessage() {
|
|
358
365
|
console.log(
|
|
359
|
-
|
|
366
|
+
picocolors.cyan("Give Hardhat a star on Github if you're enjoying it!") +
|
|
360
367
|
emoji(" ⭐️✨")
|
|
361
368
|
);
|
|
362
369
|
console.log();
|
|
363
|
-
console.log(
|
|
370
|
+
console.log(
|
|
371
|
+
picocolors.cyan(" https://github.com/NomicFoundation/hardhat")
|
|
372
|
+
);
|
|
364
373
|
}
|
|
365
374
|
|
|
366
375
|
export function showSoliditySurveyMessage() {
|
|
367
|
-
if (new Date() > new Date("
|
|
376
|
+
if (new Date() > new Date("2025-01-31 23:39")) {
|
|
368
377
|
// the survey has finished
|
|
369
378
|
return;
|
|
370
379
|
}
|
|
371
380
|
|
|
372
381
|
console.log();
|
|
373
382
|
console.log(
|
|
374
|
-
|
|
375
|
-
"Please take a moment to complete the
|
|
383
|
+
picocolors.cyan(
|
|
384
|
+
"Please take a moment to complete the 2024 Solidity Survey: https://hardhat.org/solidity-survey-2024"
|
|
376
385
|
)
|
|
377
386
|
);
|
|
378
387
|
}
|
|
@@ -405,7 +414,7 @@ export async function createProject() {
|
|
|
405
414
|
if (action === Action.CREATE_EMPTY_HARDHAT_CONFIG_ACTION) {
|
|
406
415
|
await writeEmptyHardhatConfig(isEsm);
|
|
407
416
|
console.log(
|
|
408
|
-
`${emoji("✨ ")}${
|
|
417
|
+
`${emoji("✨ ")}${picocolors.cyan(`Config file created`)}${emoji(" ✨")}`
|
|
409
418
|
);
|
|
410
419
|
|
|
411
420
|
if (!isInstalled(HARDHAT_PACKAGE_NAME)) {
|
|
@@ -504,7 +513,9 @@ export async function createProject() {
|
|
|
504
513
|
|
|
505
514
|
if (!installed) {
|
|
506
515
|
console.warn(
|
|
507
|
-
|
|
516
|
+
picocolors.red(
|
|
517
|
+
"Failed to install the sample project's dependencies"
|
|
518
|
+
)
|
|
508
519
|
);
|
|
509
520
|
}
|
|
510
521
|
|
|
@@ -519,13 +530,16 @@ export async function createProject() {
|
|
|
519
530
|
}
|
|
520
531
|
|
|
521
532
|
console.log(
|
|
522
|
-
`\n${emoji("✨ ")}${
|
|
533
|
+
`\n${emoji("✨ ")}${picocolors.cyan("Project created")}${emoji(" ✨")}`
|
|
523
534
|
);
|
|
524
535
|
console.log();
|
|
525
536
|
console.log("See the README.md file for some example tasks you can run");
|
|
526
537
|
console.log();
|
|
527
538
|
showStarOnGitHubMessage();
|
|
528
539
|
showSoliditySurveyMessage();
|
|
540
|
+
|
|
541
|
+
const hardhat3BannerManager = await BannerManager.getInstance();
|
|
542
|
+
await hardhat3BannerManager.showBanner();
|
|
529
543
|
}
|
|
530
544
|
|
|
531
545
|
async function canInstallRecommendedDeps() {
|
|
@@ -544,12 +558,24 @@ function isInstalled(dep: string) {
|
|
|
544
558
|
return dep in allDependencies;
|
|
545
559
|
}
|
|
546
560
|
|
|
561
|
+
function getProjectTypeFromUserAgent() {
|
|
562
|
+
const userAgent = process.env.npm_config_user_agent;
|
|
563
|
+
// Get first part of user agent string
|
|
564
|
+
const [projectType] = userAgent?.split("/") ?? [];
|
|
565
|
+
return projectType;
|
|
566
|
+
}
|
|
567
|
+
|
|
547
568
|
async function isYarnProject() {
|
|
548
|
-
return
|
|
569
|
+
return (
|
|
570
|
+
getProjectTypeFromUserAgent() === "yarn" || fsExtra.pathExists("yarn.lock")
|
|
571
|
+
);
|
|
549
572
|
}
|
|
550
573
|
|
|
551
574
|
async function isPnpmProject() {
|
|
552
|
-
return
|
|
575
|
+
return (
|
|
576
|
+
getProjectTypeFromUserAgent() === "pnpm" ||
|
|
577
|
+
fsExtra.pathExists("pnpm-lock.yaml")
|
|
578
|
+
);
|
|
553
579
|
}
|
|
554
580
|
|
|
555
581
|
async function getProjectPackageManager(): Promise<PackageManager> {
|
package/src/internal/cli/vars.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import picocolors from "picocolors";
|
|
2
2
|
import debug from "debug";
|
|
3
3
|
import { HardhatError, assertHardhatInvariant } from "../core/errors";
|
|
4
4
|
import { ERRORS } from "../core/errors-list";
|
|
@@ -35,7 +35,7 @@ export async function handleVars(
|
|
|
35
35
|
case "setup":
|
|
36
36
|
return setup(configPath);
|
|
37
37
|
default:
|
|
38
|
-
console.error(
|
|
38
|
+
console.error(picocolors.red(`Invalid task '${taskDefinition.name}'`));
|
|
39
39
|
return 1; // Error code
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -65,7 +65,7 @@ function get(key: string): number {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
console.warn(
|
|
68
|
-
|
|
68
|
+
picocolors.yellow(
|
|
69
69
|
`The configuration variable '${key}' is not set in ${HardhatContext.getHardhatContext().varsManager.getStoragePath()}`
|
|
70
70
|
)
|
|
71
71
|
);
|
|
@@ -88,7 +88,7 @@ function list(): number {
|
|
|
88
88
|
} else {
|
|
89
89
|
if (process.stdout.isTTY) {
|
|
90
90
|
console.warn(
|
|
91
|
-
|
|
91
|
+
picocolors.yellow(
|
|
92
92
|
`There are no configuration variables stored in ${varsStoragePath}`
|
|
93
93
|
)
|
|
94
94
|
);
|
|
@@ -112,7 +112,7 @@ function del(key: string): number {
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
console.warn(
|
|
115
|
-
|
|
115
|
+
picocolors.yellow(
|
|
116
116
|
`There is no configuration variable '${key}' to delete from ${varsStoragePath}`
|
|
117
117
|
)
|
|
118
118
|
);
|
|
@@ -137,7 +137,7 @@ function setup(configPath: string | undefined) {
|
|
|
137
137
|
loadConfigFile(configPath);
|
|
138
138
|
} catch (err: any) {
|
|
139
139
|
console.error(
|
|
140
|
-
|
|
140
|
+
picocolors.red(
|
|
141
141
|
"There is an error in your Hardhat configuration file. Please double check it.\n"
|
|
142
142
|
)
|
|
143
143
|
);
|
|
@@ -187,7 +187,7 @@ function listVarsToSetup(varsManagerSetup: VarsManagerSetup) {
|
|
|
187
187
|
|
|
188
188
|
if (requiredKeysToSet.length === 0 && optionalKeysToSet.length === 0) {
|
|
189
189
|
console.log(
|
|
190
|
-
|
|
190
|
+
picocolors.green(
|
|
191
191
|
"There are no configuration variables that need to be set for this project"
|
|
192
192
|
)
|
|
193
193
|
);
|
|
@@ -198,7 +198,7 @@ function listVarsToSetup(varsManagerSetup: VarsManagerSetup) {
|
|
|
198
198
|
|
|
199
199
|
if (requiredKeysToSet.length > 0) {
|
|
200
200
|
console.log(
|
|
201
|
-
|
|
201
|
+
picocolors.bold(
|
|
202
202
|
`${emoji("❗ ")}The following configuration variables need to be set:\n`
|
|
203
203
|
)
|
|
204
204
|
);
|
|
@@ -210,7 +210,7 @@ function listVarsToSetup(varsManagerSetup: VarsManagerSetup) {
|
|
|
210
210
|
|
|
211
211
|
if (optionalKeysToSet.length > 0) {
|
|
212
212
|
console.log(
|
|
213
|
-
|
|
213
|
+
picocolors.bold(
|
|
214
214
|
`${emoji("💡 ")}The following configuration variables are optional:\n`
|
|
215
215
|
)
|
|
216
216
|
);
|
|
@@ -237,7 +237,7 @@ function printAlreadySetKeys(varsManagerSetup: VarsManagerSetup) {
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
console.log(
|
|
240
|
-
`${
|
|
240
|
+
`${picocolors.bold(`${emoji("✔️ ")}Configuration variables already set:`)}`
|
|
241
241
|
);
|
|
242
242
|
console.log();
|
|
243
243
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import boxen from "boxen";
|
|
2
|
-
import
|
|
2
|
+
import picocolors from "picocolors";
|
|
3
3
|
import fsExtra from "fs-extra";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -111,9 +111,9 @@ export async function showNewVersionNotification() {
|
|
|
111
111
|
|
|
112
112
|
console.log(
|
|
113
113
|
boxen(
|
|
114
|
-
`New Hardhat release available! ${
|
|
114
|
+
`New Hardhat release available! ${picocolors.red(
|
|
115
115
|
hardhatVersion
|
|
116
|
-
)} -> ${
|
|
116
|
+
)} -> ${picocolors.green(latestV2Version)}.
|
|
117
117
|
|
|
118
118
|
Changelog: https://hardhat.org/release/${latestV2Version}
|
|
119
119
|
|
package/src/internal/context.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ConfigExtender,
|
|
3
3
|
EnvironmentExtender,
|
|
4
|
-
ExperimentalHardhatNetworkMessageTraceHook,
|
|
5
4
|
HardhatRuntimeEnvironment,
|
|
6
5
|
ProviderExtender,
|
|
7
6
|
} from "../types";
|
|
@@ -60,10 +59,6 @@ export class HardhatContext {
|
|
|
60
59
|
|
|
61
60
|
public readonly configExtenders: ConfigExtender[] = [];
|
|
62
61
|
|
|
63
|
-
// NOTE: This is experimental and will be removed. Please contact our team if
|
|
64
|
-
// you are planning to use it.
|
|
65
|
-
public readonly experimentalHardhatNetworkMessageTraceHooks: ExperimentalHardhatNetworkMessageTraceHook[] =
|
|
66
|
-
[];
|
|
67
62
|
private _filesLoadedBeforeConfig?: string[];
|
|
68
63
|
private _filesLoadedAfterConfig?: string[];
|
|
69
64
|
|