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,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Web3Module = void 0;
|
|
4
|
-
const util_1 = require("@ignored/util");
|
|
5
|
-
const keccak_1 = require("ethereum-cryptography/keccak");
|
|
6
4
|
const base_types_1 = require("../../../core/jsonrpc/types/base-types");
|
|
7
5
|
const validation_1 = require("../../../core/jsonrpc/types/input/validation");
|
|
8
6
|
const errors_1 = require("../../../core/providers/errors");
|
|
7
|
+
const keccak_1 = require("../../../util/keccak");
|
|
9
8
|
const packageInfo_1 = require("../../../util/packageInfo");
|
|
10
9
|
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
11
10
|
class Web3Module {
|
|
@@ -24,15 +23,15 @@ class Web3Module {
|
|
|
24
23
|
}
|
|
25
24
|
async _clientVersionAction() {
|
|
26
25
|
const hardhatPackage = await (0, packageInfo_1.getPackageJson)();
|
|
27
|
-
const ethereumjsVMPackage = require("@
|
|
28
|
-
return `HardhatNetwork/${hardhatPackage.version}/@
|
|
26
|
+
const ethereumjsVMPackage = require("@nomicfoundation/ethereumjs-vm/package.json");
|
|
27
|
+
return `HardhatNetwork/${hardhatPackage.version}/@nomicfoundation/ethereumjs-vm/${ethereumjsVMPackage.version}`;
|
|
29
28
|
}
|
|
30
29
|
// web3_sha3
|
|
31
30
|
_sha3Params(params) {
|
|
32
31
|
return (0, validation_1.validateParams)(params, base_types_1.rpcData);
|
|
33
32
|
}
|
|
34
33
|
async _sha3Action(buffer) {
|
|
35
|
-
return (0, base_types_1.bufferToRpcData)((0,
|
|
34
|
+
return (0, base_types_1.bufferToRpcData)((0, keccak_1.keccak256)(buffer));
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
37
|
exports.Web3Module = Web3Module;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web3.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/modules/web3.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"web3.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/modules/web3.ts"],"names":[],"mappings":";;;AAAA,uEAGgD;AAChD,6EAA8E;AAC9E,2DAAqE;AACrE,iDAAiD;AACjD,2DAA2D;AAE3D,yEAAyE;AAEzE,MAAa,UAAU;IACd,KAAK,CAAC,cAAc,CACzB,MAAc,EACd,SAAgB,EAAE;QAElB,QAAQ,MAAM,EAAE;YACd,KAAK,oBAAoB;gBACvB,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;YAEzE,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;SACxD;QAED,MAAM,IAAI,4BAAmB,CAAC,UAAU,MAAM,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,qBAAqB;IAEb,oBAAoB,CAAC,MAAa;QACxC,OAAO,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAc,GAAE,CAAC;QAC9C,MAAM,mBAAmB,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;QACnF,OAAO,kBAAkB,cAAc,CAAC,OAAO,mCAAmC,mBAAmB,CAAC,OAAO,EAAE,CAAC;IAClH,CAAC;IAED,YAAY;IAEJ,WAAW,CAAC,MAAa;QAC/B,OAAO,IAAA,2BAAc,EAAC,MAAM,EAAE,oBAAO,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,OAAO,IAAA,4BAAe,EAAC,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF;AArCD,gCAqCC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { ReturnData } from "./return-data";
|
|
3
|
-
import { Block } from "@
|
|
4
|
-
import { RunBlockResult } from "@
|
|
3
|
+
import { Block } from "@nomicfoundation/ethereumjs-block";
|
|
4
|
+
import { RunBlockResult } from "@nomicfoundation/ethereumjs-vm";
|
|
5
5
|
import { HARDHAT_MEMPOOL_SUPPORTED_ORDERS } from "../../constants";
|
|
6
6
|
import { BuildInfo, HardhatNetworkChainsConfig } from "../../../types";
|
|
7
7
|
import { MessageTrace } from "../stack-traces/message-trace";
|
|
@@ -10,7 +10,7 @@ export declare type NodeConfig = LocalNodeConfig | ForkedNodeConfig;
|
|
|
10
10
|
export declare function isForkedNodeConfig(config: NodeConfig): config is ForkedNodeConfig;
|
|
11
11
|
interface CommonConfig {
|
|
12
12
|
automine: boolean;
|
|
13
|
-
blockGasLimit:
|
|
13
|
+
blockGasLimit: number;
|
|
14
14
|
chainId: number;
|
|
15
15
|
genesisAccounts: GenesisAccount[];
|
|
16
16
|
hardfork: string;
|
|
@@ -20,7 +20,7 @@ interface CommonConfig {
|
|
|
20
20
|
allowUnlimitedContractSize?: boolean;
|
|
21
21
|
initialDate?: Date;
|
|
22
22
|
tracingConfig?: TracingConfig;
|
|
23
|
-
initialBaseFeePerGas?:
|
|
23
|
+
initialBaseFeePerGas?: number;
|
|
24
24
|
mempoolOrder: MempoolOrder;
|
|
25
25
|
coinbase: string;
|
|
26
26
|
chains: HardhatNetworkChainsConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/node-types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/node-types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,oBAAY,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE5D,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,GACjB,MAAM,IAAI,gBAAgB,CAE5B;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED,oBAAY,eAAe,GAAG,YAAY,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED,oBAAY,oBAAoB,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D,oBAAY,YAAY,GAAG,OAAO,gCAAgC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,oBAAY,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAEpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,oBAAY,iBAAiB,GACzB,uBAAuB,GACvB,2BAA2B,GAC3B,wBAAwB,CAAC;AAE7B,UAAU,qBAAqB;IAE7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,QAAQ,EAAE,MAAM,CAAC;IAGjB,UAAU,EAAE,oBAAoB,EAAE,CAAC;CAGpC;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,kCAAkC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,qBAAqB,CAAC;CACzC;AAED,oBAAY,qBAAqB,GAC7B,MAAM,GACN,eAAe,GACf,eAAe,EAAE,CAAC;AAEtB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CACrB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Block } from "@
|
|
3
|
-
import { Common } from "@
|
|
4
|
-
import { TypedTransaction } from "@
|
|
5
|
-
import { Address, ECDSASignature } from "@
|
|
2
|
+
import { Block } from "@nomicfoundation/ethereumjs-block";
|
|
3
|
+
import { Common } from "@nomicfoundation/ethereumjs-common";
|
|
4
|
+
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
5
|
+
import { Address, ECDSASignature } from "@nomicfoundation/ethereumjs-util";
|
|
6
6
|
import EventEmitter from "events";
|
|
7
7
|
import { CompilerInput, CompilerOutput } from "../../../types";
|
|
8
8
|
import { RpcDebugTracingConfig } from "../../core/jsonrpc/types/input/debugTraceTransaction";
|
|
@@ -172,6 +172,7 @@ export declare class HardhatNode extends EventEmitter {
|
|
|
172
172
|
private _persistIrregularWorldState;
|
|
173
173
|
isEip1559Active(blockNumberOrPending?: bigint | "pending"): boolean;
|
|
174
174
|
isPostMergeHardfork(): boolean;
|
|
175
|
+
setPrevRandao(prevRandao: Buffer): void;
|
|
175
176
|
private _getNextMixHash;
|
|
176
177
|
private _getEstimateGasFeePriceFields;
|
|
177
178
|
private _selectHardfork;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/node.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
23
|
};
|
|
5
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
25
|
exports.HardhatNode = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const exceptions_1 = require("@
|
|
14
|
-
const
|
|
26
|
+
const ethereumjs_block_1 = require("@nomicfoundation/ethereumjs-block");
|
|
27
|
+
const ethereumjs_common_1 = require("@nomicfoundation/ethereumjs-common");
|
|
28
|
+
const ethereumjs_tx_1 = require("@nomicfoundation/ethereumjs-tx");
|
|
29
|
+
const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
|
|
30
|
+
const ethereumjs_vm_1 = require("@nomicfoundation/ethereumjs-vm");
|
|
31
|
+
const ethereumjs_evm_1 = require("@nomicfoundation/ethereumjs-evm");
|
|
32
|
+
const exceptions_1 = require("@nomicfoundation/ethereumjs-evm/dist/exceptions");
|
|
33
|
+
const ethereumjs_statemanager_1 = require("@nomicfoundation/ethereumjs-statemanager");
|
|
15
34
|
const eth_sig_util_1 = require("@metamask/eth-sig-util");
|
|
16
35
|
const chalk_1 = __importDefault(require("chalk"));
|
|
17
36
|
const debug_1 = __importDefault(require("debug"));
|
|
18
37
|
const events_1 = __importDefault(require("events"));
|
|
19
|
-
const
|
|
38
|
+
const BigIntUtils = __importStar(require("../../util/bigint"));
|
|
20
39
|
const constants_1 = require("../../constants");
|
|
21
40
|
const default_config_1 = require("../../core/config/default-config");
|
|
22
41
|
const errors_1 = require("../../core/errors");
|
|
@@ -137,7 +156,7 @@ class HardhatNode extends events_1.default {
|
|
|
137
156
|
forkClient = _forkClient;
|
|
138
157
|
forkNetworkId = forkClient.getNetworkId();
|
|
139
158
|
forkBlockNum = forkBlockNumber;
|
|
140
|
-
this._validateHardforks(
|
|
159
|
+
this._validateHardforks(config.forkConfig.blockNumber, common, forkNetworkId);
|
|
141
160
|
const forkStateManager = new ForkStateManager_1.ForkStateManager(forkClient, forkBlockNumber);
|
|
142
161
|
await forkStateManager.initializeGenesisAccounts(genesisAccounts);
|
|
143
162
|
stateManager = forkStateManager;
|
|
@@ -165,7 +184,7 @@ class HardhatNode extends events_1.default {
|
|
|
165
184
|
}
|
|
166
185
|
else {
|
|
167
186
|
const stateTrie = await (0, makeStateTrie_1.makeStateTrie)(genesisAccounts);
|
|
168
|
-
stateManager = new
|
|
187
|
+
stateManager = new ethereumjs_statemanager_1.DefaultStateManager({
|
|
169
188
|
trie: stateTrie,
|
|
170
189
|
});
|
|
171
190
|
const hardhatBlockchain = new HardhatBlockchain_1.HardhatBlockchain(common);
|
|
@@ -180,13 +199,13 @@ class HardhatNode extends events_1.default {
|
|
|
180
199
|
blockchain = hardhatBlockchain;
|
|
181
200
|
}
|
|
182
201
|
const txPool = new TxPool_1.TxPool(stateManager, BigInt(blockGasLimit), common);
|
|
183
|
-
const eei = new
|
|
184
|
-
const evm = await
|
|
202
|
+
const eei = new ethereumjs_vm_1.EEI(stateManager, common, blockchain);
|
|
203
|
+
const evm = await ethereumjs_evm_1.EVM.create({
|
|
185
204
|
eei,
|
|
186
205
|
allowUnlimitedContractSize,
|
|
187
206
|
common,
|
|
188
207
|
});
|
|
189
|
-
const vm = await
|
|
208
|
+
const vm = await ethereumjs_vm_1.VM.create({
|
|
190
209
|
evm,
|
|
191
210
|
activatePrecompiles: true,
|
|
192
211
|
common,
|
|
@@ -205,7 +224,7 @@ The hardfork must be at least spuriousDragon, but ${common.hardfork()} was given
|
|
|
205
224
|
if (forkBlockNumber !== undefined) {
|
|
206
225
|
let upstreamCommon;
|
|
207
226
|
try {
|
|
208
|
-
upstreamCommon = new
|
|
227
|
+
upstreamCommon = new ethereumjs_common_1.Common({ chain: remoteChainId });
|
|
209
228
|
}
|
|
210
229
|
catch {
|
|
211
230
|
// If ethereumjs doesn't have a common it will throw and we won't have
|
|
@@ -222,22 +241,22 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
222
241
|
}
|
|
223
242
|
}
|
|
224
243
|
async getSignedTransaction(txParams) {
|
|
225
|
-
const senderAddress = (0,
|
|
244
|
+
const senderAddress = (0, ethereumjs_util_1.bufferToHex)(txParams.from);
|
|
226
245
|
const pk = this._localAccounts.get(senderAddress);
|
|
227
246
|
if (pk !== undefined) {
|
|
228
247
|
let tx;
|
|
229
248
|
if ("maxFeePerGas" in txParams) {
|
|
230
|
-
tx =
|
|
249
|
+
tx = ethereumjs_tx_1.FeeMarketEIP1559Transaction.fromTxData(txParams, {
|
|
231
250
|
common: this._vm._common,
|
|
232
251
|
});
|
|
233
252
|
}
|
|
234
253
|
else if ("accessList" in txParams) {
|
|
235
|
-
tx =
|
|
254
|
+
tx = ethereumjs_tx_1.AccessListEIP2930Transaction.fromTxData(txParams, {
|
|
236
255
|
common: this._vm._common,
|
|
237
256
|
});
|
|
238
257
|
}
|
|
239
258
|
else {
|
|
240
|
-
tx =
|
|
259
|
+
tx = ethereumjs_tx_1.Transaction.fromTxData(txParams, { common: this._vm._common });
|
|
241
260
|
}
|
|
242
261
|
return tx.sign(pk);
|
|
243
262
|
}
|
|
@@ -345,7 +364,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
345
364
|
}
|
|
346
365
|
async runCall(call, blockNumberOrPending) {
|
|
347
366
|
let txParams;
|
|
348
|
-
const nonce = await this._getNonce(new
|
|
367
|
+
const nonce = await this._getNonce(new ethereumjs_util_1.Address(call.from), blockNumberOrPending);
|
|
349
368
|
if (call.gasPrice !== undefined ||
|
|
350
369
|
!this.isEip1559Active(blockNumberOrPending)) {
|
|
351
370
|
txParams = {
|
|
@@ -393,7 +412,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
393
412
|
(0, message_trace_1.isCreateTrace)(trace)) {
|
|
394
413
|
return Buffer.from("");
|
|
395
414
|
}
|
|
396
|
-
return this.getCode(new
|
|
415
|
+
return this.getCode(new ethereumjs_util_1.Address(trace.address), blockNumberOrPending);
|
|
397
416
|
}
|
|
398
417
|
async getLatestBlock() {
|
|
399
418
|
return this._blockchain.getLatestBlock();
|
|
@@ -417,7 +436,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
417
436
|
async estimateGas(callParams, blockNumberOrPending) {
|
|
418
437
|
// We get the CallParams and transform it into a TransactionParams to be
|
|
419
438
|
// able to run it.
|
|
420
|
-
const nonce = await this._getNonce(new
|
|
439
|
+
const nonce = await this._getNonce(new ethereumjs_util_1.Address(callParams.from), blockNumberOrPending);
|
|
421
440
|
// TODO: This is more complex in Geth, we should make sure we aren't missing
|
|
422
441
|
// anything here.
|
|
423
442
|
const feePriceFields = await this._getEstimateGasFeePriceFields(callParams, blockNumberOrPending);
|
|
@@ -494,10 +513,10 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
494
513
|
return BigInt(default_config_1.HARDHAT_NETWORK_DEFAULT_MAX_PRIORITY_FEE_PER_GAS);
|
|
495
514
|
}
|
|
496
515
|
getCoinbaseAddress() {
|
|
497
|
-
return
|
|
516
|
+
return ethereumjs_util_1.Address.fromString(this._coinbase);
|
|
498
517
|
}
|
|
499
518
|
async getStorageAt(address, positionIndex, blockNumberOrPending) {
|
|
500
|
-
const key = (0,
|
|
519
|
+
const key = (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.bigIntToBuffer)(positionIndex), 32);
|
|
501
520
|
const data = await this._runInBlockContext(blockNumberOrPending, () => this._stateManager.getContractStorage(address, key));
|
|
502
521
|
const EXPECTED_DATA_SIZE = 32;
|
|
503
522
|
if (data.length < EXPECTED_DATA_SIZE) {
|
|
@@ -565,7 +584,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
565
584
|
return this._txPool.getTransactionByHash(hash)?.data;
|
|
566
585
|
}
|
|
567
586
|
async getTransactionReceipt(hash) {
|
|
568
|
-
const hashBuffer = hash instanceof Buffer ? hash : (0,
|
|
587
|
+
const hashBuffer = hash instanceof Buffer ? hash : (0, ethereumjs_util_1.toBuffer)(hash);
|
|
569
588
|
const receipt = await this._blockchain.getTransactionReceipt(hashBuffer);
|
|
570
589
|
return receipt ?? undefined;
|
|
571
590
|
}
|
|
@@ -575,9 +594,9 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
575
594
|
return txPoolPending.concat(txPoolQueued);
|
|
576
595
|
}
|
|
577
596
|
async signPersonalMessage(address, data) {
|
|
578
|
-
const messageHash = (0,
|
|
597
|
+
const messageHash = (0, ethereumjs_util_1.hashPersonalMessage)(data);
|
|
579
598
|
const privateKey = this._getLocalAccountPrivateKey(address);
|
|
580
|
-
return (0,
|
|
599
|
+
return (0, ethereumjs_util_1.ecsign)(messageHash, privateKey);
|
|
581
600
|
}
|
|
582
601
|
async signTypedDataV4(address, typedData) {
|
|
583
602
|
const privateKey = this._getLocalAccountPrivateKey(address);
|
|
@@ -673,7 +692,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
673
692
|
id: filterId,
|
|
674
693
|
type: filter_1.Type.BLOCK_SUBSCRIPTION,
|
|
675
694
|
deadline: this._newDeadline(),
|
|
676
|
-
hashes: [(0,
|
|
695
|
+
hashes: [(0, ethereumjs_util_1.bufferToHex)(block.header.hash())],
|
|
677
696
|
logs: [],
|
|
678
697
|
subscription: isSubscription,
|
|
679
698
|
});
|
|
@@ -755,11 +774,11 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
755
774
|
return true;
|
|
756
775
|
}
|
|
757
776
|
addImpersonatedAccount(address) {
|
|
758
|
-
this._impersonatedAccounts.add((0,
|
|
777
|
+
this._impersonatedAccounts.add((0, ethereumjs_util_1.bufferToHex)(address));
|
|
759
778
|
return true;
|
|
760
779
|
}
|
|
761
780
|
removeImpersonatedAccount(address) {
|
|
762
|
-
return this._impersonatedAccounts.delete((0,
|
|
781
|
+
return this._impersonatedAccounts.delete((0, ethereumjs_util_1.bufferToHex)(address));
|
|
763
782
|
}
|
|
764
783
|
setAutomine(automine) {
|
|
765
784
|
this._automine = automine;
|
|
@@ -781,7 +800,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
781
800
|
}
|
|
782
801
|
const isTransactionMined = await this._isTransactionMined(hash);
|
|
783
802
|
if (isTransactionMined) {
|
|
784
|
-
throw new errors_2.InvalidArgumentsError(`Transaction ${(0,
|
|
803
|
+
throw new errors_2.InvalidArgumentsError(`Transaction ${(0, ethereumjs_util_1.bufferToHex)(hash)} cannot be dropped because it's already mined`);
|
|
785
804
|
}
|
|
786
805
|
return false;
|
|
787
806
|
}
|
|
@@ -808,13 +827,13 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
808
827
|
await this._persistIrregularWorldState();
|
|
809
828
|
}
|
|
810
829
|
async setStorageAt(address, positionIndex, value) {
|
|
811
|
-
await this._stateManager.putContractStorage(address, (0,
|
|
830
|
+
await this._stateManager.putContractStorage(address, (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.bigIntToBuffer)(positionIndex), 32), value);
|
|
812
831
|
await this._persistIrregularWorldState();
|
|
813
832
|
}
|
|
814
833
|
async traceTransaction(hash, config) {
|
|
815
834
|
const block = await this.getBlockByTransactionHash(hash);
|
|
816
835
|
if (block === undefined) {
|
|
817
|
-
throw new errors_2.InvalidInputError(`Unable to find a block containing transaction ${(0,
|
|
836
|
+
throw new errors_2.InvalidInputError(`Unable to find a block containing transaction ${(0, ethereumjs_util_1.bufferToHex)(hash)}`);
|
|
818
837
|
}
|
|
819
838
|
return this._runInBlockContext(block.header.number - 1n, async () => {
|
|
820
839
|
const blockNumber = block.header.number;
|
|
@@ -824,7 +843,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
824
843
|
blockNumber <= blockchain.getForkBlockNumber()) {
|
|
825
844
|
(0, errors_1.assertHardhatInvariant)(this._forkNetworkId !== undefined, "this._forkNetworkId should exist if the blockchain is an instance of ForkBlockchain");
|
|
826
845
|
const common = this._getCommonForTracing(this._forkNetworkId, blockNumber);
|
|
827
|
-
vm = await
|
|
846
|
+
vm = await ethereumjs_vm_1.VM.create({
|
|
828
847
|
common,
|
|
829
848
|
activatePrecompiles: true,
|
|
830
849
|
stateManager: this._vm.stateManager,
|
|
@@ -876,7 +895,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
876
895
|
const latestBlock = this.getLatestBlockNumber();
|
|
877
896
|
const pendingBlockNumber = latestBlock + 1n;
|
|
878
897
|
const resolvedNewestBlock = newestBlock === "pending" ? pendingBlockNumber : newestBlock;
|
|
879
|
-
const oldestBlock =
|
|
898
|
+
const oldestBlock = BigIntUtils.max(resolvedNewestBlock - blockCount + 1n, 0n);
|
|
880
899
|
// This is part of a temporary fix to https://github.com/NomicFoundation/hardhat/issues/2380
|
|
881
900
|
const rangeIncludesRemoteBlocks = this._forkBlockNumber !== undefined &&
|
|
882
901
|
oldestBlock <= this._forkBlockNumber;
|
|
@@ -887,7 +906,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
887
906
|
// This is part of a temporary fix to https://github.com/NomicFoundation/hardhat/issues/2380
|
|
888
907
|
if (rangeIncludesRemoteBlocks) {
|
|
889
908
|
try {
|
|
890
|
-
const lastRemoteBlock =
|
|
909
|
+
const lastRemoteBlock = BigIntUtils.min(BigInt(this._forkBlockNumber), lastBlock);
|
|
891
910
|
const remoteBlockCount = lastRemoteBlock - oldestBlock + 1n;
|
|
892
911
|
const remoteValues = await this._forkClient.getFeeHistory(remoteBlockCount, lastRemoteBlock, rewardPercentiles);
|
|
893
912
|
baseFeePerGas.push(...remoteValues.baseFeePerGas);
|
|
@@ -910,7 +929,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
910
929
|
// This is part of a temporary fix to https://github.com/NomicFoundation/hardhat/issues/2380
|
|
911
930
|
const firstLocalBlock = !rangeIncludesRemoteBlocks
|
|
912
931
|
? oldestBlock
|
|
913
|
-
:
|
|
932
|
+
: BigIntUtils.min(BigInt(this._forkBlockNumber), lastBlock) + 1n;
|
|
914
933
|
for (let blockNumber = firstLocalBlock; // This is part of a temporary fix to https://github.com/NomicFoundation/hardhat/issues/2380
|
|
915
934
|
blockNumber <= lastBlock; blockNumber++) {
|
|
916
935
|
if (blockNumber < pendingBlockNumber) {
|
|
@@ -986,7 +1005,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
986
1005
|
gasUsed: (0, base_types_1.rpcQuantityToBigInt)(r?.gasUsed),
|
|
987
1006
|
};
|
|
988
1007
|
})
|
|
989
|
-
.sort((a, b) =>
|
|
1008
|
+
.sort((a, b) => BigIntUtils.cmp(a.effectiveGasReward, b.effectiveGasReward));
|
|
990
1009
|
return rewardPercentiles.map((p) => {
|
|
991
1010
|
let gasUsed = 0n;
|
|
992
1011
|
const targetGas = (block.header.gasLimit * BigInt(Math.ceil(p * FLOATS_PRECISION))) /
|
|
@@ -1004,7 +1023,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1004
1023
|
async _addPendingTransaction(tx) {
|
|
1005
1024
|
await this._txPool.addTransaction(tx);
|
|
1006
1025
|
await this._notifyPendingTransaction(tx);
|
|
1007
|
-
return (0,
|
|
1026
|
+
return (0, ethereumjs_util_1.bufferToHex)(tx.hash());
|
|
1008
1027
|
}
|
|
1009
1028
|
async _mineTransaction(tx) {
|
|
1010
1029
|
await this._addPendingTransaction(tx);
|
|
@@ -1169,7 +1188,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1169
1188
|
return this._vm._common.param("gasPrices", "tx");
|
|
1170
1189
|
}
|
|
1171
1190
|
async _getFakeTransaction(txParams) {
|
|
1172
|
-
const sender = new
|
|
1191
|
+
const sender = new ethereumjs_util_1.Address(txParams.from);
|
|
1173
1192
|
if ("maxFeePerGas" in txParams && txParams.maxFeePerGas !== undefined) {
|
|
1174
1193
|
return new FakeSenderEIP1559Transaction_1.FakeSenderEIP1559Transaction(sender, txParams, {
|
|
1175
1194
|
common: this._vm._common,
|
|
@@ -1204,9 +1223,9 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1204
1223
|
this._snapshots.splice(snapshotIndex);
|
|
1205
1224
|
}
|
|
1206
1225
|
_initLocalAccounts(genesisAccounts) {
|
|
1207
|
-
const privateKeys = genesisAccounts.map((acc) => (0,
|
|
1226
|
+
const privateKeys = genesisAccounts.map((acc) => (0, ethereumjs_util_1.toBuffer)(acc.privateKey));
|
|
1208
1227
|
for (const pk of privateKeys) {
|
|
1209
|
-
this._localAccounts.set((0,
|
|
1228
|
+
this._localAccounts.set((0, ethereumjs_util_1.bufferToHex)((0, ethereumjs_util_1.privateToAddress)(pk)), pk);
|
|
1210
1229
|
}
|
|
1211
1230
|
}
|
|
1212
1231
|
async _getConsoleLogMessages(vmTrace, vmTracerError) {
|
|
@@ -1313,7 +1332,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1313
1332
|
async _notifyPendingTransaction(tx) {
|
|
1314
1333
|
this._filters.forEach((filter) => {
|
|
1315
1334
|
if (filter.type === filter_1.Type.PENDING_TRANSACTION_SUBSCRIPTION) {
|
|
1316
|
-
const hash = (0,
|
|
1335
|
+
const hash = (0, ethereumjs_util_1.bufferToHex)(tx.hash());
|
|
1317
1336
|
if (filter.subscription) {
|
|
1318
1337
|
this._emitEthEvent(filter.id, hash);
|
|
1319
1338
|
return;
|
|
@@ -1352,10 +1371,10 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1352
1371
|
this._emitEthEvent(filter.id, (0, output_1.getRpcBlock)(block, td, (0, output_1.shouldShowTransactionTypeForHardfork)(this._vm._common), false));
|
|
1353
1372
|
return;
|
|
1354
1373
|
}
|
|
1355
|
-
filter.hashes.push((0,
|
|
1374
|
+
filter.hashes.push((0, ethereumjs_util_1.bufferToHex)(hash));
|
|
1356
1375
|
break;
|
|
1357
1376
|
case filter_1.Type.LOGS_SUBSCRIPTION:
|
|
1358
|
-
if ((0, filter_1.bloomFilter)(new
|
|
1377
|
+
if ((0, filter_1.bloomFilter)(new ethereumjs_vm_1.Bloom(block.header.logsBloom), filter.criteria.addresses, filter.criteria.normalizedTopics)) {
|
|
1359
1378
|
const logs = (0, filter_1.filterLogs)(rpcLogs, filter.criteria);
|
|
1360
1379
|
if (logs.length === 0) {
|
|
1361
1380
|
return;
|
|
@@ -1505,7 +1524,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1505
1524
|
// we don't need to add the tx to the block because runTx doesn't
|
|
1506
1525
|
// know anything about the txs in the current block
|
|
1507
1526
|
}
|
|
1508
|
-
// NOTE: This is a workaround of both an @
|
|
1527
|
+
// NOTE: This is a workaround of both an @nomicfoundation/ethereumjs-vm limitation, and
|
|
1509
1528
|
// a bug in Hardhat Network.
|
|
1510
1529
|
//
|
|
1511
1530
|
// See: https://github.com/nomiclabs/hardhat/issues/1666
|
|
@@ -1520,14 +1539,14 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1520
1539
|
// shouldn't. See: https://github.com/nomiclabs/hardhat/issues/1688
|
|
1521
1540
|
if (this.isEip1559Active(blockNumberOrPending) &&
|
|
1522
1541
|
(blockContext.header.baseFeePerGas === undefined || forceBaseFeeZero)) {
|
|
1523
|
-
blockContext =
|
|
1542
|
+
blockContext = ethereumjs_block_1.Block.fromBlockData(blockContext, {
|
|
1524
1543
|
freeze: false,
|
|
1525
1544
|
common: this._vm._common,
|
|
1526
1545
|
});
|
|
1527
1546
|
blockContext.header.baseFeePerGas = 0n;
|
|
1528
1547
|
}
|
|
1529
1548
|
originalCommon = this._vm._common;
|
|
1530
|
-
this._vm._common =
|
|
1549
|
+
this._vm._common = ethereumjs_common_1.Common.custom({
|
|
1531
1550
|
chainId: this._forkBlockNumber === undefined ||
|
|
1532
1551
|
blockContext.header.number >= this._forkBlockNumber
|
|
1533
1552
|
? this._configChainId
|
|
@@ -1620,6 +1639,9 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1620
1639
|
isPostMergeHardfork() {
|
|
1621
1640
|
return (0, hardforks_1.hardforkGte)(this.hardfork, hardforks_1.HardforkName.MERGE);
|
|
1622
1641
|
}
|
|
1642
|
+
setPrevRandao(prevRandao) {
|
|
1643
|
+
this._mixHashGenerator.setNext(prevRandao);
|
|
1644
|
+
}
|
|
1623
1645
|
_getNextMixHash() {
|
|
1624
1646
|
return this._mixHashGenerator.next();
|
|
1625
1647
|
}
|
|
@@ -1674,7 +1696,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
1674
1696
|
}
|
|
1675
1697
|
_getCommonForTracing(networkId, blockNumber) {
|
|
1676
1698
|
try {
|
|
1677
|
-
const common =
|
|
1699
|
+
const common = ethereumjs_common_1.Common.custom({
|
|
1678
1700
|
chainId: networkId,
|
|
1679
1701
|
networkId,
|
|
1680
1702
|
}, {
|