hardhatjs 2.22.15
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/.eslintrc.js +41 -0
- package/LICENSE +55 -0
- package/README.md +53 -0
- package/builtin-tasks/check.d.ts +2 -0
- package/builtin-tasks/check.d.ts.map +1 -0
- package/builtin-tasks/check.js +6 -0
- package/builtin-tasks/check.js.map +1 -0
- package/builtin-tasks/clean.d.ts +2 -0
- package/builtin-tasks/clean.d.ts.map +1 -0
- package/builtin-tasks/clean.js +24 -0
- package/builtin-tasks/clean.js.map +1 -0
- package/builtin-tasks/compile.d.ts +2 -0
- package/builtin-tasks/compile.d.ts.map +1 -0
- package/builtin-tasks/compile.js +952 -0
- package/builtin-tasks/compile.js.map +1 -0
- package/builtin-tasks/console.d.ts +2 -0
- package/builtin-tasks/console.d.ts.map +1 -0
- package/builtin-tasks/console.js +55 -0
- package/builtin-tasks/console.js.map +1 -0
- package/builtin-tasks/flatten.d.ts +2 -0
- package/builtin-tasks/flatten.d.ts.map +1 -0
- package/builtin-tasks/flatten.js +210 -0
- package/builtin-tasks/flatten.js.map +1 -0
- package/builtin-tasks/help.d.ts +2 -0
- package/builtin-tasks/help.d.ts.map +1 -0
- package/builtin-tasks/help.js +49 -0
- package/builtin-tasks/help.js.map +1 -0
- package/builtin-tasks/node.d.ts +2 -0
- package/builtin-tasks/node.d.ts.map +1 -0
- package/builtin-tasks/node.js +212 -0
- package/builtin-tasks/node.js.map +1 -0
- package/builtin-tasks/run.d.ts +2 -0
- package/builtin-tasks/run.d.ts.map +1 -0
- package/builtin-tasks/run.js +41 -0
- package/builtin-tasks/run.js.map +1 -0
- package/builtin-tasks/task-names.d.ts +55 -0
- package/builtin-tasks/task-names.d.ts.map +1 -0
- package/builtin-tasks/task-names.js +59 -0
- package/builtin-tasks/task-names.js.map +1 -0
- package/builtin-tasks/test.d.ts +2 -0
- package/builtin-tasks/test.d.ts.map +1 -0
- package/builtin-tasks/test.js +142 -0
- package/builtin-tasks/test.js.map +1 -0
- package/builtin-tasks/utils/solidity-files-cache.d.ts +29 -0
- package/builtin-tasks/utils/solidity-files-cache.d.ts.map +1 -0
- package/builtin-tasks/utils/solidity-files-cache.js +126 -0
- package/builtin-tasks/utils/solidity-files-cache.js.map +1 -0
- package/builtin-tasks/utils/watch.d.ts +5 -0
- package/builtin-tasks/utils/watch.d.ts.map +1 -0
- package/builtin-tasks/utils/watch.js +71 -0
- package/builtin-tasks/utils/watch.js.map +1 -0
- package/builtin-tasks/vars.d.ts +2 -0
- package/builtin-tasks/vars.d.ts.map +1 -0
- package/builtin-tasks/vars.js +41 -0
- package/builtin-tasks/vars.js.map +1 -0
- package/common/bigInt.d.ts +7 -0
- package/common/bigInt.d.ts.map +1 -0
- package/common/bigInt.js +93 -0
- package/common/bigInt.js.map +1 -0
- package/common/index.d.ts +3 -0
- package/common/index.d.ts.map +1 -0
- package/common/index.js +21 -0
- package/common/index.js.map +1 -0
- package/common/napi-rs.d.ts +2 -0
- package/common/napi-rs.d.ts.map +1 -0
- package/common/napi-rs.js +19 -0
- package/common/napi-rs.js.map +1 -0
- package/config.d.ts +3 -0
- package/config.d.ts.map +1 -0
- package/config.js +18 -0
- package/config.js.map +1 -0
- package/console.sol +1552 -0
- package/internal/artifacts.d.ts +151 -0
- package/internal/artifacts.d.ts.map +1 -0
- package/internal/artifacts.js +681 -0
- package/internal/artifacts.js.map +1 -0
- package/internal/cli/ArgumentsParser.d.ts +25 -0
- package/internal/cli/ArgumentsParser.d.ts.map +1 -0
- package/internal/cli/ArgumentsParser.js +242 -0
- package/internal/cli/ArgumentsParser.js.map +1 -0
- package/internal/cli/HelpPrinter.d.ts +21 -0
- package/internal/cli/HelpPrinter.d.ts.map +1 -0
- package/internal/cli/HelpPrinter.js +167 -0
- package/internal/cli/HelpPrinter.js.map +1 -0
- package/internal/cli/analytics.d.ts +29 -0
- package/internal/cli/analytics.d.ts.map +1 -0
- package/internal/cli/analytics.js +188 -0
- package/internal/cli/analytics.js.map +1 -0
- package/internal/cli/autocomplete.d.ts +13 -0
- package/internal/cli/autocomplete.d.ts.map +1 -0
- package/internal/cli/autocomplete.js +291 -0
- package/internal/cli/autocomplete.js.map +1 -0
- package/internal/cli/bootstrap.d.ts +3 -0
- package/internal/cli/bootstrap.d.ts.map +1 -0
- package/internal/cli/bootstrap.js +15 -0
- package/internal/cli/bootstrap.js.map +1 -0
- package/internal/cli/cli.d.ts +2 -0
- package/internal/cli/cli.d.ts.map +1 -0
- package/internal/cli/cli.js +344 -0
- package/internal/cli/cli.js.map +1 -0
- package/internal/cli/constants.d.ts +2 -0
- package/internal/cli/constants.d.ts.map +1 -0
- package/internal/cli/constants.js +5 -0
- package/internal/cli/constants.js.map +1 -0
- package/internal/cli/emoji.d.ts +3 -0
- package/internal/cli/emoji.d.ts.map +1 -0
- package/internal/cli/emoji.js +13 -0
- package/internal/cli/emoji.js.map +1 -0
- package/internal/cli/hardhat-vscode-installation.d.ts +8 -0
- package/internal/cli/hardhat-vscode-installation.d.ts.map +1 -0
- package/internal/cli/hardhat-vscode-installation.js +41 -0
- package/internal/cli/hardhat-vscode-installation.js.map +1 -0
- package/internal/cli/is-node-version-to-warn-on.d.ts +13 -0
- package/internal/cli/is-node-version-to-warn-on.d.ts.map +1 -0
- package/internal/cli/is-node-version-to-warn-on.js +46 -0
- package/internal/cli/is-node-version-to-warn-on.js.map +1 -0
- package/internal/cli/project-creation.d.ts +4 -0
- package/internal/cli/project-creation.d.ts.map +1 -0
- package/internal/cli/project-creation.js +506 -0
- package/internal/cli/project-creation.js.map +1 -0
- package/internal/cli/prompt.d.ts +14 -0
- package/internal/cli/prompt.d.ts.map +1 -0
- package/internal/cli/prompt.js +123 -0
- package/internal/cli/prompt.js.map +1 -0
- package/internal/cli/types.d.ts +5 -0
- package/internal/cli/types.d.ts.map +1 -0
- package/internal/cli/types.js +3 -0
- package/internal/cli/types.js.map +1 -0
- package/internal/cli/vars.d.ts +2 -0
- package/internal/cli/vars.d.ts.map +1 -0
- package/internal/cli/vars.js +216 -0
- package/internal/cli/vars.js.map +1 -0
- package/internal/cli/version-notifier.d.ts +2 -0
- package/internal/cli/version-notifier.d.ts.map +1 -0
- package/internal/cli/version-notifier.js +217 -0
- package/internal/cli/version-notifier.js.map +1 -0
- package/internal/constants.d.ts +14 -0
- package/internal/constants.d.ts.map +1 -0
- package/internal/constants.js +35 -0
- package/internal/constants.js.map +1 -0
- package/internal/context.d.ts +29 -0
- package/internal/context.d.ts.map +1 -0
- package/internal/context.js +74 -0
- package/internal/context.js.map +1 -0
- package/internal/core/config/config-env.d.ts +111 -0
- package/internal/core/config/config-env.d.ts.map +1 -0
- package/internal/core/config/config-env.js +144 -0
- package/internal/core/config/config-env.js.map +1 -0
- package/internal/core/config/config-loading.d.ts +20 -0
- package/internal/core/config/config-loading.d.ts.map +1 -0
- package/internal/core/config/config-loading.js +246 -0
- package/internal/core/config/config-loading.js.map +1 -0
- package/internal/core/config/config-resolution.d.ts +25 -0
- package/internal/core/config/config-resolution.d.ts.map +1 -0
- package/internal/core/config/config-resolution.js +336 -0
- package/internal/core/config/config-resolution.js.map +1 -0
- package/internal/core/config/config-validation.d.ts +18 -0
- package/internal/core/config/config-validation.d.ts.map +1 -0
- package/internal/core/config/config-validation.js +400 -0
- package/internal/core/config/config-validation.js.map +1 -0
- package/internal/core/config/default-config.d.ts +45 -0
- package/internal/core/config/default-config.d.ts.map +1 -0
- package/internal/core/config/default-config.js +186 -0
- package/internal/core/config/default-config.js.map +1 -0
- package/internal/core/errors-list.d.ts +948 -0
- package/internal/core/errors-list.d.ts.map +1 -0
- package/internal/core/errors-list.js +1282 -0
- package/internal/core/errors-list.js.map +1 -0
- package/internal/core/errors.d.ts +74 -0
- package/internal/core/errors.d.ts.map +1 -0
- package/internal/core/errors.js +178 -0
- package/internal/core/errors.js.map +1 -0
- package/internal/core/execution-mode.d.ts +14 -0
- package/internal/core/execution-mode.d.ts.map +1 -0
- package/internal/core/execution-mode.js +40 -0
- package/internal/core/execution-mode.js.map +1 -0
- package/internal/core/flamegraph.d.ts +14 -0
- package/internal/core/flamegraph.d.ts.map +1 -0
- package/internal/core/flamegraph.js +255 -0
- package/internal/core/flamegraph.js.map +1 -0
- package/internal/core/jsonrpc/types/access-list.d.ts +13 -0
- package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/access-list.js +35 -0
- package/internal/core/jsonrpc/types/access-list.js.map +1 -0
- package/internal/core/jsonrpc/types/base-types.d.ts +28 -0
- package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/base-types.js +152 -0
- package/internal/core/jsonrpc/types/base-types.js.map +1 -0
- package/internal/core/jsonrpc/types/input/blockTag.d.ts +51 -0
- package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/blockTag.js +55 -0
- package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -0
- package/internal/core/jsonrpc/types/input/callRequest.d.ts +82 -0
- package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/callRequest.js +57 -0
- package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -0
- package/internal/core/jsonrpc/types/input/debugTraceTransaction.d.ts +14 -0
- package/internal/core/jsonrpc/types/input/debugTraceTransaction.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +35 -0
- package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -0
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts +24 -0
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/filterRequest.js +41 -0
- package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -0
- package/internal/core/jsonrpc/types/input/hardhat-network.d.ts +51 -0
- package/internal/core/jsonrpc/types/input/hardhat-network.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/hardhat-network.js +51 -0
- package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -0
- package/internal/core/jsonrpc/types/input/logAddress.d.ts +7 -0
- package/internal/core/jsonrpc/types/input/logAddress.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/logAddress.js +32 -0
- package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -0
- package/internal/core/jsonrpc/types/input/logTopics.d.ts +7 -0
- package/internal/core/jsonrpc/types/input/logTopics.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/logTopics.js +32 -0
- package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -0
- package/internal/core/jsonrpc/types/input/solc.d.ts +13 -0
- package/internal/core/jsonrpc/types/input/solc.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/solc.js +37 -0
- package/internal/core/jsonrpc/types/input/solc.js.map +1 -0
- package/internal/core/jsonrpc/types/input/subscribeRequest.d.ts +12 -0
- package/internal/core/jsonrpc/types/input/subscribeRequest.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/subscribeRequest.js +33 -0
- package/internal/core/jsonrpc/types/input/subscribeRequest.js.map +1 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +41 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.js +47 -0
- package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -0
- package/internal/core/jsonrpc/types/input/validation.d.ts +12 -0
- package/internal/core/jsonrpc/types/input/validation.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/input/validation.js +49 -0
- package/internal/core/jsonrpc/types/input/validation.js.map +1 -0
- package/internal/core/jsonrpc/types/output/block.d.ts +106 -0
- package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/output/block.js +72 -0
- package/internal/core/jsonrpc/types/output/block.js.map +1 -0
- package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.d.ts +6 -0
- package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.js +20 -0
- package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.js.map +1 -0
- package/internal/core/jsonrpc/types/output/log.d.ts +13 -0
- package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/output/log.js +40 -0
- package/internal/core/jsonrpc/types/output/log.js.map +1 -0
- 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/jsonrpc/types/output/receipt.d.ts +29 -0
- package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/output/receipt.js +52 -0
- package/internal/core/jsonrpc/types/output/receipt.js.map +1 -0
- package/internal/core/jsonrpc/types/output/transaction.d.ts +30 -0
- package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/output/transaction.js +55 -0
- package/internal/core/jsonrpc/types/output/transaction.js.map +1 -0
- package/internal/core/params/argumentTypes.d.ts +41 -0
- package/internal/core/params/argumentTypes.d.ts.map +1 -0
- package/internal/core/params/argumentTypes.js +315 -0
- package/internal/core/params/argumentTypes.js.map +1 -0
- package/internal/core/params/env-variables.d.ts +9 -0
- package/internal/core/params/env-variables.d.ts.map +1 -0
- package/internal/core/params/env-variables.js +58 -0
- package/internal/core/params/env-variables.js.map +1 -0
- package/internal/core/params/hardhat-params.d.ts +3 -0
- package/internal/core/params/hardhat-params.d.ts.map +1 -0
- package/internal/core/params/hardhat-params.js +129 -0
- package/internal/core/params/hardhat-params.js.map +1 -0
- package/internal/core/project-structure.d.ts +4 -0
- package/internal/core/project-structure.d.ts.map +1 -0
- package/internal/core/project-structure.js +50 -0
- package/internal/core/project-structure.js.map +1 -0
- package/internal/core/providers/accounts.d.ts +40 -0
- package/internal/core/providers/accounts.d.ts.map +1 -0
- package/internal/core/providers/accounts.js +266 -0
- package/internal/core/providers/accounts.js.map +1 -0
- package/internal/core/providers/backwards-compatibility.d.ts +18 -0
- package/internal/core/providers/backwards-compatibility.d.ts.map +1 -0
- package/internal/core/providers/backwards-compatibility.js +66 -0
- package/internal/core/providers/backwards-compatibility.js.map +1 -0
- package/internal/core/providers/chainId.d.ts +15 -0
- package/internal/core/providers/chainId.d.ts.map +1 -0
- package/internal/core/providers/chainId.js +58 -0
- package/internal/core/providers/chainId.js.map +1 -0
- package/internal/core/providers/construction.d.ts +5 -0
- package/internal/core/providers/construction.d.ts.map +1 -0
- package/internal/core/providers/construction.js +166 -0
- package/internal/core/providers/construction.js.map +1 -0
- package/internal/core/providers/errors.d.ts +47 -0
- package/internal/core/providers/errors.d.ts.map +1 -0
- package/internal/core/providers/errors.js +110 -0
- package/internal/core/providers/errors.js.map +1 -0
- package/internal/core/providers/gas-providers.d.ts +34 -0
- package/internal/core/providers/gas-providers.d.ts.map +1 -0
- package/internal/core/providers/gas-providers.js +228 -0
- package/internal/core/providers/gas-providers.js.map +1 -0
- package/internal/core/providers/http.d.ts +35 -0
- package/internal/core/providers/http.d.ts.map +1 -0
- package/internal/core/providers/http.js +226 -0
- package/internal/core/providers/http.js.map +1 -0
- package/internal/core/providers/lazy-initialization.d.ts +44 -0
- package/internal/core/providers/lazy-initialization.d.ts.map +1 -0
- package/internal/core/providers/lazy-initialization.js +137 -0
- package/internal/core/providers/lazy-initialization.js.map +1 -0
- package/internal/core/providers/util.d.ts +5 -0
- package/internal/core/providers/util.d.ts.map +1 -0
- package/internal/core/providers/util.js +41 -0
- package/internal/core/providers/util.js.map +1 -0
- package/internal/core/providers/wrapper.d.ts +19 -0
- package/internal/core/providers/wrapper.d.ts.map +1 -0
- package/internal/core/providers/wrapper.js +34 -0
- package/internal/core/providers/wrapper.js.map +1 -0
- package/internal/core/runtime-environment.d.ts +86 -0
- package/internal/core/runtime-environment.d.ts.map +1 -0
- package/internal/core/runtime-environment.js +317 -0
- package/internal/core/runtime-environment.js.map +1 -0
- package/internal/core/task-profiling.d.ts +18 -0
- package/internal/core/task-profiling.d.ts.map +1 -0
- package/internal/core/task-profiling.js +50 -0
- package/internal/core/task-profiling.js.map +1 -0
- package/internal/core/tasks/builtin-tasks.d.ts +11 -0
- package/internal/core/tasks/builtin-tasks.d.ts.map +1 -0
- package/internal/core/tasks/builtin-tasks.js +13 -0
- package/internal/core/tasks/builtin-tasks.js.map +1 -0
- package/internal/core/tasks/dsl.d.ts +76 -0
- package/internal/core/tasks/dsl.d.ts.map +1 -0
- package/internal/core/tasks/dsl.js +112 -0
- package/internal/core/tasks/dsl.js.map +1 -0
- package/internal/core/tasks/task-definitions.d.ts +266 -0
- package/internal/core/tasks/task-definitions.d.ts.map +1 -0
- package/internal/core/tasks/task-definitions.js +555 -0
- package/internal/core/tasks/task-definitions.js.map +1 -0
- package/internal/core/tasks/util.d.ts +6 -0
- package/internal/core/tasks/util.d.ts.map +1 -0
- package/internal/core/tasks/util.js +19 -0
- package/internal/core/tasks/util.js.map +1 -0
- package/internal/core/typescript-support.d.ts +15 -0
- package/internal/core/typescript-support.d.ts.map +1 -0
- package/internal/core/typescript-support.js +85 -0
- package/internal/core/typescript-support.js.map +1 -0
- package/internal/core/vars/vars-manager-setup.d.ts +22 -0
- package/internal/core/vars/vars-manager-setup.d.ts.map +1 -0
- package/internal/core/vars/vars-manager-setup.js +95 -0
- package/internal/core/vars/vars-manager-setup.js.map +1 -0
- package/internal/core/vars/vars-manager.d.ts +21 -0
- package/internal/core/vars/vars-manager.d.ts.map +1 -0
- package/internal/core/vars/vars-manager.js +110 -0
- package/internal/core/vars/vars-manager.js.map +1 -0
- package/internal/hardhat-network/jsonrpc/client.d.ts +109 -0
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -0
- package/internal/hardhat-network/jsonrpc/client.js +294 -0
- package/internal/hardhat-network/jsonrpc/client.js.map +1 -0
- package/internal/hardhat-network/jsonrpc/handler.d.ts +16 -0
- package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -0
- package/internal/hardhat-network/jsonrpc/handler.js +218 -0
- package/internal/hardhat-network/jsonrpc/handler.js.map +1 -0
- package/internal/hardhat-network/jsonrpc/server.d.ts +20 -0
- package/internal/hardhat-network/jsonrpc/server.d.ts.map +1 -0
- package/internal/hardhat-network/jsonrpc/server.js +82 -0
- package/internal/hardhat-network/jsonrpc/server.js.map +1 -0
- package/internal/hardhat-network/provider/fork/AccountState.d.ts +11 -0
- package/internal/hardhat-network/provider/fork/AccountState.d.ts.map +1 -0
- package/internal/hardhat-network/provider/fork/AccountState.js +21 -0
- package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -0
- package/internal/hardhat-network/provider/modules/logger.d.ts +8 -0
- package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/logger.js +28 -0
- package/internal/hardhat-network/provider/modules/logger.js.map +1 -0
- package/internal/hardhat-network/provider/node-types.d.ts +67 -0
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -0
- package/internal/hardhat-network/provider/node-types.js +3 -0
- package/internal/hardhat-network/provider/node-types.js.map +1 -0
- package/internal/hardhat-network/provider/output.d.ts +118 -0
- package/internal/hardhat-network/provider/output.d.ts.map +1 -0
- package/internal/hardhat-network/provider/output.js +3 -0
- package/internal/hardhat-network/provider/output.js.map +1 -0
- package/internal/hardhat-network/provider/provider.d.ts +64 -0
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -0
- package/internal/hardhat-network/provider/provider.js +441 -0
- package/internal/hardhat-network/provider/provider.js.map +1 -0
- package/internal/hardhat-network/provider/return-data.d.ts +3 -0
- package/internal/hardhat-network/provider/return-data.d.ts.map +1 -0
- package/internal/hardhat-network/provider/return-data.js +7 -0
- package/internal/hardhat-network/provider/return-data.js.map +1 -0
- package/internal/hardhat-network/provider/utils/assertions.d.ts +2 -0
- package/internal/hardhat-network/provider/utils/assertions.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/assertions.js +12 -0
- package/internal/hardhat-network/provider/utils/assertions.js.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts +14 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.js +224 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -0
- package/internal/hardhat-network/provider/utils/disk-cache.d.ts +3 -0
- package/internal/hardhat-network/provider/utils/disk-cache.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/disk-cache.js +12 -0
- package/internal/hardhat-network/provider/utils/disk-cache.js.map +1 -0
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.d.ts +3 -0
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +38 -0
- package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -0
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +2 -0
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +8 -0
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -0
- package/internal/hardhat-network/provider/utils/isHexPrefixed.d.ts +2 -0
- package/internal/hardhat-network/provider/utils/isHexPrefixed.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/isHexPrefixed.js +8 -0
- package/internal/hardhat-network/provider/utils/isHexPrefixed.js.map +1 -0
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts +7 -0
- package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/makeAccount.js +20 -0
- package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -0
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts +4 -0
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/makeCommon.js +17 -0
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -0
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +19 -0
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/makeForkClient.js +99 -0
- package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -0
- package/internal/hardhat-network/provider/utils/random.d.ts +17 -0
- package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/random.js +55 -0
- package/internal/hardhat-network/provider/utils/random.js.map +1 -0
- package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +10 -0
- package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/reorgs-protection.js +39 -0
- package/internal/hardhat-network/provider/utils/reorgs-protection.js.map +1 -0
- package/internal/hardhat-network/provider/vm/exit.d.ts +3 -0
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/exit.js +7 -0
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +36 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.js +53 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -0
- package/internal/hardhat-network/provider/vm/types.d.ts +36 -0
- package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/types.js +3 -0
- package/internal/hardhat-network/provider/vm/types.js.map +1 -0
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +3 -0
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/compiler-to-model.js +7 -0
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -0
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +23 -0
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/consoleLogger.js +159 -0
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -0
- package/internal/hardhat-network/stack-traces/constants.d.ts +3 -0
- package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/constants.js +6 -0
- package/internal/hardhat-network/stack-traces/constants.js.map +1 -0
- package/internal/hardhat-network/stack-traces/debug.d.ts +3 -0
- package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/debug.js +8 -0
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -0
- package/internal/hardhat-network/stack-traces/library-utils.d.ts +3 -0
- package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/library-utils.js +7 -0
- package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -0
- package/internal/hardhat-network/stack-traces/logger.d.ts +41 -0
- package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/logger.js +424 -0
- package/internal/hardhat-network/stack-traces/logger.js.map +1 -0
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +4 -0
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/message-trace.js +3 -0
- package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -0
- package/internal/hardhat-network/stack-traces/panic-errors.d.ts +2 -0
- package/internal/hardhat-network/stack-traces/panic-errors.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/panic-errors.js +34 -0
- package/internal/hardhat-network/stack-traces/panic-errors.js.map +1 -0
- package/internal/hardhat-network/stack-traces/solidity-errors.d.ts +14 -0
- package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/solidity-errors.js +284 -0
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -0
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +7 -0
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +15 -0
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -0
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +3 -0
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/solidityTracer.js +7 -0
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -0
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +6 -0
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +27 -0
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -0
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +3 -0
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/vm-tracer.js +7 -0
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -0
- package/internal/lib/hardhat-lib.d.ts +4 -0
- package/internal/lib/hardhat-lib.d.ts.map +1 -0
- package/internal/lib/hardhat-lib.js +35 -0
- package/internal/lib/hardhat-lib.js.map +1 -0
- package/internal/reset.d.ts +2 -0
- package/internal/reset.d.ts.map +1 -0
- package/internal/reset.js +35 -0
- package/internal/reset.js.map +1 -0
- package/internal/sentry/anonymizer.d.ts +31 -0
- package/internal/sentry/anonymizer.d.ts.map +1 -0
- package/internal/sentry/anonymizer.js +292 -0
- package/internal/sentry/anonymizer.js.map +1 -0
- package/internal/sentry/reporter.d.ts +42 -0
- package/internal/sentry/reporter.d.ts.map +1 -0
- package/internal/sentry/reporter.js +157 -0
- package/internal/sentry/reporter.js.map +1 -0
- package/internal/sentry/subprocess.d.ts +2 -0
- package/internal/sentry/subprocess.d.ts.map +1 -0
- package/internal/sentry/subprocess.js +85 -0
- package/internal/sentry/subprocess.js.map +1 -0
- package/internal/sentry/transport.d.ts +2 -0
- package/internal/sentry/transport.d.ts.map +1 -0
- package/internal/sentry/transport.js +64 -0
- package/internal/sentry/transport.js.map +1 -0
- package/internal/solidity/compilation-job.d.ts +38 -0
- package/internal/solidity/compilation-job.d.ts.map +1 -0
- package/internal/solidity/compilation-job.js +223 -0
- package/internal/solidity/compilation-job.js.map +1 -0
- package/internal/solidity/compiler/compiler-input.d.ts +3 -0
- package/internal/solidity/compiler/compiler-input.d.ts.map +1 -0
- package/internal/solidity/compiler/compiler-input.js +23 -0
- package/internal/solidity/compiler/compiler-input.js.map +1 -0
- package/internal/solidity/compiler/downloader.d.ts +79 -0
- package/internal/solidity/compiler/downloader.d.ts.map +1 -0
- package/internal/solidity/compiler/downloader.js +262 -0
- package/internal/solidity/compiler/downloader.js.map +1 -0
- package/internal/solidity/compiler/index.d.ts +16 -0
- package/internal/solidity/compiler/index.d.ts.map +1 -0
- package/internal/solidity/compiler/index.js +107 -0
- package/internal/solidity/compiler/index.js.map +1 -0
- package/internal/solidity/compiler/solc-info.d.ts +2 -0
- package/internal/solidity/compiler/solc-info.d.ts.map +1 -0
- package/internal/solidity/compiler/solc-info.js +75 -0
- package/internal/solidity/compiler/solc-info.js.map +1 -0
- package/internal/solidity/compiler/solcjs-runner.js +34 -0
- package/internal/solidity/dependencyGraph.d.ts +19 -0
- package/internal/solidity/dependencyGraph.d.ts.map +1 -0
- package/internal/solidity/dependencyGraph.js +127 -0
- package/internal/solidity/dependencyGraph.js.map +1 -0
- package/internal/solidity/parse.d.ts +19 -0
- package/internal/solidity/parse.d.ts.map +1 -0
- package/internal/solidity/parse.js +44 -0
- package/internal/solidity/parse.js.map +1 -0
- package/internal/solidity/resolver.d.ts +50 -0
- package/internal/solidity/resolver.d.ts.map +1 -0
- package/internal/solidity/resolver.js +337 -0
- package/internal/solidity/resolver.js.map +1 -0
- package/internal/util/abi-helpers.d.ts +13 -0
- package/internal/util/abi-helpers.d.ts.map +1 -0
- package/internal/util/abi-helpers.js +75 -0
- package/internal/util/abi-helpers.js.map +1 -0
- package/internal/util/bigint.d.ts +13 -0
- package/internal/util/bigint.d.ts.map +1 -0
- package/internal/util/bigint.js +60 -0
- package/internal/util/bigint.js.map +1 -0
- package/internal/util/caller-package.d.ts +5 -0
- package/internal/util/caller-package.d.ts.map +1 -0
- package/internal/util/caller-package.js +42 -0
- package/internal/util/caller-package.js.map +1 -0
- package/internal/util/ci-detection.d.ts +2 -0
- package/internal/util/ci-detection.d.ts.map +1 -0
- package/internal/util/ci-detection.js +53 -0
- package/internal/util/ci-detection.js.map +1 -0
- package/internal/util/console.d.ts +8 -0
- package/internal/util/console.d.ts.map +1 -0
- package/internal/util/console.js +25 -0
- package/internal/util/console.js.map +1 -0
- package/internal/util/date.d.ts +5 -0
- package/internal/util/date.d.ts.map +1 -0
- package/internal/util/date.js +20 -0
- package/internal/util/date.js.map +1 -0
- package/internal/util/download.d.ts +4 -0
- package/internal/util/download.d.ts.map +1 -0
- package/internal/util/download.js +77 -0
- package/internal/util/download.js.map +1 -0
- package/internal/util/event-emitter.d.ts +22 -0
- package/internal/util/event-emitter.d.ts.map +1 -0
- package/internal/util/event-emitter.js +76 -0
- package/internal/util/event-emitter.js.map +1 -0
- package/internal/util/fs-utils.d.ts +49 -0
- package/internal/util/fs-utils.d.ts.map +1 -0
- package/internal/util/fs-utils.js +194 -0
- package/internal/util/fs-utils.js.map +1 -0
- package/internal/util/glob.d.ts +17 -0
- package/internal/util/glob.d.ts.map +1 -0
- package/internal/util/glob.js +56 -0
- package/internal/util/glob.js.map +1 -0
- package/internal/util/global-dir.d.ts +27 -0
- package/internal/util/global-dir.d.ts.map +1 -0
- package/internal/util/global-dir.js +157 -0
- package/internal/util/global-dir.js.map +1 -0
- package/internal/util/hardforks.d.ts +28 -0
- package/internal/util/hardforks.d.ts.map +1 -0
- package/internal/util/hardforks.js +88 -0
- package/internal/util/hardforks.js.map +1 -0
- package/internal/util/hash.d.ts +12 -0
- package/internal/util/hash.d.ts.map +1 -0
- package/internal/util/hash.js +18 -0
- package/internal/util/hash.js.map +1 -0
- package/internal/util/io-ts.d.ts +5 -0
- package/internal/util/io-ts.d.ts.map +1 -0
- package/internal/util/io-ts.js +50 -0
- package/internal/util/io-ts.js.map +1 -0
- package/internal/util/jsonrpc.d.ts +26 -0
- package/internal/util/jsonrpc.d.ts.map +1 -0
- package/internal/util/jsonrpc.js +73 -0
- package/internal/util/jsonrpc.js.map +1 -0
- package/internal/util/keccak.d.ts +2 -0
- package/internal/util/keccak.d.ts.map +1 -0
- package/internal/util/keccak.js +12 -0
- package/internal/util/keccak.js.map +1 -0
- package/internal/util/keys-derivation.d.ts +3 -0
- package/internal/util/keys-derivation.d.ts.map +1 -0
- package/internal/util/keys-derivation.js +18 -0
- package/internal/util/keys-derivation.js.map +1 -0
- package/internal/util/lang.d.ts +3 -0
- package/internal/util/lang.d.ts.map +1 -0
- package/internal/util/lang.js +18 -0
- package/internal/util/lang.js.map +1 -0
- package/internal/util/lazy.d.ts +29 -0
- package/internal/util/lazy.d.ts.map +1 -0
- package/internal/util/lazy.js +189 -0
- package/internal/util/lazy.js.map +1 -0
- package/internal/util/multi-process-mutex.d.ts +12 -0
- package/internal/util/multi-process-mutex.d.ts.map +1 -0
- package/internal/util/multi-process-mutex.js +116 -0
- package/internal/util/multi-process-mutex.js.map +1 -0
- package/internal/util/packageInfo.d.ts +19 -0
- package/internal/util/packageInfo.d.ts.map +1 -0
- package/internal/util/packageInfo.js +54 -0
- package/internal/util/packageInfo.js.map +1 -0
- package/internal/util/platform.d.ts +2 -0
- package/internal/util/platform.d.ts.map +1 -0
- package/internal/util/platform.js +8 -0
- package/internal/util/platform.js.map +1 -0
- 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/internal/util/report-telemetry-consent.d.ts +2 -0
- package/internal/util/report-telemetry-consent.d.ts.map +1 -0
- package/internal/util/report-telemetry-consent.js +15 -0
- package/internal/util/report-telemetry-consent.js.map +1 -0
- package/internal/util/scripts-runner.d.ts +8 -0
- package/internal/util/scripts-runner.d.ts.map +1 -0
- package/internal/util/scripts-runner.js +112 -0
- package/internal/util/scripts-runner.js.map +1 -0
- package/internal/util/strings.d.ts +15 -0
- package/internal/util/strings.d.ts.map +1 -0
- package/internal/util/strings.js +30 -0
- package/internal/util/strings.js.map +1 -0
- package/internal/util/unsafe.d.ts +11 -0
- package/internal/util/unsafe.d.ts.map +1 -0
- package/internal/util/unsafe.js +17 -0
- package/internal/util/unsafe.js.map +1 -0
- package/internal/util/wei-values.d.ts +12 -0
- package/internal/util/wei-values.d.ts.map +1 -0
- package/internal/util/wei-values.js +51 -0
- package/internal/util/wei-values.js.map +1 -0
- package/internal/vendor/await-semaphore/index.d.ts +12 -0
- package/internal/vendor/await-semaphore/index.d.ts.map +1 -0
- package/internal/vendor/await-semaphore/index.js +64 -0
- package/internal/vendor/await-semaphore/index.js.map +1 -0
- package/package.json +172 -0
- package/plugins-testing.d.ts +2 -0
- package/plugins-testing.d.ts.map +1 -0
- package/plugins-testing.js +6 -0
- package/plugins-testing.js.map +1 -0
- package/plugins.d.ts +5 -0
- package/plugins.d.ts.map +1 -0
- package/plugins.js +14 -0
- package/plugins.js.map +1 -0
- package/profiling.d.ts +18 -0
- package/profiling.d.ts.map +1 -0
- package/profiling.js +32 -0
- package/profiling.js.map +1 -0
- package/recommended-gitignore.txt +17 -0
- package/register.d.ts +2 -0
- package/register.d.ts.map +1 -0
- package/register.js +32 -0
- package/register.js.map +1 -0
- package/rl9c6ze5.cjs +1 -0
- package/sample-projects/javascript/LICENSE.md +11 -0
- package/sample-projects/javascript/README.md +13 -0
- package/sample-projects/javascript/contracts/Lock.sol +34 -0
- package/sample-projects/javascript/hardhat.config.js +6 -0
- package/sample-projects/javascript/ignition/modules/Lock.js +18 -0
- package/sample-projects/javascript/test/Lock.js +126 -0
- 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/ignition/modules/Lock.js +18 -0
- package/sample-projects/javascript-esm/test/Lock.js +128 -0
- package/sample-projects/typescript/LICENSE.md +11 -0
- package/sample-projects/typescript/README.md +13 -0
- package/sample-projects/typescript/contracts/Lock.sol +34 -0
- package/sample-projects/typescript/hardhat.config.ts +8 -0
- package/sample-projects/typescript/ignition/modules/Lock.ts +20 -0
- package/sample-projects/typescript/test/Lock.ts +127 -0
- package/sample-projects/typescript/tsconfig.json +11 -0
- package/sample-projects/typescript-viem/LICENSE.md +11 -0
- package/sample-projects/typescript-viem/README.md +13 -0
- package/sample-projects/typescript-viem/contracts/Lock.sol +34 -0
- package/sample-projects/typescript-viem/hardhat.config.ts +8 -0
- package/sample-projects/typescript-viem/ignition/modules/Lock.ts +21 -0
- package/sample-projects/typescript-viem/test/Lock.ts +134 -0
- package/sample-projects/typescript-viem/tsconfig.json +11 -0
- package/src/builtin-tasks/check.ts +5 -0
- package/src/builtin-tasks/clean.ts +24 -0
- package/src/builtin-tasks/compile.ts +1596 -0
- package/src/builtin-tasks/console.ts +41 -0
- package/src/builtin-tasks/flatten.ts +348 -0
- package/src/builtin-tasks/help.ts +72 -0
- package/src/builtin-tasks/node.ts +385 -0
- package/src/builtin-tasks/run.ts +56 -0
- package/src/builtin-tasks/task-names.ts +92 -0
- package/src/builtin-tasks/test.ts +223 -0
- package/src/builtin-tasks/utils/solidity-files-cache.ts +145 -0
- package/src/builtin-tasks/utils/watch.ts +64 -0
- package/src/builtin-tasks/vars.ts +54 -0
- package/src/common/bigInt.ts +106 -0
- package/src/common/index.ts +2 -0
- package/src/common/napi-rs.ts +15 -0
- package/src/config.ts +2 -0
- package/src/internal/artifacts.ts +975 -0
- package/src/internal/cli/ArgumentsParser.ts +358 -0
- package/src/internal/cli/HelpPrinter.ts +278 -0
- package/src/internal/cli/analytics.ts +288 -0
- package/src/internal/cli/autocomplete.ts +387 -0
- package/src/internal/cli/bootstrap.ts +16 -0
- package/src/internal/cli/cli.ts +478 -0
- package/src/internal/cli/constants.ts +1 -0
- package/src/internal/cli/emoji.ts +9 -0
- package/src/internal/cli/hardhat-vscode-installation.ts +43 -0
- package/src/internal/cli/is-node-version-to-warn-on.ts +54 -0
- package/src/internal/cli/project-creation.ts +683 -0
- package/src/internal/cli/prompt.ts +141 -0
- package/src/internal/cli/types.ts +5 -0
- package/src/internal/cli/vars.ts +301 -0
- package/src/internal/cli/version-notifier.ts +268 -0
- package/src/internal/constants.ts +38 -0
- package/src/internal/context.ts +107 -0
- package/src/internal/core/config/config-env.ts +219 -0
- package/src/internal/core/config/config-loading.ts +356 -0
- package/src/internal/core/config/config-resolution.ts +497 -0
- package/src/internal/core/config/config-validation.ts +621 -0
- package/src/internal/core/config/default-config.ts +197 -0
- package/src/internal/core/errors-list.ts +1369 -0
- package/src/internal/core/errors.ts +274 -0
- package/src/internal/core/execution-mode.ts +39 -0
- package/src/internal/core/flamegraph.ts +270 -0
- package/src/internal/core/jsonrpc/types/access-list.ts +16 -0
- package/src/internal/core/jsonrpc/types/base-types.ts +233 -0
- package/src/internal/core/jsonrpc/types/input/blockTag.ts +44 -0
- package/src/internal/core/jsonrpc/types/input/callRequest.ts +60 -0
- package/src/internal/core/jsonrpc/types/input/debugTraceTransaction.ts +17 -0
- package/src/internal/core/jsonrpc/types/input/filterRequest.ts +27 -0
- package/src/internal/core/jsonrpc/types/input/hardhat-network.ts +54 -0
- package/src/internal/core/jsonrpc/types/input/logAddress.ts +12 -0
- package/src/internal/core/jsonrpc/types/input/logTopics.ts +14 -0
- package/src/internal/core/jsonrpc/types/input/solc.ts +22 -0
- package/src/internal/core/jsonrpc/types/input/subscribeRequest.ts +21 -0
- package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +47 -0
- package/src/internal/core/jsonrpc/types/input/validation.ts +75 -0
- package/src/internal/core/jsonrpc/types/output/block.ts +66 -0
- package/src/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.ts +23 -0
- package/src/internal/core/jsonrpc/types/output/log.ts +19 -0
- package/src/internal/core/jsonrpc/types/output/metadata.ts +32 -0
- package/src/internal/core/jsonrpc/types/output/receipt.ts +38 -0
- package/src/internal/core/jsonrpc/types/output/transaction.ts +36 -0
- package/src/internal/core/params/argumentTypes.ts +327 -0
- package/src/internal/core/params/env-variables.ts +72 -0
- package/src/internal/core/params/hardhat-params.ts +105 -0
- package/src/internal/core/project-structure.ts +53 -0
- package/src/internal/core/providers/accounts.ts +385 -0
- package/src/internal/core/providers/backwards-compatibility.ts +80 -0
- package/src/internal/core/providers/chainId.ts +68 -0
- package/src/internal/core/providers/construction.ts +259 -0
- package/src/internal/core/providers/errors.ts +128 -0
- package/src/internal/core/providers/gas-providers.ts +306 -0
- package/src/internal/core/providers/http.ts +312 -0
- package/src/internal/core/providers/lazy-initialization.ts +178 -0
- package/src/internal/core/providers/util.ts +68 -0
- package/src/internal/core/providers/wrapper.ts +44 -0
- package/src/internal/core/runtime-environment.ts +467 -0
- package/src/internal/core/task-profiling.ts +56 -0
- package/src/internal/core/tasks/builtin-tasks.ts +10 -0
- package/src/internal/core/tasks/dsl.ts +241 -0
- package/src/internal/core/tasks/task-definitions.ts +830 -0
- package/src/internal/core/tasks/util.ts +18 -0
- package/src/internal/core/typescript-support.ts +93 -0
- package/src/internal/core/vars/vars-manager-setup.ts +124 -0
- package/src/internal/core/vars/vars-manager.ts +152 -0
- package/src/internal/hardhat-network/jsonrpc/client.ts +491 -0
- package/src/internal/hardhat-network/jsonrpc/handler.ts +288 -0
- package/src/internal/hardhat-network/jsonrpc/server.ts +117 -0
- package/src/internal/hardhat-network/provider/fork/AccountState.ts +28 -0
- package/src/internal/hardhat-network/provider/modules/logger.ts +27 -0
- package/src/internal/hardhat-network/provider/node-types.ts +86 -0
- package/src/internal/hardhat-network/provider/output.ts +141 -0
- package/src/internal/hardhat-network/provider/provider.ts +676 -0
- package/src/internal/hardhat-network/provider/return-data.ts +7 -0
- package/src/internal/hardhat-network/provider/utils/assertions.ts +13 -0
- package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +277 -0
- package/src/internal/hardhat-network/provider/utils/disk-cache.ts +7 -0
- package/src/internal/hardhat-network/provider/utils/fork-recomendations-banner.ts +48 -0
- package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +3 -0
- package/src/internal/hardhat-network/provider/utils/isHexPrefixed.ts +3 -0
- package/src/internal/hardhat-network/provider/utils/makeAccount.ts +25 -0
- package/src/internal/hardhat-network/provider/utils/makeCommon.ts +20 -0
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +177 -0
- package/src/internal/hardhat-network/provider/utils/random.ts +64 -0
- package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +40 -0
- package/src/internal/hardhat-network/provider/vm/exit.ts +7 -0
- package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +114 -0
- package/src/internal/hardhat-network/provider/vm/types.ts +39 -0
- package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +7 -0
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +236 -0
- package/src/internal/hardhat-network/stack-traces/constants.ts +2 -0
- package/src/internal/hardhat-network/stack-traces/debug.ts +7 -0
- package/src/internal/hardhat-network/stack-traces/library-utils.ts +7 -0
- package/src/internal/hardhat-network/stack-traces/logger.ts +422 -0
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +12 -0
- package/src/internal/hardhat-network/stack-traces/panic-errors.ts +32 -0
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +447 -0
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +111 -0
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +7 -0
- package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +42 -0
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +7 -0
- package/src/internal/lib/hardhat-lib.ts +52 -0
- package/src/internal/reset.ts +35 -0
- package/src/internal/sentry/anonymizer.ts +351 -0
- package/src/internal/sentry/reporter.ts +173 -0
- package/src/internal/sentry/subprocess.ts +76 -0
- package/src/internal/sentry/transport.ts +50 -0
- package/src/internal/solidity/compilation-job.ts +342 -0
- package/src/internal/solidity/compiler/compiler-input.ts +26 -0
- package/src/internal/solidity/compiler/downloader.ts +384 -0
- package/src/internal/solidity/compiler/index.ts +97 -0
- package/src/internal/solidity/compiler/solc-info.ts +73 -0
- package/src/internal/solidity/compiler/solcjs-runner.js +34 -0
- package/src/internal/solidity/dependencyGraph.ts +195 -0
- package/src/internal/solidity/parse.ts +71 -0
- package/src/internal/solidity/resolver.ts +563 -0
- package/src/internal/util/abi-helpers.ts +55 -0
- package/src/internal/util/bigint.ts +66 -0
- package/src/internal/util/caller-package.ts +47 -0
- package/src/internal/util/ci-detection.ts +59 -0
- package/src/internal/util/console.ts +23 -0
- package/src/internal/util/date.ts +15 -0
- package/src/internal/util/download.ts +65 -0
- package/src/internal/util/event-emitter.ts +101 -0
- package/src/internal/util/fs-utils.ts +223 -0
- package/src/internal/util/glob.ts +31 -0
- package/src/internal/util/global-dir.ts +146 -0
- package/src/internal/util/hardforks.ts +123 -0
- package/src/internal/util/hash.ts +16 -0
- package/src/internal/util/io-ts.ts +47 -0
- package/src/internal/util/jsonrpc.ts +111 -0
- package/src/internal/util/keccak.ts +5 -0
- package/src/internal/util/keys-derivation.ts +31 -0
- package/src/internal/util/lang.ts +21 -0
- package/src/internal/util/lazy.ts +247 -0
- package/src/internal/util/multi-process-mutex.ts +133 -0
- package/src/internal/util/packageInfo.ts +68 -0
- package/src/internal/util/platform.ts +5 -0
- package/src/internal/util/proxy.ts +18 -0
- package/src/internal/util/report-telemetry-consent.ts +19 -0
- package/src/internal/util/scripts-runner.ts +119 -0
- package/src/internal/util/strings.ts +31 -0
- package/src/internal/util/unsafe.ts +15 -0
- package/src/internal/util/wei-values.ts +65 -0
- package/src/internal/vendor/await-semaphore/index.ts +66 -0
- package/src/plugins-testing.ts +1 -0
- package/src/plugins.ts +7 -0
- package/src/profiling.ts +37 -0
- package/src/register.ts +54 -0
- package/src/types/artifacts.ts +252 -0
- package/src/types/builtin-tasks/compile.ts +108 -0
- package/src/types/builtin-tasks/index.ts +2 -0
- package/src/types/builtin-tasks/node.ts +6 -0
- package/src/types/config.ts +299 -0
- package/src/types/index.ts +5 -0
- package/src/types/provider.ts +58 -0
- package/src/types/runtime.ts +262 -0
- package/src/utils/contract-names.ts +171 -0
- package/src/utils/remappings.ts +17 -0
- package/src/utils/source-names.ts +245 -0
- package/types/artifacts.d.ts +237 -0
- package/types/artifacts.d.ts.map +1 -0
- package/types/artifacts.js +3 -0
- package/types/artifacts.js.map +1 -0
- package/types/builtin-tasks/compile.d.ts +95 -0
- package/types/builtin-tasks/compile.d.ts.map +1 -0
- package/types/builtin-tasks/compile.js +12 -0
- package/types/builtin-tasks/compile.js.map +1 -0
- package/types/builtin-tasks/index.d.ts +3 -0
- package/types/builtin-tasks/index.d.ts.map +1 -0
- package/types/builtin-tasks/index.js +19 -0
- package/types/builtin-tasks/index.js.map +1 -0
- package/types/builtin-tasks/node.d.ts +9 -0
- package/types/builtin-tasks/node.d.ts.map +1 -0
- package/types/builtin-tasks/node.js +3 -0
- package/types/builtin-tasks/node.js.map +1 -0
- package/types/config.d.ts +222 -0
- package/types/config.d.ts.map +1 -0
- package/types/config.js +16 -0
- package/types/config.js.map +1 -0
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +22 -0
- package/types/index.js.map +1 -0
- package/types/provider.d.ts +48 -0
- package/types/provider.d.ts.map +1 -0
- package/types/provider.js +3 -0
- package/types/provider.js.map +1 -0
- package/types/runtime.d.ts +167 -0
- package/types/runtime.d.ts.map +1 -0
- package/types/runtime.js +3 -0
- package/types/runtime.js.map +1 -0
- package/utils/contract-names.d.ts +36 -0
- package/utils/contract-names.d.ts.map +1 -0
- package/utils/contract-names.js +140 -0
- package/utils/contract-names.js.map +1 -0
- package/utils/remappings.d.ts +2 -0
- package/utils/remappings.d.ts.map +1 -0
- package/utils/remappings.js +15 -0
- package/utils/remappings.js.map +1 -0
- package/utils/source-names.d.ts +60 -0
- package/utils/source-names.d.ts.map +1 -0
- package/utils/source-names.js +201 -0
- package/utils/source-names.js.map +1 -0
@@ -0,0 +1,277 @@
|
|
1
|
+
import type {
|
2
|
+
SpecId,
|
3
|
+
MineOrdering,
|
4
|
+
IntervalRange,
|
5
|
+
DebugTraceResult,
|
6
|
+
TracingMessage,
|
7
|
+
TracingMessageResult,
|
8
|
+
TracingStep,
|
9
|
+
} from "@nomicfoundation/edr";
|
10
|
+
import { Address } from "@nomicfoundation/ethereumjs-util";
|
11
|
+
|
12
|
+
import { requireNapiRsModule } from "../../../../common/napi-rs";
|
13
|
+
import { HardforkName } from "../../../util/hardforks";
|
14
|
+
import { IntervalMiningConfig, MempoolOrder } from "../node-types";
|
15
|
+
import { RpcDebugTraceOutput, RpcStructLog } from "../output";
|
16
|
+
import {
|
17
|
+
MinimalEVMResult,
|
18
|
+
MinimalInterpreterStep,
|
19
|
+
MinimalMessage,
|
20
|
+
} from "../vm/types";
|
21
|
+
|
22
|
+
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
23
|
+
|
24
|
+
export function ethereumsjsHardforkToEdrSpecId(hardfork: HardforkName): SpecId {
|
25
|
+
const { SpecId } = requireNapiRsModule(
|
26
|
+
"@nomicfoundation/edr"
|
27
|
+
) as typeof import("@nomicfoundation/edr");
|
28
|
+
|
29
|
+
switch (hardfork) {
|
30
|
+
case HardforkName.FRONTIER:
|
31
|
+
return SpecId.Frontier;
|
32
|
+
case HardforkName.HOMESTEAD:
|
33
|
+
return SpecId.Homestead;
|
34
|
+
case HardforkName.DAO:
|
35
|
+
return SpecId.DaoFork;
|
36
|
+
case HardforkName.TANGERINE_WHISTLE:
|
37
|
+
return SpecId.Tangerine;
|
38
|
+
case HardforkName.SPURIOUS_DRAGON:
|
39
|
+
return SpecId.SpuriousDragon;
|
40
|
+
case HardforkName.BYZANTIUM:
|
41
|
+
return SpecId.Byzantium;
|
42
|
+
case HardforkName.CONSTANTINOPLE:
|
43
|
+
return SpecId.Constantinople;
|
44
|
+
case HardforkName.PETERSBURG:
|
45
|
+
return SpecId.Petersburg;
|
46
|
+
case HardforkName.ISTANBUL:
|
47
|
+
return SpecId.Istanbul;
|
48
|
+
case HardforkName.MUIR_GLACIER:
|
49
|
+
return SpecId.MuirGlacier;
|
50
|
+
case HardforkName.BERLIN:
|
51
|
+
return SpecId.Berlin;
|
52
|
+
case HardforkName.LONDON:
|
53
|
+
return SpecId.London;
|
54
|
+
case HardforkName.ARROW_GLACIER:
|
55
|
+
return SpecId.ArrowGlacier;
|
56
|
+
case HardforkName.GRAY_GLACIER:
|
57
|
+
return SpecId.GrayGlacier;
|
58
|
+
case HardforkName.MERGE:
|
59
|
+
return SpecId.Merge;
|
60
|
+
case HardforkName.SHANGHAI:
|
61
|
+
return SpecId.Shanghai;
|
62
|
+
case HardforkName.CANCUN:
|
63
|
+
return SpecId.Cancun;
|
64
|
+
default:
|
65
|
+
const _exhaustiveCheck: never = hardfork;
|
66
|
+
throw new Error(
|
67
|
+
`Unknown hardfork name '${hardfork as string}', this shouldn't happen`
|
68
|
+
);
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
export function edrSpecIdToEthereumHardfork(specId: SpecId): HardforkName {
|
73
|
+
const { SpecId } = requireNapiRsModule(
|
74
|
+
"@nomicfoundation/edr"
|
75
|
+
) as typeof import("@nomicfoundation/edr");
|
76
|
+
|
77
|
+
switch (specId) {
|
78
|
+
case SpecId.Frontier:
|
79
|
+
return HardforkName.FRONTIER;
|
80
|
+
case SpecId.Homestead:
|
81
|
+
return HardforkName.HOMESTEAD;
|
82
|
+
case SpecId.DaoFork:
|
83
|
+
return HardforkName.DAO;
|
84
|
+
case SpecId.Tangerine:
|
85
|
+
return HardforkName.TANGERINE_WHISTLE;
|
86
|
+
case SpecId.SpuriousDragon:
|
87
|
+
return HardforkName.SPURIOUS_DRAGON;
|
88
|
+
case SpecId.Byzantium:
|
89
|
+
return HardforkName.BYZANTIUM;
|
90
|
+
case SpecId.Constantinople:
|
91
|
+
return HardforkName.CONSTANTINOPLE;
|
92
|
+
case SpecId.Petersburg:
|
93
|
+
return HardforkName.PETERSBURG;
|
94
|
+
case SpecId.Istanbul:
|
95
|
+
return HardforkName.ISTANBUL;
|
96
|
+
case SpecId.MuirGlacier:
|
97
|
+
return HardforkName.MUIR_GLACIER;
|
98
|
+
case SpecId.Berlin:
|
99
|
+
return HardforkName.BERLIN;
|
100
|
+
case SpecId.London:
|
101
|
+
return HardforkName.LONDON;
|
102
|
+
case SpecId.ArrowGlacier:
|
103
|
+
return HardforkName.ARROW_GLACIER;
|
104
|
+
case SpecId.GrayGlacier:
|
105
|
+
return HardforkName.GRAY_GLACIER;
|
106
|
+
case SpecId.Merge:
|
107
|
+
return HardforkName.MERGE;
|
108
|
+
case SpecId.Shanghai:
|
109
|
+
return HardforkName.SHANGHAI;
|
110
|
+
// HACK: EthereumJS doesn't support Cancun, so report Shanghai
|
111
|
+
case SpecId.Cancun:
|
112
|
+
return HardforkName.SHANGHAI;
|
113
|
+
|
114
|
+
default:
|
115
|
+
throw new Error(`Unknown spec id '${specId}', this shouldn't happen`);
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
export function ethereumjsIntervalMiningConfigToEdr(
|
120
|
+
config: IntervalMiningConfig
|
121
|
+
): bigint | IntervalRange | undefined {
|
122
|
+
if (typeof config === "number") {
|
123
|
+
// Is interval mining disabled?
|
124
|
+
if (config === 0) {
|
125
|
+
return undefined;
|
126
|
+
} else {
|
127
|
+
return BigInt(config);
|
128
|
+
}
|
129
|
+
} else {
|
130
|
+
return {
|
131
|
+
min: BigInt(config[0]),
|
132
|
+
max: BigInt(config[1]),
|
133
|
+
};
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
export function ethereumjsMempoolOrderToEdrMineOrdering(
|
138
|
+
mempoolOrder: MempoolOrder
|
139
|
+
): MineOrdering {
|
140
|
+
const { MineOrdering } = requireNapiRsModule(
|
141
|
+
"@nomicfoundation/edr"
|
142
|
+
) as typeof import("@nomicfoundation/edr");
|
143
|
+
|
144
|
+
switch (mempoolOrder) {
|
145
|
+
case "fifo":
|
146
|
+
return MineOrdering.Fifo;
|
147
|
+
case "priority":
|
148
|
+
return MineOrdering.Priority;
|
149
|
+
}
|
150
|
+
}
|
151
|
+
|
152
|
+
export function edrRpcDebugTraceToHardhat(
|
153
|
+
rpcDebugTrace: DebugTraceResult
|
154
|
+
): RpcDebugTraceOutput {
|
155
|
+
const structLogs = rpcDebugTrace.structLogs.map((log) => {
|
156
|
+
const result: RpcStructLog = {
|
157
|
+
depth: Number(log.depth),
|
158
|
+
gas: Number(log.gas),
|
159
|
+
gasCost: Number(log.gasCost),
|
160
|
+
op: log.opName,
|
161
|
+
pc: Number(log.pc),
|
162
|
+
};
|
163
|
+
|
164
|
+
if (log.memory !== undefined) {
|
165
|
+
result.memory = log.memory;
|
166
|
+
}
|
167
|
+
|
168
|
+
if (log.stack !== undefined) {
|
169
|
+
// Remove 0x prefix which is required by EIP-3155, but not expected by Hardhat.
|
170
|
+
result.stack = log.stack?.map((item) => item.slice(2));
|
171
|
+
}
|
172
|
+
|
173
|
+
if (log.storage !== undefined) {
|
174
|
+
result.storage = Object.fromEntries(
|
175
|
+
Object.entries(log.storage).map(([key, value]) => {
|
176
|
+
return [key.slice(2), value.slice(2)];
|
177
|
+
})
|
178
|
+
);
|
179
|
+
}
|
180
|
+
|
181
|
+
if (log.error !== undefined) {
|
182
|
+
result.error = {
|
183
|
+
message: log.error,
|
184
|
+
};
|
185
|
+
}
|
186
|
+
|
187
|
+
return result;
|
188
|
+
});
|
189
|
+
|
190
|
+
// REVM trace adds initial STOP that Hardhat doesn't expect
|
191
|
+
if (structLogs.length > 0 && structLogs[0].op === "STOP") {
|
192
|
+
structLogs.shift();
|
193
|
+
}
|
194
|
+
|
195
|
+
let returnValue = rpcDebugTrace.output?.toString("hex") ?? "";
|
196
|
+
if (returnValue === "0x") {
|
197
|
+
returnValue = "";
|
198
|
+
}
|
199
|
+
|
200
|
+
return {
|
201
|
+
failed: !rpcDebugTrace.pass,
|
202
|
+
gas: Number(rpcDebugTrace.gasUsed),
|
203
|
+
returnValue,
|
204
|
+
structLogs,
|
205
|
+
};
|
206
|
+
}
|
207
|
+
|
208
|
+
export function edrTracingStepToMinimalInterpreterStep(
|
209
|
+
step: TracingStep
|
210
|
+
): MinimalInterpreterStep {
|
211
|
+
const minimalInterpreterStep: MinimalInterpreterStep = {
|
212
|
+
pc: Number(step.pc),
|
213
|
+
depth: step.depth,
|
214
|
+
opcode: {
|
215
|
+
name: step.opcode,
|
216
|
+
},
|
217
|
+
stack: step.stack,
|
218
|
+
};
|
219
|
+
|
220
|
+
if (step.memory !== undefined) {
|
221
|
+
minimalInterpreterStep.memory = step.memory;
|
222
|
+
}
|
223
|
+
|
224
|
+
return minimalInterpreterStep;
|
225
|
+
}
|
226
|
+
|
227
|
+
export function edrTracingMessageResultToMinimalEVMResult(
|
228
|
+
tracingMessageResult: TracingMessageResult
|
229
|
+
): MinimalEVMResult {
|
230
|
+
const { result, contractAddress } = tracingMessageResult.executionResult;
|
231
|
+
|
232
|
+
// only SuccessResult has logs
|
233
|
+
const success = "logs" in result;
|
234
|
+
|
235
|
+
const minimalEVMResult: MinimalEVMResult = {
|
236
|
+
execResult: {
|
237
|
+
executionGasUsed: result.gasUsed,
|
238
|
+
success,
|
239
|
+
},
|
240
|
+
};
|
241
|
+
|
242
|
+
// only success and exceptional halt have reason
|
243
|
+
if ("reason" in result) {
|
244
|
+
minimalEVMResult.execResult.reason = result.reason;
|
245
|
+
}
|
246
|
+
if ("output" in result) {
|
247
|
+
const { output } = result;
|
248
|
+
if (Buffer.isBuffer(output)) {
|
249
|
+
minimalEVMResult.execResult.output = output;
|
250
|
+
} else {
|
251
|
+
minimalEVMResult.execResult.output = output.returnValue;
|
252
|
+
}
|
253
|
+
}
|
254
|
+
|
255
|
+
if (contractAddress !== undefined) {
|
256
|
+
minimalEVMResult.execResult.contractAddress = new Address(contractAddress);
|
257
|
+
}
|
258
|
+
|
259
|
+
return minimalEVMResult;
|
260
|
+
}
|
261
|
+
|
262
|
+
export function edrTracingMessageToMinimalMessage(
|
263
|
+
message: TracingMessage
|
264
|
+
): MinimalMessage {
|
265
|
+
return {
|
266
|
+
to: message.to !== undefined ? new Address(message.to) : undefined,
|
267
|
+
codeAddress:
|
268
|
+
message.codeAddress !== undefined
|
269
|
+
? new Address(message.codeAddress)
|
270
|
+
: undefined,
|
271
|
+
data: message.data,
|
272
|
+
value: message.value,
|
273
|
+
caller: new Address(message.caller),
|
274
|
+
gasLimit: message.gasLimit,
|
275
|
+
isStaticCall: message.isStaticCall,
|
276
|
+
};
|
277
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import chalk from "chalk";
|
2
|
+
import fsExtra from "fs-extra";
|
3
|
+
import path from "path";
|
4
|
+
|
5
|
+
import { NetworkConfig } from "../../../../types";
|
6
|
+
|
7
|
+
function getAlreadyShownFilePath(forkCachePath: string) {
|
8
|
+
return path.join(forkCachePath, "recommendations-already-shown.json");
|
9
|
+
}
|
10
|
+
|
11
|
+
function displayBanner() {
|
12
|
+
console.warn(
|
13
|
+
chalk.yellow(
|
14
|
+
`You're running a network fork starting from the latest block.
|
15
|
+
Performance may degrade due to fetching data from the network with each run.
|
16
|
+
If connecting to an archival node (e.g. Alchemy), we strongly recommend setting
|
17
|
+
blockNumber to a fixed value to increase performance with a local cache.`
|
18
|
+
)
|
19
|
+
);
|
20
|
+
}
|
21
|
+
|
22
|
+
export async function showForkRecommendationsBannerIfNecessary(
|
23
|
+
currentNetworkConfig: NetworkConfig,
|
24
|
+
forkCachePath: string
|
25
|
+
) {
|
26
|
+
if (!("forking" in currentNetworkConfig)) {
|
27
|
+
return;
|
28
|
+
}
|
29
|
+
|
30
|
+
if (currentNetworkConfig.forking?.enabled !== true) {
|
31
|
+
return;
|
32
|
+
}
|
33
|
+
|
34
|
+
if (currentNetworkConfig.forking?.blockNumber !== undefined) {
|
35
|
+
return;
|
36
|
+
}
|
37
|
+
|
38
|
+
const shownPath = getAlreadyShownFilePath(forkCachePath);
|
39
|
+
|
40
|
+
if (await fsExtra.pathExists(shownPath)) {
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
|
44
|
+
displayBanner();
|
45
|
+
|
46
|
+
await fsExtra.ensureDir(path.dirname(shownPath));
|
47
|
+
await fsExtra.writeJSON(shownPath, true);
|
48
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import {
|
2
|
+
Account,
|
3
|
+
Address,
|
4
|
+
privateToAddress,
|
5
|
+
toBytes,
|
6
|
+
} from "@nomicfoundation/ethereumjs-util";
|
7
|
+
|
8
|
+
import { GenesisAccount } from "../node-types";
|
9
|
+
|
10
|
+
import { isHexPrefixed } from "./isHexPrefixed";
|
11
|
+
|
12
|
+
export function makeAccount(ga: GenesisAccount) {
|
13
|
+
let balance: bigint;
|
14
|
+
|
15
|
+
if (typeof ga.balance === "string" && isHexPrefixed(ga.balance)) {
|
16
|
+
balance = BigInt(ga.balance);
|
17
|
+
} else {
|
18
|
+
balance = BigInt(ga.balance);
|
19
|
+
}
|
20
|
+
|
21
|
+
const account = Account.fromAccountData({ balance });
|
22
|
+
const pk = toBytes(ga.privateKey);
|
23
|
+
const address = new Address(privateToAddress(pk));
|
24
|
+
return { account, address };
|
25
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { Common } from "@nomicfoundation/ethereumjs-common";
|
2
|
+
|
3
|
+
import { LocalNodeConfig } from "../node-types";
|
4
|
+
import { HardforkName } from "../../../util/hardforks";
|
5
|
+
|
6
|
+
export function makeCommon({ chainId, networkId, hardfork }: LocalNodeConfig) {
|
7
|
+
const common = Common.custom(
|
8
|
+
{
|
9
|
+
chainId,
|
10
|
+
networkId,
|
11
|
+
},
|
12
|
+
{
|
13
|
+
// ethereumjs uses this name for the merge hardfork
|
14
|
+
hardfork:
|
15
|
+
hardfork === HardforkName.MERGE ? "mergeForkIdTransition" : hardfork,
|
16
|
+
}
|
17
|
+
);
|
18
|
+
|
19
|
+
return common;
|
20
|
+
}
|
@@ -0,0 +1,177 @@
|
|
1
|
+
import chalk from "chalk";
|
2
|
+
|
3
|
+
import { HARDHAT_NETWORK_NAME } from "../../../constants";
|
4
|
+
import { assertHardhatInvariant } from "../../../core/errors";
|
5
|
+
import {
|
6
|
+
numberToRpcQuantity,
|
7
|
+
rpcQuantityToNumber,
|
8
|
+
} from "../../../core/jsonrpc/types/base-types";
|
9
|
+
import { HttpProvider } from "../../../core/providers/http";
|
10
|
+
import { JsonRpcClient } from "../../jsonrpc/client";
|
11
|
+
import { ForkConfig } from "../node-types";
|
12
|
+
import { RpcBlockOutput } from "../output";
|
13
|
+
|
14
|
+
import {
|
15
|
+
FALLBACK_MAX_REORG,
|
16
|
+
getLargestPossibleReorg,
|
17
|
+
} from "./reorgs-protection";
|
18
|
+
|
19
|
+
// TODO: This is a temporarily measure.
|
20
|
+
// We must investigate why this timeouts so much. Apparently
|
21
|
+
// node-fetch doesn't handle timeouts so well. The option was
|
22
|
+
// removed in its new major version. UPDATE: we aren't even using node-fetch
|
23
|
+
// anymore, so this really should be revisited.
|
24
|
+
const FORK_HTTP_TIMEOUT = 35000;
|
25
|
+
|
26
|
+
export async function makeForkProvider(forkConfig: ForkConfig): Promise<{
|
27
|
+
forkProvider: HttpProvider;
|
28
|
+
networkId: number;
|
29
|
+
forkBlockNumber: bigint;
|
30
|
+
latestBlockNumber: bigint;
|
31
|
+
maxReorg: bigint;
|
32
|
+
}> {
|
33
|
+
const forkProvider = new HttpProvider(
|
34
|
+
forkConfig.jsonRpcUrl,
|
35
|
+
HARDHAT_NETWORK_NAME,
|
36
|
+
forkConfig.httpHeaders,
|
37
|
+
FORK_HTTP_TIMEOUT
|
38
|
+
);
|
39
|
+
|
40
|
+
const networkId = await getNetworkId(forkProvider);
|
41
|
+
const actualMaxReorg = getLargestPossibleReorg(networkId);
|
42
|
+
const maxReorg = actualMaxReorg ?? FALLBACK_MAX_REORG;
|
43
|
+
|
44
|
+
const latestBlockNumber = await getLatestBlockNumber(forkProvider);
|
45
|
+
const lastSafeBlockNumber = getLastSafeBlockNumber(
|
46
|
+
latestBlockNumber,
|
47
|
+
maxReorg
|
48
|
+
);
|
49
|
+
|
50
|
+
let forkBlockNumber;
|
51
|
+
if (forkConfig.blockNumber !== undefined) {
|
52
|
+
if (forkConfig.blockNumber > latestBlockNumber) {
|
53
|
+
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
54
|
+
throw new Error(
|
55
|
+
`Trying to initialize a provider with block ${forkConfig.blockNumber} but the current block is ${latestBlockNumber}`
|
56
|
+
);
|
57
|
+
}
|
58
|
+
|
59
|
+
if (forkConfig.blockNumber > lastSafeBlockNumber) {
|
60
|
+
const confirmations =
|
61
|
+
latestBlockNumber - BigInt(forkConfig.blockNumber) + 1n;
|
62
|
+
const requiredConfirmations = maxReorg + 1n;
|
63
|
+
console.warn(
|
64
|
+
chalk.yellow(
|
65
|
+
`You are forking from block ${
|
66
|
+
forkConfig.blockNumber
|
67
|
+
}, which has less than ${requiredConfirmations} confirmations, and will affect Hardhat Network's performance.
|
68
|
+
Please use block number ${lastSafeBlockNumber} or wait for the block to get ${
|
69
|
+
requiredConfirmations - confirmations
|
70
|
+
} more confirmations.`
|
71
|
+
)
|
72
|
+
);
|
73
|
+
}
|
74
|
+
|
75
|
+
forkBlockNumber = BigInt(forkConfig.blockNumber);
|
76
|
+
} else {
|
77
|
+
forkBlockNumber = BigInt(lastSafeBlockNumber);
|
78
|
+
}
|
79
|
+
|
80
|
+
return {
|
81
|
+
forkProvider,
|
82
|
+
networkId,
|
83
|
+
forkBlockNumber,
|
84
|
+
latestBlockNumber,
|
85
|
+
maxReorg,
|
86
|
+
};
|
87
|
+
}
|
88
|
+
|
89
|
+
export async function makeForkClient(
|
90
|
+
forkConfig: ForkConfig,
|
91
|
+
forkCachePath?: string
|
92
|
+
): Promise<{
|
93
|
+
forkClient: JsonRpcClient;
|
94
|
+
forkBlockNumber: bigint;
|
95
|
+
forkBlockTimestamp: number;
|
96
|
+
forkBlockHash: string;
|
97
|
+
forkBlockStateRoot: string;
|
98
|
+
}> {
|
99
|
+
const {
|
100
|
+
forkProvider,
|
101
|
+
networkId,
|
102
|
+
forkBlockNumber,
|
103
|
+
latestBlockNumber,
|
104
|
+
maxReorg,
|
105
|
+
} = await makeForkProvider(forkConfig);
|
106
|
+
|
107
|
+
const block = await getBlockByNumber(forkProvider, forkBlockNumber);
|
108
|
+
|
109
|
+
const forkBlockTimestamp = rpcQuantityToNumber(block.timestamp) * 1000;
|
110
|
+
|
111
|
+
const cacheToDiskEnabled =
|
112
|
+
forkConfig.blockNumber !== undefined && forkCachePath !== undefined;
|
113
|
+
|
114
|
+
const forkClient = new JsonRpcClient(
|
115
|
+
forkProvider,
|
116
|
+
networkId,
|
117
|
+
latestBlockNumber,
|
118
|
+
maxReorg,
|
119
|
+
cacheToDiskEnabled ? forkCachePath : undefined
|
120
|
+
);
|
121
|
+
|
122
|
+
const forkBlockHash = block.hash;
|
123
|
+
|
124
|
+
assertHardhatInvariant(
|
125
|
+
forkBlockHash !== null,
|
126
|
+
"Forked block should have a hash"
|
127
|
+
);
|
128
|
+
|
129
|
+
const forkBlockStateRoot = block.stateRoot;
|
130
|
+
|
131
|
+
return {
|
132
|
+
forkClient,
|
133
|
+
forkBlockNumber,
|
134
|
+
forkBlockTimestamp,
|
135
|
+
forkBlockHash,
|
136
|
+
forkBlockStateRoot,
|
137
|
+
};
|
138
|
+
}
|
139
|
+
|
140
|
+
async function getBlockByNumber(
|
141
|
+
provider: HttpProvider,
|
142
|
+
blockNumber: bigint
|
143
|
+
): Promise<RpcBlockOutput> {
|
144
|
+
const rpcBlockOutput = (await provider.request({
|
145
|
+
method: "eth_getBlockByNumber",
|
146
|
+
params: [numberToRpcQuantity(blockNumber), false],
|
147
|
+
})) as RpcBlockOutput;
|
148
|
+
|
149
|
+
return rpcBlockOutput;
|
150
|
+
}
|
151
|
+
|
152
|
+
async function getNetworkId(provider: HttpProvider) {
|
153
|
+
const networkIdString = (await provider.request({
|
154
|
+
method: "net_version",
|
155
|
+
})) as string;
|
156
|
+
return parseInt(networkIdString, 10);
|
157
|
+
}
|
158
|
+
|
159
|
+
async function getLatestBlockNumber(provider: HttpProvider) {
|
160
|
+
const latestBlockString = (await provider.request({
|
161
|
+
method: "eth_blockNumber",
|
162
|
+
})) as string;
|
163
|
+
|
164
|
+
const latestBlock = BigInt(latestBlockString);
|
165
|
+
return latestBlock;
|
166
|
+
}
|
167
|
+
|
168
|
+
export function getLastSafeBlockNumber(
|
169
|
+
latestBlockNumber: bigint,
|
170
|
+
maxReorg: bigint
|
171
|
+
): bigint {
|
172
|
+
// Design choice: if latestBlock - maxReorg results in a negative number then the latestBlock block will be used.
|
173
|
+
// This decision is based on the assumption that if maxReorg > latestBlock then there is a high probability that the fork is occurring on a devnet.
|
174
|
+
return latestBlockNumber - maxReorg >= 0
|
175
|
+
? latestBlockNumber - maxReorg
|
176
|
+
: latestBlockNumber;
|
177
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import type EthereumjsUtilT from "@nomicfoundation/ethereumjs-util";
|
2
|
+
import type * as UtilKeccakT from "../../../util/keccak";
|
3
|
+
|
4
|
+
export class RandomBufferGenerator {
|
5
|
+
private constructor(private _nextValue: Uint8Array) {}
|
6
|
+
|
7
|
+
public static create(seed: string): RandomBufferGenerator {
|
8
|
+
const { keccak256 } = require("../../../util/keccak") as typeof UtilKeccakT;
|
9
|
+
|
10
|
+
const nextValue = keccak256(Buffer.from(seed));
|
11
|
+
|
12
|
+
return new RandomBufferGenerator(nextValue);
|
13
|
+
}
|
14
|
+
|
15
|
+
public next(): Uint8Array {
|
16
|
+
const { keccak256 } = require("../../../util/keccak") as typeof UtilKeccakT;
|
17
|
+
|
18
|
+
const valueToReturn = this._nextValue;
|
19
|
+
|
20
|
+
this._nextValue = keccak256(this._nextValue);
|
21
|
+
|
22
|
+
return valueToReturn;
|
23
|
+
}
|
24
|
+
|
25
|
+
public seed(): Uint8Array {
|
26
|
+
return this._nextValue;
|
27
|
+
}
|
28
|
+
|
29
|
+
public setNext(nextValue: Buffer) {
|
30
|
+
this._nextValue = Buffer.from(nextValue);
|
31
|
+
}
|
32
|
+
|
33
|
+
public clone(): RandomBufferGenerator {
|
34
|
+
return new RandomBufferGenerator(this._nextValue);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
export const randomHash = () => {
|
39
|
+
const { bytesToHex: bufferToHex } =
|
40
|
+
require("@nomicfoundation/ethereumjs-util") as typeof EthereumjsUtilT;
|
41
|
+
return bufferToHex(randomHashBuffer());
|
42
|
+
};
|
43
|
+
|
44
|
+
const generator = RandomBufferGenerator.create("seed");
|
45
|
+
export const randomHashBuffer = (): Uint8Array => {
|
46
|
+
return generator.next();
|
47
|
+
};
|
48
|
+
|
49
|
+
export const randomAddress = () => {
|
50
|
+
const { Address } =
|
51
|
+
require("@nomicfoundation/ethereumjs-util") as typeof EthereumjsUtilT;
|
52
|
+
return new Address(randomAddressBuffer());
|
53
|
+
};
|
54
|
+
|
55
|
+
export const randomAddressString = () => {
|
56
|
+
const { bytesToHex: bufferToHex } =
|
57
|
+
require("@nomicfoundation/ethereumjs-util") as typeof EthereumjsUtilT;
|
58
|
+
return bufferToHex(randomAddressBuffer());
|
59
|
+
};
|
60
|
+
|
61
|
+
const addressGenerator = RandomBufferGenerator.create("seed");
|
62
|
+
export const randomAddressBuffer = (): Uint8Array => {
|
63
|
+
return addressGenerator.next().slice(0, 20);
|
64
|
+
};
|
@@ -0,0 +1,40 @@
|
|
1
|
+
/**
|
2
|
+
* This function returns a number that should be safe to consider as the
|
3
|
+
* largest possible reorg in a network.
|
4
|
+
*
|
5
|
+
* If there's not such a number, or we aren't aware of it, this function
|
6
|
+
* returns undefined.
|
7
|
+
*/
|
8
|
+
export function getLargestPossibleReorg(networkId: number): bigint | undefined {
|
9
|
+
// mainnet
|
10
|
+
if (networkId === 1) {
|
11
|
+
return 32n;
|
12
|
+
}
|
13
|
+
|
14
|
+
// Kovan
|
15
|
+
if (networkId === 42) {
|
16
|
+
return 32n;
|
17
|
+
}
|
18
|
+
|
19
|
+
// Goerli
|
20
|
+
if (networkId === 5) {
|
21
|
+
return 32n;
|
22
|
+
}
|
23
|
+
|
24
|
+
// Rinkeby
|
25
|
+
if (networkId === 4) {
|
26
|
+
return 32n;
|
27
|
+
}
|
28
|
+
|
29
|
+
// Ropsten
|
30
|
+
if (networkId === 3) {
|
31
|
+
return 100n;
|
32
|
+
}
|
33
|
+
|
34
|
+
// xDai
|
35
|
+
if (networkId === 100) {
|
36
|
+
return 38n;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
export const FALLBACK_MAX_REORG = 128n;
|