所以这是我与hardhat的第一次交互。我使用npx hardhat
创建了一个示例项目,但出于某种原因,当我尝试运行:时
npx hardhat test
我得到以下错误:
Error HH502: Couldn't download compiler versions list. Please check your connection.
堆栈跟踪中出现以下错误:
Caused by: FetchError: request to https://binaries.soliditylang.org/windows-amd64/list.json failed, reason: getaddrinfo EAI_AGAIN binaries.soliditylang.org
所以我试着用Chrome浏览binaries.soliditylang.org,发现我得到了net::ERR_NAME_NOT_RESOLVED
。
(即使当我试图导航到docs.soliditylang.org时,我也会遇到这个错误(
我知道这与DNS有关,但我不知道如何解决它。
我遇到了类似的问题。然而,对我来说,hardhat无法下载公司代理后面的编译器版本列表。尝试了很多东西。运气不好。经过大量的尝试和错误,我们找到了一种方法来完成这项工作。下载list.json
并将其本地保持在CCD_ 4(窗口(。此外,从https://github.com/ethereum/solidity/releases
下载适用于windows的solidity编译器可执行文件(必需版本(,并将其放在上面提到的同一文件夹中。现在,仔细阅读list.json
并为感兴趣的solc编译器版本识别对象。将可执行文件重命名为该对象中path
中给定的长名称。例如,如果您需要solc
版本0.8.0
,则0.8.0
版本的list.json
中的path
为solc-windows-amd64-v0.8.4+commit.c7e474f2.exe
。使用此选项可以重命名下载的可执行文件。现在,运行npm test
。这应该可以解决问题。
还有一种有趣的方法可以在windows上的docker中运行编译器。为此,请关注此处的讨论-https://github.com/NomicFoundation/hardhat/issues/1280
使用将.env文件添加到项目的根目录
HTTPS_PROXY = ...
在中解决https://github.com/NomicFoundation/hardhat/pull/1291
必须首先使用sudo chmod -R 777 /Users/<username>/Library/Caches/hardhat-nodejs
。