hardhat 2.13.0-dev.1 → 2.13.0-dev.3
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 +17 -7
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/flatten.js +10 -4
- package/builtin-tasks/flatten.js.map +1 -1
- package/builtin-tasks/help.js +2 -4
- package/builtin-tasks/help.js.map +1 -1
- package/builtin-tasks/task-names.d.ts +1 -0
- package/builtin-tasks/task-names.d.ts.map +1 -1
- package/builtin-tasks/task-names.js +3 -2
- package/builtin-tasks/task-names.js.map +1 -1
- package/builtin-tasks/test.js +22 -1
- package/builtin-tasks/test.js.map +1 -1
- package/internal/artifacts.d.ts +5 -0
- package/internal/artifacts.d.ts.map +1 -1
- package/internal/artifacts.js +29 -10
- package/internal/artifacts.js.map +1 -1
- package/internal/cli/bootstrap.d.ts +1 -0
- package/internal/cli/bootstrap.js +12 -20
- package/internal/cli/bootstrap.js.map +1 -1
- package/internal/cli/cli.d.ts +0 -1
- package/internal/cli/cli.d.ts.map +1 -1
- package/internal/cli/cli.js +24 -24
- package/internal/cli/cli.js.map +1 -1
- 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 +105 -25
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/cli/prompt.d.ts +2 -2
- package/internal/cli/prompt.d.ts.map +1 -1
- package/internal/cli/prompt.js +1 -2
- package/internal/cli/prompt.js.map +1 -1
- package/internal/cli/types.d.ts +1 -0
- package/internal/cli/types.d.ts.map +1 -1
- package/internal/core/config/config-env.d.ts +5 -11
- package/internal/core/config/config-env.d.ts.map +1 -1
- package/internal/core/config/config-env.js +2 -13
- package/internal/core/config/config-env.js.map +1 -1
- package/internal/core/config/config-loading.d.ts +2 -1
- package/internal/core/config/config-loading.d.ts.map +1 -1
- package/internal/core/config/config-loading.js +25 -7
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/core/config/config-resolution.d.ts.map +1 -1
- package/internal/core/config/config-resolution.js +2 -1
- package/internal/core/config/config-resolution.js.map +1 -1
- package/internal/core/config/config-validation.d.ts +2 -0
- package/internal/core/config/config-validation.d.ts.map +1 -1
- package/internal/core/config/config-validation.js +18 -1
- package/internal/core/config/config-validation.js.map +1 -1
- package/internal/core/config/extenders.d.ts +4 -7
- package/internal/core/config/extenders.d.ts.map +1 -1
- package/internal/core/config/extenders.js +5 -12
- package/internal/core/config/extenders.js.map +1 -1
- package/internal/core/errors-list.d.ts +35 -7
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +117 -85
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/flamegraph.js +10 -10
- package/internal/core/jsonrpc/types/output/metadata.d.ts +13 -0
- package/internal/core/jsonrpc/types/output/metadata.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/output/metadata.js +3 -0
- package/internal/core/jsonrpc/types/output/metadata.js.map +1 -0
- package/internal/core/project-structure.d.ts.map +1 -1
- package/internal/core/project-structure.js +6 -0
- 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 +4 -1
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/backwards-compatibility.d.ts.map +1 -1
- package/internal/core/providers/backwards-compatibility.js +3 -0
- package/internal/core/providers/backwards-compatibility.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +25 -5
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/gas-providers.d.ts +1 -1
- package/internal/core/providers/gas-providers.d.ts.map +1 -1
- package/internal/core/providers/gas-providers.js +1 -1
- package/internal/core/providers/gas-providers.js.map +1 -1
- package/internal/core/providers/http.d.ts +2 -2
- package/internal/core/providers/http.d.ts.map +1 -1
- package/internal/core/providers/http.js +41 -19
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/runtime-environment.d.ts +4 -2
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +39 -47
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/core/tasks/dsl.d.ts +6 -6
- package/internal/core/tasks/dsl.d.ts.map +1 -1
- package/internal/core/tasks/dsl.js.map +1 -1
- package/internal/core/tasks/task-definitions.d.ts +2 -2
- package/internal/core/tasks/task-definitions.d.ts.map +1 -1
- package/internal/core/tasks/task-definitions.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.js +5 -3
- package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.d.ts +1 -0
- package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.js +13 -18
- package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
- package/internal/hardhat-network/provider/RethnetState.d.ts +26 -0
- package/internal/hardhat-network/provider/RethnetState.d.ts.map +1 -0
- package/internal/hardhat-network/provider/RethnetState.js +84 -0
- package/internal/hardhat-network/provider/RethnetState.js.map +1 -0
- package/internal/hardhat-network/provider/modules/eth.js +4 -4
- package/internal/hardhat-network/provider/modules/evm.d.ts +2 -1
- package/internal/hardhat-network/provider/modules/evm.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/evm.js +10 -4
- package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +2 -0
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +9 -0
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
- package/internal/hardhat-network/provider/modules/web3.d.ts +3 -0
- package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/web3.js +4 -4
- package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +6 -0
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +44 -5
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +1 -1
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.js +1 -1
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +25 -21
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +26 -43
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +2 -2
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +4 -2
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +4 -2
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +4 -2
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/utils/bloom.d.ts +4 -0
- package/internal/hardhat-network/provider/utils/bloom.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/bloom.js +6 -0
- package/internal/hardhat-network/provider/utils/bloom.js.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +8 -25
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToRethnet.js +122 -174
- package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +7 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js +31 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -0
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +1 -0
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +2 -2
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
- package/internal/hardhat-network/provider/vm/block-builder.d.ts +4 -3
- package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/block-builder.js +9 -5
- package/internal/hardhat-network/provider/vm/block-builder.js.map +1 -1
- package/internal/hardhat-network/provider/vm/creation.d.ts +10 -0
- package/internal/hardhat-network/provider/vm/creation.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/creation.js +29 -0
- package/internal/hardhat-network/provider/vm/creation.js.map +1 -0
- package/internal/hardhat-network/provider/vm/dual.d.ts +14 -14
- package/internal/hardhat-network/provider/vm/dual.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/dual.js +426 -58
- package/internal/hardhat-network/provider/vm/dual.js.map +1 -1
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +23 -22
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/ethereumjs.js +181 -37
- package/internal/hardhat-network/provider/vm/ethereumjs.js.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts +23 -0
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/exit.js +130 -0
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
- package/internal/hardhat-network/provider/vm/rethnet.d.ts +18 -30
- package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/rethnet.js +164 -51
- package/internal/hardhat-network/provider/vm/rethnet.js.map +1 -1
- package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +29 -13
- package/internal/hardhat-network/provider/vm/vm-adapter.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.js +37 -11
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/constants.js +1 -1
- package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +6 -2
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +1 -0
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +87 -60
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/model.d.ts +3 -1
- package/internal/hardhat-network/stack-traces/model.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/model.js +9 -1
- package/internal/hardhat-network/stack-traces/model.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 +4 -3
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +2 -2
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +1 -0
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +2 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
- package/internal/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +1 -4
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/internal/solidity/compiler/downloader.js +2 -2
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/solidity/compiler/index.d.ts.map +1 -1
- package/internal/solidity/compiler/index.js +7 -1
- package/internal/solidity/compiler/index.js.map +1 -1
- package/internal/solidity/dependencyGraph.d.ts.map +1 -1
- package/internal/solidity/dependencyGraph.js +2 -0
- package/internal/solidity/dependencyGraph.js.map +1 -1
- package/internal/solidity/resolver.d.ts +4 -3
- package/internal/solidity/resolver.d.ts.map +1 -1
- package/internal/solidity/resolver.js +26 -7
- package/internal/solidity/resolver.js.map +1 -1
- package/internal/util/abi-helpers.d.ts +1 -0
- package/internal/util/abi-helpers.d.ts.map +1 -1
- package/internal/util/abi-helpers.js +9 -0
- package/internal/util/abi-helpers.js.map +1 -1
- package/internal/util/console.d.ts.map +1 -1
- package/internal/util/console.js +1 -1
- package/internal/util/console.js.map +1 -1
- package/internal/util/download.d.ts +3 -1
- package/internal/util/download.d.ts.map +1 -1
- package/internal/util/download.js +14 -12
- package/internal/util/download.js.map +1 -1
- package/internal/util/keys-derivation.d.ts.map +1 -1
- package/internal/util/keys-derivation.js +4 -1
- package/internal/util/keys-derivation.js.map +1 -1
- package/internal/util/packageInfo.d.ts +7 -1
- package/internal/util/packageInfo.d.ts.map +1 -1
- package/internal/util/packageInfo.js +23 -11
- package/internal/util/packageInfo.js.map +1 -1
- package/internal/util/proxy.d.ts +2 -0
- package/internal/util/proxy.d.ts.map +1 -0
- package/internal/util/proxy.js +19 -0
- package/internal/util/proxy.js.map +1 -0
- package/package.json +9 -10
- package/recommended-gitignore.txt +1 -1
- package/register.js +1 -4
- package/register.js.map +1 -1
- package/sample-projects/javascript/hardhat.config.js +1 -1
- package/sample-projects/javascript/scripts/deploy.js +2 -2
- package/sample-projects/javascript-esm/LICENSE.md +11 -0
- package/sample-projects/javascript-esm/README.md +13 -0
- package/sample-projects/javascript-esm/contracts/Lock.sol +34 -0
- package/sample-projects/javascript-esm/hardhat.config.cjs +6 -0
- package/sample-projects/javascript-esm/scripts/deploy.js +22 -0
- package/sample-projects/javascript-esm/test/Lock.js +123 -0
- package/sample-projects/typescript/hardhat.config.ts +1 -1
- package/sample-projects/typescript/scripts/deploy.ts +2 -2
- package/sample-projects/typescript/tsconfig.json +2 -1
- package/src/builtin-tasks/compile.ts +30 -11
- package/src/builtin-tasks/flatten.ts +18 -4
- package/src/builtin-tasks/help.ts +15 -16
- package/src/builtin-tasks/task-names.ts +2 -0
- package/src/builtin-tasks/test.ts +30 -2
- package/src/internal/artifacts.ts +947 -0
- package/src/internal/cli/bootstrap.ts +14 -36
- package/src/internal/cli/cli.ts +44 -35
- package/src/internal/cli/project-creation.ts +129 -32
- package/src/internal/cli/prompt.ts +2 -4
- package/src/internal/cli/types.ts +2 -0
- package/src/internal/core/config/config-env.ts +15 -27
- package/src/internal/core/config/config-loading.ts +35 -11
- package/src/internal/core/config/config-resolution.ts +4 -3
- package/src/internal/core/config/config-validation.ts +20 -0
- package/src/internal/core/config/extenders.ts +6 -15
- package/src/internal/core/errors-list.ts +121 -85
- package/src/internal/core/flamegraph.ts +10 -10
- package/src/internal/core/jsonrpc/types/output/metadata.ts +32 -0
- package/src/internal/core/project-structure.ts +8 -0
- package/src/internal/core/providers/accounts.ts +5 -2
- package/src/internal/core/providers/backwards-compatibility.ts +3 -0
- package/src/internal/core/providers/construction.ts +29 -24
- package/src/internal/core/providers/gas-providers.ts +1 -1
- package/src/internal/core/providers/http.ts +38 -26
- package/src/internal/core/runtime-environment.ts +65 -60
- package/src/internal/core/tasks/dsl.ts +17 -17
- package/src/internal/core/tasks/task-definitions.ts +6 -2
- package/src/internal/hardhat-network/jsonrpc/client.ts +7 -4
- package/src/internal/hardhat-network/jsonrpc/handler.ts +31 -28
- package/src/internal/hardhat-network/provider/modules/eth.ts +4 -4
- package/src/internal/hardhat-network/provider/modules/evm.ts +15 -3
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +14 -0
- package/src/internal/hardhat-network/provider/modules/web3.ts +4 -4
- package/src/internal/hardhat-network/provider/node-types.ts +1 -1
- package/src/internal/hardhat-network/provider/node.ts +63 -1
- package/src/internal/hardhat-network/provider/output.ts +2 -2
- package/src/internal/hardhat-network/provider/provider.ts +61 -50
- package/src/internal/hardhat-network/provider/return-data.ts +2 -2
- package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +5 -2
- package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +5 -2
- package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +5 -2
- package/src/internal/hardhat-network/provider/utils/makeFakeSignature.ts +46 -0
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +10 -1
- package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +2 -2
- package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +73 -11
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/constants.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/debug.ts +9 -2
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +179 -95
- package/src/internal/hardhat-network/stack-traces/model.ts +11 -1
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +5 -3
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +2 -2
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +3 -0
- package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +4 -1
- package/src/internal/lib/hardhat-lib.ts +1 -6
- package/src/internal/solidity/compiler/downloader.ts +3 -3
- package/src/internal/solidity/compiler/index.ts +9 -1
- package/src/internal/solidity/dependencyGraph.ts +2 -0
- package/src/internal/solidity/resolver.ts +38 -11
- package/src/internal/util/abi-helpers.ts +9 -0
- package/src/internal/util/console.ts +4 -2
- package/src/internal/util/download.ts +16 -16
- package/src/internal/util/keys-derivation.ts +4 -1
- package/src/internal/util/packageInfo.ts +33 -10
- package/src/internal/util/proxy.ts +18 -0
- package/src/register.ts +1 -6
- package/src/types/artifacts.ts +19 -105
- package/src/types/config.ts +2 -0
- package/src/types/runtime.ts +16 -13
- package/src/utils/source-names.ts +15 -0
- package/types/artifacts.d.ts +14 -90
- package/types/artifacts.d.ts.map +1 -1
- package/types/config.d.ts +2 -0
- package/types/config.d.ts.map +1 -1
- package/types/runtime.d.ts +9 -10
- package/types/runtime.d.ts.map +1 -1
- package/utils/source-names.d.ts +5 -0
- package/utils/source-names.d.ts.map +1 -1
- package/utils/source-names.js +14 -1
- package/utils/source-names.js.map +1 -1
- package/internal/artifacts/caching.d.ts +0 -27
- package/internal/artifacts/caching.d.ts.map +0 -1
- package/internal/artifacts/caching.js +0 -167
- package/internal/artifacts/caching.js.map +0 -1
- package/internal/artifacts/index.d.ts +0 -44
- package/internal/artifacts/index.d.ts.map +0 -1
- package/internal/artifacts/index.js +0 -187
- package/internal/artifacts/index.js.map +0 -1
- package/internal/artifacts/mutable.d.ts +0 -29
- package/internal/artifacts/mutable.d.ts.map +0 -1
- package/internal/artifacts/mutable.js +0 -226
- package/internal/artifacts/mutable.js.map +0 -1
- package/internal/artifacts/readonly.d.ts +0 -88
- package/internal/artifacts/readonly.d.ts.map +0 -1
- package/internal/artifacts/readonly.js +0 -324
- package/internal/artifacts/readonly.js.map +0 -1
- package/src/internal/artifacts/caching.ts +0 -239
- package/src/internal/artifacts/index.ts +0 -296
- package/src/internal/artifacts/mutable.ts +0 -330
- package/src/internal/artifacts/readonly.ts +0 -438
|
@@ -1,87 +1,89 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rethnetResultToRunTxResult = exports.
|
|
4
|
-
const ethereumjs_evm_1 = require("@nomicfoundation/ethereumjs-evm");
|
|
5
|
-
const exceptions_1 = require("@nomicfoundation/ethereumjs-evm/dist/exceptions");
|
|
6
|
-
const ethereumjs_statemanager_1 = require("@nomicfoundation/ethereumjs-statemanager");
|
|
3
|
+
exports.rethnetResultToRunTxResult = exports.ethereumjsTransactionToRethnet = exports.ethereumjsHeaderDataToRethnet = exports.ethereumsjsHardforkToRethnet = exports.ethereumjsBlockHeaderToRethnet = void 0;
|
|
7
4
|
const ethereumjs_tx_1 = require("@nomicfoundation/ethereumjs-tx");
|
|
8
5
|
const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
async setAccountCode(address, code) {
|
|
73
|
-
return this._stateManager.putContractCode(new ethereumjs_util_1.Address(address), code);
|
|
74
|
-
}
|
|
75
|
-
async setAccountNonce(address, nonce) {
|
|
76
|
-
return this._stateManager.modifyAccountFields(new ethereumjs_util_1.Address(address), {
|
|
77
|
-
nonce,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
async setAccountStorageSlot(address, index, value) {
|
|
81
|
-
return this._stateManager.putContractStorage(new ethereumjs_util_1.Address(address), (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.bigIntToBuffer)(index), 32), (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.bigIntToBuffer)(value), 32));
|
|
6
|
+
const bigint_1 = require("../../../util/bigint");
|
|
7
|
+
const hardforks_1 = require("../../../util/hardforks");
|
|
8
|
+
const message_trace_1 = require("../../stack-traces/message-trace");
|
|
9
|
+
const exit_1 = require("../vm/exit");
|
|
10
|
+
const bloom_1 = require("./bloom");
|
|
11
|
+
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
12
|
+
function ethereumjsBlockHeaderToRethnet(blockHeader) {
|
|
13
|
+
return {
|
|
14
|
+
parentHash: blockHeader.parentHash,
|
|
15
|
+
ommersHash: blockHeader.uncleHash,
|
|
16
|
+
beneficiary: blockHeader.coinbase.buf,
|
|
17
|
+
stateRoot: blockHeader.stateRoot,
|
|
18
|
+
transactionsRoot: blockHeader.transactionsTrie,
|
|
19
|
+
receiptsRoot: blockHeader.receiptTrie,
|
|
20
|
+
logsBloom: blockHeader.logsBloom,
|
|
21
|
+
difficulty: blockHeader.difficulty,
|
|
22
|
+
number: blockHeader.number,
|
|
23
|
+
gasLimit: blockHeader.gasLimit,
|
|
24
|
+
gasUsed: blockHeader.gasUsed,
|
|
25
|
+
timestamp: blockHeader.timestamp,
|
|
26
|
+
extraData: blockHeader.extraData,
|
|
27
|
+
mixHash: blockHeader.mixHash,
|
|
28
|
+
nonce: BigInt(`0x${blockHeader.nonce.toString("hex")}`),
|
|
29
|
+
baseFeePerGas: blockHeader.baseFeePerGas,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
exports.ethereumjsBlockHeaderToRethnet = ethereumjsBlockHeaderToRethnet;
|
|
33
|
+
function ethereumsjsHardforkToRethnet(hardfork) {
|
|
34
|
+
switch (hardfork) {
|
|
35
|
+
case hardforks_1.HardforkName.FRONTIER:
|
|
36
|
+
return 0 /* Frontier */;
|
|
37
|
+
case hardforks_1.HardforkName.HOMESTEAD:
|
|
38
|
+
return 2 /* Homestead */;
|
|
39
|
+
case hardforks_1.HardforkName.DAO:
|
|
40
|
+
return 3 /* DaoFork */;
|
|
41
|
+
case hardforks_1.HardforkName.TANGERINE_WHISTLE:
|
|
42
|
+
return 4 /* Tangerine */;
|
|
43
|
+
case hardforks_1.HardforkName.SPURIOUS_DRAGON:
|
|
44
|
+
return 5 /* SpuriousDragon */;
|
|
45
|
+
case hardforks_1.HardforkName.BYZANTIUM:
|
|
46
|
+
return 6 /* Byzantium */;
|
|
47
|
+
case hardforks_1.HardforkName.CONSTANTINOPLE:
|
|
48
|
+
return 7 /* Constantinople */;
|
|
49
|
+
case hardforks_1.HardforkName.PETERSBURG:
|
|
50
|
+
return 8 /* Petersburg */;
|
|
51
|
+
case hardforks_1.HardforkName.ISTANBUL:
|
|
52
|
+
return 9 /* Istanbul */;
|
|
53
|
+
case hardforks_1.HardforkName.MUIR_GLACIER:
|
|
54
|
+
return 10 /* MuirGlacier */;
|
|
55
|
+
case hardforks_1.HardforkName.BERLIN:
|
|
56
|
+
return 11 /* Berlin */;
|
|
57
|
+
case hardforks_1.HardforkName.LONDON:
|
|
58
|
+
return 12 /* London */;
|
|
59
|
+
case hardforks_1.HardforkName.ARROW_GLACIER:
|
|
60
|
+
return 13 /* ArrowGlacier */;
|
|
61
|
+
case hardforks_1.HardforkName.GRAY_GLACIER:
|
|
62
|
+
return 14 /* GrayGlacier */;
|
|
63
|
+
case hardforks_1.HardforkName.MERGE:
|
|
64
|
+
return 15 /* Merge */;
|
|
65
|
+
default:
|
|
66
|
+
const _exhaustiveCheck = hardfork;
|
|
67
|
+
throw new Error(`Unknown hardfork name '${hardfork}', this shouldn't happen`);
|
|
82
68
|
}
|
|
83
69
|
}
|
|
84
|
-
exports.
|
|
70
|
+
exports.ethereumsjsHardforkToRethnet = ethereumsjsHardforkToRethnet;
|
|
71
|
+
function ethereumjsHeaderDataToRethnet(headerData, difficulty, prevRandao) {
|
|
72
|
+
const coinbase = headerData?.coinbase === undefined
|
|
73
|
+
? undefined
|
|
74
|
+
: (0, ethereumjs_util_1.toBuffer)(headerData.coinbase);
|
|
75
|
+
return {
|
|
76
|
+
number: (0, bigint_1.fromBigIntLike)(headerData?.number),
|
|
77
|
+
coinbase,
|
|
78
|
+
timestamp: (0, bigint_1.fromBigIntLike)(headerData?.timestamp),
|
|
79
|
+
difficulty,
|
|
80
|
+
prevrandao: prevRandao,
|
|
81
|
+
basefee: (0, bigint_1.fromBigIntLike)(headerData?.baseFeePerGas),
|
|
82
|
+
gasLimit: (0, bigint_1.fromBigIntLike)(headerData?.gasLimit),
|
|
83
|
+
parentHash: headerData?.parentHash,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
exports.ethereumjsHeaderDataToRethnet = ethereumjsHeaderDataToRethnet;
|
|
85
87
|
function ethereumjsTransactionToRethnet(tx) {
|
|
86
88
|
const chainId = (_tx) => {
|
|
87
89
|
if (_tx instanceof ethereumjs_tx_1.AccessListEIP2930Transaction) {
|
|
@@ -109,106 +111,52 @@ function ethereumjsTransactionToRethnet(tx) {
|
|
|
109
111
|
return rethnetTx;
|
|
110
112
|
}
|
|
111
113
|
exports.ethereumjsTransactionToRethnet = ethereumjsTransactionToRethnet;
|
|
112
|
-
function
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
getStorageRootFn: HardhatDB.prototype.getStorageRoot.bind(hardhatDB),
|
|
122
|
-
insertAccountFn: HardhatDB.prototype.insertAccount.bind(hardhatDB),
|
|
123
|
-
setAccountBalanceFn: HardhatDB.prototype.setAccountBalance.bind(hardhatDB),
|
|
124
|
-
setAccountCodeFn: HardhatDB.prototype.setAccountCode.bind(hardhatDB),
|
|
125
|
-
setAccountNonceFn: HardhatDB.prototype.setAccountNonce.bind(hardhatDB),
|
|
126
|
-
setAccountStorageSlotFn: HardhatDB.prototype.setAccountStorageSlot.bind(hardhatDB),
|
|
127
|
-
});
|
|
114
|
+
function rethnetLogsToBloom(logs) {
|
|
115
|
+
const bloom = new bloom_1.Bloom();
|
|
116
|
+
for (const log of logs) {
|
|
117
|
+
bloom.add(log.address);
|
|
118
|
+
for (const topic of log.topics) {
|
|
119
|
+
bloom.add(topic);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return bloom;
|
|
128
123
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
124
|
+
function rethnetResultToRunTxResult(rethnetResult, blockGasUsed) {
|
|
125
|
+
const createdAddress = (0, message_trace_1.isSuccessResult)(rethnetResult.result) &&
|
|
126
|
+
(0, message_trace_1.isCreateOutput)(rethnetResult.result.output)
|
|
127
|
+
? rethnetResult.result.output.address
|
|
128
|
+
: undefined;
|
|
129
|
+
const exit = (0, message_trace_1.isSuccessResult)(rethnetResult.result)
|
|
130
|
+
? exit_1.Exit.fromRethnetSuccessReason(rethnetResult.result.reason)
|
|
131
|
+
: (0, message_trace_1.isHaltResult)(rethnetResult.result)
|
|
132
|
+
? exit_1.Exit.fromRethnetExceptionalHalt(rethnetResult.result.reason)
|
|
133
|
+
: new exit_1.Exit(exit_1.ExitCode.REVERT);
|
|
134
|
+
const returnValue = (0, message_trace_1.isRevertResult)(rethnetResult.result)
|
|
135
|
+
? rethnetResult.result.output
|
|
136
|
+
: (0, message_trace_1.isSuccessResult)(rethnetResult.result)
|
|
137
|
+
? rethnetResult.result.output.returnValue
|
|
138
|
+
: Buffer.from([]);
|
|
139
|
+
const bloom = (0, message_trace_1.isSuccessResult)(rethnetResult.result)
|
|
140
|
+
? rethnetLogsToBloom(rethnetResult.result.logs)
|
|
141
|
+
: new bloom_1.Bloom(undefined);
|
|
134
142
|
return {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
},
|
|
151
|
-
get executionGasUsed() {
|
|
152
|
-
console.trace("execResult.executionGasUsed not implemented");
|
|
153
|
-
return process.exit(1);
|
|
154
|
-
},
|
|
155
|
-
get logs() {
|
|
156
|
-
console.trace("execResult.logs not implemented");
|
|
157
|
-
return process.exit(1);
|
|
158
|
-
},
|
|
159
|
-
get selfdestruct() {
|
|
160
|
-
console.trace("execResult.selfdestruct not implemented");
|
|
161
|
-
return process.exit(1);
|
|
162
|
-
},
|
|
163
|
-
get gasRefund() {
|
|
164
|
-
console.trace("execResult.gasRefund not implemented");
|
|
165
|
-
return process.exit(1);
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
get bloom() {
|
|
169
|
-
console.trace("bloom not implemented");
|
|
170
|
-
return process.exit(1);
|
|
171
|
-
},
|
|
172
|
-
get amountSpent() {
|
|
173
|
-
console.trace("amountSpent not implemented");
|
|
174
|
-
return process.exit(1);
|
|
175
|
-
},
|
|
176
|
-
get receipt() {
|
|
177
|
-
console.trace("receipt not implemented");
|
|
178
|
-
return process.exit(1);
|
|
179
|
-
},
|
|
180
|
-
get accessList() {
|
|
181
|
-
console.trace("accessList not implemented");
|
|
182
|
-
return process.exit(1);
|
|
143
|
+
gasUsed: rethnetResult.result.gasUsed,
|
|
144
|
+
createdAddress: createdAddress !== undefined ? new ethereumjs_util_1.Address(createdAddress) : undefined,
|
|
145
|
+
exit,
|
|
146
|
+
returnValue,
|
|
147
|
+
bloom,
|
|
148
|
+
receipt: {
|
|
149
|
+
// Receipts have a 0 as status on error
|
|
150
|
+
status: exit.isError() ? 0 : 1,
|
|
151
|
+
cumulativeBlockGasUsed: blockGasUsed + rethnetResult.result.gasUsed,
|
|
152
|
+
bitvector: bloom.bitvector,
|
|
153
|
+
logs: (0, message_trace_1.isSuccessResult)(rethnetResult.result)
|
|
154
|
+
? rethnetResult.result.logs.map((log) => {
|
|
155
|
+
return [log.address, log.topics, log.data];
|
|
156
|
+
})
|
|
157
|
+
: [],
|
|
183
158
|
},
|
|
184
159
|
};
|
|
185
160
|
}
|
|
186
161
|
exports.rethnetResultToRunTxResult = rethnetResultToRunTxResult;
|
|
187
|
-
const rethnetExitCodeToEthereumJsError = new Map([
|
|
188
|
-
[0x50, exceptions_1.ERROR.OUT_OF_GAS],
|
|
189
|
-
[0x57, exceptions_1.ERROR.STACK_UNDERFLOW],
|
|
190
|
-
[0x58, exceptions_1.ERROR.STACK_OVERFLOW],
|
|
191
|
-
[0x54, exceptions_1.ERROR.INVALID_JUMP],
|
|
192
|
-
[0x51, exceptions_1.ERROR.INVALID_OPCODE],
|
|
193
|
-
[0x53, exceptions_1.ERROR.INVALID_OPCODE],
|
|
194
|
-
[0x59, exceptions_1.ERROR.OUT_OF_RANGE],
|
|
195
|
-
[0x20, exceptions_1.ERROR.REVERT],
|
|
196
|
-
[0x52, exceptions_1.ERROR.STATIC_STATE_CHANGE],
|
|
197
|
-
[0x60, exceptions_1.ERROR.CREATE_COLLISION],
|
|
198
|
-
[0x01, exceptions_1.ERROR.STOP],
|
|
199
|
-
[0x53, exceptions_1.ERROR.INVALID_BYTECODE_RESULT],
|
|
200
|
-
[0x64, exceptions_1.ERROR.INITCODE_SIZE_VIOLATION],
|
|
201
|
-
]);
|
|
202
|
-
function mapRethnetExitCodeToEthereumJsExceptionError(rethnetExitCode) {
|
|
203
|
-
if (rethnetExitCode <= 0x03) {
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const ethereumJsError = rethnetExitCodeToEthereumJsError.get(rethnetExitCode);
|
|
207
|
-
if (ethereumJsError === undefined) {
|
|
208
|
-
console.trace(`Couldn't map exit code ${rethnetExitCode}`);
|
|
209
|
-
// eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
|
|
210
|
-
throw new Error(`Couldn't map exit code ${rethnetExitCode}`);
|
|
211
|
-
}
|
|
212
|
-
return new ethereumjs_evm_1.EvmError(ethereumJsError);
|
|
213
|
-
}
|
|
214
162
|
//# sourceMappingURL=convertToRethnet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertToRethnet.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToRethnet.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"convertToRethnet.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToRethnet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AccessListEIP2930Transaction, FeeMarketEIP1559Transaction, TxData } from "@nomicfoundation/ethereumjs-tx";
|
|
2
|
+
import { Address } from "@nomicfoundation/ethereumjs-util";
|
|
3
|
+
export declare function makeFakeSignature(tx: TxData | AccessListEIP2930Transaction | FeeMarketEIP1559Transaction, sender: Address): {
|
|
4
|
+
r: number;
|
|
5
|
+
s: number;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=makeFakeSignature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeFakeSignature.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeFakeSignature.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,MAAM,EACP,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAK3D,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,GAAG,4BAA4B,GAAG,2BAA2B,EACvE,MAAM,EAAE,OAAO,GACd;IACD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CA6BA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeFakeSignature = void 0;
|
|
4
|
+
const hash_1 = require("../../../util/hash");
|
|
5
|
+
// Produces a signature with r and s values taken from a hash of the inputs.
|
|
6
|
+
function makeFakeSignature(tx, sender) {
|
|
7
|
+
const hashInputString = [
|
|
8
|
+
sender,
|
|
9
|
+
tx.nonce,
|
|
10
|
+
tx.gasLimit,
|
|
11
|
+
tx.value,
|
|
12
|
+
tx.to,
|
|
13
|
+
tx.data,
|
|
14
|
+
"gasPrice" in tx ? tx.gasPrice : "",
|
|
15
|
+
"chainId" in tx ? tx.chainId : "",
|
|
16
|
+
"maxPriorityFeePerGas" in tx ? tx.maxPriorityFeePerGas : "",
|
|
17
|
+
"maxFeePerGas" in tx ? tx.maxFeePerGas : "",
|
|
18
|
+
"accessList" in tx
|
|
19
|
+
? tx.accessList?.map(([buf, bufs]) => [buf, ...bufs].map((b) => b.toString("hex")).join(";"))
|
|
20
|
+
: "",
|
|
21
|
+
]
|
|
22
|
+
.map((a) => a?.toString() ?? "")
|
|
23
|
+
.join(",");
|
|
24
|
+
const hashDigest = (0, hash_1.createNonCryptographicHashBasedIdentifier)(Buffer.from(hashInputString));
|
|
25
|
+
return {
|
|
26
|
+
r: hashDigest.readUInt32LE(),
|
|
27
|
+
s: hashDigest.readUInt32LE(4),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.makeFakeSignature = makeFakeSignature;
|
|
31
|
+
//# sourceMappingURL=makeFakeSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeFakeSignature.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeFakeSignature.ts"],"names":[],"mappings":";;;AAOA,6CAA+E;AAE/E,4EAA4E;AAC5E,SAAgB,iBAAiB,CAC/B,EAAuE,EACvE,MAAe;IAKf,MAAM,eAAe,GAAG;QACtB,MAAM;QACN,EAAE,CAAC,KAAK;QACR,EAAE,CAAC,QAAQ;QACX,EAAE,CAAC,KAAK;QACR,EAAE,CAAC,EAAE;QACL,EAAE,CAAC,IAAI;QACP,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACnC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;QAC3D,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QAC3C,YAAY,IAAI,EAAE;YAChB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CACjC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACvD;YACH,CAAC,CAAC,EAAE;KACP;SACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,IAAA,gDAAyC,EAC1D,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAC7B,CAAC;IAEF,OAAO;QACL,CAAC,EAAE,UAAU,CAAC,YAAY,EAAE;QAC5B,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;KAC9B,CAAC;AACJ,CAAC;AAnCD,8CAmCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeForkClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"makeForkClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAmED"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.makeForkClient = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const constants_1 = require("../../../constants");
|
|
9
|
+
const errors_1 = require("../../../core/errors");
|
|
9
10
|
const base_types_1 = require("../../../core/jsonrpc/types/base-types");
|
|
10
11
|
const http_1 = require("../../../core/providers/http");
|
|
11
12
|
const client_1 = require("../../jsonrpc/client");
|
|
@@ -44,7 +45,9 @@ Please use block number ${lastSafeBlock} or wait for the block to get ${required
|
|
|
44
45
|
const forkBlockTimestamp = (0, base_types_1.rpcQuantityToNumber)(block.timestamp) * 1000;
|
|
45
46
|
const cacheToDiskEnabled = forkConfig.blockNumber !== undefined && forkCachePath !== undefined;
|
|
46
47
|
const forkClient = new client_1.JsonRpcClient(provider, networkId, latestBlock, maxReorg, cacheToDiskEnabled ? forkCachePath : undefined);
|
|
47
|
-
|
|
48
|
+
const forkBlockHash = block.hash;
|
|
49
|
+
(0, errors_1.assertHardhatInvariant)(forkBlockHash !== null, "Forked block should have a hash");
|
|
50
|
+
return { forkClient, forkBlockNumber, forkBlockTimestamp, forkBlockHash };
|
|
48
51
|
}
|
|
49
52
|
exports.makeForkClient = makeForkClient;
|
|
50
53
|
async function getBlockByNumber(provider, blockNumber) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeForkClient.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,kDAA0D;AAC1D,uEAGgD;AAChD,uDAA4D;AAC5D,iDAAqD;AAIrD,2DAG6B;AAE7B,uCAAuC;AACvC,6DAA6D;AAC7D,8DAA8D;AAC9D,6EAA6E;AAC7E,gDAAgD;AAChD,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEzB,KAAK,UAAU,cAAc,CAClC,UAAsB,EACtB,aAAsB;
|
|
1
|
+
{"version":3,"file":"makeForkClient.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ import { Trie } from "@nomicfoundation/ethereumjs-trie";
|
|
|
4
4
|
import { HardforkName } from "../../../util/hardforks";
|
|
5
5
|
import { HardhatBlockchain } from "../HardhatBlockchain";
|
|
6
6
|
import { LocalNodeConfig } from "../node-types";
|
|
7
|
-
export declare function putGenesisBlock(blockchain: HardhatBlockchain, common: Common, { initialDate, blockGasLimit }: LocalNodeConfig, stateTrie: Trie, hardfork: HardforkName, initialMixHash: Buffer, initialBaseFee?: bigint): Promise<void>;
|
|
7
|
+
export declare function putGenesisBlock(blockchain: HardhatBlockchain, common: Common, { initialDate, blockGasLimit: initialBlockGasLimit }: LocalNodeConfig, stateTrie: Trie, hardfork: HardforkName, initialMixHash: Buffer, initialBaseFee?: bigint): Promise<void>;
|
|
8
8
|
//# sourceMappingURL=putGenesisBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"putGenesisBlock.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAIxD,OAAO,EAAe,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAsB,eAAe,CACnC,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"putGenesisBlock.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAIxD,OAAO,EAAe,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAsB,eAAe,CACnC,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,EAAE,eAAe,EACrE,SAAS,EAAE,IAAI,EACf,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,iBAqCxB"}
|
|
@@ -6,14 +6,14 @@ const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
|
|
|
6
6
|
const date_1 = require("../../../util/date");
|
|
7
7
|
const hardforks_1 = require("../../../util/hardforks");
|
|
8
8
|
const getCurrentTimestamp_1 = require("./getCurrentTimestamp");
|
|
9
|
-
async function putGenesisBlock(blockchain, common, { initialDate, blockGasLimit }, stateTrie, hardfork, initialMixHash, initialBaseFee) {
|
|
9
|
+
async function putGenesisBlock(blockchain, common, { initialDate, blockGasLimit: initialBlockGasLimit }, stateTrie, hardfork, initialMixHash, initialBaseFee) {
|
|
10
10
|
const initialBlockTimestamp = initialDate !== undefined
|
|
11
11
|
? (0, date_1.dateToTimestampSeconds)(initialDate)
|
|
12
12
|
: (0, getCurrentTimestamp_1.getCurrentTimestamp)();
|
|
13
13
|
const isPostMerge = (0, hardforks_1.hardforkGte)(hardfork, hardforks_1.HardforkName.MERGE);
|
|
14
14
|
const header = {
|
|
15
15
|
timestamp: `0x${initialBlockTimestamp.toString(16)}`,
|
|
16
|
-
gasLimit:
|
|
16
|
+
gasLimit: initialBlockGasLimit,
|
|
17
17
|
difficulty: isPostMerge ? 0 : 1,
|
|
18
18
|
nonce: isPostMerge ? "0x0000000000000000" : "0x0000000000000042",
|
|
19
19
|
extraData: "0x1234",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"putGenesisBlock.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AAGtE,sEAA+D;AAE/D,6CAA4D;AAC5D,uDAAoE;AAGpE,+DAA4D;AAErD,KAAK,UAAU,eAAe,CACnC,UAA6B,EAC7B,MAAc,EACd,EAAE,WAAW,EAAE,aAAa,EAAmB,
|
|
1
|
+
{"version":3,"file":"putGenesisBlock.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AAGtE,sEAA+D;AAE/D,6CAA4D;AAC5D,uDAAoE;AAGpE,+DAA4D;AAErD,KAAK,UAAU,eAAe,CACnC,UAA6B,EAC7B,MAAc,EACd,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAmB,EACrE,SAAe,EACf,QAAsB,EACtB,cAAsB,EACtB,cAAuB;IAEvB,MAAM,qBAAqB,GACzB,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC,IAAA,6BAAsB,EAAC,WAAW,CAAC;QACrC,CAAC,CAAC,IAAA,yCAAmB,GAAE,CAAC;IAE5B,MAAM,WAAW,GAAG,IAAA,uBAAW,EAAC,QAAQ,EAAE,wBAAY,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAe;QACzB,SAAS,EAAE,KAAK,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACpD,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB;QAChE,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,IAAA,6BAAW,EAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzC,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC;KACjC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC;KACvC;IAED,MAAM,YAAY,GAAG,wBAAK,CAAC,aAAa,CACtC;QACE,MAAM;KACP,EACD;QACE,MAAM;QACN,6BAA6B,EAAE,IAAI;KACpC,CACF,CAAC;IAEF,MAAM,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AA5CD,0CA4CC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import type { Common } from "@nomicfoundation/ethereumjs-common";
|
|
1
2
|
import { Block, HeaderData } from "@nomicfoundation/ethereumjs-block";
|
|
2
3
|
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
3
4
|
import { Address } from "@nomicfoundation/ethereumjs-util";
|
|
4
|
-
import { RunTxResult } from "
|
|
5
|
-
import { VMAdapter } from "./vm-adapter";
|
|
5
|
+
import { RunTxResult, VMAdapter } from "./vm-adapter";
|
|
6
6
|
declare type Reward = [address: Address, reward: bigint];
|
|
7
7
|
export interface BuildBlockOpts {
|
|
8
8
|
parentBlock: Block;
|
|
@@ -10,12 +10,13 @@ export interface BuildBlockOpts {
|
|
|
10
10
|
}
|
|
11
11
|
export declare class BlockBuilder {
|
|
12
12
|
private _vm;
|
|
13
|
+
private _common;
|
|
13
14
|
private _opts;
|
|
14
15
|
private _state;
|
|
15
16
|
private _gasUsed;
|
|
16
17
|
private _transactions;
|
|
17
18
|
private _transactionResults;
|
|
18
|
-
constructor(_vm: VMAdapter, _opts: BuildBlockOpts);
|
|
19
|
+
constructor(_vm: VMAdapter, _common: Common, _opts: BuildBlockOpts);
|
|
19
20
|
startBlock(): Promise<void>;
|
|
20
21
|
getGasUsed(): bigint;
|
|
21
22
|
addTransaction(tx: TypedTransaction): Promise<RunTxResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/block-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,OAAO,EAIR,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/block-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,OAAO,EAIR,MAAM,kCAAkC,CAAC;AAS1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAItD,aAAK,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAcD,qBAAa,YAAY;IAOrB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IARf,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,mBAAmB,CAAqB;gBAGtC,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc;IAGlB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,IAAI,MAAM;IAId,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyC1D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5C,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IAoDtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAWtB,oBAAoB;YAQpB,gBAAgB;IAU9B,OAAO,CAAC,aAAa;CAQtB"}
|
|
@@ -8,8 +8,9 @@ const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
|
|
|
8
8
|
const bigint_1 = require("../../../util/bigint");
|
|
9
9
|
const bloom_1 = require("../utils/bloom");
|
|
10
10
|
class BlockBuilder {
|
|
11
|
-
constructor(_vm, _opts) {
|
|
11
|
+
constructor(_vm, _common, _opts) {
|
|
12
12
|
this._vm = _vm;
|
|
13
|
+
this._common = _common;
|
|
13
14
|
this._opts = _opts;
|
|
14
15
|
this._state = "ready";
|
|
15
16
|
this._gasUsed = 0n;
|
|
@@ -36,16 +37,19 @@ class BlockBuilder {
|
|
|
36
37
|
...this._opts.headerData,
|
|
37
38
|
gasUsed: this._gasUsed,
|
|
38
39
|
};
|
|
40
|
+
if (header.number === undefined) {
|
|
41
|
+
header.number = this._opts.parentBlock.header.number + 1n;
|
|
42
|
+
}
|
|
39
43
|
const blockData = { header, transactions: this._transactions };
|
|
40
44
|
const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
|
|
41
|
-
common: this.
|
|
45
|
+
common: this._common,
|
|
42
46
|
skipConsensusFormatValidation: true,
|
|
43
47
|
calcDifficultyFromHeader: this._opts.parentBlock.header,
|
|
44
48
|
});
|
|
45
|
-
const result = await this._vm.runTxInBlock(tx, block);
|
|
49
|
+
const [result] = await this._vm.runTxInBlock(tx, block);
|
|
46
50
|
this._transactions.push(tx);
|
|
47
51
|
this._transactionResults.push(result);
|
|
48
|
-
this._gasUsed += result.
|
|
52
|
+
this._gasUsed += result.gasUsed;
|
|
49
53
|
return result;
|
|
50
54
|
}
|
|
51
55
|
async addRewards(rewards) {
|
|
@@ -86,7 +90,7 @@ class BlockBuilder {
|
|
|
86
90
|
transactions: this._transactions,
|
|
87
91
|
};
|
|
88
92
|
const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
|
|
89
|
-
common: this.
|
|
93
|
+
common: this._common,
|
|
90
94
|
skipConsensusFormatValidation: true,
|
|
91
95
|
calcDifficultyFromHeader: this._opts.parentBlock.header,
|
|
92
96
|
});
|