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,351 @@
|
|
1
|
+
import { Event, Exception, StackFrame, Stacktrace } from "@sentry/node";
|
2
|
+
import findup from "find-up";
|
3
|
+
import { either } from "fp-ts";
|
4
|
+
import * as path from "path";
|
5
|
+
|
6
|
+
interface WordMatch {
|
7
|
+
index: number;
|
8
|
+
word: string;
|
9
|
+
}
|
10
|
+
|
11
|
+
const ANONYMIZED_FILE = "<user-file>";
|
12
|
+
const ANONYMIZED_MNEMONIC = "<mnemonic>";
|
13
|
+
const MNEMONIC_PHRASE_LENGTH_THRESHOLD = 7;
|
14
|
+
const MINIMUM_AMOUNT_OF_WORDS_TO_ANONYMIZE = 4;
|
15
|
+
|
16
|
+
export class Anonymizer {
|
17
|
+
constructor(private _configPath?: string) {}
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Given a sentry serialized exception
|
21
|
+
* (https://develop.sentry.dev/sdk/event-payloads/exception/), return an
|
22
|
+
* anonymized version of the event.
|
23
|
+
*/
|
24
|
+
public anonymize(event: any): either.Either<string, Event> {
|
25
|
+
if (event === null || event === undefined) {
|
26
|
+
return either.left("event is null or undefined");
|
27
|
+
}
|
28
|
+
if (typeof event !== "object") {
|
29
|
+
return either.left("event is not an object");
|
30
|
+
}
|
31
|
+
|
32
|
+
const result: Event = {
|
33
|
+
event_id: event.event_id,
|
34
|
+
platform: event.platform,
|
35
|
+
timestamp: event.timestamp,
|
36
|
+
extra: event.extra,
|
37
|
+
};
|
38
|
+
|
39
|
+
if (event.exception !== undefined && event.exception.values !== undefined) {
|
40
|
+
const anonymizededExceptions = this._anonymizeExceptions(
|
41
|
+
event.exception.values
|
42
|
+
);
|
43
|
+
result.exception = {
|
44
|
+
values: anonymizededExceptions,
|
45
|
+
};
|
46
|
+
}
|
47
|
+
|
48
|
+
return either.right(result);
|
49
|
+
}
|
50
|
+
|
51
|
+
/**
|
52
|
+
* Return the anonymized filename and a boolean indicating if the content of
|
53
|
+
* the file should be anonymized
|
54
|
+
*/
|
55
|
+
public anonymizeFilename(filename: string): {
|
56
|
+
anonymizedFilename: string;
|
57
|
+
anonymizeContent: boolean;
|
58
|
+
} {
|
59
|
+
if (filename === this._configPath) {
|
60
|
+
const packageJsonPath = this._getFilePackageJsonPath(filename);
|
61
|
+
|
62
|
+
if (packageJsonPath === null) {
|
63
|
+
// if we can't find a package.json, we just return the basename
|
64
|
+
return {
|
65
|
+
anonymizedFilename: path.basename(filename),
|
66
|
+
anonymizeContent: true,
|
67
|
+
};
|
68
|
+
}
|
69
|
+
|
70
|
+
return {
|
71
|
+
anonymizedFilename: path.relative(
|
72
|
+
path.dirname(packageJsonPath),
|
73
|
+
filename
|
74
|
+
),
|
75
|
+
anonymizeContent: true,
|
76
|
+
};
|
77
|
+
}
|
78
|
+
|
79
|
+
const parts = filename.split(path.sep);
|
80
|
+
const nodeModulesIndex = parts.indexOf("node_modules");
|
81
|
+
|
82
|
+
if (nodeModulesIndex === -1) {
|
83
|
+
if (filename.startsWith("internal")) {
|
84
|
+
// show internal parts of the stack trace
|
85
|
+
return {
|
86
|
+
anonymizedFilename: filename,
|
87
|
+
anonymizeContent: false,
|
88
|
+
};
|
89
|
+
}
|
90
|
+
|
91
|
+
// if the file isn't inside node_modules and it's a user file, we hide it completely
|
92
|
+
return {
|
93
|
+
anonymizedFilename: ANONYMIZED_FILE,
|
94
|
+
anonymizeContent: true,
|
95
|
+
};
|
96
|
+
}
|
97
|
+
|
98
|
+
return {
|
99
|
+
anonymizedFilename: parts.slice(nodeModulesIndex).join(path.sep),
|
100
|
+
anonymizeContent: false,
|
101
|
+
};
|
102
|
+
}
|
103
|
+
|
104
|
+
public anonymizeErrorMessage(errorMessage: string): string {
|
105
|
+
errorMessage = this._anonymizeMnemonic(errorMessage);
|
106
|
+
|
107
|
+
// the \\ before path.sep is necessary for this to work on windows
|
108
|
+
const pathRegex = new RegExp(`\\S+\\${path.sep}\\S+`, "g");
|
109
|
+
|
110
|
+
// for files that don't have a path separator
|
111
|
+
const fileRegex = new RegExp("\\S+\\.(js|ts)\\S*", "g");
|
112
|
+
|
113
|
+
// hide hex strings of 20 chars or more
|
114
|
+
const hexRegex = /(0x)?[0-9A-Fa-f]{20,}/g;
|
115
|
+
|
116
|
+
return errorMessage
|
117
|
+
.replace(pathRegex, ANONYMIZED_FILE)
|
118
|
+
.replace(fileRegex, ANONYMIZED_FILE)
|
119
|
+
.replace(hexRegex, (match) => match.replace(/./g, "x"));
|
120
|
+
}
|
121
|
+
|
122
|
+
public raisedByHardhat(event: Event): boolean {
|
123
|
+
const exceptions = event?.exception?.values;
|
124
|
+
|
125
|
+
if (exceptions === undefined) {
|
126
|
+
// if we can't prove that the exception doesn't come from hardhat,
|
127
|
+
// we err on the side of reporting the error
|
128
|
+
return true;
|
129
|
+
}
|
130
|
+
|
131
|
+
const originalException = exceptions[exceptions.length - 1];
|
132
|
+
|
133
|
+
const frames = originalException?.stacktrace?.frames;
|
134
|
+
|
135
|
+
if (frames === undefined) {
|
136
|
+
return true;
|
137
|
+
}
|
138
|
+
|
139
|
+
for (const frame of frames.slice().reverse()) {
|
140
|
+
if (frame.filename === undefined) {
|
141
|
+
continue;
|
142
|
+
}
|
143
|
+
|
144
|
+
// we stop after finding either a hardhat file or a file from the user's
|
145
|
+
// project
|
146
|
+
if (this._isHardhatFile(frame.filename)) {
|
147
|
+
return true;
|
148
|
+
}
|
149
|
+
|
150
|
+
if (frame.filename === ANONYMIZED_FILE) {
|
151
|
+
return false;
|
152
|
+
}
|
153
|
+
|
154
|
+
if (
|
155
|
+
this._configPath !== undefined &&
|
156
|
+
this._configPath.includes(frame.filename)
|
157
|
+
) {
|
158
|
+
return false;
|
159
|
+
}
|
160
|
+
}
|
161
|
+
|
162
|
+
// if we didn't find any hardhat frame, we don't report the error
|
163
|
+
return false;
|
164
|
+
}
|
165
|
+
|
166
|
+
protected _getFilePackageJsonPath(filename: string): string | null {
|
167
|
+
return findup.sync("package.json", {
|
168
|
+
cwd: path.dirname(filename),
|
169
|
+
});
|
170
|
+
}
|
171
|
+
|
172
|
+
private _isHardhatFile(filename: string): boolean {
|
173
|
+
const nomiclabsPath = path.join("node_modules", "@nomiclabs");
|
174
|
+
const nomicFoundationPath = path.join("node_modules", "@nomicfoundation");
|
175
|
+
const truffleContractPath = path.join(nomiclabsPath, "truffle-contract");
|
176
|
+
const isHardhatFile =
|
177
|
+
(filename.startsWith(nomiclabsPath) ||
|
178
|
+
filename.startsWith(nomicFoundationPath)) &&
|
179
|
+
!filename.startsWith(truffleContractPath);
|
180
|
+
|
181
|
+
return isHardhatFile;
|
182
|
+
}
|
183
|
+
|
184
|
+
private _anonymizeExceptions(exceptions: Exception[]): Exception[] {
|
185
|
+
return exceptions.map((exception) => this._anonymizeException(exception));
|
186
|
+
}
|
187
|
+
|
188
|
+
private _anonymizeException(value: Exception): Exception {
|
189
|
+
const result: Exception = {
|
190
|
+
type: value.type,
|
191
|
+
};
|
192
|
+
|
193
|
+
if (value.value !== undefined) {
|
194
|
+
result.value = this.anonymizeErrorMessage(value.value);
|
195
|
+
}
|
196
|
+
|
197
|
+
if (value.stacktrace !== undefined) {
|
198
|
+
result.stacktrace = this._anonymizeStacktrace(value.stacktrace);
|
199
|
+
}
|
200
|
+
|
201
|
+
return result;
|
202
|
+
}
|
203
|
+
|
204
|
+
private _anonymizeStacktrace(stacktrace: Stacktrace): Stacktrace {
|
205
|
+
if (stacktrace.frames !== undefined) {
|
206
|
+
const anonymizededFrames = this._anonymizeFrames(stacktrace.frames);
|
207
|
+
return {
|
208
|
+
frames: anonymizededFrames,
|
209
|
+
};
|
210
|
+
}
|
211
|
+
|
212
|
+
return {};
|
213
|
+
}
|
214
|
+
|
215
|
+
private _anonymizeFrames(frames: StackFrame[]): StackFrame[] {
|
216
|
+
return frames.map((frame) => this._anonymizeFrame(frame));
|
217
|
+
}
|
218
|
+
|
219
|
+
private _anonymizeFrame(frame: StackFrame): StackFrame {
|
220
|
+
const result: StackFrame = {
|
221
|
+
lineno: frame.lineno,
|
222
|
+
colno: frame.colno,
|
223
|
+
function: frame.function,
|
224
|
+
};
|
225
|
+
|
226
|
+
let anonymizeContent = true;
|
227
|
+
if (frame.filename !== undefined) {
|
228
|
+
const anonymizationResult = this.anonymizeFilename(frame.filename);
|
229
|
+
result.filename = anonymizationResult.anonymizedFilename;
|
230
|
+
anonymizeContent = anonymizationResult.anonymizeContent;
|
231
|
+
}
|
232
|
+
|
233
|
+
if (!anonymizeContent) {
|
234
|
+
result.context_line = frame.context_line;
|
235
|
+
result.pre_context = frame.pre_context;
|
236
|
+
result.post_context = frame.post_context;
|
237
|
+
result.vars = frame.vars;
|
238
|
+
}
|
239
|
+
|
240
|
+
return result;
|
241
|
+
}
|
242
|
+
|
243
|
+
private _anonymizeMnemonic(errorMessage: string): string {
|
244
|
+
const matches = getAllWordMatches(errorMessage);
|
245
|
+
|
246
|
+
// If there are enough consecutive words, there's a good chance of there being a mnemonic phrase
|
247
|
+
if (matches.length < MNEMONIC_PHRASE_LENGTH_THRESHOLD) {
|
248
|
+
return errorMessage;
|
249
|
+
}
|
250
|
+
|
251
|
+
const mnemonicWordlist = ([] as string[]).concat(
|
252
|
+
...[
|
253
|
+
require("ethereum-cryptography/bip39/wordlists/czech"),
|
254
|
+
require("ethereum-cryptography/bip39/wordlists/english"),
|
255
|
+
require("ethereum-cryptography/bip39/wordlists/french"),
|
256
|
+
require("ethereum-cryptography/bip39/wordlists/italian"),
|
257
|
+
require("ethereum-cryptography/bip39/wordlists/japanese"),
|
258
|
+
require("ethereum-cryptography/bip39/wordlists/korean"),
|
259
|
+
require("ethereum-cryptography/bip39/wordlists/simplified-chinese"),
|
260
|
+
require("ethereum-cryptography/bip39/wordlists/spanish"),
|
261
|
+
require("ethereum-cryptography/bip39/wordlists/traditional-chinese"),
|
262
|
+
].map((wordlistModule) => wordlistModule.wordlist)
|
263
|
+
);
|
264
|
+
let anonymizedMessage = errorMessage.slice(0, matches[0].index);
|
265
|
+
|
266
|
+
// Determine all mnemonic phrase maximal fragments.
|
267
|
+
// We check sequences of n consecutive words just in case there is a typo
|
268
|
+
let wordIndex = 0;
|
269
|
+
while (wordIndex < matches.length) {
|
270
|
+
const maximalPhrase = getMaximalMnemonicPhrase(
|
271
|
+
matches,
|
272
|
+
errorMessage,
|
273
|
+
wordIndex,
|
274
|
+
mnemonicWordlist
|
275
|
+
);
|
276
|
+
|
277
|
+
if (maximalPhrase.length >= MINIMUM_AMOUNT_OF_WORDS_TO_ANONYMIZE) {
|
278
|
+
const lastAnonymizedWord = maximalPhrase[maximalPhrase.length - 1];
|
279
|
+
const nextWordIndex =
|
280
|
+
wordIndex + maximalPhrase.length < matches.length
|
281
|
+
? matches[wordIndex + maximalPhrase.length].index
|
282
|
+
: errorMessage.length;
|
283
|
+
const sliceUntilNextWord = errorMessage.slice(
|
284
|
+
lastAnonymizedWord.index + lastAnonymizedWord.word.length,
|
285
|
+
nextWordIndex
|
286
|
+
);
|
287
|
+
anonymizedMessage += `${ANONYMIZED_MNEMONIC}${sliceUntilNextWord}`;
|
288
|
+
wordIndex += maximalPhrase.length;
|
289
|
+
} else {
|
290
|
+
const thisWord = matches[wordIndex];
|
291
|
+
const nextWordIndex =
|
292
|
+
wordIndex + 1 < matches.length
|
293
|
+
? matches[wordIndex + 1].index
|
294
|
+
: errorMessage.length;
|
295
|
+
const sliceUntilNextWord = errorMessage.slice(
|
296
|
+
thisWord.index,
|
297
|
+
nextWordIndex
|
298
|
+
);
|
299
|
+
anonymizedMessage += sliceUntilNextWord;
|
300
|
+
wordIndex++;
|
301
|
+
}
|
302
|
+
}
|
303
|
+
|
304
|
+
return anonymizedMessage;
|
305
|
+
}
|
306
|
+
}
|
307
|
+
|
308
|
+
function getMaximalMnemonicPhrase(
|
309
|
+
matches: WordMatch[],
|
310
|
+
originalMessage: string,
|
311
|
+
startIndex: number,
|
312
|
+
mnemonicWordlist: string[]
|
313
|
+
): WordMatch[] {
|
314
|
+
const maximalPhrase: WordMatch[] = [];
|
315
|
+
for (let i = startIndex; i < matches.length; i++) {
|
316
|
+
const thisMatch = matches[i];
|
317
|
+
if (!mnemonicWordlist.includes(thisMatch.word)) {
|
318
|
+
break;
|
319
|
+
}
|
320
|
+
|
321
|
+
if (maximalPhrase.length > 0) {
|
322
|
+
// Check that there's only whitespace until this word.
|
323
|
+
const lastMatch = maximalPhrase[maximalPhrase.length - 1];
|
324
|
+
const lastIndex = lastMatch.index + lastMatch.word.length;
|
325
|
+
const sliceBetweenWords = originalMessage.slice(
|
326
|
+
lastIndex,
|
327
|
+
thisMatch.index
|
328
|
+
);
|
329
|
+
if (!/\s+/u.test(sliceBetweenWords)) {
|
330
|
+
break;
|
331
|
+
}
|
332
|
+
}
|
333
|
+
|
334
|
+
maximalPhrase.push(thisMatch);
|
335
|
+
}
|
336
|
+
return maximalPhrase;
|
337
|
+
}
|
338
|
+
|
339
|
+
function getAllWordMatches(errorMessage: string) {
|
340
|
+
const matches: WordMatch[] = [];
|
341
|
+
const re = /\p{Letter}+/gu;
|
342
|
+
let match = re.exec(errorMessage);
|
343
|
+
while (match !== null) {
|
344
|
+
matches.push({
|
345
|
+
word: match[0],
|
346
|
+
index: match.index,
|
347
|
+
});
|
348
|
+
match = re.exec(errorMessage);
|
349
|
+
}
|
350
|
+
return matches;
|
351
|
+
}
|
@@ -0,0 +1,173 @@
|
|
1
|
+
import {
|
2
|
+
HardhatError,
|
3
|
+
HardhatPluginError,
|
4
|
+
NomicLabsHardhatPluginError,
|
5
|
+
} from "../core/errors";
|
6
|
+
import { isLocalDev } from "../core/execution-mode";
|
7
|
+
import { ProviderError } from "../core/providers/errors";
|
8
|
+
import { isRunningOnCiServer } from "../util/ci-detection";
|
9
|
+
import { hasConsentedTelemetry } from "../util/global-dir";
|
10
|
+
import { getHardhatVersion } from "../util/packageInfo";
|
11
|
+
|
12
|
+
import { getSubprocessTransport } from "./transport";
|
13
|
+
|
14
|
+
export const SENTRY_DSN =
|
15
|
+
"https://38ba58bb85fa409e9bb7f50d2c419bc2@o385026.ingest.sentry.io/5224869";
|
16
|
+
|
17
|
+
/**
|
18
|
+
* This class acts as a global singleton for reporting errors through Sentry.
|
19
|
+
*/
|
20
|
+
export class Reporter {
|
21
|
+
public static reportError(error: Error) {
|
22
|
+
const instance = Reporter._getInstance();
|
23
|
+
|
24
|
+
if (!instance.enabled) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
|
28
|
+
if (!Reporter.shouldReport(error)) {
|
29
|
+
return;
|
30
|
+
}
|
31
|
+
|
32
|
+
instance.init();
|
33
|
+
|
34
|
+
const Sentry = require("@sentry/node");
|
35
|
+
Sentry.setExtra("verbose", instance.verbose);
|
36
|
+
Sentry.setExtra("configPath", instance.configPath);
|
37
|
+
Sentry.setExtra("nodeVersion", process.version);
|
38
|
+
|
39
|
+
const hardhatVersion = getHardhatVersion();
|
40
|
+
Sentry.setExtra("hardhatVersion", hardhatVersion);
|
41
|
+
|
42
|
+
Sentry.captureException(error);
|
43
|
+
|
44
|
+
return true;
|
45
|
+
}
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Enable or disable reporting. When disabled, all calls to `reportError` are
|
49
|
+
* no-ops.
|
50
|
+
*/
|
51
|
+
public static setEnabled(enabled: boolean) {
|
52
|
+
const instance = Reporter._getInstance();
|
53
|
+
instance.enabled = enabled;
|
54
|
+
}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Enable or disable verbose output. This is necessary to pass the correct
|
58
|
+
* environment variable to the transport subprocess.
|
59
|
+
*/
|
60
|
+
public static setVerbose(verbose: boolean) {
|
61
|
+
const instance = Reporter._getInstance();
|
62
|
+
instance.verbose = verbose;
|
63
|
+
}
|
64
|
+
|
65
|
+
/**
|
66
|
+
* The path to the hardhat config file. We use this when files are anonymized,
|
67
|
+
* since the hardhat config is the only file in the user's project that is not
|
68
|
+
* anonymized.
|
69
|
+
*/
|
70
|
+
public static setConfigPath(configPath: string) {
|
71
|
+
const instance = Reporter._getInstance();
|
72
|
+
instance.configPath = configPath;
|
73
|
+
}
|
74
|
+
|
75
|
+
/**
|
76
|
+
* Wait until all Sentry events were sent or until `timeout` milliseconds are
|
77
|
+
* elapsed.
|
78
|
+
*
|
79
|
+
* This needs to be used before calling `process.exit`, otherwise some events
|
80
|
+
* might get lost.
|
81
|
+
*/
|
82
|
+
public static async close(timeout: number): Promise<boolean> {
|
83
|
+
const instance = Reporter._getInstance();
|
84
|
+
if (!instance.enabled || !instance.initialized) {
|
85
|
+
return true;
|
86
|
+
}
|
87
|
+
|
88
|
+
const Sentry = await import("@sentry/node");
|
89
|
+
return Sentry.close(timeout);
|
90
|
+
}
|
91
|
+
|
92
|
+
public static shouldReport(error: Error): boolean {
|
93
|
+
if (
|
94
|
+
HardhatError.isHardhatError(error) &&
|
95
|
+
!error.errorDescriptor.shouldBeReported
|
96
|
+
) {
|
97
|
+
return false;
|
98
|
+
}
|
99
|
+
|
100
|
+
if (HardhatPluginError.isHardhatPluginError(error)) {
|
101
|
+
if (NomicLabsHardhatPluginError.isNomicLabsHardhatPluginError(error)) {
|
102
|
+
return error.shouldBeReported;
|
103
|
+
}
|
104
|
+
|
105
|
+
// don't log errors from third-party plugins
|
106
|
+
return false;
|
107
|
+
}
|
108
|
+
|
109
|
+
// We don't report network related errors
|
110
|
+
if (error instanceof ProviderError) {
|
111
|
+
return false;
|
112
|
+
}
|
113
|
+
|
114
|
+
if (!Reporter._hasTelemetryConsent()) {
|
115
|
+
return false;
|
116
|
+
}
|
117
|
+
|
118
|
+
return true;
|
119
|
+
}
|
120
|
+
|
121
|
+
private static _instance: Reporter;
|
122
|
+
|
123
|
+
private static _getInstance(): Reporter {
|
124
|
+
if (this._instance === undefined) {
|
125
|
+
this._instance = new Reporter();
|
126
|
+
}
|
127
|
+
|
128
|
+
return this._instance;
|
129
|
+
}
|
130
|
+
|
131
|
+
private static _hasTelemetryConsent(): boolean {
|
132
|
+
const telemetryConsent = hasConsentedTelemetry();
|
133
|
+
|
134
|
+
return telemetryConsent === true;
|
135
|
+
}
|
136
|
+
|
137
|
+
public enabled: boolean;
|
138
|
+
public initialized = false;
|
139
|
+
public verbose = false;
|
140
|
+
public configPath?: string;
|
141
|
+
|
142
|
+
private constructor() {
|
143
|
+
this.enabled = true;
|
144
|
+
if (isRunningOnCiServer()) {
|
145
|
+
this.enabled = false;
|
146
|
+
}
|
147
|
+
|
148
|
+
// set HARDHAT_ENABLE_SENTRY=true to enable sentry during development (for local testing)
|
149
|
+
if (isLocalDev() && process.env.HARDHAT_ENABLE_SENTRY === undefined) {
|
150
|
+
this.enabled = false;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
public init() {
|
155
|
+
if (this.initialized) {
|
156
|
+
return;
|
157
|
+
}
|
158
|
+
|
159
|
+
const Sentry = require("@sentry/node");
|
160
|
+
|
161
|
+
const linkedErrorsIntegration = new Sentry.Integrations.LinkedErrors({
|
162
|
+
key: "parent",
|
163
|
+
});
|
164
|
+
|
165
|
+
Sentry.init({
|
166
|
+
dsn: SENTRY_DSN,
|
167
|
+
transport: getSubprocessTransport(),
|
168
|
+
integrations: () => [linkedErrorsIntegration],
|
169
|
+
});
|
170
|
+
|
171
|
+
this.initialized = true;
|
172
|
+
}
|
173
|
+
}
|
@@ -0,0 +1,76 @@
|
|
1
|
+
import * as Sentry from "@sentry/node";
|
2
|
+
import debug from "debug";
|
3
|
+
|
4
|
+
import { Anonymizer } from "./anonymizer";
|
5
|
+
import { SENTRY_DSN } from "./reporter";
|
6
|
+
|
7
|
+
const log = debug("hardhat:sentry:subprocess");
|
8
|
+
|
9
|
+
async function main() {
|
10
|
+
const verbose = process.env.HARDHAT_SENTRY_VERBOSE === "true";
|
11
|
+
|
12
|
+
if (verbose) {
|
13
|
+
debug.enable("hardhat*");
|
14
|
+
}
|
15
|
+
|
16
|
+
log("starting subprocess");
|
17
|
+
|
18
|
+
try {
|
19
|
+
Sentry.init({
|
20
|
+
dsn: SENTRY_DSN,
|
21
|
+
});
|
22
|
+
} catch (error) {
|
23
|
+
log("Couldn't initialize Sentry: %O", error);
|
24
|
+
process.exit(1);
|
25
|
+
}
|
26
|
+
|
27
|
+
const serializedEvent = process.env.HARDHAT_SENTRY_EVENT;
|
28
|
+
if (serializedEvent === undefined) {
|
29
|
+
log("HARDHAT_SENTRY_EVENT env variable is not set, exiting");
|
30
|
+
Sentry.captureMessage(
|
31
|
+
`There was an error parsing an event: HARDHAT_SENTRY_EVENT env variable is not set`
|
32
|
+
);
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
|
36
|
+
let event: any;
|
37
|
+
try {
|
38
|
+
event = JSON.parse(serializedEvent);
|
39
|
+
} catch {
|
40
|
+
log(
|
41
|
+
"HARDHAT_SENTRY_EVENT env variable doesn't have a valid JSON, exiting: %o",
|
42
|
+
serializedEvent
|
43
|
+
);
|
44
|
+
Sentry.captureMessage(
|
45
|
+
`There was an error parsing an event: HARDHAT_SENTRY_EVENT env variable doesn't have a valid JSON`
|
46
|
+
);
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
|
50
|
+
try {
|
51
|
+
const configPath = process.env.HARDHAT_SENTRY_CONFIG_PATH;
|
52
|
+
|
53
|
+
const anonymizer = new Anonymizer(configPath);
|
54
|
+
const anonymizedEvent = anonymizer.anonymize(event);
|
55
|
+
|
56
|
+
if (anonymizedEvent.isRight()) {
|
57
|
+
if (anonymizer.raisedByHardhat(anonymizedEvent.value)) {
|
58
|
+
Sentry.captureEvent(anonymizedEvent.value);
|
59
|
+
}
|
60
|
+
} else {
|
61
|
+
Sentry.captureMessage(
|
62
|
+
`There was an error anonymizing an event: ${anonymizedEvent.value}`
|
63
|
+
);
|
64
|
+
}
|
65
|
+
} catch (error: any) {
|
66
|
+
log("Couldn't capture event %o, got error %O", event, error);
|
67
|
+
Sentry.captureMessage(
|
68
|
+
`There was an error capturing an event: ${error.message}`
|
69
|
+
);
|
70
|
+
return;
|
71
|
+
}
|
72
|
+
|
73
|
+
log("sentry event was sent");
|
74
|
+
}
|
75
|
+
|
76
|
+
main().catch(console.error);
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import type { Event, Response } from "@sentry/node";
|
2
|
+
import { spawn } from "child_process";
|
3
|
+
import * as path from "path";
|
4
|
+
|
5
|
+
// This class is wrapped in a function to avoid having to
|
6
|
+
// import @sentry/node just for the BaseTransport base class
|
7
|
+
export function getSubprocessTransport(): any {
|
8
|
+
const { Status, Transports } = require("@sentry/node");
|
9
|
+
|
10
|
+
class SubprocessTransport extends Transports.BaseTransport {
|
11
|
+
public async sendEvent(event: Event): Promise<Response> {
|
12
|
+
const extra: { verbose?: boolean; configPath?: string } =
|
13
|
+
event.extra ?? {};
|
14
|
+
const { verbose = false, configPath } = extra;
|
15
|
+
|
16
|
+
// don't send user's full config path for privacy reasons
|
17
|
+
delete event.extra?.configPath;
|
18
|
+
|
19
|
+
// we don't care about the verbose setting
|
20
|
+
delete event.extra?.verbose;
|
21
|
+
|
22
|
+
const serializedEvent = JSON.stringify(event);
|
23
|
+
|
24
|
+
const env: Record<string, string> = {
|
25
|
+
HARDHAT_SENTRY_EVENT: serializedEvent,
|
26
|
+
HARDHAT_SENTRY_VERBOSE: verbose.toString(),
|
27
|
+
};
|
28
|
+
|
29
|
+
if (configPath !== undefined) {
|
30
|
+
env.HARDHAT_SENTRY_CONFIG_PATH = configPath;
|
31
|
+
}
|
32
|
+
|
33
|
+
const subprocessPath = path.join(__dirname, "subprocess");
|
34
|
+
|
35
|
+
const subprocess = spawn(process.execPath, [subprocessPath], {
|
36
|
+
detached: true,
|
37
|
+
env,
|
38
|
+
stdio: (verbose ? "inherit" : "ignore") as any,
|
39
|
+
});
|
40
|
+
|
41
|
+
subprocess.unref();
|
42
|
+
|
43
|
+
return {
|
44
|
+
status: Status.Success,
|
45
|
+
};
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
return SubprocessTransport;
|
50
|
+
}
|