hardhat 2.23.0-dev.2 → 2.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/builtin-tasks/compile.js +8 -8
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/flatten.js +13 -6
- package/builtin-tasks/flatten.js.map +1 -1
- package/builtin-tasks/node.js +7 -7
- package/builtin-tasks/node.js.map +1 -1
- package/builtin-tasks/test.js +2 -2
- package/builtin-tasks/test.js.map +1 -1
- package/builtin-tasks/utils/watch.js +2 -2
- package/builtin-tasks/utils/watch.js.map +1 -1
- package/common/bigInt.d.ts +1 -1
- package/common/bigInt.d.ts.map +1 -1
- package/console.sol +1 -1
- package/internal/cli/autocomplete.js +1 -1
- package/internal/cli/autocomplete.js.map +1 -1
- package/internal/cli/banner-manager.d.ts +12 -0
- package/internal/cli/banner-manager.d.ts.map +1 -0
- package/internal/cli/banner-manager.js +126 -0
- package/internal/cli/banner-manager.js.map +1 -0
- package/internal/cli/bootstrap.js +4 -5
- package/internal/cli/bootstrap.js.map +1 -1
- package/internal/cli/cli.js +14 -9
- package/internal/cli/cli.js.map +1 -1
- package/internal/cli/constants.d.ts.map +1 -1
- package/internal/cli/constants.js +1 -1
- package/internal/cli/constants.js.map +1 -1
- package/internal/cli/is-node-version-to-warn-on.d.ts +13 -0
- package/internal/cli/is-node-version-to-warn-on.d.ts.map +1 -0
- package/internal/cli/is-node-version-to-warn-on.js +46 -0
- package/internal/cli/is-node-version-to-warn-on.js.map +1 -0
- package/internal/cli/project-creation.d.ts +1 -1
- package/internal/cli/project-creation.d.ts.map +1 -1
- package/internal/cli/project-creation.js +31 -21
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/cli/vars.js +10 -10
- package/internal/cli/vars.js.map +1 -1
- package/internal/cli/version-notifier.js +2 -2
- package/internal/cli/version-notifier.js.map +1 -1
- package/internal/constants.d.ts.map +1 -1
- package/internal/constants.js +1 -0
- package/internal/constants.js.map +1 -1
- package/internal/context.d.ts +1 -2
- package/internal/context.d.ts.map +1 -1
- package/internal/context.js +0 -3
- package/internal/context.js.map +1 -1
- package/internal/core/config/config-env.d.ts +1 -2
- package/internal/core/config/config-env.d.ts.map +1 -1
- package/internal/core/config/config-env.js +1 -8
- package/internal/core/config/config-env.js.map +1 -1
- package/internal/core/config/config-loading.d.ts +1 -1
- package/internal/core/config/config-loading.d.ts.map +1 -1
- package/internal/core/config/config-loading.js +14 -8
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/core/config/config-validation.js +1 -1
- package/internal/core/config/config-validation.js.map +1 -1
- package/internal/core/config/default-config.d.ts.map +1 -1
- package/internal/core/config/default-config.js +57 -32
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/errors-list.d.ts +21 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +27 -1
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/authorization-list.d.ts +21 -0
- package/internal/core/jsonrpc/types/authorization-list.d.ts.map +1 -0
- package/internal/{hardhat-network/provider/PoolState.js → core/jsonrpc/types/authorization-list.js} +12 -15
- package/internal/core/jsonrpc/types/authorization-list.js.map +1 -0
- package/internal/core/jsonrpc/types/base-types.d.ts +2 -0
- package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/base-types.js +12 -8
- package/internal/core/jsonrpc/types/base-types.js.map +1 -1
- package/internal/core/jsonrpc/types/input/logAddress.d.ts +1 -0
- package/internal/core/jsonrpc/types/input/logAddress.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/logTopics.d.ts +1 -0
- package/internal/core/jsonrpc/types/input/logTopics.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +23 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/transactionRequest.js +2 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
- package/internal/core/jsonrpc/types/output/block.d.ts +2 -2
- package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/block.js +2 -1
- package/internal/core/jsonrpc/types/output/block.js.map +1 -1
- package/internal/core/project-structure.js +8 -8
- package/internal/core/project-structure.js.map +1 -1
- package/internal/core/providers/accounts.d.ts.map +1 -1
- package/internal/core/providers/accounts.js +76 -34
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/construction.d.ts +2 -2
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +2 -2
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/http.d.ts.map +1 -1
- package/internal/core/providers/http.js +12 -0
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/providers/lazy-initialization.d.ts.map +1 -1
- package/internal/core/providers/lazy-initialization.js +10 -10
- package/internal/core/providers/lazy-initialization.js.map +1 -1
- package/internal/core/providers/util.d.ts +1 -0
- package/internal/core/providers/util.d.ts.map +1 -1
- package/internal/core/providers/util.js +1 -1
- package/internal/core/providers/util.js.map +1 -1
- package/internal/core/runtime-environment.d.ts +2 -2
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +2 -2
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/core/typescript-support.d.ts +1 -1
- package/internal/core/typescript-support.js +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts +2 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.js +10 -10
- package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.js +2 -1
- package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +0 -52
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +12 -1
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +5 -20
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +47 -171
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.d.ts +2 -15
- package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +2 -50
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.js +10 -7
- package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -1
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +2 -2
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeAccount.js +4 -4
- package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +2 -2
- package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
- package/internal/hardhat-network/provider/utils/random.d.ts +4 -3
- package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/random.js +3 -3
- package/internal/hardhat-network/provider/utils/random.js.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts +2 -21
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.js +3 -93
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +3 -2
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/minimal-vm.js +10 -4
- package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -1
- package/internal/hardhat-network/provider/vm/types.d.ts +2 -1
- package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +17 -16
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.js +68 -102
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.d.ts +1 -2
- package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.js +2 -3
- package/internal/hardhat-network/stack-traces/constants.js.map +1 -1
- package/internal/hardhat-network/stack-traces/library-utils.d.ts +2 -11
- package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/library-utils.js +3 -61
- package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
- package/internal/hardhat-network/stack-traces/logger.d.ts +2 -598
- package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/logger.js +379 -601
- package/internal/hardhat-network/stack-traces/logger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +61 -56
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +4 -155
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +12 -37
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
- package/internal/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +1 -1
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/internal/sentry/anonymizer.d.ts +1 -1
- package/internal/sentry/anonymizer.d.ts.map +1 -1
- package/internal/sentry/anonymizer.js +1 -1
- package/internal/sentry/anonymizer.js.map +1 -1
- package/internal/solidity/compiler/downloader.js +1 -1
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/solidity/compiler/solc-info.d.ts.map +1 -1
- package/internal/solidity/compiler/solc-info.js +4 -0
- package/internal/solidity/compiler/solc-info.js.map +1 -1
- package/internal/util/caller-package.js +1 -1
- package/internal/util/caller-package.js.map +1 -1
- package/internal/util/glob.d.ts +1 -1
- package/internal/util/glob.d.ts.map +1 -1
- package/internal/util/glob.js +2 -7
- package/internal/util/glob.js.map +1 -1
- package/internal/util/hardforks.d.ts +2 -1
- package/internal/util/hardforks.d.ts.map +1 -1
- package/internal/util/hardforks.js +2 -0
- package/internal/util/hardforks.js.map +1 -1
- package/internal/util/hash.d.ts +1 -0
- package/internal/util/hash.d.ts.map +1 -1
- package/internal/util/keys-derivation.d.ts +1 -0
- package/internal/util/keys-derivation.d.ts.map +1 -1
- package/internal/util/packageInfo.d.ts +1 -1
- package/internal/util/packageInfo.d.ts.map +1 -1
- package/internal/util/packageInfo.js +3 -3
- package/internal/util/packageInfo.js.map +1 -1
- package/internal/util/request.d.ts +2 -0
- package/internal/util/request.d.ts.map +1 -0
- package/internal/util/request.js +70 -0
- package/internal/util/request.js.map +1 -0
- package/package.json +10 -20
- package/register.js +1 -1
- package/register.js.map +1 -1
- package/sample-projects/javascript/contracts/Lock.sol +1 -1
- package/sample-projects/javascript/hardhat.config.js +1 -1
- package/sample-projects/javascript/ignition/modules/Lock.js +3 -0
- package/sample-projects/javascript-esm/contracts/Lock.sol +1 -1
- package/sample-projects/javascript-esm/hardhat.config.cjs +1 -1
- package/sample-projects/javascript-esm/ignition/modules/Lock.js +3 -0
- package/sample-projects/typescript/contracts/Lock.sol +1 -1
- package/sample-projects/typescript/hardhat.config.ts +1 -1
- package/sample-projects/typescript/ignition/modules/Lock.ts +3 -0
- package/sample-projects/typescript-viem/contracts/Lock.sol +1 -1
- package/sample-projects/typescript-viem/hardhat.config.ts +1 -1
- package/sample-projects/typescript-viem/ignition/modules/Lock.ts +3 -0
- package/src/builtin-tasks/compile.ts +12 -8
- package/src/builtin-tasks/flatten.ts +59 -41
- package/src/builtin-tasks/node.ts +8 -8
- package/src/builtin-tasks/test.ts +2 -2
- package/src/builtin-tasks/utils/watch.ts +2 -2
- package/src/common/bigInt.ts +1 -1
- package/src/internal/cli/autocomplete.ts +1 -1
- package/src/internal/cli/banner-manager.ts +182 -0
- package/src/internal/cli/bootstrap.ts +5 -5
- package/src/internal/cli/cli.ts +24 -15
- package/src/internal/cli/constants.ts +1 -1
- package/src/internal/cli/is-node-version-to-warn-on.ts +54 -0
- package/src/internal/cli/project-creation.ts +48 -22
- package/src/internal/cli/vars.ts +10 -10
- package/src/internal/cli/version-notifier.ts +3 -3
- package/src/internal/constants.ts +1 -0
- package/src/internal/context.ts +0 -5
- package/src/internal/core/config/config-env.ts +0 -10
- package/src/internal/core/config/config-loading.ts +15 -8
- package/src/internal/core/config/config-validation.ts +1 -1
- package/src/internal/core/config/default-config.ts +57 -32
- package/src/internal/core/errors-list.ts +30 -1
- package/src/internal/core/jsonrpc/types/authorization-list.ts +20 -0
- package/src/internal/core/jsonrpc/types/base-types.ts +13 -1
- package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +10 -0
- package/src/internal/core/jsonrpc/types/output/block.ts +2 -1
- package/src/internal/core/project-structure.ts +8 -8
- package/src/internal/core/providers/accounts.ts +95 -50
- package/src/internal/core/providers/construction.ts +1 -3
- package/src/internal/core/providers/http.ts +17 -0
- package/src/internal/core/providers/lazy-initialization.ts +13 -13
- package/src/internal/core/providers/util.ts +1 -1
- package/src/internal/core/runtime-environment.ts +0 -8
- package/src/internal/core/typescript-support.ts +1 -1
- package/src/internal/hardhat-network/jsonrpc/client.ts +1 -4
- package/src/internal/hardhat-network/jsonrpc/handler.ts +2 -1
- package/src/internal/hardhat-network/provider/node-types.ts +0 -70
- package/src/internal/hardhat-network/provider/output.ts +16 -1
- package/src/internal/hardhat-network/provider/provider.ts +57 -236
- package/src/internal/hardhat-network/provider/return-data.ts +5 -73
- package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +6 -3
- package/src/internal/hardhat-network/provider/utils/fork-recomendations-banner.ts +2 -2
- package/src/internal/hardhat-network/provider/utils/makeAccount.ts +1 -6
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +2 -2
- package/src/internal/hardhat-network/provider/utils/random.ts +4 -5
- package/src/internal/hardhat-network/provider/vm/exit.ts +4 -112
- package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +8 -3
- package/src/internal/hardhat-network/provider/vm/types.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +34 -95
- package/src/internal/hardhat-network/stack-traces/constants.ts +1 -2
- package/src/internal/hardhat-network/stack-traces/library-utils.ts +5 -90
- package/src/internal/hardhat-network/stack-traces/logger.ts +378 -600
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +17 -16
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +83 -186
- package/src/internal/lib/hardhat-lib.ts +0 -1
- package/src/internal/sentry/anonymizer.ts +2 -2
- package/src/internal/solidity/compiler/downloader.ts +1 -1
- package/src/internal/solidity/compiler/solc-info.ts +4 -0
- package/src/internal/util/caller-package.ts +2 -2
- package/src/internal/util/glob.ts +6 -6
- package/src/internal/util/hardforks.ts +2 -0
- package/src/internal/util/packageInfo.ts +4 -4
- package/src/internal/util/request.ts +51 -0
- package/src/register.ts +0 -1
- package/src/types/config.ts +2 -0
- package/src/types/index.ts +0 -1
- package/types/config.d.ts +2 -0
- package/types/config.d.ts.map +1 -1
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +1 -1
- package/types/index.js +0 -1
- package/types/index.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.d.ts +0 -29
- package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +0 -1
- package/internal/hardhat-network/provider/BlockchainBase.js +0 -144
- package/internal/hardhat-network/provider/BlockchainBase.js.map +0 -1
- package/internal/hardhat-network/provider/BlockchainData.d.ts +0 -58
- package/internal/hardhat-network/provider/BlockchainData.d.ts.map +0 -1
- package/internal/hardhat-network/provider/BlockchainData.js +0 -178
- package/internal/hardhat-network/provider/BlockchainData.js.map +0 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +0 -24
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +0 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.js +0 -73
- package/internal/hardhat-network/provider/HardhatBlockchain.js.map +0 -1
- package/internal/hardhat-network/provider/MiningTimer.d.ts +0 -28
- package/internal/hardhat-network/provider/MiningTimer.d.ts.map +0 -1
- package/internal/hardhat-network/provider/MiningTimer.js +0 -96
- package/internal/hardhat-network/provider/MiningTimer.js.map +0 -1
- package/internal/hardhat-network/provider/PoolState.d.ts +0 -26
- package/internal/hardhat-network/provider/PoolState.d.ts.map +0 -1
- package/internal/hardhat-network/provider/PoolState.js.map +0 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts +0 -32
- package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +0 -1
- package/internal/hardhat-network/provider/TransactionQueue.js +0 -130
- package/internal/hardhat-network/provider/TransactionQueue.js.map +0 -1
- package/internal/hardhat-network/provider/TxPool.d.ts +0 -83
- package/internal/hardhat-network/provider/TxPool.d.ts.map +0 -1
- package/internal/hardhat-network/provider/TxPool.js +0 -470
- package/internal/hardhat-network/provider/TxPool.js.map +0 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts +0 -2
- package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts.map +0 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js +0 -15
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +0 -1
- package/internal/hardhat-network/provider/filter.d.ts +0 -29
- package/internal/hardhat-network/provider/filter.d.ts.map +0 -1
- package/internal/hardhat-network/provider/filter.js +0 -97
- package/internal/hardhat-network/provider/filter.js.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +0 -33
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +0 -272
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +0 -51
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.js +0 -300
- package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts +0 -4
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js +0 -32
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +0 -10
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +0 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.js +0 -29
- package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +0 -1
- package/internal/hardhat-network/provider/modules/base.d.ts +0 -17
- package/internal/hardhat-network/provider/modules/base.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/base.js +0 -127
- package/internal/hardhat-network/provider/modules/base.js.map +0 -1
- package/internal/hardhat-network/provider/modules/debug.d.ts +0 -12
- package/internal/hardhat-network/provider/modules/debug.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/debug.js +0 -52
- package/internal/hardhat-network/provider/modules/debug.js.map +0 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts +0 -107
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/eth.js +0 -1034
- package/internal/hardhat-network/provider/modules/eth.js.map +0 -1
- package/internal/hardhat-network/provider/modules/evm.d.ts +0 -32
- package/internal/hardhat-network/provider/modules/evm.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/evm.js +0 -180
- package/internal/hardhat-network/provider/modules/evm.js.map +0 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +0 -54
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +0 -309
- package/internal/hardhat-network/provider/modules/hardhat.js.map +0 -1
- package/internal/hardhat-network/provider/modules/net.d.ts +0 -13
- package/internal/hardhat-network/provider/modules/net.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/net.js +0 -47
- package/internal/hardhat-network/provider/modules/net.js.map +0 -1
- package/internal/hardhat-network/provider/modules/personal.d.ts +0 -9
- package/internal/hardhat-network/provider/modules/personal.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/personal.js +0 -31
- package/internal/hardhat-network/provider/modules/personal.js.map +0 -1
- package/internal/hardhat-network/provider/modules/web3.d.ts +0 -11
- package/internal/hardhat-network/provider/modules/web3.d.ts.map +0 -1
- package/internal/hardhat-network/provider/modules/web3.js +0 -38
- package/internal/hardhat-network/provider/modules/web3.js.map +0 -1
- package/internal/hardhat-network/provider/node.d.ts +0 -197
- package/internal/hardhat-network/provider/node.d.ts.map +0 -1
- package/internal/hardhat-network/provider/node.js +0 -1866
- package/internal/hardhat-network/provider/node.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +0 -29
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +0 -137
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +0 -27
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +0 -137
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +0 -33
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +0 -141
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +0 -30
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +0 -97
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +0 -30
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +0 -98
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +0 -40
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +0 -91
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +0 -32
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +0 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +0 -87
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +0 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +0 -17
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +0 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js +0 -3
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js.map +0 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts +0 -4
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/makeCommon.js +0 -17
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +0 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +0 -7
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js +0 -31
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +0 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts +0 -4
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.js +0 -20
- package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +0 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +0 -8
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +0 -37
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +0 -1
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts +0 -12
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +0 -62
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +0 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts +0 -3
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/txMapToArray.js +0 -12
- package/internal/hardhat-network/provider/utils/txMapToArray.js.map +0 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +0 -4
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.js +0 -356
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +0 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +0 -15
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.js +0 -166
- package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +0 -1
- package/internal/hardhat-network/stack-traces/debug.d.ts +0 -8
- package/internal/hardhat-network/stack-traces/debug.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/debug.js +0 -148
- package/internal/hardhat-network/stack-traces/debug.js.map +0 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +0 -85
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +0 -1168
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +0 -1
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts +0 -24
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +0 -116
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +0 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +0 -55
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/message-trace.js +0 -49
- package/internal/hardhat-network/stack-traces/message-trace.js.map +0 -1
- package/internal/hardhat-network/stack-traces/model.d.ts +0 -140
- package/internal/hardhat-network/stack-traces/model.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/model.js +0 -328
- package/internal/hardhat-network/stack-traces/model.js.map +0 -1
- package/internal/hardhat-network/stack-traces/opcodes.d.ts +0 -266
- package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/opcodes.js +0 -320
- package/internal/hardhat-network/stack-traces/opcodes.js.map +0 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +0 -14
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +0 -167
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +0 -1
- package/internal/hardhat-network/stack-traces/source-maps.d.ts +0 -13
- package/internal/hardhat-network/stack-traces/source-maps.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/source-maps.js +0 -106
- package/internal/hardhat-network/stack-traces/source-maps.js.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +0 -46
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +0 -421
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +0 -17
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +0 -91
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +0 -19
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +0 -170
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +0 -1
- package/src/internal/hardhat-network/provider/MiningTimer.ts +0 -118
- package/src/internal/hardhat-network/provider/utils/makeCommon.ts +0 -20
- package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +0 -699
- package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +0 -235
- package/src/internal/hardhat-network/stack-traces/debug.ts +0 -220
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +0 -1845
- package/src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts +0 -163
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +0 -131
- package/src/internal/hardhat-network/stack-traces/model.ts +0 -409
- package/src/internal/hardhat-network/stack-traces/opcodes.ts +0 -344
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +0 -255
- package/src/internal/hardhat-network/stack-traces/source-maps.ts +0 -167
- package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +0 -135
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +0 -221
- package/src/types/experimental.ts +0 -18
- package/types/experimental.d.ts +0 -5
- package/types/experimental.d.ts.map +0 -1
- package/types/experimental.js +0 -3
- package/types/experimental.js.map +0 -1
|
@@ -1,115 +1,7 @@
|
|
|
1
|
-
import type { ExceptionalHalt, SuccessReason } from "@nomicfoundation/edr";
|
|
2
|
-
|
|
3
1
|
import { requireNapiRsModule } from "../../../../common/napi-rs";
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
OUT_OF_GAS,
|
|
9
|
-
INTERNAL_ERROR,
|
|
10
|
-
INVALID_OPCODE,
|
|
11
|
-
STACK_UNDERFLOW,
|
|
12
|
-
CODESIZE_EXCEEDS_MAXIMUM,
|
|
13
|
-
CREATE_COLLISION,
|
|
14
|
-
STATIC_STATE_CHANGE,
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export class Exit {
|
|
18
|
-
public static fromEdrSuccessReason(reason: SuccessReason): Exit {
|
|
19
|
-
const { SuccessReason } = requireNapiRsModule(
|
|
20
|
-
"@nomicfoundation/edr"
|
|
21
|
-
) as typeof import("@nomicfoundation/edr");
|
|
22
|
-
|
|
23
|
-
switch (reason) {
|
|
24
|
-
case SuccessReason.Stop:
|
|
25
|
-
case SuccessReason.Return:
|
|
26
|
-
case SuccessReason.SelfDestruct:
|
|
27
|
-
return new Exit(ExitCode.SUCCESS);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const _exhaustiveCheck: never = reason;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public static fromEdrExceptionalHalt(halt: ExceptionalHalt): Exit {
|
|
34
|
-
const { ExceptionalHalt } = requireNapiRsModule(
|
|
35
|
-
"@nomicfoundation/edr"
|
|
36
|
-
) as typeof import("@nomicfoundation/edr");
|
|
37
|
-
|
|
38
|
-
switch (halt) {
|
|
39
|
-
case ExceptionalHalt.OutOfGas:
|
|
40
|
-
return new Exit(ExitCode.OUT_OF_GAS);
|
|
41
|
-
|
|
42
|
-
case ExceptionalHalt.OpcodeNotFound:
|
|
43
|
-
case ExceptionalHalt.InvalidFEOpcode:
|
|
44
|
-
// Returned when an opcode is not implemented for the hardfork
|
|
45
|
-
case ExceptionalHalt.NotActivated:
|
|
46
|
-
return new Exit(ExitCode.INVALID_OPCODE);
|
|
47
|
-
|
|
48
|
-
case ExceptionalHalt.StackUnderflow:
|
|
49
|
-
return new Exit(ExitCode.STACK_UNDERFLOW);
|
|
50
|
-
|
|
51
|
-
case ExceptionalHalt.CreateCollision:
|
|
52
|
-
return new Exit(ExitCode.CREATE_COLLISION);
|
|
53
|
-
|
|
54
|
-
case ExceptionalHalt.CreateContractSizeLimit:
|
|
55
|
-
return new Exit(ExitCode.CODESIZE_EXCEEDS_MAXIMUM);
|
|
56
|
-
|
|
57
|
-
default: {
|
|
58
|
-
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
59
|
-
throw new Error(`Unmatched EDR exceptional halt: ${halt}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
constructor(public kind: ExitCode) {}
|
|
65
|
-
|
|
66
|
-
public isError(): boolean {
|
|
67
|
-
return this.kind !== ExitCode.SUCCESS;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
public getReason(): string {
|
|
71
|
-
switch (this.kind) {
|
|
72
|
-
case ExitCode.SUCCESS:
|
|
73
|
-
return "Success";
|
|
74
|
-
case ExitCode.REVERT:
|
|
75
|
-
return "Reverted";
|
|
76
|
-
case ExitCode.OUT_OF_GAS:
|
|
77
|
-
return "Out of gas";
|
|
78
|
-
case ExitCode.INTERNAL_ERROR:
|
|
79
|
-
return "Internal error";
|
|
80
|
-
case ExitCode.INVALID_OPCODE:
|
|
81
|
-
return "Invalid opcode";
|
|
82
|
-
case ExitCode.STACK_UNDERFLOW:
|
|
83
|
-
return "Stack underflow";
|
|
84
|
-
case ExitCode.CODESIZE_EXCEEDS_MAXIMUM:
|
|
85
|
-
return "Codesize exceeds maximum";
|
|
86
|
-
case ExitCode.CREATE_COLLISION:
|
|
87
|
-
return "Create collision";
|
|
88
|
-
case ExitCode.STATIC_STATE_CHANGE:
|
|
89
|
-
return "Static state change";
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const _exhaustiveCheck: never = this.kind;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
public getEdrExceptionalHalt(): ExceptionalHalt {
|
|
96
|
-
const { ExceptionalHalt } = requireNapiRsModule(
|
|
97
|
-
"@nomicfoundation/edr"
|
|
98
|
-
) as typeof import("@nomicfoundation/edr");
|
|
99
|
-
|
|
100
|
-
switch (this.kind) {
|
|
101
|
-
case ExitCode.OUT_OF_GAS:
|
|
102
|
-
return ExceptionalHalt.OutOfGas;
|
|
103
|
-
case ExitCode.INVALID_OPCODE:
|
|
104
|
-
return ExceptionalHalt.OpcodeNotFound;
|
|
105
|
-
case ExitCode.CODESIZE_EXCEEDS_MAXIMUM:
|
|
106
|
-
return ExceptionalHalt.CreateContractSizeLimit;
|
|
107
|
-
case ExitCode.CREATE_COLLISION:
|
|
108
|
-
return ExceptionalHalt.CreateCollision;
|
|
3
|
+
const { ExitCode } = requireNapiRsModule(
|
|
4
|
+
"@nomicfoundation/edr"
|
|
5
|
+
) as typeof import("@nomicfoundation/edr");
|
|
109
6
|
|
|
110
|
-
|
|
111
|
-
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
112
|
-
throw new Error(`Unmatched exit code: ${this.kind}`);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
7
|
+
export { ExitCode };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Provider as EdrProviderT } from "@nomicfoundation/edr";
|
|
2
|
-
import type { Address } from "@
|
|
2
|
+
import type { Address } from "@ethereumjs/util";
|
|
3
3
|
import type {
|
|
4
4
|
MinimalEVMResult,
|
|
5
5
|
MinimalInterpreterStep,
|
|
6
6
|
MinimalMessage,
|
|
7
7
|
} from "./types";
|
|
8
8
|
|
|
9
|
-
import { AsyncEventEmitter } from "@
|
|
9
|
+
import { AsyncEventEmitter } from "@ethereumjs/util";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Used by the provider to keep the `_vm` variable used by some plugins. This
|
|
@@ -82,7 +82,12 @@ export function getMinimalEthereumJsVm(
|
|
|
82
82
|
})
|
|
83
83
|
);
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
let response;
|
|
86
|
+
if (typeof responseObject.data === "string") {
|
|
87
|
+
response = JSON.parse(responseObject.data);
|
|
88
|
+
} else {
|
|
89
|
+
response = responseObject.data;
|
|
90
|
+
}
|
|
86
91
|
|
|
87
92
|
return Buffer.from(response.result.slice(2), "hex");
|
|
88
93
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ExceptionalHalt, SuccessReason } from "@nomicfoundation/edr";
|
|
2
|
-
import type { Address } from "@
|
|
2
|
+
import type { Address } from "@ethereumjs/util";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* These types are minimal versions of the values returned by ethereumjs
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
bytesToHex as bufferToHex,
|
|
4
4
|
bytesToInt,
|
|
5
5
|
fromSigned,
|
|
6
|
-
} from "@
|
|
6
|
+
} from "@ethereumjs/util";
|
|
7
7
|
import util from "util";
|
|
8
8
|
|
|
9
9
|
import {
|
|
@@ -42,113 +42,62 @@ import {
|
|
|
42
42
|
Bytes8Ty,
|
|
43
43
|
Bytes9Ty,
|
|
44
44
|
BytesTy,
|
|
45
|
-
ConsoleLogs,
|
|
46
45
|
Int256Ty,
|
|
47
46
|
StringTy,
|
|
48
47
|
Uint256Ty,
|
|
48
|
+
CONSOLE_LOG_SIGNATURES,
|
|
49
49
|
} from "./logger";
|
|
50
|
-
import {
|
|
51
|
-
EvmMessageTrace,
|
|
52
|
-
isCallTrace,
|
|
53
|
-
isEvmStep,
|
|
54
|
-
isPrecompileTrace,
|
|
55
|
-
MessageTrace,
|
|
56
|
-
} from "./message-trace";
|
|
57
50
|
|
|
58
|
-
const CONSOLE_ADDRESS = "0x000000000000000000636F6e736F6c652e6c6f67"; // toHex("console.log")
|
|
59
51
|
const REGISTER_SIZE = 32;
|
|
60
52
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
export type ConsoleLogEntry = string | ConsoleLogArray;
|
|
65
|
-
|
|
66
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
67
|
-
export type ConsoleLogs = ConsoleLogEntry[];
|
|
53
|
+
/** The decoded string representation of the arguments supplied to console.log */
|
|
54
|
+
export type ConsoleLogArgs = string[];
|
|
55
|
+
export type ConsoleLogs = ConsoleLogArgs[];
|
|
68
56
|
|
|
69
57
|
export class ConsoleLogger {
|
|
70
|
-
private readonly _consoleLogs: {
|
|
71
|
-
[key: number]: string[];
|
|
72
|
-
} = {};
|
|
73
|
-
|
|
74
|
-
constructor() {
|
|
75
|
-
this._consoleLogs = ConsoleLogs;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public getLogMessages(maybeDecodedMessageTrace: MessageTrace): string[] {
|
|
79
|
-
return this.getExecutionLogs(maybeDecodedMessageTrace).map(
|
|
80
|
-
consoleLogToString
|
|
81
|
-
);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
public getExecutionLogs(
|
|
85
|
-
maybeDecodedMessageTrace: MessageTrace
|
|
86
|
-
): ConsoleLogs[] {
|
|
87
|
-
if (isPrecompileTrace(maybeDecodedMessageTrace)) {
|
|
88
|
-
return [];
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const logs: ConsoleLogs[] = [];
|
|
92
|
-
this._collectExecutionLogs(maybeDecodedMessageTrace, logs);
|
|
93
|
-
return logs;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
private _collectExecutionLogs(trace: EvmMessageTrace, logs: ConsoleLogs) {
|
|
97
|
-
for (const messageTrace of trace.steps) {
|
|
98
|
-
if (isEvmStep(messageTrace) || isPrecompileTrace(messageTrace)) {
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
isCallTrace(messageTrace) &&
|
|
104
|
-
bufferToHex(messageTrace.address) === CONSOLE_ADDRESS.toLowerCase()
|
|
105
|
-
) {
|
|
106
|
-
const log = this._maybeConsoleLog(Buffer.from(messageTrace.calldata));
|
|
107
|
-
if (log !== undefined) {
|
|
108
|
-
logs.push(log);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
this._collectExecutionLogs(messageTrace, logs);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
58
|
/**
|
|
119
59
|
* Temporary code to print console.sol messages that come from EDR
|
|
120
60
|
*/
|
|
121
|
-
public getDecodedLogs(messages: Buffer[]): string[] {
|
|
61
|
+
public static getDecodedLogs(messages: Buffer[]): string[] {
|
|
122
62
|
const logs: string[] = [];
|
|
123
63
|
|
|
124
64
|
for (const message of messages) {
|
|
125
|
-
const log =
|
|
65
|
+
const log = ConsoleLogger._maybeConsoleLog(message);
|
|
126
66
|
if (log !== undefined) {
|
|
127
|
-
logs.push(
|
|
67
|
+
logs.push(ConsoleLogger.format(log));
|
|
128
68
|
}
|
|
129
69
|
}
|
|
130
70
|
|
|
131
71
|
return logs;
|
|
132
72
|
}
|
|
133
73
|
|
|
134
|
-
|
|
135
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Returns a formatted string using the first argument as a `printf`-like
|
|
76
|
+
* format string which can contain zero or more format specifiers.
|
|
77
|
+
*
|
|
78
|
+
* If there are more arguments passed than the number of specifiers, the
|
|
79
|
+
* extra arguments are concatenated to the returned string, separated by spaces.
|
|
80
|
+
*/
|
|
81
|
+
public static format(args: ConsoleLogArgs = []): string {
|
|
82
|
+
return util.format(...args);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Decodes a calldata buffer into string arguments for a console log. */
|
|
86
|
+
private static _maybeConsoleLog(
|
|
87
|
+
calldata: Buffer
|
|
88
|
+
): ConsoleLogArgs | undefined {
|
|
89
|
+
const selector = bytesToInt(calldata.slice(0, 4));
|
|
136
90
|
const parameters = calldata.slice(4);
|
|
137
91
|
|
|
138
|
-
const
|
|
139
|
-
if (
|
|
92
|
+
const argTypes = CONSOLE_LOG_SIGNATURES[selector];
|
|
93
|
+
if (argTypes === undefined) {
|
|
140
94
|
return;
|
|
141
95
|
}
|
|
142
96
|
|
|
143
|
-
const
|
|
97
|
+
const decodedArgs = ConsoleLogger._decode(parameters, argTypes);
|
|
144
98
|
|
|
145
|
-
this._replaceNumberFormatSpecifiers(consoleLogs);
|
|
146
|
-
|
|
147
|
-
return consoleLogs;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
private _replaceNumberFormatSpecifiers(consoleLogs: ConsoleLogs) {
|
|
151
99
|
/**
|
|
100
|
+
* The first argument is interpreted as the format string, which may need adjusting.
|
|
152
101
|
* Replace the occurrences of %d and %i with %s. This is necessary because if the arguments passed are numbers,
|
|
153
102
|
* they could be too large to be formatted as a Number or an Integer, so it is safer to use a String.
|
|
154
103
|
* %d and %i are replaced only if there is an odd number of % before the d or i.
|
|
@@ -160,15 +109,18 @@ export class ConsoleLogger {
|
|
|
160
109
|
* (?<!%) negative look-behind to make this work.
|
|
161
110
|
* The (?:) is just to avoid capturing that inner group.
|
|
162
111
|
*/
|
|
163
|
-
if (
|
|
164
|
-
|
|
112
|
+
if (decodedArgs.length > 0) {
|
|
113
|
+
decodedArgs[0] = decodedArgs[0].replace(
|
|
165
114
|
/((?<!%)(?:%%)*)(%[di])/g,
|
|
166
115
|
"$1%s"
|
|
167
116
|
);
|
|
168
117
|
}
|
|
118
|
+
|
|
119
|
+
return decodedArgs;
|
|
169
120
|
}
|
|
170
121
|
|
|
171
|
-
|
|
122
|
+
/** Decodes calldata parameters from `data` according to `types` into their string representation. */
|
|
123
|
+
private static _decode(data: Buffer, types: string[]): string[] {
|
|
172
124
|
return types.map((type, i) => {
|
|
173
125
|
const position: number = i * 32;
|
|
174
126
|
switch (types[i]) {
|
|
@@ -282,16 +234,3 @@ export class ConsoleLogger {
|
|
|
282
234
|
});
|
|
283
235
|
}
|
|
284
236
|
}
|
|
285
|
-
|
|
286
|
-
export function consoleLogToString(log: ConsoleLogs): string {
|
|
287
|
-
if (log === undefined) {
|
|
288
|
-
return "";
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
// special case for console.log()
|
|
292
|
-
if (log.length === 0) {
|
|
293
|
-
return "";
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
return util.format(log[0], ...log.slice(1));
|
|
297
|
-
}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export const SUPPORTED_SOLIDITY_VERSION_RANGE = "<=0.8.
|
|
2
|
-
export const FIRST_SOLC_VERSION_SUPPORTED = "0.5.1";
|
|
1
|
+
export const SUPPORTED_SOLIDITY_VERSION_RANGE = "<=0.8.28";
|
|
@@ -1,92 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { requireNapiRsModule } from "../../../common/napi-rs";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const { linkHexStringBytecode } = requireNapiRsModule(
|
|
4
|
+
"@nomicfoundation/edr"
|
|
5
|
+
) as typeof import("@nomicfoundation/edr");
|
|
4
6
|
|
|
5
|
-
export
|
|
6
|
-
bytecodeOutput: CompilerOutputBytecode
|
|
7
|
-
): number[] {
|
|
8
|
-
const positions = [];
|
|
9
|
-
for (const libs of Object.values(bytecodeOutput.linkReferences)) {
|
|
10
|
-
for (const references of Object.values(libs)) {
|
|
11
|
-
for (const ref of references) {
|
|
12
|
-
positions.push(ref.start);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return positions;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function normalizeCompilerOutputBytecode(
|
|
21
|
-
compilerOutputBytecodeObject: string,
|
|
22
|
-
addressesPositions: number[]
|
|
23
|
-
): Buffer {
|
|
24
|
-
const ZERO_ADDRESS = "0000000000000000000000000000000000000000";
|
|
25
|
-
for (const position of addressesPositions) {
|
|
26
|
-
compilerOutputBytecodeObject = linkHexStringBytecode(
|
|
27
|
-
compilerOutputBytecodeObject,
|
|
28
|
-
ZERO_ADDRESS,
|
|
29
|
-
position
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return Buffer.from(compilerOutputBytecodeObject, "hex");
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function linkHexStringBytecode(
|
|
37
|
-
code: string,
|
|
38
|
-
address: string,
|
|
39
|
-
position: number
|
|
40
|
-
) {
|
|
41
|
-
if (address.startsWith("0x")) {
|
|
42
|
-
address = address.substring(2);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
code.substring(0, position * 2) +
|
|
47
|
-
address +
|
|
48
|
-
code.slice(position * 2 + address.length)
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function zeroOutAddresses(
|
|
53
|
-
code: Uint8Array,
|
|
54
|
-
addressesPositions: number[]
|
|
55
|
-
): Uint8Array {
|
|
56
|
-
const addressesSlices = addressesPositions.map((start) => ({
|
|
57
|
-
start,
|
|
58
|
-
length: 20,
|
|
59
|
-
}));
|
|
60
|
-
|
|
61
|
-
return zeroOutSlices(code, addressesSlices);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export function zeroOutSlices(
|
|
65
|
-
code: Uint8Array,
|
|
66
|
-
slices: Array<{ start: number; length: number }>
|
|
67
|
-
): Uint8Array {
|
|
68
|
-
for (const { start, length } of slices) {
|
|
69
|
-
code = Buffer.concat([
|
|
70
|
-
code.slice(0, start),
|
|
71
|
-
Buffer.alloc(length, 0),
|
|
72
|
-
code.slice(start + length),
|
|
73
|
-
]);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return code;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export function normalizeLibraryRuntimeBytecodeIfNecessary(
|
|
80
|
-
code: Uint8Array
|
|
81
|
-
): Uint8Array {
|
|
82
|
-
// Libraries' protection normalization:
|
|
83
|
-
// Solidity 0.4.20 introduced a protection to prevent libraries from being called directly.
|
|
84
|
-
// This is done by modifying the code on deployment, and hard-coding the contract address.
|
|
85
|
-
// The first instruction is a PUSH20 of the address, which we zero-out as a way of normalizing
|
|
86
|
-
// it. Note that it's also zeroed-out in the compiler output.
|
|
87
|
-
if (code[0] === Opcode.PUSH20) {
|
|
88
|
-
return zeroOutAddresses(code, [1]);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return code;
|
|
92
|
-
}
|
|
7
|
+
export { linkHexStringBytecode };
|