hardhat 2.10.2 → 2.11.0-dev.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/compile.js +6 -8
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/node.js +9 -12
- package/builtin-tasks/node.js.map +1 -1
- package/builtin-tasks/test.js +2 -3
- package/builtin-tasks/test.js.map +1 -1
- package/internal/artifacts.js +1 -1
- package/internal/artifacts.js.map +1 -1
- package/internal/cli/ArgumentsParser.js +5 -2
- package/internal/cli/ArgumentsParser.js.map +1 -1
- package/internal/cli/analytics.js +2 -2
- package/internal/cli/analytics.js.map +1 -1
- package/internal/cli/autocomplete.js +20 -32
- package/internal/cli/autocomplete.js.map +1 -1
- package/internal/cli/cli.js +1 -1
- package/internal/cli/cli.js.map +1 -1
- package/internal/cli/project-creation.js +14 -4
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/constants.d.ts.map +1 -1
- package/internal/constants.js +2 -0
- package/internal/constants.js.map +1 -1
- package/internal/core/config/config-loading.js +2 -3
- 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 +84 -35
- package/internal/core/config/config-resolution.js.map +1 -1
- package/internal/core/config/config-validation.js +38 -20
- package/internal/core/config/config-validation.js.map +1 -1
- package/internal/core/config/default-config.d.ts.map +1 -1
- package/internal/core/config/default-config.js +7 -4
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/errors.js +4 -2
- package/internal/core/errors.js.map +1 -1
- package/internal/core/execution-mode.js +2 -2
- package/internal/core/execution-mode.js.map +1 -1
- package/internal/core/flamegraph.d.ts +10 -0
- package/internal/core/flamegraph.d.ts.map +1 -0
- package/internal/core/flamegraph.js +245 -0
- package/internal/core/flamegraph.js.map +1 -0
- package/internal/core/jsonrpc/types/base-types.d.ts +7 -8
- package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/base-types.js +24 -24
- package/internal/core/jsonrpc/types/base-types.js.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.d.ts +15 -10
- package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.js +2 -0
- package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
- package/internal/core/jsonrpc/types/input/callRequest.d.ts +5 -6
- package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -7
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +7 -8
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/output/block.d.ts +29 -30
- package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/block.js +8 -2
- package/internal/core/jsonrpc/types/output/block.js.map +1 -1
- package/internal/core/jsonrpc/types/output/log.d.ts +3 -4
- package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/log.js.map +1 -1
- package/internal/core/jsonrpc/types/output/receipt.d.ts +10 -11
- package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
- package/internal/core/jsonrpc/types/output/transaction.d.ts +13 -14
- package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
- package/internal/core/providers/accounts.d.ts.map +1 -1
- package/internal/core/providers/accounts.js +30 -24
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/chainId.js +1 -1
- package/internal/core/providers/chainId.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +5 -5
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/gas-providers.d.ts +4 -4
- package/internal/core/providers/gas-providers.d.ts.map +1 -1
- package/internal/core/providers/gas-providers.js +16 -15
- package/internal/core/providers/gas-providers.js.map +1 -1
- package/internal/core/providers/http.js +7 -2
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/providers/util.js +5 -8
- package/internal/core/providers/util.js.map +1 -1
- package/internal/core/runtime-environment.js +1 -1
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/core/task-profiling.d.ts +18 -0
- package/internal/core/task-profiling.d.ts.map +1 -0
- package/internal/core/task-profiling.js +50 -0
- package/internal/core/task-profiling.js.map +1 -0
- package/internal/core/typescript-support.js +3 -3
- package/internal/core/typescript-support.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts +39 -39
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.js +14 -14
- package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.d.ts +13 -10
- package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.js +38 -16
- package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.d.ts +15 -16
- package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.js +33 -29
- package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +7 -8
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.js +13 -14
- 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 +2 -3
- package/internal/hardhat-network/provider/PoolState.js.map +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -3
- package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.js +3 -3
- package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
- package/internal/hardhat-network/provider/TxPool.d.ts +8 -8
- package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TxPool.js +66 -68
- package/internal/hardhat-network/provider/TxPool.js.map +1 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js +2 -2
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
- package/internal/hardhat-network/provider/filter.d.ts +5 -6
- package/internal/hardhat-network/provider/filter.d.ts.map +1 -1
- package/internal/hardhat-network/provider/filter.js +7 -8
- package/internal/hardhat-network/provider/filter.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +10 -11
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +51 -47
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +8 -10
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.js +51 -69
- 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/rpcToBlockData.js +2 -3
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js.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 +7 -11
- package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts +2 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +92 -68
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
- package/internal/hardhat-network/provider/modules/evm.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/evm.js +14 -14
- package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +13 -13
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.d.ts +7 -8
- package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.js +29 -32
- 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.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 +5 -4
- package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +30 -29
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +47 -42
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +262 -208
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +5 -6
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.js +39 -36
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +1 -2
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.d.ts +1 -2
- package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +1 -1
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +5 -5
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +60 -17
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +4 -4
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +59 -16
- 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 +41 -9
- 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 +7 -23
- 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 +7 -22
- 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 +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +5 -6
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +2 -3
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +1 -0
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +5 -1
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.js +6 -6
- package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts +2 -2
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.js +7 -23
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +1 -2
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +7 -8
- package/internal/hardhat-network/provider/utils/makeForkClient.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 +6 -3
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +22 -4
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
- package/internal/hardhat-network/provider/utils/random.d.ts +15 -0
- package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/random.js +48 -0
- package/internal/hardhat-network/provider/utils/random.js.map +1 -0
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts +1 -2
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +5 -4
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +1 -1
- package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +2 -2
- package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/reorgs-protection.js +7 -7
- package/internal/hardhat-network/provider/utils/reorgs-protection.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/compiler-to-model.js +6 -8
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.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 +3 -0
- package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/constants.js +6 -0
- package/internal/hardhat-network/stack-traces/constants.js.map +1 -0
- 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 +29 -19
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +44 -26
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +6 -7
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.js.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 -2
- package/internal/hardhat-network/stack-traces/panic-errors.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/panic-errors.js +1 -1
- package/internal/hardhat-network/stack-traces/panic-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +21 -12
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +6 -5
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +4 -0
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +2 -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 +79 -78
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +5 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +3 -2
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +15 -16
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
- package/internal/reset.js +1 -1
- package/internal/reset.js.map +1 -1
- package/internal/sentry/anonymizer.js +2 -3
- package/internal/sentry/anonymizer.js.map +1 -1
- package/internal/sentry/subprocess.js +1 -1
- package/internal/sentry/subprocess.js.map +1 -1
- package/internal/sentry/transport.js +3 -4
- package/internal/sentry/transport.js.map +1 -1
- package/internal/solidity/compilation-job.js +2 -4
- package/internal/solidity/compilation-job.js.map +1 -1
- package/internal/solidity/compiler/downloader.d.ts.map +1 -1
- package/internal/solidity/compiler/downloader.js +6 -6
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/solidity/dependencyGraph.js +3 -5
- package/internal/solidity/dependencyGraph.js.map +1 -1
- package/internal/solidity/parse.js +1 -1
- package/internal/solidity/parse.js.map +1 -1
- package/internal/solidity/resolver.js +4 -1
- package/internal/solidity/resolver.js.map +1 -1
- package/internal/util/abi-helpers.js +1 -1
- package/internal/util/abi-helpers.js.map +1 -1
- package/internal/util/bigint.d.ts +25 -0
- package/internal/util/bigint.d.ts.map +1 -0
- package/internal/util/bigint.js +67 -0
- package/internal/util/bigint.js.map +1 -0
- package/internal/util/download.js +1 -1
- package/internal/util/download.js.map +1 -1
- package/internal/util/fs-utils.d.ts +32 -0
- package/internal/util/fs-utils.d.ts.map +1 -0
- package/internal/util/fs-utils.js +151 -0
- package/internal/util/fs-utils.js.map +1 -0
- package/internal/util/hardforks.d.ts +3 -3
- package/internal/util/hardforks.d.ts.map +1 -1
- package/internal/util/hardforks.js +5 -28
- package/internal/util/hardforks.js.map +1 -1
- package/internal/util/jsonrpc.js +1 -1
- package/internal/util/jsonrpc.js.map +1 -1
- package/internal/util/lazy.js +2 -2
- package/internal/util/lazy.js.map +1 -1
- package/internal/util/packageInfo.js +1 -1
- package/internal/util/packageInfo.js.map +1 -1
- package/internal/util/scripts-runner.js +5 -2
- package/internal/util/scripts-runner.js.map +1 -1
- package/internal/util/wei-values.d.ts +1 -2
- package/internal/util/wei-values.d.ts.map +1 -1
- package/internal/util/wei-values.js +9 -10
- package/internal/util/wei-values.js.map +1 -1
- package/internal/vendor/await-semaphore/index.d.ts +12 -0
- package/internal/vendor/await-semaphore/index.d.ts.map +1 -0
- package/internal/vendor/await-semaphore/index.js +64 -0
- package/internal/vendor/await-semaphore/index.js.map +1 -0
- package/package.json +13 -9
- package/profiling.d.ts +18 -0
- package/profiling.d.ts.map +1 -0
- package/profiling.js +32 -0
- package/profiling.js.map +1 -0
- package/src/builtin-tasks/node.ts +4 -6
- package/src/internal/constants.ts +3 -1
- package/src/internal/core/config/config-resolution.ts +30 -7
- package/src/internal/core/config/default-config.ts +2 -4
- package/src/internal/core/jsonrpc/types/base-types.ts +23 -24
- package/src/internal/core/jsonrpc/types/input/blockTag.ts +2 -4
- package/src/internal/core/jsonrpc/types/input/callRequest.ts +0 -4
- package/src/internal/core/jsonrpc/types/input/filterRequest.ts +0 -4
- package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +0 -4
- package/src/internal/core/jsonrpc/types/output/block.ts +0 -4
- package/src/internal/core/jsonrpc/types/output/log.ts +0 -4
- package/src/internal/core/jsonrpc/types/output/receipt.ts +0 -4
- package/src/internal/core/jsonrpc/types/output/transaction.ts +0 -4
- package/src/internal/core/providers/accounts.ts +16 -26
- package/src/internal/core/providers/construction.ts +5 -3
- package/src/internal/core/providers/gas-providers.ts +25 -33
- package/src/internal/core/providers/util.ts +1 -1
- package/src/internal/hardhat-network/jsonrpc/client.ts +22 -22
- package/src/internal/hardhat-network/provider/BlockchainBase.ts +62 -25
- package/src/internal/hardhat-network/provider/BlockchainData.ts +39 -42
- package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +21 -21
- package/src/internal/hardhat-network/provider/PoolState.ts +3 -4
- package/src/internal/hardhat-network/provider/TransactionQueue.ts +11 -8
- package/src/internal/hardhat-network/provider/TxPool.ts +62 -64
- package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +3 -3
- package/src/internal/hardhat-network/provider/filter.ts +9 -12
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +52 -50
- package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +35 -60
- package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +2 -2
- package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +3 -3
- package/src/internal/hardhat-network/provider/modules/eth.ts +88 -63
- package/src/internal/hardhat-network/provider/modules/evm.ts +19 -22
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +21 -19
- package/src/internal/hardhat-network/provider/modules/logger.ts +33 -40
- package/src/internal/hardhat-network/provider/modules/net.ts +1 -1
- package/src/internal/hardhat-network/provider/modules/personal.ts +2 -1
- package/src/internal/hardhat-network/provider/modules/web3.ts +5 -4
- package/src/internal/hardhat-network/provider/node-types.ts +32 -31
- package/src/internal/hardhat-network/provider/node.ts +379 -343
- package/src/internal/hardhat-network/provider/output.ts +32 -37
- package/src/internal/hardhat-network/provider/provider.ts +5 -6
- package/src/internal/hardhat-network/provider/return-data.ts +2 -3
- package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +51 -24
- package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +50 -23
- package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +29 -11
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +12 -24
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +11 -22
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +3 -3
- package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +8 -9
- package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +4 -0
- package/src/internal/hardhat-network/provider/utils/makeAccount.ts +4 -10
- package/src/internal/hardhat-network/provider/utils/makeCommon.ts +8 -34
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +8 -9
- package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +3 -3
- package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +34 -6
- package/src/internal/hardhat-network/provider/utils/random.ts +54 -0
- package/src/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.ts +6 -7
- package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +8 -8
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +7 -2
- 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 +6 -7
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +6 -7
- package/src/internal/hardhat-network/stack-traces/model.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/panic-errors.ts +3 -5
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +16 -1
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +6 -6
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +5 -0
- package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +106 -103
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +23 -18
- package/src/internal/solidity/compiler/downloader.ts +5 -2
- package/src/internal/util/bigint.ts +84 -0
- package/src/internal/util/hardforks.ts +4 -29
- package/src/internal/util/wei-values.ts +11 -13
- package/src/types/config.ts +8 -10
- package/types/config.d.ts +8 -9
- package/types/config.d.ts.map +1 -1
- package/src/internal/hardhat-network/provider/fork/random.ts +0 -33
- package/src/internal/hardhat-network/provider/utils/bnToHex.ts +0 -5
- package/src/internal/hardhat-network/provider/utils/makeForkCommon.ts +0 -15
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BN } from "ethereumjs-util";
|
|
2
1
|
import * as t from "io-ts";
|
|
3
2
|
|
|
4
3
|
import { BoundExperimentalHardhatNetworkMessageTraceHook } from "../../../../types";
|
|
@@ -85,16 +84,15 @@ export class EvmModule {
|
|
|
85
84
|
timestamp: RpcQuantityOrNumber
|
|
86
85
|
): Promise<string> {
|
|
87
86
|
const latestBlock = await this._node.getLatestBlock();
|
|
88
|
-
const increment =
|
|
89
|
-
|
|
90
|
-
)
|
|
91
|
-
if (increment.lte(new BN(0))) {
|
|
87
|
+
const increment = BigInt(timestamp) - latestBlock.header.timestamp;
|
|
88
|
+
|
|
89
|
+
if (increment <= 0n) {
|
|
92
90
|
throw new InvalidInputError(
|
|
93
91
|
`Timestamp ${timestamp.toString()} is lower than or equal to previous block's timestamp` +
|
|
94
|
-
` ${
|
|
92
|
+
` ${latestBlock.header.timestamp}`
|
|
95
93
|
);
|
|
96
94
|
}
|
|
97
|
-
this._node.setNextBlockTimestamp(
|
|
95
|
+
this._node.setNextBlockTimestamp(BigInt(timestamp));
|
|
98
96
|
return timestamp.toString();
|
|
99
97
|
}
|
|
100
98
|
|
|
@@ -107,7 +105,7 @@ export class EvmModule {
|
|
|
107
105
|
private async _increaseTimeAction(
|
|
108
106
|
increment: RpcQuantityOrNumber
|
|
109
107
|
): Promise<string> {
|
|
110
|
-
this._node.increaseTime(
|
|
108
|
+
this._node.increaseTime(BigInt(increment));
|
|
111
109
|
const totalIncrement = this._node.getTimeIncrement();
|
|
112
110
|
// This RPC call is an exception: it returns a number in decimal
|
|
113
111
|
return totalIncrement.toString();
|
|
@@ -123,21 +121,20 @@ export class EvmModule {
|
|
|
123
121
|
}
|
|
124
122
|
|
|
125
123
|
private async _mineAction(timestamp: RpcQuantityOrNumber): Promise<string> {
|
|
124
|
+
timestamp = BigInt(timestamp);
|
|
126
125
|
// if timestamp is specified, make sure it is bigger than previous
|
|
127
126
|
// block's timestamp
|
|
128
|
-
if (timestamp !==
|
|
127
|
+
if (timestamp !== 0n) {
|
|
129
128
|
const latestBlock = await this._node.getLatestBlock();
|
|
130
|
-
const increment =
|
|
131
|
-
|
|
132
|
-
);
|
|
133
|
-
if (increment.lte(new BN(0))) {
|
|
129
|
+
const increment = timestamp - latestBlock.header.timestamp;
|
|
130
|
+
if (increment <= 0n) {
|
|
134
131
|
throw new InvalidInputError(
|
|
135
132
|
`Timestamp ${timestamp.toString()} is lower than previous block's timestamp` +
|
|
136
|
-
` ${
|
|
133
|
+
` ${latestBlock.header.timestamp}`
|
|
137
134
|
);
|
|
138
135
|
}
|
|
139
136
|
}
|
|
140
|
-
const result = await this._node.mineBlock(
|
|
137
|
+
const result = await this._node.mineBlock(timestamp);
|
|
141
138
|
|
|
142
139
|
await this._logBlock(result);
|
|
143
140
|
|
|
@@ -146,12 +143,12 @@ export class EvmModule {
|
|
|
146
143
|
|
|
147
144
|
// evm_revert
|
|
148
145
|
|
|
149
|
-
private _revertParams(params: any[]): [
|
|
146
|
+
private _revertParams(params: any[]): [bigint] {
|
|
150
147
|
return validateParams(params, rpcQuantity);
|
|
151
148
|
}
|
|
152
149
|
|
|
153
|
-
private async _revertAction(snapshotId:
|
|
154
|
-
return this._node.revertToSnapshot(snapshotId
|
|
150
|
+
private async _revertAction(snapshotId: bigint): Promise<boolean> {
|
|
151
|
+
return this._node.revertToSnapshot(Number(snapshotId));
|
|
155
152
|
}
|
|
156
153
|
|
|
157
154
|
// evm_snapshot
|
|
@@ -192,12 +189,12 @@ export class EvmModule {
|
|
|
192
189
|
|
|
193
190
|
// evm_setBlockGasLimit
|
|
194
191
|
|
|
195
|
-
private _setBlockGasLimitParams(params: any[]): [
|
|
192
|
+
private _setBlockGasLimitParams(params: any[]): [bigint] {
|
|
196
193
|
return validateParams(params, rpcQuantity);
|
|
197
194
|
}
|
|
198
195
|
|
|
199
|
-
private async _setBlockGasLimitAction(blockGasLimit:
|
|
200
|
-
if (blockGasLimit
|
|
196
|
+
private async _setBlockGasLimitAction(blockGasLimit: bigint): Promise<true> {
|
|
197
|
+
if (blockGasLimit <= 0n) {
|
|
201
198
|
throw new InvalidInputError("Block gas limit must be greater than 0");
|
|
202
199
|
}
|
|
203
200
|
|
|
@@ -212,7 +209,7 @@ export class EvmModule {
|
|
|
212
209
|
for (const txTrace of traces) {
|
|
213
210
|
const code = await this._node.getCodeFromTrace(
|
|
214
211
|
txTrace.trace,
|
|
215
|
-
|
|
212
|
+
block.header.number
|
|
216
213
|
);
|
|
217
214
|
|
|
218
215
|
codes.push(code);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Address
|
|
1
|
+
import { Address } from "@ignored/util";
|
|
2
2
|
import * as t from "io-ts";
|
|
3
3
|
|
|
4
4
|
import {
|
|
@@ -173,7 +173,7 @@ export class HardhatModule {
|
|
|
173
173
|
|
|
174
174
|
private async _intervalMineAction(): Promise<boolean> {
|
|
175
175
|
const result = await this._node.mineBlock();
|
|
176
|
-
const blockNumber = result.block.header.number
|
|
176
|
+
const blockNumber = result.block.header.number;
|
|
177
177
|
|
|
178
178
|
const isEmpty = result.block.transactions.length === 0;
|
|
179
179
|
if (isEmpty) {
|
|
@@ -238,12 +238,12 @@ export class HardhatModule {
|
|
|
238
238
|
|
|
239
239
|
// hardhat_setMinGasPrice
|
|
240
240
|
|
|
241
|
-
private _setMinGasPriceParams(params: any[]): [
|
|
241
|
+
private _setMinGasPriceParams(params: any[]): [bigint] {
|
|
242
242
|
return validateParams(params, rpcQuantity);
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
private async _setMinGasPriceAction(minGasPrice:
|
|
246
|
-
if (minGasPrice
|
|
245
|
+
private async _setMinGasPriceAction(minGasPrice: bigint): Promise<true> {
|
|
246
|
+
if (minGasPrice < 0n) {
|
|
247
247
|
throw new InvalidInputError("Minimum gas price cannot be negative");
|
|
248
248
|
}
|
|
249
249
|
|
|
@@ -269,11 +269,11 @@ export class HardhatModule {
|
|
|
269
269
|
|
|
270
270
|
// hardhat_setBalance
|
|
271
271
|
|
|
272
|
-
private _setBalanceParams(params: any[]): [Buffer,
|
|
272
|
+
private _setBalanceParams(params: any[]): [Buffer, bigint] {
|
|
273
273
|
return validateParams(params, rpcAddress, rpcQuantity);
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
private async _setBalanceAction(address: Buffer, newBalance:
|
|
276
|
+
private async _setBalanceAction(address: Buffer, newBalance: bigint) {
|
|
277
277
|
await this._node.setAccountBalance(new Address(address), newBalance);
|
|
278
278
|
return true;
|
|
279
279
|
}
|
|
@@ -291,18 +291,18 @@ export class HardhatModule {
|
|
|
291
291
|
|
|
292
292
|
// hardhat_setNonce
|
|
293
293
|
|
|
294
|
-
private _setNonceParams(params: any[]): [Buffer,
|
|
294
|
+
private _setNonceParams(params: any[]): [Buffer, bigint] {
|
|
295
295
|
return validateParams(params, rpcAddress, rpcQuantity);
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
-
private async _setNonceAction(address: Buffer, newNonce:
|
|
298
|
+
private async _setNonceAction(address: Buffer, newNonce: bigint) {
|
|
299
299
|
await this._node.setNextConfirmedNonce(new Address(address), newNonce);
|
|
300
300
|
return true;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
303
|
// hardhat_setStorageAt
|
|
304
304
|
|
|
305
|
-
private _setStorageAtParams(params: any[]): [Buffer,
|
|
305
|
+
private _setStorageAtParams(params: any[]): [Buffer, bigint, Buffer] {
|
|
306
306
|
const [address, positionIndex, value] = validateParams(
|
|
307
307
|
params,
|
|
308
308
|
rpcAddress,
|
|
@@ -310,8 +310,8 @@ export class HardhatModule {
|
|
|
310
310
|
rpcData
|
|
311
311
|
);
|
|
312
312
|
|
|
313
|
-
const MAX_WORD_VALUE =
|
|
314
|
-
if (positionIndex
|
|
313
|
+
const MAX_WORD_VALUE = 2n ** 256n;
|
|
314
|
+
if (positionIndex >= MAX_WORD_VALUE) {
|
|
315
315
|
throw new InvalidInputError(
|
|
316
316
|
`Storage key must not be greater than or equal to 2^256. Received ${positionIndex.toString()}.`
|
|
317
317
|
);
|
|
@@ -330,7 +330,7 @@ export class HardhatModule {
|
|
|
330
330
|
|
|
331
331
|
private async _setStorageAtAction(
|
|
332
332
|
address: Buffer,
|
|
333
|
-
positionIndex:
|
|
333
|
+
positionIndex: bigint,
|
|
334
334
|
value: Buffer
|
|
335
335
|
) {
|
|
336
336
|
await this._node.setStorageAt(new Address(address), positionIndex, value);
|
|
@@ -338,11 +338,11 @@ export class HardhatModule {
|
|
|
338
338
|
}
|
|
339
339
|
|
|
340
340
|
// hardhat_setNextBlockBaseFeePerGas
|
|
341
|
-
private _setNextBlockBaseFeePerGasParams(params: any[]): [
|
|
341
|
+
private _setNextBlockBaseFeePerGasParams(params: any[]): [bigint] {
|
|
342
342
|
return validateParams(params, rpcQuantity);
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
-
private _setNextBlockBaseFeePerGasAction(baseFeePerGas:
|
|
345
|
+
private _setNextBlockBaseFeePerGasAction(baseFeePerGas: bigint) {
|
|
346
346
|
if (!this._node.isEip1559Active()) {
|
|
347
347
|
throw new InvalidInputError(
|
|
348
348
|
"hardhat_setNextBlockBaseFeePerGas is disabled because EIP-1559 is not active"
|
|
@@ -365,7 +365,7 @@ export class HardhatModule {
|
|
|
365
365
|
}
|
|
366
366
|
|
|
367
367
|
// hardhat_mine
|
|
368
|
-
private async _hardhatMineAction(blockCount?:
|
|
368
|
+
private async _hardhatMineAction(blockCount?: bigint, interval?: bigint) {
|
|
369
369
|
const mineBlockResults = await this._node.mineBlocks(blockCount, interval);
|
|
370
370
|
|
|
371
371
|
for (const [i, result] of mineBlockResults.entries()) {
|
|
@@ -381,7 +381,9 @@ export class HardhatModule {
|
|
|
381
381
|
|
|
382
382
|
return true;
|
|
383
383
|
}
|
|
384
|
-
private _hardhatMineParams(
|
|
384
|
+
private _hardhatMineParams(
|
|
385
|
+
params: any[]
|
|
386
|
+
): [bigint | undefined, bigint | undefined] {
|
|
385
387
|
return validateParams(params, optional(rpcQuantity), optional(rpcQuantity));
|
|
386
388
|
}
|
|
387
389
|
|
|
@@ -395,7 +397,7 @@ export class HardhatModule {
|
|
|
395
397
|
for (const txTrace of traces) {
|
|
396
398
|
const code = await this._node.getCodeFromTrace(
|
|
397
399
|
txTrace.trace,
|
|
398
|
-
|
|
400
|
+
block.header.number
|
|
399
401
|
);
|
|
400
402
|
|
|
401
403
|
codes.push(code);
|
|
@@ -427,7 +429,7 @@ export class HardhatModule {
|
|
|
427
429
|
|
|
428
430
|
private async _logHardhatMinedBlock(result: MineBlockResult) {
|
|
429
431
|
const isEmpty = result.block.transactions.length === 0;
|
|
430
|
-
const blockNumber = result.block.header.number
|
|
432
|
+
const blockNumber = result.block.header.number;
|
|
431
433
|
|
|
432
434
|
if (isEmpty) {
|
|
433
435
|
this._logger.logEmptyHardhatMinedBlock(
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Block } from "@
|
|
2
|
-
import { TypedTransaction } from "@
|
|
1
|
+
import { Block } from "@ignored/block";
|
|
2
|
+
import { TypedTransaction } from "@ignored/tx";
|
|
3
|
+
import { bufferToHex } from "@ignored/util";
|
|
3
4
|
import ansiEscapes from "ansi-escapes";
|
|
4
5
|
import chalk, { Chalk } from "chalk";
|
|
5
|
-
import { BN, bufferToHex } from "ethereumjs-util";
|
|
6
6
|
import util from "util";
|
|
7
7
|
|
|
8
8
|
import { assertHardhatInvariant } from "../../../core/errors";
|
|
@@ -62,8 +62,8 @@ export class ModulesLogger {
|
|
|
62
62
|
private _logs: Array<string | [string, string]> = [];
|
|
63
63
|
private _titleLength = 0;
|
|
64
64
|
private _currentIndent = 0;
|
|
65
|
-
private _emptyIntervalMinedBlocksRangeStart:
|
|
66
|
-
private _emptyHardhatMinedBlocksRangeStart:
|
|
65
|
+
private _emptyIntervalMinedBlocksRangeStart: bigint | undefined = undefined;
|
|
66
|
+
private _emptyHardhatMinedBlocksRangeStart: bigint | undefined = undefined;
|
|
67
67
|
private _methodBeingCollapsed?: string;
|
|
68
68
|
private _methodCollapsedCount: number = 0;
|
|
69
69
|
|
|
@@ -108,7 +108,8 @@ export class ModulesLogger {
|
|
|
108
108
|
|
|
109
109
|
for (let i = 0; i < block.transactions.length; i++) {
|
|
110
110
|
const tx = block.transactions[i];
|
|
111
|
-
|
|
111
|
+
|
|
112
|
+
const txGasUsed = results[i].totalGasSpent;
|
|
112
113
|
const txTrace = traces[i];
|
|
113
114
|
const code = codes[i];
|
|
114
115
|
|
|
@@ -133,7 +134,7 @@ export class ModulesLogger {
|
|
|
133
134
|
"The array of codes should have the same length as the array of results"
|
|
134
135
|
);
|
|
135
136
|
|
|
136
|
-
const blockNumber = result.block.header.number
|
|
137
|
+
const blockNumber = result.block.header.number;
|
|
137
138
|
const isEmpty = result.block.transactions.length === 0;
|
|
138
139
|
|
|
139
140
|
this._indent(() => {
|
|
@@ -155,7 +156,7 @@ export class ModulesLogger {
|
|
|
155
156
|
|
|
156
157
|
for (let i = 0; i < block.transactions.length; i++) {
|
|
157
158
|
const tx = block.transactions[i];
|
|
158
|
-
const txGasUsed = results[i].
|
|
159
|
+
const txGasUsed = results[i].totalGasSpent;
|
|
159
160
|
const txTrace = traces[i];
|
|
160
161
|
const code = codes[i];
|
|
161
162
|
|
|
@@ -187,7 +188,7 @@ export class ModulesLogger {
|
|
|
187
188
|
|
|
188
189
|
for (let i = 0; i < block.transactions.length; i++) {
|
|
189
190
|
const tx = block.transactions[i];
|
|
190
|
-
const txGasUsed = results[i].
|
|
191
|
+
const txGasUsed = results[i].totalGasSpent;
|
|
191
192
|
const txTrace = traces[i];
|
|
192
193
|
const code = codes[i];
|
|
193
194
|
|
|
@@ -204,7 +205,7 @@ export class ModulesLogger {
|
|
|
204
205
|
public logSingleTransaction(
|
|
205
206
|
tx: TypedTransaction,
|
|
206
207
|
block: Block,
|
|
207
|
-
txGasUsed:
|
|
208
|
+
txGasUsed: bigint,
|
|
208
209
|
txTrace: GatherTracesResult,
|
|
209
210
|
code: Buffer
|
|
210
211
|
) {
|
|
@@ -217,14 +218,11 @@ export class ModulesLogger {
|
|
|
217
218
|
|
|
218
219
|
this._logTxFrom(tx.getSenderAddress().toBuffer());
|
|
219
220
|
this._logTxTo(tx.to?.toBuffer(), txTrace.trace);
|
|
220
|
-
this._logTxValue(
|
|
221
|
-
this._logWithTitle(
|
|
222
|
-
"Gas used",
|
|
223
|
-
`${txGasUsed} of ${tx.gasLimit.toNumber()}`
|
|
224
|
-
);
|
|
221
|
+
this._logTxValue(tx.value);
|
|
222
|
+
this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
|
|
225
223
|
|
|
226
224
|
this._logWithTitle(
|
|
227
|
-
`Block #${block.header.number
|
|
225
|
+
`Block #${block.header.number}`,
|
|
228
226
|
bufferToHex(block.hash())
|
|
229
227
|
);
|
|
230
228
|
|
|
@@ -238,7 +236,7 @@ export class ModulesLogger {
|
|
|
238
236
|
|
|
239
237
|
public logCurrentlySentTransaction(
|
|
240
238
|
tx: TypedTransaction,
|
|
241
|
-
txGasUsed:
|
|
239
|
+
txGasUsed: bigint,
|
|
242
240
|
txTrace: GatherTracesResult,
|
|
243
241
|
code: Buffer,
|
|
244
242
|
block: Block
|
|
@@ -255,14 +253,11 @@ export class ModulesLogger {
|
|
|
255
253
|
|
|
256
254
|
this._logTxFrom(tx.getSenderAddress().toBuffer());
|
|
257
255
|
this._logTxTo(tx.to?.toBuffer(), txTrace.trace);
|
|
258
|
-
this._logTxValue(
|
|
259
|
-
this._logWithTitle(
|
|
260
|
-
"Gas used",
|
|
261
|
-
`${txGasUsed} of ${tx.gasLimit.toNumber()}`
|
|
262
|
-
);
|
|
256
|
+
this._logTxValue(tx.value);
|
|
257
|
+
this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
|
|
263
258
|
|
|
264
259
|
this._logWithTitle(
|
|
265
|
-
`Block #${block.header.number
|
|
260
|
+
`Block #${block.header.number}`,
|
|
266
261
|
bufferToHex(block.hash())
|
|
267
262
|
);
|
|
268
263
|
|
|
@@ -288,7 +283,7 @@ export class ModulesLogger {
|
|
|
288
283
|
|
|
289
284
|
this._logTxFrom(callParams.from);
|
|
290
285
|
this._logTxTo(callParams.to, trace);
|
|
291
|
-
this._logTxValue(
|
|
286
|
+
this._logTxValue(callParams.value);
|
|
292
287
|
|
|
293
288
|
this._logConsoleLogMessages(consoleLogMessages);
|
|
294
289
|
|
|
@@ -310,7 +305,7 @@ export class ModulesLogger {
|
|
|
310
305
|
|
|
311
306
|
this._logTxFrom(callParams.from);
|
|
312
307
|
this._logTxTo(callParams.to, trace);
|
|
313
|
-
if (callParams.value
|
|
308
|
+
if (callParams.value > 0n) {
|
|
314
309
|
this._logTxValue(callParams.value);
|
|
315
310
|
}
|
|
316
311
|
|
|
@@ -324,9 +319,9 @@ export class ModulesLogger {
|
|
|
324
319
|
}
|
|
325
320
|
|
|
326
321
|
public logMinedBlockNumber(
|
|
327
|
-
blockNumber:
|
|
322
|
+
blockNumber: bigint,
|
|
328
323
|
isEmpty: boolean,
|
|
329
|
-
baseFeePerGas?:
|
|
324
|
+
baseFeePerGas?: bigint
|
|
330
325
|
) {
|
|
331
326
|
if (isEmpty) {
|
|
332
327
|
this._log(
|
|
@@ -400,9 +395,9 @@ export class ModulesLogger {
|
|
|
400
395
|
}
|
|
401
396
|
|
|
402
397
|
public printIntervalMinedBlockNumber(
|
|
403
|
-
blockNumber:
|
|
398
|
+
blockNumber: bigint,
|
|
404
399
|
isEmpty: boolean,
|
|
405
|
-
baseFeePerGas?:
|
|
400
|
+
baseFeePerGas?: bigint
|
|
406
401
|
) {
|
|
407
402
|
if (this._emptyIntervalMinedBlocksRangeStart !== undefined) {
|
|
408
403
|
this._print(
|
|
@@ -433,7 +428,10 @@ export class ModulesLogger {
|
|
|
433
428
|
}
|
|
434
429
|
}
|
|
435
430
|
|
|
436
|
-
public logEmptyHardhatMinedBlock(
|
|
431
|
+
public logEmptyHardhatMinedBlock(
|
|
432
|
+
blockNumber: bigint,
|
|
433
|
+
baseFeePerGas?: bigint
|
|
434
|
+
) {
|
|
437
435
|
this._indent(() => {
|
|
438
436
|
if (this._emptyHardhatMinedBlocksRangeStart !== undefined) {
|
|
439
437
|
this._log(
|
|
@@ -568,7 +566,7 @@ export class ModulesLogger {
|
|
|
568
566
|
tx: TypedTransaction,
|
|
569
567
|
txTrace: GatherTracesResult,
|
|
570
568
|
code: Buffer,
|
|
571
|
-
txGasUsed:
|
|
569
|
+
txGasUsed: bigint,
|
|
572
570
|
{
|
|
573
571
|
highlightTxHash,
|
|
574
572
|
}: {
|
|
@@ -590,11 +588,8 @@ export class ModulesLogger {
|
|
|
590
588
|
this._logContractAndFunctionName(txTrace.trace, code);
|
|
591
589
|
this._logTxFrom(tx.getSenderAddress().toBuffer());
|
|
592
590
|
this._logTxTo(tx.to?.toBuffer(), txTrace.trace);
|
|
593
|
-
this._logTxValue(
|
|
594
|
-
this._logWithTitle(
|
|
595
|
-
"Gas used",
|
|
596
|
-
`${txGasUsed} of ${tx.gasLimit.toNumber()}`
|
|
597
|
-
);
|
|
591
|
+
this._logTxValue(tx.value);
|
|
592
|
+
this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
|
|
598
593
|
|
|
599
594
|
this._logConsoleLogMessages(txTrace.consoleLogMessages);
|
|
600
595
|
|
|
@@ -741,7 +736,7 @@ export class ModulesLogger {
|
|
|
741
736
|
this._logWithTitle("To", toString);
|
|
742
737
|
}
|
|
743
738
|
|
|
744
|
-
private _logTxValue(value:
|
|
739
|
+
private _logTxValue(value: bigint) {
|
|
745
740
|
this._logWithTitle("Value", weiToHumanReadableString(value));
|
|
746
741
|
}
|
|
747
742
|
|
|
@@ -750,9 +745,7 @@ export class ModulesLogger {
|
|
|
750
745
|
}
|
|
751
746
|
|
|
752
747
|
private _logBlockNumber(block: Block) {
|
|
753
|
-
this._log(
|
|
754
|
-
`Block #${block.header.number.toNumber()}: ${bufferToHex(block.hash())}`
|
|
755
|
-
);
|
|
748
|
+
this._log(`Block #${block.header.number}: ${bufferToHex(block.hash())}`);
|
|
756
749
|
}
|
|
757
750
|
|
|
758
751
|
private _logEmptyLineBetweenTransactions(
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Address, toRpcSig } from "
|
|
1
|
+
import { Address, toRpcSig } from "@ignored/util";
|
|
2
|
+
|
|
2
3
|
import { rpcAddress, rpcData } from "../../../core/jsonrpc/types/base-types";
|
|
3
4
|
import { validateParams } from "../../../core/jsonrpc/types/input/validation";
|
|
4
5
|
import { MethodNotFoundError } from "../../../core/providers/errors";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { arrToBufArr, bufArrToArr } from "@ignored/util";
|
|
2
|
+
import { keccak256 } from "ethereum-cryptography/keccak";
|
|
2
3
|
|
|
3
4
|
import {
|
|
4
5
|
bufferToRpcData,
|
|
@@ -34,8 +35,8 @@ export class Web3Module {
|
|
|
34
35
|
|
|
35
36
|
private async _clientVersionAction(): Promise<string> {
|
|
36
37
|
const hardhatPackage = await getPackageJson();
|
|
37
|
-
const ethereumjsVMPackage = require("@
|
|
38
|
-
return `HardhatNetwork/${hardhatPackage.version}/@
|
|
38
|
+
const ethereumjsVMPackage = require("@ignored/vm/package.json");
|
|
39
|
+
return `HardhatNetwork/${hardhatPackage.version}/@ignored/vm/${ethereumjsVMPackage.version}`;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
// web3_sha3
|
|
@@ -45,6 +46,6 @@ export class Web3Module {
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
private async _sha3Action(buffer: Buffer): Promise<string> {
|
|
48
|
-
return bufferToRpcData(keccak256(buffer));
|
|
49
|
+
return bufferToRpcData(arrToBufArr(keccak256(bufArrToArr(buffer))));
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ReturnData } from "./return-data";
|
|
2
2
|
|
|
3
|
-
import { Block } from "@
|
|
4
|
-
import { RunBlockResult } from "@
|
|
5
|
-
import { BN } from "ethereumjs-util";
|
|
3
|
+
import { Block } from "@ignored/block";
|
|
4
|
+
import { RunBlockResult } from "@ignored/vm";
|
|
6
5
|
|
|
7
6
|
import { HARDHAT_MEMPOOL_SUPPORTED_ORDERS } from "../../constants";
|
|
8
7
|
import { BuildInfo, HardhatNetworkChainsConfig } from "../../../types";
|
|
9
8
|
import { MessageTrace } from "../stack-traces/message-trace";
|
|
9
|
+
import { RandomBufferGenerator } from "./utils/random";
|
|
10
10
|
|
|
11
11
|
export type NodeConfig = LocalNodeConfig | ForkedNodeConfig;
|
|
12
12
|
|
|
@@ -18,17 +18,17 @@ export function isForkedNodeConfig(
|
|
|
18
18
|
|
|
19
19
|
interface CommonConfig {
|
|
20
20
|
automine: boolean;
|
|
21
|
-
blockGasLimit:
|
|
21
|
+
blockGasLimit: bigint;
|
|
22
22
|
chainId: number;
|
|
23
23
|
genesisAccounts: GenesisAccount[];
|
|
24
24
|
hardfork: string;
|
|
25
|
-
minGasPrice:
|
|
25
|
+
minGasPrice: bigint;
|
|
26
26
|
networkId: number;
|
|
27
27
|
networkName: string;
|
|
28
28
|
allowUnlimitedContractSize?: boolean;
|
|
29
29
|
initialDate?: Date;
|
|
30
30
|
tracingConfig?: TracingConfig;
|
|
31
|
-
initialBaseFeePerGas?:
|
|
31
|
+
initialBaseFeePerGas?: bigint;
|
|
32
32
|
mempoolOrder: MempoolOrder;
|
|
33
33
|
coinbase: string;
|
|
34
34
|
chains: HardhatNetworkChainsConfig;
|
|
@@ -57,7 +57,7 @@ export type MempoolOrder = typeof HARDHAT_MEMPOOL_SUPPORTED_ORDERS[number];
|
|
|
57
57
|
|
|
58
58
|
export interface GenesisAccount {
|
|
59
59
|
privateKey: string;
|
|
60
|
-
balance: string | number |
|
|
60
|
+
balance: string | number | bigint;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
export type AccessListBufferItem = [Buffer, Buffer[]];
|
|
@@ -65,16 +65,16 @@ export type AccessListBufferItem = [Buffer, Buffer[]];
|
|
|
65
65
|
export interface CallParams {
|
|
66
66
|
to?: Buffer;
|
|
67
67
|
from: Buffer;
|
|
68
|
-
gasLimit:
|
|
69
|
-
value:
|
|
68
|
+
gasLimit: bigint;
|
|
69
|
+
value: bigint;
|
|
70
70
|
data: Buffer;
|
|
71
|
-
// We use this access list format because @
|
|
71
|
+
// We use this access list format because @ignored/tx access list data
|
|
72
72
|
// forces us to use it or stringify them
|
|
73
73
|
accessList?: AccessListBufferItem[];
|
|
74
74
|
// Fee params
|
|
75
|
-
gasPrice?:
|
|
76
|
-
maxFeePerGas?:
|
|
77
|
-
maxPriorityFeePerGas?:
|
|
75
|
+
gasPrice?: bigint;
|
|
76
|
+
maxFeePerGas?: bigint;
|
|
77
|
+
maxPriorityFeePerGas?: bigint;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
export type TransactionParams =
|
|
@@ -86,19 +86,19 @@ interface BaseTransactionParams {
|
|
|
86
86
|
// `to` should be undefined for contract creation
|
|
87
87
|
to?: Buffer;
|
|
88
88
|
from: Buffer;
|
|
89
|
-
gasLimit:
|
|
90
|
-
value:
|
|
89
|
+
gasLimit: bigint;
|
|
90
|
+
value: bigint;
|
|
91
91
|
data: Buffer;
|
|
92
|
-
nonce:
|
|
92
|
+
nonce: bigint;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
export interface LegacyTransactionParams extends BaseTransactionParams {
|
|
96
|
-
gasPrice:
|
|
96
|
+
gasPrice: bigint;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
export interface AccessListTransactionParams extends BaseTransactionParams {
|
|
100
|
-
gasPrice:
|
|
101
|
-
// We use this access list format because @
|
|
100
|
+
gasPrice: bigint;
|
|
101
|
+
// We use this access list format because @ignored/tx access list data
|
|
102
102
|
// forces us to use it or stringify them
|
|
103
103
|
accessList: AccessListBufferItem[];
|
|
104
104
|
// We don't include chainId as it's not necessary, the node
|
|
@@ -107,13 +107,13 @@ export interface AccessListTransactionParams extends BaseTransactionParams {
|
|
|
107
107
|
|
|
108
108
|
export interface EIP1559TransactionParams extends BaseTransactionParams {
|
|
109
109
|
accessList: AccessListBufferItem[];
|
|
110
|
-
maxFeePerGas:
|
|
111
|
-
maxPriorityFeePerGas:
|
|
110
|
+
maxFeePerGas: bigint;
|
|
111
|
+
maxPriorityFeePerGas: bigint;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
export interface FilterParams {
|
|
115
|
-
fromBlock:
|
|
116
|
-
toBlock:
|
|
115
|
+
fromBlock: bigint;
|
|
116
|
+
toBlock: bigint;
|
|
117
117
|
addresses: Buffer[];
|
|
118
118
|
normalizedTopics: Array<Array<Buffer | null> | null>;
|
|
119
119
|
}
|
|
@@ -124,11 +124,12 @@ export interface Snapshot {
|
|
|
124
124
|
latestBlock: Block;
|
|
125
125
|
stateRoot: Buffer;
|
|
126
126
|
txPoolSnapshotId: number;
|
|
127
|
-
blockTimeOffsetSeconds:
|
|
128
|
-
nextBlockTimestamp:
|
|
129
|
-
irregularStatesByBlockNumber: Map<
|
|
130
|
-
userProvidedNextBlockBaseFeePerGas:
|
|
127
|
+
blockTimeOffsetSeconds: bigint;
|
|
128
|
+
nextBlockTimestamp: bigint;
|
|
129
|
+
irregularStatesByBlockNumber: Map<bigint, Buffer>;
|
|
130
|
+
userProvidedNextBlockBaseFeePerGas: bigint | undefined;
|
|
131
131
|
coinbase: string;
|
|
132
|
+
mixHashGenerator: RandomBufferGenerator;
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
export type SendTransactionResult =
|
|
@@ -147,7 +148,7 @@ export interface RunCallResult extends GatherTracesResult {
|
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
export interface EstimateGasResult extends GatherTracesResult {
|
|
150
|
-
estimation:
|
|
151
|
+
estimation: bigint;
|
|
151
152
|
}
|
|
152
153
|
|
|
153
154
|
export interface GatherTracesResult {
|
|
@@ -157,8 +158,8 @@ export interface GatherTracesResult {
|
|
|
157
158
|
}
|
|
158
159
|
|
|
159
160
|
export interface FeeHistory {
|
|
160
|
-
oldestBlock:
|
|
161
|
-
baseFeePerGas:
|
|
161
|
+
oldestBlock: bigint;
|
|
162
|
+
baseFeePerGas: bigint[];
|
|
162
163
|
gasUsedRatio: number[];
|
|
163
|
-
reward?:
|
|
164
|
+
reward?: bigint[][];
|
|
164
165
|
}
|