hardhat 2.11.0-dev.0 → 2.11.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/clean.js +2 -1
- package/builtin-tasks/clean.js.map +1 -1
- package/builtin-tasks/compile.js +52 -95
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/flatten.js +2 -21
- package/builtin-tasks/flatten.js.map +1 -1
- package/builtin-tasks/node.js +1 -1
- package/builtin-tasks/node.js.map +1 -1
- package/builtin-tasks/test.js +3 -3
- package/builtin-tasks/test.js.map +1 -1
- package/builtin-tasks/utils/solidity-files-cache.d.ts.map +1 -1
- package/builtin-tasks/utils/solidity-files-cache.js +5 -6
- package/builtin-tasks/utils/solidity-files-cache.js.map +1 -1
- package/internal/artifacts.d.ts +3 -11
- package/internal/artifacts.d.ts.map +1 -1
- package/internal/artifacts.js +266 -133
- package/internal/artifacts.js.map +1 -1
- package/internal/cli/cli.js +26 -12
- package/internal/cli/cli.js.map +1 -1
- package/internal/core/config/config-loading.js +2 -2
- 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 +11 -31
- package/internal/core/config/config-resolution.js.map +1 -1
- package/internal/core/config/default-config.js +1 -1
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/errors-list.d.ts +7 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +28 -11
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/errors.d.ts +2 -1
- package/internal/core/errors.d.ts.map +1 -1
- package/internal/core/errors.js +5 -1
- package/internal/core/errors.js.map +1 -1
- package/internal/core/execution-mode.d.ts.map +1 -1
- package/internal/core/execution-mode.js +2 -21
- package/internal/core/execution-mode.js.map +1 -1
- package/internal/core/flamegraph.d.ts +4 -0
- package/internal/core/flamegraph.d.ts.map +1 -1
- package/internal/core/flamegraph.js +13 -3
- package/internal/core/flamegraph.js.map +1 -1
- package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/base-types.js +12 -12
- package/internal/core/jsonrpc/types/base-types.js.map +1 -1
- package/internal/core/params/hardhat-params.d.ts.map +1 -1
- package/internal/core/params/hardhat-params.js +18 -0
- package/internal/core/params/hardhat-params.js.map +1 -1
- package/internal/core/providers/accounts.js +9 -9
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +5 -6
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/gas-providers.d.ts +2 -2
- package/internal/core/providers/util.js +1 -1
- package/internal/core/providers/util.js.map +1 -1
- package/internal/core/runtime-environment.d.ts +6 -0
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +72 -6
- 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 +6 -2
- package/internal/core/typescript-support.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts +1 -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/provider/BlockchainBase.d.ts +4 -4
- package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.js +31 -12
- package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.d.ts +3 -3
- package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.js +15 -15
- package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +3 -3
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.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/PoolState.d.ts +1 -1
- package/internal/hardhat-network/provider/PoolState.d.ts.map +1 -1
- package/internal/hardhat-network/provider/PoolState.js +21 -2
- package/internal/hardhat-network/provider/PoolState.js.map +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.js +22 -3
- package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
- package/internal/hardhat-network/provider/TxPool.d.ts +4 -4
- package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TxPool.js +35 -16
- package/internal/hardhat-network/provider/TxPool.js.map +1 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js +4 -4
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
- package/internal/hardhat-network/provider/filter.d.ts +1 -1
- package/internal/hardhat-network/provider/filter.d.ts.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/ForkBlockchain.d.ts +3 -3
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +13 -12
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +3 -5
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.js +36 -40
- package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts +1 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +2 -2
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +22 -22
- package/internal/hardhat-network/provider/modules/eth.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 +20 -6
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.d.ts +2 -2
- package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.js +14 -14
- package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
- package/internal/hardhat-network/provider/modules/net.d.ts +1 -1
- package/internal/hardhat-network/provider/modules/net.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/personal.js +3 -3
- package/internal/hardhat-network/provider/modules/personal.js.map +1 -1
- package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/web3.js +4 -5
- package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +4 -4
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +5 -4
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +71 -49
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +4 -4
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.js +24 -5
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +2 -2
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +3 -3
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.d.ts +1 -1
- package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +5 -4
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +4 -4
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +8 -8
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +3 -3
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +8 -8
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +3 -3
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +5 -5
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +4 -4
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +25 -6
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +3 -3
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +25 -6
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +3 -3
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +2 -2
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +2 -2
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.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/makeCommon.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.js +2 -2
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.js +4 -4
- package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +3 -3
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +4 -4
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
- package/internal/hardhat-network/provider/utils/random.d.ts +2 -1
- package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/random.js +10 -9
- package/internal/hardhat-network/provider/utils/random.js.map +1 -1
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +21 -2
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +1 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.js +45 -45
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.js +1 -1
- package/internal/hardhat-network/stack-traces/constants.js.map +1 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.js +2 -2
- package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +13 -13
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +2 -2
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/model.js +6 -6
- package/internal/hardhat-network/stack-traces/model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/panic-errors.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/panic-errors.js +9 -9
- package/internal/hardhat-network/stack-traces/panic-errors.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/solidity-stack-trace.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +0 -2
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +2 -4
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +27 -25
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +2 -2
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +15 -12
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
- package/internal/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +0 -2
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/internal/solidity/compilation-job.d.ts.map +1 -1
- package/internal/solidity/compilation-job.js +6 -7
- package/internal/solidity/compilation-job.js.map +1 -1
- package/internal/solidity/compiler/downloader.d.ts +66 -40
- package/internal/solidity/compiler/downloader.d.ts.map +1 -1
- package/internal/solidity/compiler/downloader.js +180 -154
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/solidity/compiler/index.d.ts +8 -4
- package/internal/solidity/compiler/index.d.ts.map +1 -1
- package/internal/solidity/compiler/index.js +1 -1
- package/internal/solidity/compiler/index.js.map +1 -1
- package/internal/solidity/dependencyGraph.d.ts.map +1 -1
- package/internal/solidity/dependencyGraph.js +3 -5
- package/internal/solidity/dependencyGraph.js.map +1 -1
- package/internal/solidity/parse.d.ts.map +1 -1
- package/internal/solidity/parse.js +2 -58
- package/internal/solidity/parse.js.map +1 -1
- package/internal/solidity/resolver.d.ts +1 -0
- package/internal/solidity/resolver.d.ts.map +1 -1
- package/internal/solidity/resolver.js +33 -8
- package/internal/solidity/resolver.js.map +1 -1
- package/internal/util/bigint.d.ts +13 -24
- package/internal/util/bigint.d.ts.map +1 -1
- package/internal/util/bigint.js +22 -29
- package/internal/util/bigint.js.map +1 -1
- package/internal/util/download.d.ts.map +1 -1
- package/internal/util/download.js +1 -1
- package/internal/util/download.js.map +1 -1
- package/internal/util/fs-utils.d.ts +26 -9
- package/internal/util/fs-utils.d.ts.map +1 -1
- package/internal/util/fs-utils.js +111 -68
- package/internal/util/fs-utils.js.map +1 -1
- package/internal/util/glob.d.ts +13 -0
- package/internal/util/glob.d.ts.map +1 -1
- package/internal/util/glob.js +13 -0
- package/internal/util/glob.js.map +1 -1
- package/internal/util/keccak.d.ts +3 -0
- package/internal/util/keccak.d.ts.map +1 -0
- package/internal/util/keccak.js +12 -0
- package/internal/util/keccak.js.map +1 -0
- package/internal/util/scripts-runner.d.ts.map +1 -1
- package/internal/util/scripts-runner.js +7 -4
- package/internal/util/scripts-runner.js.map +1 -1
- package/package.json +15 -15
- package/register.js +1 -3
- package/register.js.map +1 -1
- package/sample-projects/javascript/contracts/Lock.sol +3 -3
- package/sample-projects/typescript/contracts/Lock.sol +3 -3
- package/src/builtin-tasks/clean.ts +9 -6
- package/src/builtin-tasks/compile.ts +96 -128
- package/src/builtin-tasks/flatten.ts +2 -3
- package/src/builtin-tasks/node.ts +2 -2
- package/src/builtin-tasks/test.ts +7 -3
- package/src/builtin-tasks/utils/solidity-files-cache.ts +9 -8
- package/src/internal/artifacts.ts +392 -182
- package/src/internal/cli/cli.ts +43 -17
- package/src/internal/core/config/config-loading.ts +1 -1
- package/src/internal/core/config/config-resolution.ts +12 -24
- package/src/internal/core/config/default-config.ts +1 -1
- package/src/internal/core/errors-list.ts +29 -13
- package/src/internal/core/errors.ts +10 -2
- package/src/internal/core/execution-mode.ts +2 -3
- package/src/internal/core/flamegraph.ts +270 -0
- package/src/internal/core/jsonrpc/types/base-types.ts +7 -3
- package/src/internal/core/params/hardhat-params.ts +18 -0
- package/src/internal/core/providers/accounts.ts +8 -8
- package/src/internal/core/providers/construction.ts +10 -8
- package/src/internal/core/providers/gas-providers.ts +2 -2
- package/src/internal/core/providers/util.ts +1 -1
- package/src/internal/core/runtime-environment.ts +103 -10
- package/src/internal/core/task-profiling.ts +56 -0
- package/src/internal/core/typescript-support.ts +11 -2
- package/src/internal/hardhat-network/jsonrpc/client.ts +1 -1
- package/src/internal/hardhat-network/provider/BlockchainBase.ts +6 -6
- package/src/internal/hardhat-network/provider/BlockchainData.ts +5 -5
- package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +4 -4
- package/src/internal/hardhat-network/provider/PoolState.ts +2 -2
- package/src/internal/hardhat-network/provider/TransactionQueue.ts +2 -2
- package/src/internal/hardhat-network/provider/TxPool.ts +12 -5
- package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +3 -3
- package/src/internal/hardhat-network/provider/filter.ts +2 -2
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +10 -10
- package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +12 -18
- package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +1 -1
- package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +5 -2
- package/src/internal/hardhat-network/provider/modules/eth.ts +10 -6
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +25 -1
- package/src/internal/hardhat-network/provider/modules/logger.ts +3 -3
- package/src/internal/hardhat-network/provider/modules/net.ts +1 -1
- package/src/internal/hardhat-network/provider/modules/personal.ts +1 -1
- package/src/internal/hardhat-network/provider/modules/web3.ts +4 -6
- package/src/internal/hardhat-network/provider/node-types.ts +6 -6
- package/src/internal/hardhat-network/provider/node.ts +25 -12
- package/src/internal/hardhat-network/provider/output.ts +6 -6
- package/src/internal/hardhat-network/provider/provider.ts +7 -6
- package/src/internal/hardhat-network/provider/return-data.ts +9 -5
- package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +9 -5
- package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +8 -4
- package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +4 -4
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +8 -5
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +4 -4
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +3 -3
- package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +2 -2
- package/src/internal/hardhat-network/provider/utils/makeAccount.ts +6 -1
- package/src/internal/hardhat-network/provider/utils/makeCommon.ts +1 -1
- package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +7 -3
- package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +6 -6
- package/src/internal/hardhat-network/provider/utils/random.ts +17 -14
- package/src/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/constants.ts +2 -0
- package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/debug.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +3 -3
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/model.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/panic-errors.ts +11 -11
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +1 -4
- package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +31 -17
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +29 -14
- package/src/internal/lib/hardhat-lib.ts +0 -3
- package/src/internal/solidity/compilation-job.ts +11 -11
- package/src/internal/solidity/compiler/downloader.ts +271 -243
- package/src/internal/solidity/compiler/index.ts +13 -7
- package/src/internal/solidity/dependencyGraph.ts +12 -8
- package/src/internal/solidity/parse.ts +4 -70
- package/src/internal/solidity/resolver.ts +36 -8
- package/src/internal/util/bigint.ts +25 -43
- package/src/internal/util/download.ts +2 -2
- package/src/internal/util/fs-utils.ts +223 -0
- package/src/internal/util/glob.ts +13 -0
- package/src/internal/util/keccak.ts +5 -0
- package/src/internal/util/scripts-runner.ts +13 -4
- package/src/internal/util/wei-values.ts +1 -1
- package/src/internal/{hardhat-network/vendor → vendor}/await-semaphore/index.ts +0 -0
- package/src/profiling.ts +37 -0
- package/src/register.ts +1 -4
- package/src/types/artifacts.ts +21 -0
- package/src/types/config.ts +7 -7
- package/src/types/runtime.ts +2 -0
- package/src/utils/source-names.ts +36 -26
- package/types/artifacts.d.ts +19 -0
- package/types/artifacts.d.ts.map +1 -1
- package/types/config.d.ts +7 -7
- package/types/runtime.d.ts +2 -0
- package/types/runtime.d.ts.map +1 -1
- package/utils/source-names.d.ts.map +1 -1
- package/utils/source-names.js +25 -36
- package/utils/source-names.js.map +1 -1
- package/internal/hardhat-network/provider/fork/random.d.ts +0 -7
- package/internal/hardhat-network/provider/fork/random.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/random.js +0 -32
- package/internal/hardhat-network/provider/fork/random.js.map +0 -1
- package/internal/hardhat-network/provider/utils/bnToHex.d.ts +0 -3
- package/internal/hardhat-network/provider/utils/bnToHex.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/bnToHex.js +0 -9
- package/internal/hardhat-network/provider/utils/bnToHex.js.map +0 -1
- package/internal/hardhat-network/provider/utils/makeForkCommon.d.ts +0 -4
- package/internal/hardhat-network/provider/utils/makeForkCommon.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/makeForkCommon.js +0 -16
- package/internal/hardhat-network/provider/utils/makeForkCommon.js.map +0 -1
- package/internal/hardhat-network/vendor/await-semaphore/index.d.ts +0 -12
- package/internal/hardhat-network/vendor/await-semaphore/index.d.ts.map +0 -1
- package/internal/hardhat-network/vendor/await-semaphore/index.js +0 -64
- package/internal/hardhat-network/vendor/await-semaphore/index.js.map +0 -1
- package/internal/util/antlr-prototype-pollution-workaround.d.ts +0 -16
- package/internal/util/antlr-prototype-pollution-workaround.d.ts.map +0 -1
- package/internal/util/antlr-prototype-pollution-workaround.js +0 -22
- package/internal/util/antlr-prototype-pollution-workaround.js.map +0 -1
- package/src/internal/util/antlr-prototype-pollution-workaround.ts +0 -17
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ERROR } from "@
|
|
1
|
+
import { ERROR } from "@nomicfoundation/ethereumjs-evm/dist/exceptions";
|
|
2
2
|
import { defaultAbiCoder as abi } from "@ethersproject/abi";
|
|
3
3
|
import semver from "semver";
|
|
4
4
|
|
|
@@ -492,7 +492,7 @@ export class ErrorInferrer {
|
|
|
492
492
|
// if the error comes from a call to a zero-initialized function,
|
|
493
493
|
// we remove the last frame, which represents the call, to avoid
|
|
494
494
|
// having duplicated frames
|
|
495
|
-
if (errorCode ===
|
|
495
|
+
if (errorCode === 0x51n) {
|
|
496
496
|
stacktrace.splice(-1);
|
|
497
497
|
}
|
|
498
498
|
|
|
@@ -1125,7 +1125,7 @@ export class ErrorInferrer {
|
|
|
1125
1125
|
private _instructionWithinFunctionToPanicStackTraceEntry(
|
|
1126
1126
|
trace: DecodedEvmMessageTrace,
|
|
1127
1127
|
inst: Instruction,
|
|
1128
|
-
errorCode:
|
|
1128
|
+
errorCode: bigint
|
|
1129
1129
|
): PanicErrorStackTraceEntry {
|
|
1130
1130
|
return {
|
|
1131
1131
|
type: StackTraceEntryType.PANIC_ERROR,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function panicErrorCodeToMessage(errorCode:
|
|
1
|
+
export function panicErrorCodeToMessage(errorCode: bigint): string {
|
|
2
2
|
const reason = panicErrorCodeToReason(errorCode);
|
|
3
3
|
|
|
4
4
|
if (reason !== undefined) {
|
|
@@ -8,25 +8,25 @@ export function panicErrorCodeToMessage(errorCode: number): string {
|
|
|
8
8
|
return `reverted with unknown panic code 0x${errorCode.toString(16)}`;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
function panicErrorCodeToReason(errorCode:
|
|
11
|
+
function panicErrorCodeToReason(errorCode: bigint): string | undefined {
|
|
12
12
|
switch (errorCode) {
|
|
13
|
-
case
|
|
13
|
+
case 0x1n:
|
|
14
14
|
return "Assertion error";
|
|
15
|
-
case
|
|
15
|
+
case 0x11n:
|
|
16
16
|
return "Arithmetic operation underflowed or overflowed outside of an unchecked block";
|
|
17
|
-
case
|
|
17
|
+
case 0x12n:
|
|
18
18
|
return "Division or modulo division by zero";
|
|
19
|
-
case
|
|
19
|
+
case 0x21n:
|
|
20
20
|
return "Tried to convert a value into an enum, but the value was too big or negative";
|
|
21
|
-
case
|
|
21
|
+
case 0x22n:
|
|
22
22
|
return "Incorrectly encoded storage byte array";
|
|
23
|
-
case
|
|
23
|
+
case 0x31n:
|
|
24
24
|
return ".pop() was called on an empty array";
|
|
25
|
-
case
|
|
25
|
+
case 0x32n:
|
|
26
26
|
return "Array accessed at an out-of-bounds or negative index";
|
|
27
|
-
case
|
|
27
|
+
case 0x41n:
|
|
28
28
|
return "Too much memory was allocated, or an array was created that is too large";
|
|
29
|
-
case
|
|
29
|
+
case 0x51n:
|
|
30
30
|
return "Called a zero-initialized variable of internal function type";
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ERROR } from "@
|
|
1
|
+
import { ERROR } from "@nomicfoundation/ethereumjs-evm/dist/exceptions";
|
|
2
2
|
import { ReturnData } from "../provider/return-data";
|
|
3
3
|
|
|
4
4
|
import {
|
|
@@ -32,9 +32,6 @@ import {
|
|
|
32
32
|
StackTraceEntryType,
|
|
33
33
|
} from "./solidity-stack-trace";
|
|
34
34
|
|
|
35
|
-
export const SUPPORTED_SOLIDITY_VERSION_RANGE = "<=0.8.16";
|
|
36
|
-
export const FIRST_SOLC_VERSION_SUPPORTED = "0.5.1";
|
|
37
|
-
|
|
38
35
|
export class SolidityTracer {
|
|
39
36
|
private _errorInferrer = new ErrorInferrer();
|
|
40
37
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { TypedTransaction } from "@
|
|
2
|
-
import { AfterTxEvent, VM } from "@
|
|
3
|
-
import {
|
|
4
|
-
import { InterpreterStep } from "@
|
|
5
|
-
import { Message } from "@
|
|
1
|
+
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
2
|
+
import { AfterTxEvent, VM } from "@nomicfoundation/ethereumjs-vm";
|
|
3
|
+
import { EVMResult } from "@nomicfoundation/ethereumjs-evm";
|
|
4
|
+
import { InterpreterStep } from "@nomicfoundation/ethereumjs-evm/dist/interpreter";
|
|
5
|
+
import { Message } from "@nomicfoundation/ethereumjs-evm/dist/message";
|
|
6
6
|
import {
|
|
7
7
|
Address,
|
|
8
8
|
bufferToBigInt,
|
|
9
9
|
setLengthLeft,
|
|
10
10
|
toBuffer,
|
|
11
|
-
} from "@
|
|
11
|
+
} from "@nomicfoundation/ethereumjs-util";
|
|
12
12
|
|
|
13
13
|
import { assertHardhatInvariant } from "../../core/errors";
|
|
14
14
|
import { RpcDebugTracingConfig } from "../../core/jsonrpc/types/input/debugTraceTransaction";
|
|
15
15
|
import { InvalidInputError } from "../../core/providers/errors";
|
|
16
16
|
import { RpcDebugTraceOutput, RpcStructLog } from "../provider/output";
|
|
17
|
-
import
|
|
17
|
+
import * as BigIntUtils from "../../util/bigint";
|
|
18
18
|
|
|
19
19
|
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
20
20
|
|
|
@@ -90,26 +90,40 @@ export class VMDebugTracer {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
private _enableTracing(config: RpcDebugTracingConfig) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
assertHardhatInvariant(
|
|
94
|
+
this._vm.evm.events !== undefined,
|
|
95
|
+
"EVM should have an 'events' property"
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
this._vm.events.on("beforeTx", this._beforeTxHandler);
|
|
99
|
+
|
|
100
|
+
this._vm.evm.events.on("beforeMessage", this._beforeMessageHandler);
|
|
101
|
+
this._vm.evm.events.on("step", this._stepHandler);
|
|
102
|
+
this._vm.evm.events.on("afterMessage", this._afterMessageHandler);
|
|
103
|
+
|
|
104
|
+
this._vm.events.on("afterTx", this._afterTxHandler);
|
|
105
|
+
|
|
98
106
|
this._config = config;
|
|
99
107
|
}
|
|
100
108
|
|
|
101
109
|
private _disableTracing() {
|
|
102
|
-
|
|
103
|
-
|
|
110
|
+
assertHardhatInvariant(
|
|
111
|
+
this._vm.evm.events !== undefined,
|
|
112
|
+
"EVM should have an 'events' property"
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
this._vm.events.removeListener("beforeTx", this._beforeTxHandler);
|
|
116
|
+
|
|
117
|
+
this._vm.evm.events.removeListener(
|
|
104
118
|
"beforeMessage",
|
|
105
119
|
this._beforeMessageHandler
|
|
106
120
|
);
|
|
107
|
-
|
|
108
|
-
|
|
121
|
+
this._vm.evm.events.removeListener("step", this._stepHandler);
|
|
122
|
+
this._vm.evm.events.removeListener(
|
|
109
123
|
"afterMessage",
|
|
110
124
|
this._afterMessageHandler
|
|
111
125
|
);
|
|
112
|
-
this._vm.removeListener("afterTx", this._afterTxHandler);
|
|
126
|
+
this._vm.events.removeListener("afterTx", this._afterTxHandler);
|
|
113
127
|
this._config = undefined;
|
|
114
128
|
}
|
|
115
129
|
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
EVMResult,
|
|
3
|
+
getActivePrecompiles,
|
|
4
|
+
} from "@nomicfoundation/ethereumjs-evm";
|
|
5
|
+
import { InterpreterStep } from "@nomicfoundation/ethereumjs-evm/dist/interpreter";
|
|
6
|
+
import { Message } from "@nomicfoundation/ethereumjs-evm/dist/message";
|
|
7
|
+
import { Address, bufferToBigInt } from "@nomicfoundation/ethereumjs-util";
|
|
8
|
+
import { VM } from "@nomicfoundation/ethereumjs-vm";
|
|
9
|
+
import { assertHardhatInvariant } from "../../core/errors";
|
|
6
10
|
|
|
7
11
|
import {
|
|
8
12
|
CallMessageTrace,
|
|
@@ -38,9 +42,14 @@ export class VMTracer {
|
|
|
38
42
|
if (this._enabled) {
|
|
39
43
|
return;
|
|
40
44
|
}
|
|
41
|
-
(
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
assertHardhatInvariant(
|
|
46
|
+
this._vm.evm.events !== undefined,
|
|
47
|
+
"EVM should have an 'events' property"
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
this._vm.evm.events.on("beforeMessage", this._beforeMessageHandler);
|
|
51
|
+
this._vm.evm.events.on("step", this._stepHandler);
|
|
52
|
+
this._vm.evm.events.on("afterMessage", this._afterMessageHandler);
|
|
44
53
|
this._enabled = true;
|
|
45
54
|
}
|
|
46
55
|
|
|
@@ -48,12 +57,18 @@ export class VMTracer {
|
|
|
48
57
|
if (!this._enabled) {
|
|
49
58
|
return;
|
|
50
59
|
}
|
|
51
|
-
|
|
60
|
+
|
|
61
|
+
assertHardhatInvariant(
|
|
62
|
+
this._vm.evm.events !== undefined,
|
|
63
|
+
"EVM should have an 'events' property"
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
this._vm.evm.events.removeListener(
|
|
52
67
|
"beforeMessage",
|
|
53
68
|
this._beforeMessageHandler
|
|
54
69
|
);
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
this._vm.evm.events.removeListener("step", this._stepHandler);
|
|
71
|
+
this._vm.evm.events.removeListener(
|
|
57
72
|
"afterMessage",
|
|
58
73
|
this._afterMessageHandler
|
|
59
74
|
);
|
|
@@ -111,11 +126,11 @@ export class VMTracer {
|
|
|
111
126
|
|
|
112
127
|
trace = createTrace;
|
|
113
128
|
} else {
|
|
114
|
-
const
|
|
129
|
+
const toAsBigInt = bufferToBigInt(message.to.toBuffer());
|
|
115
130
|
|
|
116
|
-
if (
|
|
131
|
+
if (toAsBigInt > 0 && toAsBigInt <= this._maxPrecompileNumber) {
|
|
117
132
|
const precompileTrace: PrecompileMessageTrace = {
|
|
118
|
-
precompile: Number(
|
|
133
|
+
precompile: Number(toAsBigInt),
|
|
119
134
|
calldata: message.data,
|
|
120
135
|
value: message.value,
|
|
121
136
|
returnData: DUMMY_RETURN_DATA,
|
|
@@ -8,13 +8,10 @@ import { ERRORS } from "../core/errors-list";
|
|
|
8
8
|
import { getEnvHardhatArguments } from "../core/params/env-variables";
|
|
9
9
|
import { HARDHAT_PARAM_DEFINITIONS } from "../core/params/hardhat-params";
|
|
10
10
|
import { Environment } from "../core/runtime-environment";
|
|
11
|
-
import { applyWorkaround } from "../util/antlr-prototype-pollution-workaround";
|
|
12
11
|
|
|
13
12
|
let ctx: HardhatContext;
|
|
14
13
|
let env: HardhatRuntimeEnvironment;
|
|
15
14
|
|
|
16
|
-
applyWorkaround();
|
|
17
|
-
|
|
18
15
|
if (HardhatContext.isCreated()) {
|
|
19
16
|
ctx = HardhatContext.getHardhatContext();
|
|
20
17
|
|
|
@@ -17,7 +17,7 @@ import { ResolvedFile } from "./resolver";
|
|
|
17
17
|
const log = debug("hardhat:core:compilation-job");
|
|
18
18
|
|
|
19
19
|
// this should have a proper version range when it's fixed
|
|
20
|
-
const SOLC_BUG_9573_VERSIONS = "
|
|
20
|
+
const SOLC_BUG_9573_VERSIONS = "<0.8.0";
|
|
21
21
|
|
|
22
22
|
function isCompilationJobCreationError(
|
|
23
23
|
x:
|
|
@@ -55,7 +55,8 @@ export class CompilationJob implements taskTypes.CompilationJob {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
public merge(job: taskTypes.CompilationJob): CompilationJob {
|
|
58
|
-
const
|
|
58
|
+
const isEqual = require("lodash/isEqual") as LoDashStatic["isEqual"];
|
|
59
|
+
|
|
59
60
|
assertHardhatInvariant(
|
|
60
61
|
isEqual(this.solidityConfig, job.getSolcConfig()),
|
|
61
62
|
"Merging jobs with different solidity configurations"
|
|
@@ -103,8 +104,6 @@ function mergeCompilationJobs(
|
|
|
103
104
|
jobs: taskTypes.CompilationJob[],
|
|
104
105
|
isMergeable: (job: taskTypes.CompilationJob) => boolean
|
|
105
106
|
): taskTypes.CompilationJob[] {
|
|
106
|
-
const { flatten }: LoDashStatic = require("lodash");
|
|
107
|
-
|
|
108
107
|
const jobsMap: Map<SolcConfig, taskTypes.CompilationJob[]> = new Map();
|
|
109
108
|
|
|
110
109
|
for (const job of jobs) {
|
|
@@ -130,7 +129,8 @@ function mergeCompilationJobs(
|
|
|
130
129
|
}
|
|
131
130
|
}
|
|
132
131
|
|
|
133
|
-
|
|
132
|
+
// Array#flat This method defaults to depth limit 1
|
|
133
|
+
return [...jobsMap.values()].flat(1_000_000);
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
/**
|
|
@@ -234,15 +234,15 @@ function getCompilerConfigForFile(
|
|
|
234
234
|
transitiveDependencies: taskTypes.TransitiveDependency[],
|
|
235
235
|
solidityConfig: SolidityConfig
|
|
236
236
|
): SolcConfig | CompilationJobCreationError {
|
|
237
|
-
const { uniq }: LoDashStatic = require("lodash");
|
|
238
|
-
|
|
239
237
|
const transitiveDependenciesVersionPragmas = transitiveDependencies.map(
|
|
240
238
|
({ dependency }) => dependency.content.versionPragmas
|
|
241
239
|
);
|
|
242
|
-
const versionRange =
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
240
|
+
const versionRange = Array.from(
|
|
241
|
+
new Set([
|
|
242
|
+
...file.content.versionPragmas,
|
|
243
|
+
...transitiveDependenciesVersionPragmas,
|
|
244
|
+
])
|
|
245
|
+
).join(" ");
|
|
246
246
|
|
|
247
247
|
const overrides = solidityConfig.overrides ?? {};
|
|
248
248
|
|