Hardhat 编译错误“期望 HttpNetworkConfig 类型的值”

Posted

技术标签:

【中文标题】Hardhat 编译错误“期望 HttpNetworkConfig 类型的值”【英文标题】:Hardhat compile error "Expected a value of type HttpNetworkConfig" 【发布时间】:2021-11-17 22:36:35 【问题描述】:

我正在尝试学习 NFT 教程 here。我已经在 Alchemy 上设置了帐户,Metamask 创建了 .sol 文件。我在根目录中有一个 .env 文件,如下所示:

API_URL = "https://eth-ropsten.alchemyapi.io/v2/your-api-key"
PRIVATE_KEY = "your-metamask-private-key"

我的安全帽配置文件如下所示:

/**

* @type import('hardhat/config').HardhatUserConfig

*/

require('dotenv').config();

require("@nomiclabs/hardhat-ethers");

const  API_URL, PRIVATE_KEY  = process.env;

module.exports = 

   solidity: 
      compilers: [
        
          version: "0.5.7"
        ,
        
          version: "0.8.0"
        ,
        
          version: "0.6.12"
        
      ]
    ,

   defaultNetwork: "ropsten",

   networks: 

      hardhat: ,

      ropsten: 

         url: API_KEY,

         accounts: [`0x$PRIVATE_KEY`]

      

   ,


但是,当我尝试编译时,我不断收到此错误:

无效值 "url":"https://eth-ropsten.alchemyapi.io/v2/your-api-key","accounts":["0xyour-metamask-private-key"] 对于 HardhatConfig.networks.ropsten - 需要一个类型的值 HttpNetworkConfig。

我似乎无法弄清楚为什么这不是 HttpNetworkConfig 的有效值。我所拥有的 url 是一个字符串,而 accounts 是一个数组似乎符合 documentation for network configs 中的内容。这是一个编译错误,所以看起来它不是实际的 url 或私钥的问题,但也许我错了。我心甘情愿地承认自己是一个菜鸟,对安全帽、solidity 甚至 js 等只有粗略的了解。任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

原来,问题出在我的私钥上。仔细检查。

【讨论】:

【参考方案2】:

您可能在localhost:8545 工作。 我认为问题在于资产的价值,并且在您的上下文中使用的一些帐户存在于mainnet 上。 要解决这个问题,你需要hardforkmainnet到你的本地。

请查看本指南。 https://hardhat.org/hardhat-network/guides/mainnet-forking.html

【讨论】:

以上是关于Hardhat 编译错误“期望 HttpNetworkConfig 类型的值”的主要内容,如果未能解决你的问题,请参考以下文章

智能合约开发 基于Hardhat(实操)

hardhat同时编译不同版本的智能合约

Hardhat 获取合约编译后的文件大小

第145篇 Hardhat 开发环境

错误 HH12:尝试使用不支持的非本地安装的 Hardhat。请使用 npm 或 Yarn 在本地安装 Hardhat,然后重试

在 Moralis 分叉测试网上运行 npx hardhat test --network local 或 npx hardhat test --network kovan 时出现未经授权的错误