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
|
@@ -9,6 +9,7 @@ export class DependencyGraph implements taskTypes.DependencyGraph {
|
|
|
9
9
|
): Promise<DependencyGraph> {
|
|
10
10
|
const graph = new DependencyGraph();
|
|
11
11
|
|
|
12
|
+
// TODO refactor this to make the results deterministic
|
|
12
13
|
await Promise.all(
|
|
13
14
|
resolvedFiles.map((resolvedFile) =>
|
|
14
15
|
graph._addDependenciesFrom(resolver, resolvedFile)
|
|
@@ -169,6 +170,7 @@ export class DependencyGraph implements taskTypes.DependencyGraph {
|
|
|
169
170
|
this._resolvedFiles.set(file.sourceName, file);
|
|
170
171
|
this._dependenciesPerFile.set(file.sourceName, dependencies);
|
|
171
172
|
|
|
173
|
+
// TODO refactor this to make the results deterministic
|
|
172
174
|
await Promise.all(
|
|
173
175
|
file.content.imports.map(async (imp) => {
|
|
174
176
|
const dependency = await resolver.resolveImport(file, imp);
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
ResolvedFile as IResolvedFile,
|
|
9
9
|
} from "../../types/builtin-tasks";
|
|
10
10
|
import {
|
|
11
|
+
includesOwnPackageName,
|
|
11
12
|
isAbsolutePathSourceName,
|
|
12
13
|
isLocalSourceName,
|
|
13
14
|
normalizeSourceName,
|
|
@@ -68,7 +69,10 @@ export class Resolver {
|
|
|
68
69
|
constructor(
|
|
69
70
|
private readonly _projectRoot: string,
|
|
70
71
|
private readonly _parser: Parser,
|
|
71
|
-
private readonly _readFile: (absolutePath: string) => Promise<string
|
|
72
|
+
private readonly _readFile: (absolutePath: string) => Promise<string>,
|
|
73
|
+
private readonly _transformImportName: (
|
|
74
|
+
importName: string
|
|
75
|
+
) => Promise<string>
|
|
72
76
|
) {}
|
|
73
77
|
|
|
74
78
|
/**
|
|
@@ -99,12 +103,14 @@ export class Resolver {
|
|
|
99
103
|
/**
|
|
100
104
|
* Resolves an import from an already resolved file.
|
|
101
105
|
* @param from The file were the import statement is present.
|
|
102
|
-
* @param
|
|
106
|
+
* @param importName The path in the import statement.
|
|
103
107
|
*/
|
|
104
108
|
public async resolveImport(
|
|
105
109
|
from: ResolvedFile,
|
|
106
|
-
|
|
110
|
+
importName: string
|
|
107
111
|
): Promise<ResolvedFile> {
|
|
112
|
+
const imported = await this._transformImportName(importName);
|
|
113
|
+
|
|
108
114
|
const scheme = this._getUriScheme(imported);
|
|
109
115
|
if (scheme !== undefined) {
|
|
110
116
|
throw new HardhatError(ERRORS.RESOLVER.INVALID_IMPORT_PROTOCOL, {
|
|
@@ -128,6 +134,15 @@ export class Resolver {
|
|
|
128
134
|
});
|
|
129
135
|
}
|
|
130
136
|
|
|
137
|
+
// Edge-case where an import can contain the current package's name in monorepos.
|
|
138
|
+
// The path can be resolved because there's a symlink in the node modules.
|
|
139
|
+
if (await includesOwnPackageName(imported)) {
|
|
140
|
+
throw new HardhatError(ERRORS.RESOLVER.INCLUDES_OWN_PACKAGE_NAME, {
|
|
141
|
+
from: from.sourceName,
|
|
142
|
+
imported,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
131
146
|
try {
|
|
132
147
|
let sourceName: string;
|
|
133
148
|
|
|
@@ -172,14 +187,26 @@ export class Resolver {
|
|
|
172
187
|
ERRORS.RESOLVER.LIBRARY_FILE_NOT_FOUND
|
|
173
188
|
)
|
|
174
189
|
) {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
190
|
+
if (imported !== importName) {
|
|
191
|
+
throw new HardhatError(
|
|
192
|
+
ERRORS.RESOLVER.IMPORTED_MAPPED_FILE_NOT_FOUND,
|
|
193
|
+
{
|
|
194
|
+
imported,
|
|
195
|
+
importName,
|
|
196
|
+
from: from.sourceName,
|
|
197
|
+
},
|
|
198
|
+
error
|
|
199
|
+
);
|
|
200
|
+
} else {
|
|
201
|
+
throw new HardhatError(
|
|
202
|
+
ERRORS.RESOLVER.IMPORTED_FILE_NOT_FOUND,
|
|
203
|
+
{
|
|
204
|
+
imported,
|
|
205
|
+
from: from.sourceName,
|
|
206
|
+
},
|
|
207
|
+
error
|
|
208
|
+
);
|
|
209
|
+
}
|
|
183
210
|
}
|
|
184
211
|
|
|
185
212
|
if (
|
|
@@ -26,6 +26,15 @@ export class AbiHelpers {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
public static isValidCalldata(inputs: any[], calldata: Buffer): boolean {
|
|
30
|
+
try {
|
|
31
|
+
abi.defaultAbiCoder.decode(inputs, calldata);
|
|
32
|
+
return true;
|
|
33
|
+
} catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
29
38
|
public static formatValues(values: any[]): string {
|
|
30
39
|
return values.map((x) => AbiHelpers._formatValue(x)).join(", ");
|
|
31
40
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type ReplT from "repl";
|
|
2
|
+
|
|
1
3
|
export function isNodeCalledWithoutAScript() {
|
|
2
4
|
const script = process.argv[1];
|
|
3
5
|
return script === undefined || script.trim() === "";
|
|
@@ -9,9 +11,9 @@ export function isNodeCalledWithoutAScript() {
|
|
|
9
11
|
* so we disable it in hardhat/register.
|
|
10
12
|
*/
|
|
11
13
|
export function disableReplWriterShowProxy() {
|
|
12
|
-
const repl = require("repl");
|
|
14
|
+
const repl = require("repl") as typeof ReplT;
|
|
13
15
|
|
|
14
|
-
if (repl.writer.options) {
|
|
16
|
+
if (repl.writer.options !== undefined) {
|
|
15
17
|
Object.defineProperty(repl.writer.options, "showProxy", {
|
|
16
18
|
value: false,
|
|
17
19
|
writable: false,
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import type { Dispatcher } from "undici";
|
|
2
|
+
|
|
1
3
|
import fs from "fs";
|
|
2
4
|
import fsExtra from "fs-extra";
|
|
3
5
|
import path from "path";
|
|
4
6
|
import util from "util";
|
|
5
7
|
|
|
6
8
|
import { getHardhatVersion } from "./packageInfo";
|
|
9
|
+
import { shouldUseProxy } from "./proxy";
|
|
7
10
|
|
|
8
11
|
const TEMP_FILE_PREFIX = "tmp-";
|
|
9
12
|
|
|
@@ -20,34 +23,31 @@ function resolveTempFileName(filePath: string): string {
|
|
|
20
23
|
export async function download(
|
|
21
24
|
url: string,
|
|
22
25
|
filePath: string,
|
|
23
|
-
timeoutMillis = 10000
|
|
26
|
+
timeoutMillis = 10000,
|
|
27
|
+
extraHeaders: { [name: string]: string } = {}
|
|
24
28
|
) {
|
|
25
29
|
const { pipeline } = await import("stream");
|
|
26
30
|
const { getGlobalDispatcher, ProxyAgent, request } = await import("undici");
|
|
27
31
|
const streamPipeline = util.promisify(pipeline);
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (process.env.HTTP_PROXY !== undefined) {
|
|
35
|
-
return new ProxyAgent(process.env.HTTP_PROXY);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return getGlobalDispatcher();
|
|
33
|
+
let dispatcher: Dispatcher;
|
|
34
|
+
if (process.env.http_proxy !== undefined && shouldUseProxy(url)) {
|
|
35
|
+
dispatcher = new ProxyAgent(process.env.http_proxy);
|
|
36
|
+
} else {
|
|
37
|
+
dispatcher = getGlobalDispatcher();
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
const hardhatVersion = getHardhatVersion();
|
|
42
41
|
|
|
43
42
|
// Fetch the url
|
|
44
43
|
const response = await request(url, {
|
|
45
|
-
dispatcher
|
|
44
|
+
dispatcher,
|
|
46
45
|
headersTimeout: timeoutMillis,
|
|
47
46
|
maxRedirections: 10,
|
|
48
47
|
method: "GET",
|
|
49
48
|
headers: {
|
|
50
|
-
|
|
49
|
+
...extraHeaders,
|
|
50
|
+
"User-Agent": `hardhat ${hardhatVersion}`,
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
53
|
|
|
@@ -58,11 +58,11 @@ export async function download(
|
|
|
58
58
|
await streamPipeline(response.body, fs.createWriteStream(tmpFilePath));
|
|
59
59
|
return fsExtra.move(tmpFilePath, filePath, { overwrite: true });
|
|
60
60
|
}
|
|
61
|
+
// undici's response bodies must always be consumed to prevent leaks
|
|
62
|
+
const text = await response.body.text();
|
|
61
63
|
|
|
62
64
|
// eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
|
|
63
65
|
throw new Error(
|
|
64
|
-
`Failed to download ${url} - ${
|
|
65
|
-
response.statusCode
|
|
66
|
-
} received. ${await response.body.text()}`
|
|
66
|
+
`Failed to download ${url} - ${response.statusCode} received. ${text}`
|
|
67
67
|
);
|
|
68
68
|
}
|
|
@@ -11,7 +11,10 @@ export function deriveKeyFromMnemonicAndPath(
|
|
|
11
11
|
}: {
|
|
12
12
|
mnemonicToSeedSync: typeof mnemonicToSeedSyncT;
|
|
13
13
|
} = require("ethereum-cryptography/bip39");
|
|
14
|
-
|
|
14
|
+
// NOTE: If mnemonic has space or newline at the beginning or end, it will be trimmed.
|
|
15
|
+
// This is because mnemonic containing them may generate different private keys.
|
|
16
|
+
const trimmedMnemonic = mnemonic.trim();
|
|
17
|
+
const seed = mnemonicToSeedSync(trimmedMnemonic, passphrase);
|
|
15
18
|
|
|
16
19
|
const {
|
|
17
20
|
HDKey,
|
|
@@ -2,6 +2,8 @@ import findup from "find-up";
|
|
|
2
2
|
import fsExtra from "fs-extra";
|
|
3
3
|
import path from "path";
|
|
4
4
|
|
|
5
|
+
import { assertHardhatInvariant } from "../core/errors";
|
|
6
|
+
|
|
5
7
|
export function getPackageJsonPath(): string {
|
|
6
8
|
return findClosestPackageJson(__filename)!;
|
|
7
9
|
}
|
|
@@ -15,6 +17,7 @@ export function getPackageRoot(): string {
|
|
|
15
17
|
export interface PackageJson {
|
|
16
18
|
name: string;
|
|
17
19
|
version: string;
|
|
20
|
+
type?: "commonjs" | "module";
|
|
18
21
|
engines: {
|
|
19
22
|
node: string;
|
|
20
23
|
};
|
|
@@ -24,22 +27,42 @@ export function findClosestPackageJson(file: string): string | null {
|
|
|
24
27
|
return findup.sync("package.json", { cwd: path.dirname(file) });
|
|
25
28
|
}
|
|
26
29
|
|
|
30
|
+
export async function getPackageName(file: string): Promise<string> {
|
|
31
|
+
const packageJsonPath = findClosestPackageJson(file);
|
|
32
|
+
if (packageJsonPath !== null && packageJsonPath !== "") {
|
|
33
|
+
const packageJson: PackageJson = await fsExtra.readJSON(packageJsonPath);
|
|
34
|
+
return packageJson.name;
|
|
35
|
+
}
|
|
36
|
+
return "";
|
|
37
|
+
}
|
|
38
|
+
|
|
27
39
|
export async function getPackageJson(): Promise<PackageJson> {
|
|
28
40
|
const root = getPackageRoot();
|
|
29
41
|
return fsExtra.readJSON(path.join(root, "package.json"));
|
|
30
42
|
}
|
|
31
43
|
|
|
32
|
-
export function getHardhatVersion(): string
|
|
44
|
+
export function getHardhatVersion(): string {
|
|
33
45
|
const packageJsonPath = findClosestPackageJson(__filename);
|
|
34
46
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
assertHardhatInvariant(
|
|
48
|
+
packageJsonPath !== null,
|
|
49
|
+
"There should be a package.json in hardhat-core's root directory"
|
|
50
|
+
);
|
|
38
51
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
52
|
+
const packageJson = fsExtra.readJsonSync(packageJsonPath);
|
|
53
|
+
return packageJson.version;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Return the contents of the package.json in the user's project
|
|
58
|
+
*/
|
|
59
|
+
export function getProjectPackageJson(): Promise<any> {
|
|
60
|
+
const packageJsonPath = findup.sync("package.json");
|
|
61
|
+
|
|
62
|
+
assertHardhatInvariant(
|
|
63
|
+
packageJsonPath !== null,
|
|
64
|
+
"Expected a package.json file in the current directory or in an ancestor directory"
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
return fsExtra.readJson(packageJsonPath);
|
|
45
68
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function shouldUseProxy(url: string): boolean {
|
|
2
|
+
const { hostname } = new URL(url);
|
|
3
|
+
const noProxy = process.env.NO_PROXY;
|
|
4
|
+
|
|
5
|
+
if (hostname === "localhost" || hostname === "127.0.0.1" || noProxy === "*") {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
if (noProxy !== undefined && noProxy !== "") {
|
|
10
|
+
const noProxyList = noProxy.split(",");
|
|
11
|
+
|
|
12
|
+
if (noProxyList.includes(hostname)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return true;
|
|
18
|
+
}
|
package/src/register.ts
CHANGED
|
@@ -38,16 +38,11 @@ if (!HardhatContext.isCreated()) {
|
|
|
38
38
|
|
|
39
39
|
const { resolvedConfig, userConfig } = loadConfigAndTasks(hardhatArguments);
|
|
40
40
|
|
|
41
|
-
const artifactsExtensions = ctx.extendersManager
|
|
42
|
-
.getArtifactsExtenders()
|
|
43
|
-
.map((artifactsExtender) => artifactsExtender(resolvedConfig));
|
|
44
|
-
|
|
45
41
|
const env = new Environment(
|
|
46
42
|
resolvedConfig,
|
|
47
43
|
hardhatArguments,
|
|
48
44
|
ctx.tasksDSL.getTaskDefinitions(),
|
|
49
|
-
ctx.extendersManager.
|
|
50
|
-
artifactsExtensions,
|
|
45
|
+
ctx.extendersManager.getExtenders(),
|
|
51
46
|
ctx.experimentalHardhatNetworkMessageTraceHooks,
|
|
52
47
|
userConfig
|
|
53
48
|
);
|
package/src/types/artifacts.ts
CHANGED
|
@@ -41,6 +41,11 @@ export interface Artifacts {
|
|
|
41
41
|
*/
|
|
42
42
|
getBuildInfo(fullyQualifiedName: string): Promise<BuildInfo | undefined>;
|
|
43
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Synchronous version of getBuildInfo.
|
|
46
|
+
*/
|
|
47
|
+
getBuildInfoSync(fullyQualifiedName: string): BuildInfo | undefined;
|
|
48
|
+
|
|
44
49
|
/**
|
|
45
50
|
* Returns an array with the absolute paths of all the existing artifacts.
|
|
46
51
|
*
|
|
@@ -92,9 +97,7 @@ export interface Artifacts {
|
|
|
92
97
|
): Promise<string>;
|
|
93
98
|
|
|
94
99
|
/**
|
|
95
|
-
* Returns the absolute path to the given artifact
|
|
96
|
-
* locally, and not by a plugin (i.e. this method does not support
|
|
97
|
-
* ArtifactsExtension artifacts).
|
|
100
|
+
* Returns the absolute path to the given artifact.
|
|
98
101
|
*
|
|
99
102
|
* @param fullyQualifiedName The FQN of the artifact.
|
|
100
103
|
*/
|
|
@@ -108,7 +111,7 @@ export interface Artifacts {
|
|
|
108
111
|
*
|
|
109
112
|
* This method, if present, clears that cache.
|
|
110
113
|
*/
|
|
111
|
-
clearCache
|
|
114
|
+
clearCache?: () => void;
|
|
112
115
|
|
|
113
116
|
/**
|
|
114
117
|
* This method, if present, disables the artifact paths cache.
|
|
@@ -119,106 +122,7 @@ export interface Artifacts {
|
|
|
119
122
|
*
|
|
120
123
|
* @see clearCache
|
|
121
124
|
*/
|
|
122
|
-
disableCache
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Classes implementing this interface can be used as extra sources of
|
|
127
|
-
* artifacts.
|
|
128
|
-
*
|
|
129
|
-
* Not every method needs to be fully implemented; some of them can have a
|
|
130
|
-
* minimal valid implementation, as explained on their jsdocs.
|
|
131
|
-
*/
|
|
132
|
-
export interface ArtifactsSource {
|
|
133
|
-
/**
|
|
134
|
-
* Reads an Artifact, returning `undefined` if not found.
|
|
135
|
-
* @see Artifacts#readArtifact
|
|
136
|
-
*/
|
|
137
|
-
readArtifact(
|
|
138
|
-
contractNameOrFullyQualifiedName: string
|
|
139
|
-
): Promise<Artifact | undefined>;
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Reads an Artifact, returning `undefined` if not found.
|
|
143
|
-
* @see Artifacts#readArtifactSync
|
|
144
|
-
*/
|
|
145
|
-
readArtifactSync(
|
|
146
|
-
contractNameOrFullyQualifiedName: string
|
|
147
|
-
): Artifact | undefined;
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* @see Artifacts#artifactExists
|
|
151
|
-
*/
|
|
152
|
-
artifactExists(contractNameOrFullyQualifiedName: string): Promise<boolean>;
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Returns an array with the fully qualified names of all the artifacts.
|
|
156
|
-
*
|
|
157
|
-
* Always returning an empty array is a valid implementation.
|
|
158
|
-
*
|
|
159
|
-
* @see Artifacts#getAllFullyQualifiedNames
|
|
160
|
-
*/
|
|
161
|
-
getAllFullyQualifiedNames(): Promise<string[]>;
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Returns the BuildInfo associated with an artifact. Return `undefined` if
|
|
165
|
-
* there's none.
|
|
166
|
-
*
|
|
167
|
-
* Always returning `undefined` is a valid implementation if you don't handle
|
|
168
|
-
* BuildInfos.
|
|
169
|
-
*
|
|
170
|
-
* @see Artifacts#getBuildInfo
|
|
171
|
-
*/
|
|
172
|
-
getBuildInfo(fullyQualifiedName: string): Promise<BuildInfo | undefined>;
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Returns the paths of all the artifacts that the plugin can read.
|
|
176
|
-
*
|
|
177
|
-
* Always returning an empty array is a valid implementation.
|
|
178
|
-
*
|
|
179
|
-
* @see Artifacts#getArtifactPaths
|
|
180
|
-
*/
|
|
181
|
-
getArtifactPaths(): Promise<string[]>;
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Returns the paths of all the debug files associated with the artifacts that
|
|
185
|
-
* the plugin can read.
|
|
186
|
-
*
|
|
187
|
-
* Always returning an empty array is a valid implementation if you don't
|
|
188
|
-
* handle debug files.
|
|
189
|
-
*
|
|
190
|
-
* @see Artifacts#getDebugFilePaths
|
|
191
|
-
*/
|
|
192
|
-
getDebugFilePaths(): Promise<string[]>;
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Returns the paths of all the BuildInfos associated with the artifacts that
|
|
196
|
-
* the plugin can read.
|
|
197
|
-
*
|
|
198
|
-
* Always returning an empty array is a valid implementation if you don't
|
|
199
|
-
* handle BuildInfos.
|
|
200
|
-
*
|
|
201
|
-
* @see Artifacts#getBuildInfoPaths
|
|
202
|
-
*/
|
|
203
|
-
getBuildInfoPaths(): Promise<string[]>;
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Clears the internal cache, if any.
|
|
207
|
-
*
|
|
208
|
-
* An empty function is a valid implementation if you don't cache results.
|
|
209
|
-
*
|
|
210
|
-
* @see Artifacts#clearCache
|
|
211
|
-
*/
|
|
212
|
-
clearCache: () => void;
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Disables the internal cache, if any.
|
|
216
|
-
*
|
|
217
|
-
* An empty function is a valid implementation if you don't cache results.
|
|
218
|
-
*
|
|
219
|
-
* @see Artifacts#disableCache
|
|
220
|
-
*/
|
|
221
|
-
disableCache: () => void;
|
|
125
|
+
disableCache?: () => void;
|
|
222
126
|
}
|
|
223
127
|
|
|
224
128
|
/**
|
|
@@ -278,7 +182,16 @@ export interface CompilerInput {
|
|
|
278
182
|
language: string;
|
|
279
183
|
sources: { [sourceName: string]: { content: string } };
|
|
280
184
|
settings: {
|
|
281
|
-
|
|
185
|
+
viaIR?: boolean;
|
|
186
|
+
optimizer: {
|
|
187
|
+
runs?: number;
|
|
188
|
+
enabled?: boolean;
|
|
189
|
+
details?: {
|
|
190
|
+
yulDetails: {
|
|
191
|
+
optimizerSteps: string;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
};
|
|
282
195
|
metadata?: { useLiteralContent: boolean };
|
|
283
196
|
outputSelection: {
|
|
284
197
|
[sourceName: string]: {
|
|
@@ -291,6 +204,7 @@ export interface CompilerInput {
|
|
|
291
204
|
[libraryName: string]: string;
|
|
292
205
|
};
|
|
293
206
|
};
|
|
207
|
+
remappings?: string[];
|
|
294
208
|
};
|
|
295
209
|
}
|
|
296
210
|
|
package/src/types/config.ts
CHANGED
|
@@ -51,6 +51,7 @@ export interface HardhatNetworkUserConfig {
|
|
|
51
51
|
throwOnTransactionFailures?: boolean;
|
|
52
52
|
throwOnCallFailures?: boolean;
|
|
53
53
|
allowUnlimitedContractSize?: boolean;
|
|
54
|
+
allowBlocksWithSameTimestamp?: boolean;
|
|
54
55
|
initialDate?: string;
|
|
55
56
|
loggingEnabled?: boolean;
|
|
56
57
|
forking?: HardhatNetworkForkingUserConfig;
|
|
@@ -151,6 +152,7 @@ export interface HardhatNetworkConfig {
|
|
|
151
152
|
forking?: HardhatNetworkForkingConfig;
|
|
152
153
|
coinbase?: string;
|
|
153
154
|
chains: HardhatNetworkChainsConfig;
|
|
155
|
+
allowBlocksWithSameTimestamp?: boolean;
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
export type HardhatNetworkAccountsConfig =
|
package/src/types/runtime.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Artifacts
|
|
1
|
+
import { Artifacts } from "./artifacts";
|
|
2
2
|
import { HardhatConfig, HardhatUserConfig, NetworkConfig } from "./config";
|
|
3
3
|
import { EthereumProvider } from "./provider";
|
|
4
4
|
|
|
@@ -146,15 +146,22 @@ export interface TaskDefinition extends ConfigurableTaskDefinition {
|
|
|
146
146
|
*/
|
|
147
147
|
export type TaskArguments = any;
|
|
148
148
|
|
|
149
|
-
export interface
|
|
150
|
-
|
|
149
|
+
export interface SubtaskArguments {
|
|
150
|
+
[subtaskName: string]: TaskArguments;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface RunSuperFunction<TaskArgumentsT extends TaskArguments> {
|
|
154
|
+
(
|
|
155
|
+
taskArguments?: TaskArgumentsT,
|
|
156
|
+
subtaskArguments?: SubtaskArguments
|
|
157
|
+
): Promise<any>;
|
|
151
158
|
isDefined: boolean;
|
|
152
159
|
}
|
|
153
160
|
|
|
154
|
-
export type ActionType<
|
|
155
|
-
taskArgs:
|
|
161
|
+
export type ActionType<TaskArgumentsT extends TaskArguments> = (
|
|
162
|
+
taskArgs: TaskArgumentsT,
|
|
156
163
|
env: HardhatRuntimeEnvironment,
|
|
157
|
-
runSuper: RunSuperFunction<
|
|
164
|
+
runSuper: RunSuperFunction<TaskArgumentsT>
|
|
158
165
|
) => Promise<any>;
|
|
159
166
|
|
|
160
167
|
export interface HardhatArguments {
|
|
@@ -183,7 +190,8 @@ export interface TasksMap {
|
|
|
183
190
|
|
|
184
191
|
export type RunTaskFunction = (
|
|
185
192
|
name: string,
|
|
186
|
-
taskArguments?: TaskArguments
|
|
193
|
+
taskArguments?: TaskArguments,
|
|
194
|
+
subtaskArguments?: SubtaskArguments
|
|
187
195
|
) => Promise<any>;
|
|
188
196
|
|
|
189
197
|
export interface HardhatRuntimeEnvironment {
|
|
@@ -194,6 +202,7 @@ export interface HardhatRuntimeEnvironment {
|
|
|
194
202
|
readonly run: RunTaskFunction;
|
|
195
203
|
readonly network: Network;
|
|
196
204
|
readonly artifacts: Artifacts;
|
|
205
|
+
readonly version: string;
|
|
197
206
|
}
|
|
198
207
|
|
|
199
208
|
export interface Network {
|
|
@@ -207,9 +216,3 @@ export interface Network {
|
|
|
207
216
|
* modify its properties or add new ones.
|
|
208
217
|
*/
|
|
209
218
|
export type EnvironmentExtender = (env: HardhatRuntimeEnvironment) => void;
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* A function that receives the resolved Hardhat configuration and
|
|
213
|
-
* returns an extra source of artifacts.
|
|
214
|
-
*/
|
|
215
|
-
export type ArtifactsExtender = (config: HardhatConfig) => ArtifactsSource;
|
|
@@ -3,6 +3,7 @@ import path from "path";
|
|
|
3
3
|
import { HardhatError } from "../internal/core/errors";
|
|
4
4
|
import { ERRORS } from "../internal/core/errors-list";
|
|
5
5
|
import { FileNotFoundError, getFileTrueCase } from "../internal/util/fs-utils";
|
|
6
|
+
import { getPackageName } from "../internal/util/packageInfo";
|
|
6
7
|
|
|
7
8
|
const NODE_MODULES = "node_modules";
|
|
8
9
|
|
|
@@ -228,3 +229,17 @@ async function getSourceNameTrueCase(
|
|
|
228
229
|
throw error;
|
|
229
230
|
}
|
|
230
231
|
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* This function returns true if the sourceName contains the current package's name
|
|
235
|
+
* as a substring
|
|
236
|
+
*/
|
|
237
|
+
export async function includesOwnPackageName(
|
|
238
|
+
sourceName: string
|
|
239
|
+
): Promise<boolean> {
|
|
240
|
+
const packageName = await getPackageName(sourceName);
|
|
241
|
+
if (packageName !== "") {
|
|
242
|
+
return sourceName.startsWith(`${packageName}/`);
|
|
243
|
+
}
|
|
244
|
+
return false;
|
|
245
|
+
}
|