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,247 @@
|
|
1
|
+
import util, { InspectOptions } from "util";
|
2
|
+
|
3
|
+
import { HardhatError } from "../core/errors";
|
4
|
+
import { ERRORS } from "../core/errors-list";
|
5
|
+
|
6
|
+
const inspect = Symbol.for("nodejs.util.inspect.custom");
|
7
|
+
|
8
|
+
/**
|
9
|
+
* This module provides function to implement proxy-based object, functions, and
|
10
|
+
* classes (they are functions). They receive an initializer function that it's
|
11
|
+
* not used until someone interacts with the lazy element.
|
12
|
+
*
|
13
|
+
* This functions can also be used like a lazy `require`, creating a proxy that
|
14
|
+
* doesn't require the module until needed.
|
15
|
+
*
|
16
|
+
* The disadvantage of using this technique is that the type information is
|
17
|
+
* lost wrt `import`, as `require` returns an `any. If done with enough care,
|
18
|
+
* this can be manually fixed.
|
19
|
+
*
|
20
|
+
* TypeScript doesn't emit `require` calls for modules that are imported only
|
21
|
+
* because of their types. So if one uses lazyObject or lazyFunction along with
|
22
|
+
* a normal ESM import you can pass the module's type to this function.
|
23
|
+
*
|
24
|
+
* An example of this can be:
|
25
|
+
*
|
26
|
+
* import findUpT from "find-up";
|
27
|
+
* export const findUp = lazyFunction<typeof findUpT>(() => require("find-up"));
|
28
|
+
*
|
29
|
+
* You can also use it with named exports:
|
30
|
+
*
|
31
|
+
* import { EthT } from "web3x/eth";
|
32
|
+
* const Eth = lazyFunction<typeof EthT>(() => require("web3x/eth").Eth);
|
33
|
+
*/
|
34
|
+
|
35
|
+
export function lazyObject<T extends object>(objectCreator: () => T): T {
|
36
|
+
return createLazyProxy(
|
37
|
+
objectCreator,
|
38
|
+
(getRealTarget) => ({
|
39
|
+
[inspect](
|
40
|
+
depth: number,
|
41
|
+
options: InspectOptions,
|
42
|
+
inspectFn: (
|
43
|
+
object: any,
|
44
|
+
options: InspectOptions
|
45
|
+
) => string = util.inspect
|
46
|
+
) {
|
47
|
+
const realTarget = getRealTarget();
|
48
|
+
const newOptions = { ...options, depth };
|
49
|
+
return inspectFn(realTarget, newOptions);
|
50
|
+
},
|
51
|
+
}),
|
52
|
+
(object) => {
|
53
|
+
if (object instanceof Function) {
|
54
|
+
throw new HardhatError(ERRORS.GENERAL.UNSUPPORTED_OPERATION, {
|
55
|
+
operation: "Creating lazy functions or classes with lazyObject",
|
56
|
+
});
|
57
|
+
}
|
58
|
+
|
59
|
+
if (typeof object !== "object" || object === null) {
|
60
|
+
throw new HardhatError(ERRORS.GENERAL.UNSUPPORTED_OPERATION, {
|
61
|
+
operation: "Using lazyObject with anything other than objects",
|
62
|
+
});
|
63
|
+
}
|
64
|
+
}
|
65
|
+
);
|
66
|
+
}
|
67
|
+
|
68
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
69
|
+
export function lazyFunction<T extends Function>(functionCreator: () => T): T {
|
70
|
+
return createLazyProxy(
|
71
|
+
functionCreator,
|
72
|
+
(getRealTarget) => {
|
73
|
+
function dummyTarget() {}
|
74
|
+
|
75
|
+
(dummyTarget as any)[inspect] = function (
|
76
|
+
depth: number,
|
77
|
+
options: InspectOptions,
|
78
|
+
inspectFn: (
|
79
|
+
object: any,
|
80
|
+
options: InspectOptions
|
81
|
+
) => string = util.inspect
|
82
|
+
) {
|
83
|
+
const realTarget = getRealTarget();
|
84
|
+
const newOptions = { ...options, depth };
|
85
|
+
return inspectFn(realTarget, newOptions);
|
86
|
+
};
|
87
|
+
|
88
|
+
return dummyTarget;
|
89
|
+
},
|
90
|
+
(object) => {
|
91
|
+
if (!(object instanceof Function)) {
|
92
|
+
throw new HardhatError(ERRORS.GENERAL.UNSUPPORTED_OPERATION, {
|
93
|
+
operation:
|
94
|
+
"Using lazyFunction with anything other than functions or classes",
|
95
|
+
});
|
96
|
+
}
|
97
|
+
}
|
98
|
+
);
|
99
|
+
}
|
100
|
+
|
101
|
+
function createLazyProxy<ActualT extends GuardT, GuardT extends object>(
|
102
|
+
targetCreator: () => ActualT,
|
103
|
+
dummyTargetCreator: (getRealTarget: () => ActualT) => GuardT,
|
104
|
+
validator: (target: any) => void
|
105
|
+
): ActualT {
|
106
|
+
let realTarget: ActualT | undefined;
|
107
|
+
|
108
|
+
const dummyTarget: ActualT = dummyTargetCreator(getRealTarget) as any;
|
109
|
+
|
110
|
+
function getRealTarget(): ActualT {
|
111
|
+
if (realTarget === undefined) {
|
112
|
+
const target = targetCreator();
|
113
|
+
validator(target);
|
114
|
+
|
115
|
+
// We copy all properties. We won't use them, but help us avoid Proxy
|
116
|
+
// invariant violations
|
117
|
+
const properties = Object.getOwnPropertyNames(target);
|
118
|
+
for (const property of properties) {
|
119
|
+
const descriptor = Object.getOwnPropertyDescriptor(target, property)!;
|
120
|
+
Object.defineProperty(dummyTarget, property, descriptor);
|
121
|
+
}
|
122
|
+
|
123
|
+
Object.setPrototypeOf(dummyTarget, Object.getPrototypeOf(target));
|
124
|
+
|
125
|
+
// Using a null prototype seems to tirgger a V8 bug, so we forbid it
|
126
|
+
// See: https://github.com/nodejs/node/issues/29730
|
127
|
+
if (Object.getPrototypeOf(target) === null) {
|
128
|
+
throw new HardhatError(ERRORS.GENERAL.UNSUPPORTED_OPERATION, {
|
129
|
+
operation:
|
130
|
+
"Using lazyFunction or lazyObject to construct objects/functions with prototype null",
|
131
|
+
});
|
132
|
+
}
|
133
|
+
|
134
|
+
if (!Object.isExtensible(target)) {
|
135
|
+
Object.preventExtensions(dummyTarget);
|
136
|
+
}
|
137
|
+
|
138
|
+
realTarget = target;
|
139
|
+
}
|
140
|
+
|
141
|
+
return realTarget;
|
142
|
+
}
|
143
|
+
|
144
|
+
const handler: ProxyHandler<ActualT> = {
|
145
|
+
defineProperty(target, property, descriptor) {
|
146
|
+
Reflect.defineProperty(dummyTarget, property, descriptor);
|
147
|
+
return Reflect.defineProperty(getRealTarget(), property, descriptor);
|
148
|
+
},
|
149
|
+
|
150
|
+
deleteProperty(target, property) {
|
151
|
+
Reflect.deleteProperty(dummyTarget, property);
|
152
|
+
return Reflect.deleteProperty(getRealTarget(), property);
|
153
|
+
},
|
154
|
+
|
155
|
+
get(target, property, receiver) {
|
156
|
+
// We have this short-circuit logic here to avoid a cyclic require when
|
157
|
+
// loading Web3.js.
|
158
|
+
//
|
159
|
+
// If a lazy object is somehow accessed while its real target is being
|
160
|
+
// created, it would trigger an endless loop of recreation, which node
|
161
|
+
// detects and resolve to an empty object.
|
162
|
+
//
|
163
|
+
// This happens with Web3.js because we a lazyObject that loads it,
|
164
|
+
// and expose it as `global.web3`. This Web3.js file accesses
|
165
|
+
// `global.web3` when it's being loaded, triggering the loop we mentioned
|
166
|
+
// before: https://github.com/ethereum/web3.js/blob/8574bd3bf11a2e9cf4bcf8850cab13e1db56653f/packages/web3-core-requestmanager/src/givenProvider.js#L41
|
167
|
+
//
|
168
|
+
// We just return `undefined` in that case, to not enter into the loop.
|
169
|
+
//
|
170
|
+
// **SUPER IMPORTANT NOTE:** Removing this is very tempting, I know. This
|
171
|
+
// is a horrible hack. The most obvious approach for doing so is to
|
172
|
+
// remove the `global` elements that trigger this crazy behavior right
|
173
|
+
// before doing our `require("web3")`, and restore them afterwards.
|
174
|
+
// **THIS IS NOT ENOUGH** Users, and libraries (!!!!), will have their own
|
175
|
+
// `require`s that we can't control and will trigger the same bug.
|
176
|
+
const stack = new Error().stack;
|
177
|
+
if (
|
178
|
+
stack !== undefined &&
|
179
|
+
stack.includes("givenProvider.js") &&
|
180
|
+
realTarget === undefined
|
181
|
+
) {
|
182
|
+
return undefined;
|
183
|
+
}
|
184
|
+
|
185
|
+
return Reflect.get(getRealTarget(), property, receiver);
|
186
|
+
},
|
187
|
+
|
188
|
+
getOwnPropertyDescriptor(target, property) {
|
189
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(
|
190
|
+
getRealTarget(),
|
191
|
+
property
|
192
|
+
);
|
193
|
+
|
194
|
+
if (descriptor !== undefined) {
|
195
|
+
Object.defineProperty(dummyTarget, property, descriptor);
|
196
|
+
}
|
197
|
+
|
198
|
+
return descriptor;
|
199
|
+
},
|
200
|
+
|
201
|
+
getPrototypeOf(_target) {
|
202
|
+
return Reflect.getPrototypeOf(getRealTarget());
|
203
|
+
},
|
204
|
+
|
205
|
+
has(target, property) {
|
206
|
+
return Reflect.has(getRealTarget(), property);
|
207
|
+
},
|
208
|
+
|
209
|
+
isExtensible(_target) {
|
210
|
+
return Reflect.isExtensible(getRealTarget());
|
211
|
+
},
|
212
|
+
|
213
|
+
ownKeys(_target) {
|
214
|
+
return Reflect.ownKeys(getRealTarget());
|
215
|
+
},
|
216
|
+
|
217
|
+
preventExtensions(_target) {
|
218
|
+
Object.preventExtensions(dummyTarget);
|
219
|
+
return Reflect.preventExtensions(getRealTarget());
|
220
|
+
},
|
221
|
+
|
222
|
+
set(target, property, value, receiver) {
|
223
|
+
Reflect.set(dummyTarget, property, value, receiver);
|
224
|
+
return Reflect.set(getRealTarget(), property, value, receiver);
|
225
|
+
},
|
226
|
+
|
227
|
+
setPrototypeOf(target, prototype) {
|
228
|
+
Reflect.setPrototypeOf(dummyTarget, prototype);
|
229
|
+
return Reflect.setPrototypeOf(getRealTarget(), prototype);
|
230
|
+
},
|
231
|
+
};
|
232
|
+
|
233
|
+
if (dummyTarget instanceof Function) {
|
234
|
+
// If dummy target is a function, the actual target must be a function too.
|
235
|
+
handler.apply = (target, thisArg: any, argArray?: any) => {
|
236
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
237
|
+
return Reflect.apply(getRealTarget() as Function, thisArg, argArray);
|
238
|
+
};
|
239
|
+
|
240
|
+
handler.construct = (target, argArray: any, _newTarget?: any) => {
|
241
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
242
|
+
return Reflect.construct(getRealTarget() as Function, argArray);
|
243
|
+
};
|
244
|
+
}
|
245
|
+
|
246
|
+
return new Proxy(dummyTarget, handler);
|
247
|
+
}
|
@@ -0,0 +1,133 @@
|
|
1
|
+
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
2
|
+
import debug from "debug";
|
3
|
+
import fs from "node:fs";
|
4
|
+
import path from "node:path";
|
5
|
+
import os from "node:os";
|
6
|
+
|
7
|
+
// Logic explanation: the fs.writeFile function, when used with the wx+ flag, performs an atomic operation to create a file.
|
8
|
+
// If multiple processes try to create the same file simultaneously, only one will succeed.
|
9
|
+
// This logic can be utilized to implement a mutex.
|
10
|
+
// ATTENTION: in the current implementation, there's still a risk of two processes running simultaneously.
|
11
|
+
// For example, if processA has locked the mutex and is running, processB will wait.
|
12
|
+
// During this wait, processB continuously checks the elapsed time since the mutex lock file was created.
|
13
|
+
// If an excessive amount of time has passed, processB will assume ownership of the mutex to avoid stale locks.
|
14
|
+
// However, there's a possibility that processB might take ownership because the mutex creation file is outdated, even though processA is still running
|
15
|
+
// For more info check the Nomic Notion page (internal link).
|
16
|
+
|
17
|
+
const log = debug("hardhat:util:multi-process-mutex");
|
18
|
+
const DEFAULT_MAX_MUTEX_LIFESPAN_IN_MS = 60000;
|
19
|
+
const MUTEX_LOOP_WAITING_TIME_IN_MS = 100;
|
20
|
+
|
21
|
+
export class MultiProcessMutex {
|
22
|
+
private _mutexFilePath: string;
|
23
|
+
private _mutexLifespanInMs: number;
|
24
|
+
|
25
|
+
constructor(mutexName: string, maxMutexLifespanInMs?: number) {
|
26
|
+
log(`Creating mutex with name '${mutexName}'`);
|
27
|
+
|
28
|
+
this._mutexFilePath = path.join(os.tmpdir(), `${mutexName}.txt`);
|
29
|
+
this._mutexLifespanInMs =
|
30
|
+
maxMutexLifespanInMs ?? DEFAULT_MAX_MUTEX_LIFESPAN_IN_MS;
|
31
|
+
}
|
32
|
+
|
33
|
+
public async use<T>(f: () => Promise<T>): Promise<T> {
|
34
|
+
log(`Starting mutex process with mutex file '${this._mutexFilePath}'`);
|
35
|
+
|
36
|
+
while (true) {
|
37
|
+
if (await this._tryToAcquireMutex()) {
|
38
|
+
// Mutex has been acquired
|
39
|
+
return this._executeFunctionAndReleaseMutex(f);
|
40
|
+
}
|
41
|
+
|
42
|
+
// Mutex not acquired
|
43
|
+
if (this._isMutexFileTooOld()) {
|
44
|
+
// If the mutex file is too old, it likely indicates a stale lock, so the file should be removed
|
45
|
+
log(
|
46
|
+
`Current mutex file is too old, removing it at path '${this._mutexFilePath}'`
|
47
|
+
);
|
48
|
+
this._deleteMutexFile();
|
49
|
+
} else {
|
50
|
+
// wait
|
51
|
+
await this._waitMs();
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
private async _tryToAcquireMutex() {
|
57
|
+
try {
|
58
|
+
// Create a file only if it does not exist
|
59
|
+
fs.writeFileSync(this._mutexFilePath, "", { flag: "wx+" });
|
60
|
+
return true;
|
61
|
+
} catch (error: any) {
|
62
|
+
if (error.code === "EEXIST") {
|
63
|
+
// File already exists, so the mutex is already acquired
|
64
|
+
return false;
|
65
|
+
}
|
66
|
+
|
67
|
+
throw error;
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
private async _executeFunctionAndReleaseMutex<T>(
|
72
|
+
f: () => Promise<T>
|
73
|
+
): Promise<T> {
|
74
|
+
log(`Mutex acquired at path '${this._mutexFilePath}'`);
|
75
|
+
|
76
|
+
try {
|
77
|
+
const res = await f();
|
78
|
+
|
79
|
+
// Release the mutex
|
80
|
+
log(`Mutex released at path '${this._mutexFilePath}'`);
|
81
|
+
this._deleteMutexFile();
|
82
|
+
|
83
|
+
log(`Mutex released at path '${this._mutexFilePath}'`);
|
84
|
+
|
85
|
+
return res;
|
86
|
+
} catch (error: any) {
|
87
|
+
// Catch any error to avoid stale locks.
|
88
|
+
// Remove the mutex file and re-throw the error
|
89
|
+
this._deleteMutexFile();
|
90
|
+
throw error;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
private _isMutexFileTooOld(): boolean {
|
95
|
+
let fileStat;
|
96
|
+
try {
|
97
|
+
fileStat = fs.statSync(this._mutexFilePath);
|
98
|
+
} catch (error: any) {
|
99
|
+
if (error.code === "ENOENT") {
|
100
|
+
// The file might have been deleted by another process while this function was trying to access it.
|
101
|
+
return false;
|
102
|
+
}
|
103
|
+
|
104
|
+
throw error;
|
105
|
+
}
|
106
|
+
|
107
|
+
const now = new Date();
|
108
|
+
const fileDate = new Date(fileStat.ctime);
|
109
|
+
const diff = now.getTime() - fileDate.getTime();
|
110
|
+
|
111
|
+
return diff > this._mutexLifespanInMs;
|
112
|
+
}
|
113
|
+
|
114
|
+
private _deleteMutexFile() {
|
115
|
+
try {
|
116
|
+
log(`Deleting mutex file at path '${this._mutexFilePath}'`);
|
117
|
+
fs.unlinkSync(this._mutexFilePath);
|
118
|
+
} catch (error: any) {
|
119
|
+
if (error.code === "ENOENT") {
|
120
|
+
// The file might have been deleted by another process while this function was trying to access it.
|
121
|
+
return;
|
122
|
+
}
|
123
|
+
|
124
|
+
throw error;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
private async _waitMs() {
|
129
|
+
return new Promise((resolve) =>
|
130
|
+
setTimeout(resolve, MUTEX_LOOP_WAITING_TIME_IN_MS)
|
131
|
+
);
|
132
|
+
}
|
133
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import findup from "find-up";
|
2
|
+
import fsExtra from "fs-extra";
|
3
|
+
import path from "path";
|
4
|
+
|
5
|
+
import { assertHardhatInvariant } from "../core/errors";
|
6
|
+
|
7
|
+
export function getPackageJsonPath(): string {
|
8
|
+
return findClosestPackageJson(__filename)!;
|
9
|
+
}
|
10
|
+
|
11
|
+
export function getPackageRoot(): string {
|
12
|
+
const packageJsonPath = getPackageJsonPath();
|
13
|
+
|
14
|
+
return path.dirname(packageJsonPath);
|
15
|
+
}
|
16
|
+
|
17
|
+
export interface PackageJson {
|
18
|
+
name: string;
|
19
|
+
version: string;
|
20
|
+
type?: "commonjs" | "module";
|
21
|
+
engines: {
|
22
|
+
node: string;
|
23
|
+
};
|
24
|
+
}
|
25
|
+
|
26
|
+
export function findClosestPackageJson(file: string): string | null {
|
27
|
+
return findup.sync("package.json", { cwd: path.dirname(file) });
|
28
|
+
}
|
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
|
+
|
39
|
+
export async function getPackageJson(): Promise<PackageJson> {
|
40
|
+
const root = getPackageRoot();
|
41
|
+
return fsExtra.readJSON(path.join(root, "package.json"));
|
42
|
+
}
|
43
|
+
|
44
|
+
export function getHardhatVersion(): string {
|
45
|
+
const packageJsonPath = findClosestPackageJson(__filename);
|
46
|
+
|
47
|
+
assertHardhatInvariant(
|
48
|
+
packageJsonPath !== null,
|
49
|
+
"There should be a package.json in hardhat-core's root directory"
|
50
|
+
);
|
51
|
+
|
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);
|
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
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Analytics } from "../cli/analytics";
|
2
|
+
|
3
|
+
async function main() {
|
4
|
+
// This default value shouldn't be necessary, but we add one to make it
|
5
|
+
// easier to recognize if the telemetry consent value is not passed.
|
6
|
+
const [telemetryConsent = "<undefined-telemetry-consent>"] =
|
7
|
+
process.argv.slice(2);
|
8
|
+
|
9
|
+
// we pass undefined as the telemetryConsent value because
|
10
|
+
// this hit is done before the consent is saved
|
11
|
+
const analytics = await Analytics.getInstance(undefined);
|
12
|
+
|
13
|
+
const [_, consentHitPromise] = await analytics.sendTelemetryConsentHit(
|
14
|
+
telemetryConsent as "yes" | "no"
|
15
|
+
);
|
16
|
+
await consentHitPromise;
|
17
|
+
}
|
18
|
+
|
19
|
+
main().catch(() => {});
|
@@ -0,0 +1,119 @@
|
|
1
|
+
import debug from "debug";
|
2
|
+
import path from "path";
|
3
|
+
|
4
|
+
import { HardhatArguments } from "../../types";
|
5
|
+
import { isRunningHardhatCoreTests } from "../core/execution-mode";
|
6
|
+
import { getEnvVariablesMap } from "../core/params/env-variables";
|
7
|
+
|
8
|
+
const log = debug("hardhat:core:scripts-runner");
|
9
|
+
|
10
|
+
export async function runScript(
|
11
|
+
scriptPath: string,
|
12
|
+
scriptArgs: string[] = [],
|
13
|
+
extraNodeArgs: string[] = [],
|
14
|
+
extraEnvVars: { [name: string]: string } = {}
|
15
|
+
): Promise<number> {
|
16
|
+
const { fork } = await import("child_process");
|
17
|
+
|
18
|
+
return new Promise((resolve, reject) => {
|
19
|
+
const processExecArgv = withFixedInspectArg(process.execArgv);
|
20
|
+
|
21
|
+
const nodeArgs = [
|
22
|
+
...processExecArgv,
|
23
|
+
...getTsNodeArgsIfNeeded(
|
24
|
+
scriptPath,
|
25
|
+
extraEnvVars.HARDHAT_TYPECHECK === "true"
|
26
|
+
),
|
27
|
+
...extraNodeArgs,
|
28
|
+
];
|
29
|
+
|
30
|
+
const envVars = { ...process.env, ...extraEnvVars };
|
31
|
+
|
32
|
+
const childProcess = fork(scriptPath, scriptArgs, {
|
33
|
+
stdio: "inherit",
|
34
|
+
execArgv: nodeArgs,
|
35
|
+
env: envVars,
|
36
|
+
});
|
37
|
+
|
38
|
+
childProcess.once("close", (status) => {
|
39
|
+
log(`Script ${scriptPath} exited with status code ${status ?? "null"}`);
|
40
|
+
|
41
|
+
resolve(status as number);
|
42
|
+
});
|
43
|
+
childProcess.once("error", reject);
|
44
|
+
});
|
45
|
+
}
|
46
|
+
|
47
|
+
export async function runScriptWithHardhat(
|
48
|
+
hardhatArguments: HardhatArguments,
|
49
|
+
scriptPath: string,
|
50
|
+
scriptArgs: string[] = [],
|
51
|
+
extraNodeArgs: string[] = [],
|
52
|
+
extraEnvVars: { [name: string]: string } = {}
|
53
|
+
): Promise<number> {
|
54
|
+
log(`Creating Hardhat subprocess to run ${scriptPath}`);
|
55
|
+
|
56
|
+
return runScript(
|
57
|
+
scriptPath,
|
58
|
+
scriptArgs,
|
59
|
+
[
|
60
|
+
...extraNodeArgs,
|
61
|
+
"--require",
|
62
|
+
path.join(__dirname, "..", "..", "register"),
|
63
|
+
],
|
64
|
+
{
|
65
|
+
...getEnvVariablesMap(hardhatArguments),
|
66
|
+
...extraEnvVars,
|
67
|
+
}
|
68
|
+
);
|
69
|
+
}
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Fix debugger "inspect" arg from process.argv, if present.
|
73
|
+
*
|
74
|
+
* When running this process with a debugger, a debugger port
|
75
|
+
* is specified via the "--inspect-brk=" arg param in some IDEs/setups.
|
76
|
+
*
|
77
|
+
* This normally works, but if we do a fork afterwards, we'll get an error stating
|
78
|
+
* that the port is already in use (since the fork would also use the same args,
|
79
|
+
* therefore the same port number). To prevent this issue, we could replace the port number with
|
80
|
+
* a different free one, or simply use the port-agnostic --inspect" flag, and leave the debugger
|
81
|
+
* port selection to the Node process itself, which will pick an empty AND valid one.
|
82
|
+
*
|
83
|
+
* This way, we can properly use the debugger for this process AND for the executed
|
84
|
+
* script itself - even if it's compiled using ts-node.
|
85
|
+
*/
|
86
|
+
function withFixedInspectArg(argv: string[]) {
|
87
|
+
const fixIfInspectArg = (arg: string) => {
|
88
|
+
if (arg.toLowerCase().includes("--inspect-brk=")) {
|
89
|
+
return "--inspect";
|
90
|
+
}
|
91
|
+
return arg;
|
92
|
+
};
|
93
|
+
return argv.map(fixIfInspectArg);
|
94
|
+
}
|
95
|
+
|
96
|
+
function getTsNodeArgsIfNeeded(
|
97
|
+
scriptPath: string,
|
98
|
+
shouldTypecheck: boolean
|
99
|
+
): string[] {
|
100
|
+
if (process.execArgv.includes("ts-node/register")) {
|
101
|
+
return [];
|
102
|
+
}
|
103
|
+
|
104
|
+
// if we are running the tests we only want to transpile, or these tests
|
105
|
+
// take forever
|
106
|
+
if (isRunningHardhatCoreTests()) {
|
107
|
+
return ["--require", "ts-node/register/transpile-only"];
|
108
|
+
}
|
109
|
+
|
110
|
+
// If the script we are going to run is .ts we need ts-node
|
111
|
+
if (/\.tsx?$/i.test(scriptPath)) {
|
112
|
+
return [
|
113
|
+
"--require",
|
114
|
+
`ts-node/register${shouldTypecheck ? "" : "/transpile-only"}`,
|
115
|
+
];
|
116
|
+
}
|
117
|
+
|
118
|
+
return [];
|
119
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/**
|
2
|
+
* Returns the plural form of a word.
|
3
|
+
*
|
4
|
+
* @param n The number of things to represent. This dictates whether to return
|
5
|
+
* the singular or plural form of the word.
|
6
|
+
* @param singular The singular form of the word.
|
7
|
+
* @param plural An optional plural form of the word. If non is given, the
|
8
|
+
* plural form is constructed by appending an "s" to the singular form.
|
9
|
+
*/
|
10
|
+
export function pluralize(n: number, singular: string, plural?: string) {
|
11
|
+
if (n === 1) {
|
12
|
+
return singular;
|
13
|
+
}
|
14
|
+
|
15
|
+
if (plural !== undefined) {
|
16
|
+
return plural;
|
17
|
+
}
|
18
|
+
|
19
|
+
return `${singular}s`;
|
20
|
+
}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Replaces all the instances of [[toReplace]] by [[replacement]] in [[str]].
|
24
|
+
*/
|
25
|
+
export function replaceAll(
|
26
|
+
str: string,
|
27
|
+
toReplace: string,
|
28
|
+
replacement: string
|
29
|
+
) {
|
30
|
+
return str.split(toReplace).join(replacement);
|
31
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* This function is a typed version of `Object.keys`. Note that it's type
|
3
|
+
* unsafe. You have to be sure that `o` has exactly the same keys as `T`.
|
4
|
+
*/
|
5
|
+
export const unsafeObjectKeys = Object.keys as <T>(
|
6
|
+
o: T
|
7
|
+
) => Array<Extract<keyof T, string>>;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* This function is a typed version of `Object.entries`. Note that it's type
|
11
|
+
* unsafe. You have to be sure that `o` has exactly the same keys as `T`.
|
12
|
+
*/
|
13
|
+
export function unsafeObjectEntries<T extends object>(o: T) {
|
14
|
+
return Object.entries(o) as Array<[keyof T, T[keyof T]]>;
|
15
|
+
}
|