hardhat 2.6.8 → 2.8.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/builtin-tasks/check.js +1 -1
- package/builtin-tasks/check.js.map +1 -1
- package/builtin-tasks/clean.js +3 -3
- package/builtin-tasks/clean.js.map +1 -1
- package/builtin-tasks/compile.js +48 -48
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/console.js +3 -3
- package/builtin-tasks/console.js.map +1 -1
- package/builtin-tasks/flatten.js +8 -6
- package/builtin-tasks/flatten.js.map +1 -1
- package/builtin-tasks/help.js +2 -2
- package/builtin-tasks/help.js.map +1 -1
- package/builtin-tasks/node.js +21 -15
- package/builtin-tasks/node.js.map +1 -1
- package/builtin-tasks/run.js +11 -7
- package/builtin-tasks/run.js.map +1 -1
- package/builtin-tasks/test.js +11 -11
- package/builtin-tasks/test.js.map +1 -1
- package/builtin-tasks/utils/solidity-files-cache.js +1 -1
- package/builtin-tasks/utils/solidity-files-cache.js.map +1 -1
- package/builtin-tasks/utils/watch.d.ts.map +1 -1
- package/builtin-tasks/utils/watch.js +4 -2
- package/builtin-tasks/utils/watch.js.map +1 -1
- package/internal/artifacts.d.ts +49 -0
- package/internal/artifacts.d.ts.map +1 -1
- package/internal/artifacts.js +204 -68
- package/internal/artifacts.js.map +1 -1
- package/internal/cli/analytics.js +11 -10
- package/internal/cli/analytics.js.map +1 -1
- package/internal/cli/autocomplete.js +7 -7
- package/internal/cli/autocomplete.js.map +1 -1
- package/internal/cli/bootstrap.js +2 -2
- package/internal/cli/bootstrap.js.map +1 -1
- package/internal/cli/cli.js +16 -16
- package/internal/cli/cli.js.map +1 -1
- package/internal/cli/project-creation.js +13 -13
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/constants.d.ts +2 -0
- package/internal/constants.d.ts.map +1 -1
- package/internal/constants.js +4 -1
- 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 +3 -3
- package/internal/context.js.map +1 -1
- package/internal/core/config/config-loading.d.ts.map +1 -1
- package/internal/core/config/config-loading.js +21 -7
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/core/config/config-resolution.d.ts.map +1 -1
- package/internal/core/config/config-resolution.js +50 -12
- package/internal/core/config/config-resolution.js.map +1 -1
- package/internal/core/config/config-validation.d.ts +1 -0
- package/internal/core/config/config-validation.d.ts.map +1 -1
- package/internal/core/config/config-validation.js +151 -38
- 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 +66 -2
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/errors-list.js +2 -2
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/errors.js +3 -3
- package/internal/core/errors.js.map +1 -1
- package/internal/core/execution-mode.js +2 -2
- package/internal/core/execution-mode.js.map +1 -1
- package/internal/core/jsonrpc/types/access-list.d.ts +0 -1
- package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/access-list.js +1 -1
- package/internal/core/jsonrpc/types/access-list.js.map +1 -1
- package/internal/core/jsonrpc/types/base-types.js +9 -9
- package/internal/core/jsonrpc/types/base-types.js.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -4
- package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.js +3 -3
- package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
- package/internal/core/jsonrpc/types/input/callRequest.d.ts +0 -1
- package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/callRequest.js +9 -9
- package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +4 -4
- package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -1
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts +0 -1
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/filterRequest.js +2 -2
- package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/input/hardhat-network.js +4 -4
- package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -1
- package/internal/core/jsonrpc/types/input/logAddress.js +1 -1
- package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -1
- package/internal/core/jsonrpc/types/input/logTopics.js +1 -1
- package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +0 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.js +10 -10
- package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/output/block.d.ts +0 -1
- package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/block.js +5 -5
- package/internal/core/jsonrpc/types/output/block.js.map +1 -1
- package/internal/core/jsonrpc/types/output/log.d.ts +1 -1
- package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/log.js +5 -4
- package/internal/core/jsonrpc/types/output/log.js.map +1 -1
- package/internal/core/jsonrpc/types/output/receipt.d.ts +1 -1
- package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/receipt.js +6 -6
- package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
- package/internal/core/jsonrpc/types/output/transaction.d.ts +0 -1
- package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/transaction.js +9 -9
- package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
- package/internal/core/params/argumentTypes.d.ts.map +1 -1
- package/internal/core/params/argumentTypes.js +25 -13
- package/internal/core/params/argumentTypes.js.map +1 -1
- package/internal/core/params/env-variables.d.ts.map +1 -1
- package/internal/core/params/env-variables.js +9 -5
- package/internal/core/params/env-variables.js.map +1 -1
- package/internal/core/params/hardhat-params.js +2 -2
- package/internal/core/params/hardhat-params.js.map +1 -1
- package/internal/core/project-structure.js +1 -1
- 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 +9 -8
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/backwards-compatibility.js.map +1 -1
- package/internal/core/providers/chainId.js +3 -3
- package/internal/core/providers/chainId.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +6 -4
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/gas-providers.d.ts.map +1 -1
- package/internal/core/providers/gas-providers.js +19 -17
- package/internal/core/providers/gas-providers.js.map +1 -1
- package/internal/core/providers/http.js +1 -1
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/providers/util.js +1 -1
- package/internal/core/providers/util.js.map +1 -1
- package/internal/core/providers/wrapper.d.ts.map +1 -1
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +7 -5
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/core/typescript-support.d.ts +1 -1
- package/internal/core/typescript-support.d.ts.map +1 -1
- package/internal/core/typescript-support.js +8 -5
- package/internal/core/typescript-support.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts +2 -0
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.js +23 -23
- package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.js +16 -8
- package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/server.js +1 -1
- package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.d.ts +1 -1
- package/internal/hardhat-network/provider/BlockchainData.js +12 -12
- package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -2
- package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/HardhatStateManager.js +29 -29
- package/internal/hardhat-network/provider/HardhatStateManager.js.map +1 -1
- package/internal/hardhat-network/provider/PoolState.js +6 -6
- package/internal/hardhat-network/provider/PoolState.js.map +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.js +16 -2
- package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
- package/internal/hardhat-network/provider/TxPool.js +19 -19
- package/internal/hardhat-network/provider/TxPool.js.map +1 -1
- package/internal/hardhat-network/provider/filter.js +3 -3
- package/internal/hardhat-network/provider/filter.js.map +1 -1
- package/internal/hardhat-network/provider/fork/AccountState.js +4 -4
- package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +8 -10
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.js +34 -34
- package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
- package/internal/hardhat-network/provider/fork/random.d.ts +0 -1
- package/internal/hardhat-network/provider/fork/random.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/random.js +13 -8
- package/internal/hardhat-network/provider/fork/random.js.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js +1 -0
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
- package/internal/hardhat-network/provider/modules/debug.js +1 -1
- package/internal/hardhat-network/provider/modules/debug.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +86 -84
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
- package/internal/hardhat-network/provider/modules/evm.js +9 -9
- package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +2 -0
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +25 -15
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.js +30 -25
- package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
- package/internal/hardhat-network/provider/modules/net.js +2 -2
- package/internal/hardhat-network/provider/modules/net.js.map +1 -1
- package/internal/hardhat-network/provider/modules/personal.js +2 -2
- package/internal/hardhat-network/provider/modules/personal.js.map +1 -1
- package/internal/hardhat-network/provider/modules/web3.js +4 -4
- package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +7 -1
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node-types.js.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +10 -2
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +144 -75
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +1 -1
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.js +94 -91
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +7 -3
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +11 -4
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +4 -4
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/utils/bnToHex.js +1 -1
- package/internal/hardhat-network/provider/utils/bnToHex.js.map +1 -1
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.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/makeCommon.js +3 -3
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -4
- package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.js +1 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.js +1 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.js.map +1 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.js +4 -4
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.js +44 -44
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.js +6 -6
- package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +17 -17
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +28 -28
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +3 -3
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +1 -1
- package/internal/hardhat-network/stack-traces/model.js +5 -5
- package/internal/hardhat-network/stack-traces/model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +3 -3
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +10 -10
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/source-maps.js +7 -7
- package/internal/hardhat-network/stack-traces/source-maps.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +5 -5
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +2 -2
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -3
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
- package/internal/lib/hardhat-lib.js +3 -3
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/internal/reset.js +1 -1
- package/internal/reset.js.map +1 -1
- package/internal/sentry/anonymizer.js.map +1 -1
- package/internal/sentry/reporter.js +5 -5
- package/internal/sentry/reporter.js.map +1 -1
- package/internal/sentry/subprocess.js +2 -2
- package/internal/sentry/subprocess.js.map +1 -1
- package/internal/sentry/transport.js +1 -1
- package/internal/sentry/transport.js.map +1 -1
- package/internal/solidity/compilation-job.js +4 -4
- package/internal/solidity/compilation-job.js.map +1 -1
- package/internal/solidity/compiler/downloader.d.ts +1 -1
- package/internal/solidity/compiler/downloader.d.ts.map +1 -1
- package/internal/solidity/compiler/downloader.js +21 -7
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/solidity/compiler/index.js +1 -1
- package/internal/solidity/compiler/index.js.map +1 -1
- package/internal/solidity/dependencyGraph.js +2 -1
- package/internal/solidity/dependencyGraph.js.map +1 -1
- package/internal/solidity/parse.js +3 -2
- package/internal/solidity/parse.js.map +1 -1
- package/internal/solidity/resolver.js +10 -10
- package/internal/solidity/resolver.js.map +1 -1
- package/internal/util/abi-helpers.js +1 -1
- package/internal/util/abi-helpers.js.map +1 -1
- package/internal/util/download.d.ts.map +1 -1
- package/internal/util/download.js +12 -1
- package/internal/util/download.js.map +1 -1
- package/internal/util/global-dir.js +1 -1
- package/internal/util/global-dir.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 +3 -1
- package/internal/util/hardforks.js.map +1 -1
- package/internal/util/jsonrpc.js +1 -1
- package/internal/util/jsonrpc.js.map +1 -1
- package/internal/util/packageInfo.js +1 -1
- package/internal/util/packageInfo.js.map +1 -1
- package/internal/util/scripts-runner.js +3 -3
- package/internal/util/scripts-runner.js.map +1 -1
- package/package.json +13 -13
- package/register.js +7 -7
- package/register.js.map +1 -1
- package/src/builtin-tasks/flatten.ts +4 -2
- package/src/builtin-tasks/node.ts +17 -10
- package/src/builtin-tasks/run.ts +13 -8
- package/src/builtin-tasks/utils/watch.ts +3 -1
- package/src/internal/artifacts.ts +269 -72
- package/src/internal/cli/analytics.ts +1 -1
- package/src/internal/cli/autocomplete.ts +3 -3
- package/src/internal/cli/bootstrap.ts +1 -1
- package/src/internal/cli/cli.ts +2 -2
- package/src/internal/cli/project-creation.ts +2 -2
- package/src/internal/constants.ts +4 -0
- package/src/internal/context.ts +1 -1
- package/src/internal/core/config/config-loading.ts +24 -2
- package/src/internal/core/config/config-resolution.ts +61 -3
- package/src/internal/core/config/config-validation.ts +217 -15
- package/src/internal/core/config/default-config.ts +66 -2
- package/src/internal/core/errors-list.ts +2 -2
- package/src/internal/core/execution-mode.ts +1 -1
- package/src/internal/core/jsonrpc/types/output/log.ts +1 -0
- package/src/internal/core/params/argumentTypes.ts +40 -25
- package/src/internal/core/params/env-variables.ts +13 -8
- package/src/internal/core/params/hardhat-params.ts +2 -2
- package/src/internal/core/providers/accounts.ts +4 -3
- package/src/internal/core/providers/backwards-compatibility.ts +1 -1
- package/src/internal/core/providers/chainId.ts +1 -1
- package/src/internal/core/providers/construction.ts +9 -2
- package/src/internal/core/providers/gas-providers.ts +6 -4
- package/src/internal/core/providers/http.ts +1 -1
- package/src/internal/core/providers/wrapper.ts +1 -1
- package/src/internal/core/runtime-environment.ts +3 -1
- package/src/internal/core/typescript-support.ts +7 -3
- package/src/internal/hardhat-network/jsonrpc/client.ts +2 -2
- package/src/internal/hardhat-network/jsonrpc/handler.ts +12 -2
- package/src/internal/hardhat-network/jsonrpc/server.ts +2 -2
- package/src/internal/hardhat-network/provider/TransactionQueue.ts +31 -4
- package/src/internal/hardhat-network/provider/TxPool.ts +1 -1
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +2 -4
- package/src/internal/hardhat-network/provider/modules/eth.ts +23 -21
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +15 -1
- package/src/internal/hardhat-network/provider/modules/logger.ts +13 -9
- package/src/internal/hardhat-network/provider/node-types.ts +8 -1
- package/src/internal/hardhat-network/provider/node.ts +156 -29
- package/src/internal/hardhat-network/provider/output.ts +9 -9
- package/src/internal/hardhat-network/provider/provider.ts +12 -2
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +3 -3
- package/src/internal/reset.ts +1 -1
- package/src/internal/sentry/subprocess.ts +2 -2
- package/src/internal/solidity/compiler/downloader.ts +27 -12
- package/src/internal/solidity/resolver.ts +1 -1
- package/src/internal/util/abi-helpers.ts +1 -1
- package/src/internal/util/download.ts +17 -1
- package/src/internal/util/hardforks.ts +2 -0
- package/src/internal/util/jsonrpc.ts +1 -1
- package/src/internal/util/packageInfo.ts +1 -1
- package/src/internal/util/scripts-runner.ts +1 -1
- package/src/register.ts +1 -1
- package/src/types/config.ts +42 -0
- package/src/utils/contract-names.ts +112 -0
- package/src/utils/source-names.ts +14 -12
- package/types/config.d.ts +26 -0
- package/types/config.d.ts.map +1 -1
- package/utils/contract-names.d.ts +10 -0
- package/utils/contract-names.d.ts.map +1 -1
- package/utils/contract-names.js +92 -1
- package/utils/contract-names.js.map +1 -1
- package/utils/source-names.d.ts +1 -1
- package/utils/source-names.js +8 -6
- package/utils/source-names.js.map +1 -1
- package/CHANGELOG.md +0 -54
|
@@ -6,10 +6,14 @@ import path from "path";
|
|
|
6
6
|
import {
|
|
7
7
|
HardhatConfig,
|
|
8
8
|
HardhatNetworkAccountsConfig,
|
|
9
|
+
HardhatNetworkChainConfig,
|
|
10
|
+
HardhatNetworkChainsConfig,
|
|
9
11
|
HardhatNetworkConfig,
|
|
10
12
|
HardhatNetworkForkingConfig,
|
|
11
13
|
HardhatNetworkMiningConfig,
|
|
12
14
|
HardhatNetworkMiningUserConfig,
|
|
15
|
+
HardhatNetworkMempoolConfig,
|
|
16
|
+
HardhatNetworkMempoolUserConfig,
|
|
13
17
|
HardhatNetworkUserConfig,
|
|
14
18
|
HardhatUserConfig,
|
|
15
19
|
HDAccountsUserConfig,
|
|
@@ -29,6 +33,7 @@ import {
|
|
|
29
33
|
SolidityUserConfig,
|
|
30
34
|
} from "../../../types";
|
|
31
35
|
import { HARDHAT_NETWORK_NAME } from "../../constants";
|
|
36
|
+
import { HardforkName } from "../../util/hardforks";
|
|
32
37
|
import { fromEntries } from "../../util/lang";
|
|
33
38
|
import { assertHardhatInvariant } from "../errors";
|
|
34
39
|
|
|
@@ -148,9 +153,11 @@ function resolveHardhatNetworkConfig(
|
|
|
148
153
|
}
|
|
149
154
|
: undefined;
|
|
150
155
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
156
|
+
if (forking !== undefined) {
|
|
157
|
+
const blockNumber = hardhatNetworkConfig?.forking?.blockNumber;
|
|
158
|
+
if (blockNumber !== undefined) {
|
|
159
|
+
forking.blockNumber = hardhatNetworkConfig?.forking?.blockNumber;
|
|
160
|
+
}
|
|
154
161
|
}
|
|
155
162
|
|
|
156
163
|
const mining = resolveMiningConfig(hardhatNetworkConfig.mining);
|
|
@@ -169,6 +176,30 @@ function resolveHardhatNetworkConfig(
|
|
|
169
176
|
const initialDate =
|
|
170
177
|
hardhatNetworkConfig.initialDate ?? new Date().toISOString();
|
|
171
178
|
|
|
179
|
+
const chains: HardhatNetworkChainsConfig = new Map(
|
|
180
|
+
defaultHardhatNetworkParams.chains
|
|
181
|
+
);
|
|
182
|
+
if (hardhatNetworkConfig.chains !== undefined) {
|
|
183
|
+
for (const [chainId, userChainConfig] of Object.entries(
|
|
184
|
+
hardhatNetworkConfig.chains
|
|
185
|
+
)) {
|
|
186
|
+
const chainConfig: HardhatNetworkChainConfig = {
|
|
187
|
+
hardforkHistory: new Map(),
|
|
188
|
+
};
|
|
189
|
+
if (userChainConfig.hardforkHistory !== undefined) {
|
|
190
|
+
for (const [name, block] of Object.entries(
|
|
191
|
+
userChainConfig.hardforkHistory
|
|
192
|
+
)) {
|
|
193
|
+
chainConfig.hardforkHistory.set(
|
|
194
|
+
name as HardforkName,
|
|
195
|
+
block as number
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
chains.set(parseInt(chainId, 10), chainConfig);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
172
203
|
const config = {
|
|
173
204
|
...clonedDefaultHardhatNetworkParams,
|
|
174
205
|
...hardhatNetworkConfig,
|
|
@@ -179,6 +210,7 @@ function resolveHardhatNetworkConfig(
|
|
|
179
210
|
gas,
|
|
180
211
|
initialDate,
|
|
181
212
|
minGasPrice,
|
|
213
|
+
chains,
|
|
182
214
|
};
|
|
183
215
|
|
|
184
216
|
// We do it this way because ts gets lost otherwise
|
|
@@ -228,10 +260,12 @@ function resolveHttpNetworkConfig(
|
|
|
228
260
|
function resolveMiningConfig(
|
|
229
261
|
userConfig: HardhatNetworkMiningUserConfig | undefined
|
|
230
262
|
): HardhatNetworkMiningConfig {
|
|
263
|
+
const mempool = resolveMempoolConfig(userConfig?.mempool);
|
|
231
264
|
if (userConfig === undefined) {
|
|
232
265
|
return {
|
|
233
266
|
auto: true,
|
|
234
267
|
interval: 0,
|
|
268
|
+
mempool,
|
|
235
269
|
};
|
|
236
270
|
}
|
|
237
271
|
|
|
@@ -241,6 +275,7 @@ function resolveMiningConfig(
|
|
|
241
275
|
return {
|
|
242
276
|
auto: true,
|
|
243
277
|
interval: 0,
|
|
278
|
+
mempool,
|
|
244
279
|
};
|
|
245
280
|
}
|
|
246
281
|
|
|
@@ -248,6 +283,7 @@ function resolveMiningConfig(
|
|
|
248
283
|
return {
|
|
249
284
|
auto: false,
|
|
250
285
|
interval,
|
|
286
|
+
mempool,
|
|
251
287
|
};
|
|
252
288
|
}
|
|
253
289
|
|
|
@@ -255,6 +291,7 @@ function resolveMiningConfig(
|
|
|
255
291
|
return {
|
|
256
292
|
auto,
|
|
257
293
|
interval: 0,
|
|
294
|
+
mempool,
|
|
258
295
|
};
|
|
259
296
|
}
|
|
260
297
|
|
|
@@ -262,9 +299,30 @@ function resolveMiningConfig(
|
|
|
262
299
|
return {
|
|
263
300
|
auto: auto!,
|
|
264
301
|
interval: interval!,
|
|
302
|
+
mempool,
|
|
265
303
|
};
|
|
266
304
|
}
|
|
267
305
|
|
|
306
|
+
function resolveMempoolConfig(
|
|
307
|
+
userConfig: HardhatNetworkMempoolUserConfig | undefined
|
|
308
|
+
): HardhatNetworkMempoolConfig {
|
|
309
|
+
if (userConfig === undefined) {
|
|
310
|
+
return {
|
|
311
|
+
order: "priority",
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if (userConfig.order === undefined) {
|
|
316
|
+
return {
|
|
317
|
+
order: "priority",
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return {
|
|
322
|
+
order: userConfig.order,
|
|
323
|
+
} as HardhatNetworkMempoolConfig;
|
|
324
|
+
}
|
|
325
|
+
|
|
268
326
|
function resolveSolidityConfig(userConfig: HardhatUserConfig): SolidityConfig {
|
|
269
327
|
const userSolidityConfig = userConfig.solidity ?? DEFAULT_SOLC_VERSION;
|
|
270
328
|
|
|
@@ -3,6 +3,7 @@ import { Context, getFunctionName, ValidationError } from "io-ts/lib";
|
|
|
3
3
|
import { Reporter } from "io-ts/lib/Reporter";
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
+
HARDHAT_MEMPOOL_SUPPORTED_ORDERS,
|
|
6
7
|
HARDHAT_NETWORK_NAME,
|
|
7
8
|
HARDHAT_NETWORK_SUPPORTED_HARDFORKS,
|
|
8
9
|
} from "../../constants";
|
|
@@ -11,6 +12,7 @@ import { fromEntries } from "../../util/lang";
|
|
|
11
12
|
import { HardhatError } from "../errors";
|
|
12
13
|
import { ERRORS } from "../errors-list";
|
|
13
14
|
import { hardforkGte, HardforkName } from "../../util/hardforks";
|
|
15
|
+
import { HardhatNetworkChainUserConfig } from "../../../types/config";
|
|
14
16
|
import { defaultHardhatNetworkParams } from "./default-config";
|
|
15
17
|
|
|
16
18
|
function stringify(v: any): string {
|
|
@@ -53,6 +55,59 @@ function getErrorMessage(path: string, value: any, expectedType: string) {
|
|
|
53
55
|
)} for ${path} - Expected a value of type ${expectedType}.`;
|
|
54
56
|
}
|
|
55
57
|
|
|
58
|
+
function getPrivateKeyError(index: number, network: string, message: string) {
|
|
59
|
+
return `Invalid account: #${index} for network: ${network} - ${message}`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function validatePrivateKey(
|
|
63
|
+
privateKey: unknown,
|
|
64
|
+
index: number,
|
|
65
|
+
network: string,
|
|
66
|
+
errors: string[]
|
|
67
|
+
) {
|
|
68
|
+
if (typeof privateKey !== "string") {
|
|
69
|
+
errors.push(
|
|
70
|
+
getPrivateKeyError(
|
|
71
|
+
index,
|
|
72
|
+
network,
|
|
73
|
+
`Expected string, received ${typeof privateKey}`
|
|
74
|
+
)
|
|
75
|
+
);
|
|
76
|
+
} else {
|
|
77
|
+
// private key validation
|
|
78
|
+
const pkWithPrefix = /^0x/.test(privateKey)
|
|
79
|
+
? privateKey
|
|
80
|
+
: `0x${privateKey}`;
|
|
81
|
+
|
|
82
|
+
// 32 bytes = 64 characters + 2 char prefix = 66
|
|
83
|
+
if (pkWithPrefix.length < 66) {
|
|
84
|
+
errors.push(
|
|
85
|
+
getPrivateKeyError(
|
|
86
|
+
index,
|
|
87
|
+
network,
|
|
88
|
+
"private key too short, expected 32 bytes"
|
|
89
|
+
)
|
|
90
|
+
);
|
|
91
|
+
} else if (pkWithPrefix.length > 66) {
|
|
92
|
+
errors.push(
|
|
93
|
+
getPrivateKeyError(
|
|
94
|
+
index,
|
|
95
|
+
network,
|
|
96
|
+
"private key too long, expected 32 bytes"
|
|
97
|
+
)
|
|
98
|
+
);
|
|
99
|
+
} else if (hexString.decode(pkWithPrefix).isLeft()) {
|
|
100
|
+
errors.push(
|
|
101
|
+
getPrivateKeyError(
|
|
102
|
+
index,
|
|
103
|
+
network,
|
|
104
|
+
"invalid hex character(s) found in string"
|
|
105
|
+
)
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
56
111
|
export function failure(es: ValidationError[]): string[] {
|
|
57
112
|
return es.map(getMessage);
|
|
58
113
|
}
|
|
@@ -91,6 +146,27 @@ export const hexString = new t.Type<string>(
|
|
|
91
146
|
t.identity
|
|
92
147
|
);
|
|
93
148
|
|
|
149
|
+
function isAddress(v: unknown): v is string {
|
|
150
|
+
if (typeof v !== "string") {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const trimmed = v.trim();
|
|
155
|
+
|
|
156
|
+
return (
|
|
157
|
+
trimmed.match(HEX_STRING_REGEX) !== null &&
|
|
158
|
+
trimmed.startsWith("0x") &&
|
|
159
|
+
trimmed.length === 42
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export const address = new t.Type<string>(
|
|
164
|
+
"address",
|
|
165
|
+
isAddress,
|
|
166
|
+
(u, c) => (isAddress(u) ? t.success(u) : t.failure(u, c)),
|
|
167
|
+
t.identity
|
|
168
|
+
);
|
|
169
|
+
|
|
94
170
|
export const decimalString = new t.Type<string>(
|
|
95
171
|
"decimal string",
|
|
96
172
|
isDecimalString,
|
|
@@ -117,12 +193,73 @@ const HardhatNetworkHDAccountsConfig = t.type({
|
|
|
117
193
|
...commonHDAccountsFields,
|
|
118
194
|
});
|
|
119
195
|
|
|
196
|
+
const Integer = new t.Type<number>(
|
|
197
|
+
"Integer",
|
|
198
|
+
(num: unknown): num is number => typeof num === "number",
|
|
199
|
+
(u, c) => {
|
|
200
|
+
try {
|
|
201
|
+
return typeof u === "string"
|
|
202
|
+
? t.success(parseInt(u, 10))
|
|
203
|
+
: t.failure(u, c);
|
|
204
|
+
} catch {
|
|
205
|
+
return t.failure(u, c);
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
t.identity
|
|
209
|
+
);
|
|
210
|
+
|
|
120
211
|
const HardhatNetworkForkingConfig = t.type({
|
|
121
212
|
enabled: optional(t.boolean),
|
|
122
213
|
url: t.string,
|
|
123
214
|
blockNumber: optional(t.number),
|
|
124
215
|
});
|
|
125
216
|
|
|
217
|
+
const HardhatNetworkMempoolConfig = t.type({
|
|
218
|
+
order: optional(
|
|
219
|
+
t.keyof(
|
|
220
|
+
fromEntries(
|
|
221
|
+
HARDHAT_MEMPOOL_SUPPORTED_ORDERS.map((order) => [order, null])
|
|
222
|
+
)
|
|
223
|
+
)
|
|
224
|
+
),
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
const HardhatNetworkMiningConfig = t.type({
|
|
228
|
+
auto: optional(t.boolean),
|
|
229
|
+
interval: optional(t.union([t.number, t.tuple([t.number, t.number])])),
|
|
230
|
+
mempool: optional(HardhatNetworkMempoolConfig),
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
function isValidHardforkName(name: string) {
|
|
234
|
+
return Object.values(HardforkName).includes(name as HardforkName);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
const HardforkNameType = new t.Type<HardforkName>(
|
|
238
|
+
Object.values(HardforkName)
|
|
239
|
+
.map((v) => `"${v}"`)
|
|
240
|
+
.join(" | "),
|
|
241
|
+
(name: unknown): name is HardforkName =>
|
|
242
|
+
typeof name === "string" && isValidHardforkName(name),
|
|
243
|
+
(u, c) => {
|
|
244
|
+
return typeof u === "string" && isValidHardforkName(u)
|
|
245
|
+
? t.success(u as HardforkName)
|
|
246
|
+
: t.failure(u, c);
|
|
247
|
+
},
|
|
248
|
+
t.identity
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
const HardhatNetworkHardforkHistory = t.record(
|
|
252
|
+
HardforkNameType,
|
|
253
|
+
t.number,
|
|
254
|
+
"HardhatNetworkHardforkHistory"
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
const HardhatNetworkChainConfig = t.type({
|
|
258
|
+
hardforkHistory: HardhatNetworkHardforkHistory,
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
const HardhatNetworkChainsConfig = t.record(Integer, HardhatNetworkChainConfig);
|
|
262
|
+
|
|
126
263
|
const commonNetworkConfigFields = {
|
|
127
264
|
chainId: optional(t.number),
|
|
128
265
|
from: optional(t.string),
|
|
@@ -149,6 +286,9 @@ const HardhatNetworkConfig = t.type({
|
|
|
149
286
|
initialDate: optional(t.string),
|
|
150
287
|
loggingEnabled: optional(t.boolean),
|
|
151
288
|
forking: optional(HardhatNetworkForkingConfig),
|
|
289
|
+
mining: optional(HardhatNetworkMiningConfig),
|
|
290
|
+
coinbase: optional(address),
|
|
291
|
+
chains: optional(HardhatNetworkChainsConfig),
|
|
152
292
|
});
|
|
153
293
|
|
|
154
294
|
const HDAccountsConfig = t.type({
|
|
@@ -224,7 +364,7 @@ export function validateConfig(config: any) {
|
|
|
224
364
|
}
|
|
225
365
|
|
|
226
366
|
export function getValidationErrors(config: any): string[] {
|
|
227
|
-
const errors = [];
|
|
367
|
+
const errors: string[] = [];
|
|
228
368
|
|
|
229
369
|
// These can't be validated with io-ts
|
|
230
370
|
if (config !== undefined && typeof config.networks === "object") {
|
|
@@ -237,8 +377,7 @@ export function getValidationErrors(config: any): string[] {
|
|
|
237
377
|
}
|
|
238
378
|
|
|
239
379
|
// Validating the accounts with io-ts leads to very confusing errors messages
|
|
240
|
-
const configExceptAccounts =
|
|
241
|
-
delete configExceptAccounts.accounts;
|
|
380
|
+
const { accounts, ...configExceptAccounts } = hardhatNetwork;
|
|
242
381
|
|
|
243
382
|
const netConfigResult = HardhatNetworkConfig.decode(configExceptAccounts);
|
|
244
383
|
if (netConfigResult.isLeft()) {
|
|
@@ -251,31 +390,37 @@ export function getValidationErrors(config: any): string[] {
|
|
|
251
390
|
);
|
|
252
391
|
}
|
|
253
392
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
393
|
+
// manual validation of accounts
|
|
394
|
+
if (Array.isArray(accounts)) {
|
|
395
|
+
for (const [index, account] of accounts.entries()) {
|
|
396
|
+
if (typeof account !== "object") {
|
|
257
397
|
errors.push(
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
398
|
+
getPrivateKeyError(
|
|
399
|
+
index,
|
|
400
|
+
HARDHAT_NETWORK_NAME,
|
|
401
|
+
`Expected object, received ${typeof account}`
|
|
262
402
|
)
|
|
263
403
|
);
|
|
404
|
+
continue;
|
|
264
405
|
}
|
|
265
406
|
|
|
266
|
-
|
|
407
|
+
const { privateKey, balance } = account;
|
|
408
|
+
|
|
409
|
+
validatePrivateKey(privateKey, index, HARDHAT_NETWORK_NAME, errors);
|
|
410
|
+
|
|
411
|
+
if (typeof balance !== "string") {
|
|
267
412
|
errors.push(
|
|
268
413
|
getErrorMessage(
|
|
269
414
|
`HardhatConfig.networks.${HARDHAT_NETWORK_NAME}.accounts[].balance`,
|
|
270
|
-
|
|
415
|
+
balance,
|
|
271
416
|
"string"
|
|
272
417
|
)
|
|
273
418
|
);
|
|
274
|
-
} else if (decimalString.decode(
|
|
419
|
+
} else if (decimalString.decode(balance).isLeft()) {
|
|
275
420
|
errors.push(
|
|
276
421
|
getErrorMessage(
|
|
277
422
|
`HardhatConfig.networks.${HARDHAT_NETWORK_NAME}.accounts[].balance`,
|
|
278
|
-
|
|
423
|
+
balance,
|
|
279
424
|
"decimal(wei)"
|
|
280
425
|
)
|
|
281
426
|
);
|
|
@@ -319,6 +464,29 @@ export function getValidationErrors(config: any): string[] {
|
|
|
319
464
|
);
|
|
320
465
|
}
|
|
321
466
|
}
|
|
467
|
+
|
|
468
|
+
if (hardhatNetwork.chains !== undefined) {
|
|
469
|
+
Object.entries(hardhatNetwork.chains).forEach((chainEntry) => {
|
|
470
|
+
const [chainId, chainConfig] = chainEntry as [
|
|
471
|
+
string,
|
|
472
|
+
HardhatNetworkChainUserConfig
|
|
473
|
+
];
|
|
474
|
+
const { hardforkHistory } = chainConfig;
|
|
475
|
+
if (hardforkHistory !== undefined) {
|
|
476
|
+
Object.keys(hardforkHistory).forEach((hardforkName) => {
|
|
477
|
+
if (!HARDHAT_NETWORK_SUPPORTED_HARDFORKS.includes(hardforkName)) {
|
|
478
|
+
errors.push(
|
|
479
|
+
getErrorMessage(
|
|
480
|
+
`HardhatConfig.networks.${HARDHAT_NETWORK_NAME}.chains[${chainId}].hardforkHistory`,
|
|
481
|
+
hardforkName,
|
|
482
|
+
`"${HARDHAT_NETWORK_SUPPORTED_HARDFORKS.join('" | "')}"`
|
|
483
|
+
)
|
|
484
|
+
);
|
|
485
|
+
}
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
}
|
|
322
490
|
}
|
|
323
491
|
|
|
324
492
|
for (const [networkName, netConfig] of Object.entries<any>(
|
|
@@ -340,7 +508,9 @@ export function getValidationErrors(config: any): string[] {
|
|
|
340
508
|
}
|
|
341
509
|
}
|
|
342
510
|
|
|
343
|
-
const
|
|
511
|
+
const { accounts, ...configExceptAccounts } = netConfig;
|
|
512
|
+
|
|
513
|
+
const netConfigResult = HttpNetworkConfig.decode(configExceptAccounts);
|
|
344
514
|
if (netConfigResult.isLeft()) {
|
|
345
515
|
errors.push(
|
|
346
516
|
getErrorMessage(
|
|
@@ -350,6 +520,38 @@ export function getValidationErrors(config: any): string[] {
|
|
|
350
520
|
)
|
|
351
521
|
);
|
|
352
522
|
}
|
|
523
|
+
|
|
524
|
+
// manual validation of accounts
|
|
525
|
+
if (Array.isArray(accounts)) {
|
|
526
|
+
accounts.forEach((privateKey, index) =>
|
|
527
|
+
validatePrivateKey(privateKey, index, networkName, errors)
|
|
528
|
+
);
|
|
529
|
+
} else if (typeof accounts === "object") {
|
|
530
|
+
const hdConfigResult = HDAccountsConfig.decode(accounts);
|
|
531
|
+
if (hdConfigResult.isLeft()) {
|
|
532
|
+
errors.push(
|
|
533
|
+
getErrorMessage(
|
|
534
|
+
`HardhatConfig.networks.${networkName}`,
|
|
535
|
+
accounts,
|
|
536
|
+
"HttpNetworkHDAccountsConfig"
|
|
537
|
+
)
|
|
538
|
+
);
|
|
539
|
+
}
|
|
540
|
+
} else if (typeof accounts === "string") {
|
|
541
|
+
if (accounts !== "remote") {
|
|
542
|
+
errors.push(
|
|
543
|
+
`Invalid 'accounts' entry for network '${networkName}': expected an array of accounts or the string 'remote', but got the string '${accounts}'`
|
|
544
|
+
);
|
|
545
|
+
}
|
|
546
|
+
} else if (accounts !== undefined) {
|
|
547
|
+
errors.push(
|
|
548
|
+
getErrorMessage(
|
|
549
|
+
`HardhatConfig.networks.${networkName}.accounts`,
|
|
550
|
+
accounts,
|
|
551
|
+
'"remote" | string[] | HttpNetworkHDAccountsConfig | undefined'
|
|
552
|
+
)
|
|
553
|
+
);
|
|
554
|
+
}
|
|
353
555
|
}
|
|
354
556
|
}
|
|
355
557
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BN } from "ethereumjs-util";
|
|
2
2
|
|
|
3
3
|
import { HardhatNetworkConfig } from "../../../types";
|
|
4
|
+
import { HardforkName } from "../../util/hardforks";
|
|
4
5
|
import { HARDHAT_NETWORK_NAME } from "../../constants";
|
|
5
6
|
|
|
6
7
|
export const DEFAULT_SOLC_VERSION = "0.7.3";
|
|
@@ -35,18 +36,81 @@ export const defaultHardhatNetworkParams: Omit<
|
|
|
35
36
|
HardhatNetworkConfig,
|
|
36
37
|
"gas" | "initialDate"
|
|
37
38
|
> = {
|
|
38
|
-
hardfork: "
|
|
39
|
+
hardfork: "arrowGlacier",
|
|
39
40
|
blockGasLimit: 30_000_000,
|
|
40
41
|
gasPrice: HARDHAT_NETWORK_DEFAULT_GAS_PRICE,
|
|
41
42
|
chainId: 31337,
|
|
42
43
|
throwOnTransactionFailures: true,
|
|
43
44
|
throwOnCallFailures: true,
|
|
44
45
|
allowUnlimitedContractSize: false,
|
|
45
|
-
mining: {
|
|
46
|
+
mining: {
|
|
47
|
+
auto: true,
|
|
48
|
+
interval: 0,
|
|
49
|
+
mempool: {
|
|
50
|
+
order: "priority",
|
|
51
|
+
},
|
|
52
|
+
},
|
|
46
53
|
accounts: defaultHardhatNetworkHdAccountsConfigParams,
|
|
47
54
|
loggingEnabled: false,
|
|
48
55
|
gasMultiplier: DEFAULT_GAS_MULTIPLIER,
|
|
49
56
|
minGasPrice: new BN(0),
|
|
57
|
+
chains: new Map([
|
|
58
|
+
[
|
|
59
|
+
// block numbers below were taken from https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/common/src/chains
|
|
60
|
+
1, // mainnet
|
|
61
|
+
{
|
|
62
|
+
hardforkHistory: new Map([
|
|
63
|
+
[HardforkName.BYZANTIUM, 4370000],
|
|
64
|
+
[HardforkName.CONSTANTINOPLE, 7280000],
|
|
65
|
+
[HardforkName.PETERSBURG, 7280000],
|
|
66
|
+
[HardforkName.ISTANBUL, 9069000],
|
|
67
|
+
[HardforkName.MUIR_GLACIER, 9200000],
|
|
68
|
+
[HardforkName.BERLIN, 12244000],
|
|
69
|
+
[HardforkName.LONDON, 12965000],
|
|
70
|
+
]),
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
[
|
|
74
|
+
3, // ropsten
|
|
75
|
+
{
|
|
76
|
+
hardforkHistory: new Map([
|
|
77
|
+
[HardforkName.BYZANTIUM, 1700000],
|
|
78
|
+
[HardforkName.CONSTANTINOPLE, 4230000],
|
|
79
|
+
[HardforkName.PETERSBURG, 4939394],
|
|
80
|
+
[HardforkName.ISTANBUL, 6485846],
|
|
81
|
+
[HardforkName.MUIR_GLACIER, 7117117],
|
|
82
|
+
[HardforkName.BERLIN, 9812189],
|
|
83
|
+
[HardforkName.LONDON, 10499401],
|
|
84
|
+
]),
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
4, // rinkeby
|
|
89
|
+
{
|
|
90
|
+
hardforkHistory: new Map([
|
|
91
|
+
[HardforkName.BYZANTIUM, 1035301],
|
|
92
|
+
[HardforkName.CONSTANTINOPLE, 3660663],
|
|
93
|
+
[HardforkName.PETERSBURG, 4321234],
|
|
94
|
+
[HardforkName.ISTANBUL, 5435345],
|
|
95
|
+
[HardforkName.BERLIN, 8290928],
|
|
96
|
+
[HardforkName.LONDON, 8897988],
|
|
97
|
+
]),
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
[
|
|
101
|
+
42, // kovan
|
|
102
|
+
{
|
|
103
|
+
hardforkHistory: new Map([
|
|
104
|
+
[HardforkName.BYZANTIUM, 5067000],
|
|
105
|
+
[HardforkName.CONSTANTINOPLE, 9200000],
|
|
106
|
+
[HardforkName.PETERSBURG, 10255201],
|
|
107
|
+
[HardforkName.ISTANBUL, 14111141],
|
|
108
|
+
[HardforkName.BERLIN, 24770900],
|
|
109
|
+
[HardforkName.LONDON, 26741100],
|
|
110
|
+
]),
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
]),
|
|
50
114
|
};
|
|
51
115
|
|
|
52
116
|
export const defaultHttpNetworkParams = {
|
|
@@ -571,7 +571,7 @@ Please double check how you invoked Hardhat or ran your task.`,
|
|
|
571
571
|
},
|
|
572
572
|
MISSING_TASK_ARGUMENT: {
|
|
573
573
|
number: 306,
|
|
574
|
-
message: "
|
|
574
|
+
message: "The '%param%' parameter expects a value, but none was passed.",
|
|
575
575
|
title: "Missing task argument",
|
|
576
576
|
description: `You tried to run a task, but one of its required arguments was missing.
|
|
577
577
|
|
|
@@ -884,7 +884,7 @@ Please use a newer, supported version.`,
|
|
|
884
884
|
ARTIFACTS: {
|
|
885
885
|
NOT_FOUND: {
|
|
886
886
|
number: 700,
|
|
887
|
-
message: 'Artifact for contract "%contractName%" not found.',
|
|
887
|
+
message: 'Artifact for contract "%contractName%" not found. %suggestion%',
|
|
888
888
|
title: "Artifact not found",
|
|
889
889
|
description: `Tried to import a nonexistent artifact.
|
|
890
890
|
|
|
@@ -6,6 +6,7 @@ import { rpcAddress, rpcData, rpcHash, rpcQuantity } from "../base-types";
|
|
|
6
6
|
export type RpcLog = t.TypeOf<typeof rpcLog>;
|
|
7
7
|
export const rpcLog = t.type(
|
|
8
8
|
{
|
|
9
|
+
logIndex: nullable(rpcQuantity),
|
|
9
10
|
transactionIndex: nullable(rpcQuantity),
|
|
10
11
|
transactionHash: nullable(rpcHash),
|
|
11
12
|
blockHash: nullable(rpcHash),
|
|
@@ -185,14 +185,19 @@ export const inputFile: CLIArgumentType<string> = {
|
|
|
185
185
|
throw new Error(`${strValue} is a directory, not a file`);
|
|
186
186
|
}
|
|
187
187
|
} catch (error) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
188
|
+
if (error instanceof Error) {
|
|
189
|
+
throw new HardhatError(
|
|
190
|
+
ERRORS.ARGUMENTS.INVALID_INPUT_FILE,
|
|
191
|
+
{
|
|
192
|
+
name: argName,
|
|
193
|
+
value: strValue,
|
|
194
|
+
},
|
|
195
|
+
error
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
|
|
200
|
+
throw error;
|
|
196
201
|
}
|
|
197
202
|
|
|
198
203
|
return strValue;
|
|
@@ -212,15 +217,20 @@ export const inputFile: CLIArgumentType<string> = {
|
|
|
212
217
|
inputFile.parse(argName, value);
|
|
213
218
|
} catch (error) {
|
|
214
219
|
// the input value is considered invalid, throw error.
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
220
|
+
if (error instanceof Error) {
|
|
221
|
+
throw new HardhatError(
|
|
222
|
+
ERRORS.ARGUMENTS.INVALID_VALUE_FOR_TYPE,
|
|
223
|
+
{
|
|
224
|
+
value,
|
|
225
|
+
name: argName,
|
|
226
|
+
type: inputFile.name,
|
|
227
|
+
},
|
|
228
|
+
error
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
|
|
233
|
+
throw error;
|
|
224
234
|
}
|
|
225
235
|
},
|
|
226
236
|
};
|
|
@@ -231,14 +241,19 @@ export const json: CLIArgumentType<any> = {
|
|
|
231
241
|
try {
|
|
232
242
|
return JSON.parse(strValue);
|
|
233
243
|
} catch (error) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
244
|
+
if (error instanceof Error) {
|
|
245
|
+
throw new HardhatError(
|
|
246
|
+
ERRORS.ARGUMENTS.INVALID_JSON_ARGUMENT,
|
|
247
|
+
{
|
|
248
|
+
param: argName,
|
|
249
|
+
error: error.message,
|
|
250
|
+
},
|
|
251
|
+
error
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
|
|
256
|
+
throw error;
|
|
242
257
|
}
|
|
243
258
|
},
|
|
244
259
|
|