You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行npx hardhat test对接Moralis分叉测试网时出现HH110未授权报错

报错解决方案

核心原因

你遇到的HardhatError: HH110: Invalid JSON-RPC response received: {"error":"unauthorized"}报错,根源是Hardhat配置文件中网络字段的RPC地址填写错误:你填入的是Moralis Dapp的Server URL,该地址仅用于对接Moralis SDK,不支持Hardhat原生的JSON-RPC链上交互请求,因此返回未授权错误。

修复步骤

  • 第一步:修正hardhat.config.js的网络配置
    把kovan和local网络的url替换为对应网络的JSON-RPC端点:

    • Kovan网络可以直接使用你测试脚本中已有的Moralis Speedy Nodes地址
    • 本地分叉网络的RPC地址填写你启动Moralis本地分叉时终端输出的地址(默认一般为http://localhost:8545)
      修正后的配置参考如下:
    module.exports = {
      solidity: "0.8.4",
      networks: {
        kovan: {
          url: "https://speedy-nodes-nyc.moralis.io/6ee15640b2e5107f0e110d0e/eth/kovan",
          accounts: ["你的私钥,请注意不要泄露"]
        },
        local: {
          url: "http://localhost:8545", // 替换为你实际的本地分叉RPC地址
          accounts: ["你的私钥,请注意不要泄露"]
        }
      },
      etherscan: {
        apiKey: "你的Etherscan ApiKey"
      }
    };
    

    注意:你当前公开的账户私钥已经泄露,请立即更换该私钥,不要在任何主网/测试网环境下继续使用该地址,避免资产损失

  • 第二步:清理测试脚本冗余代码
    你测试脚本中已经通过Hardhat导入了ethers实例,Hardhat会自动根据你运行命令时指定的--network参数加载对应网络的provider,不需要额外初始化新的JsonRpcProvider,重复定义会导致网络配置冲突。请删除测试脚本中以下三行冗余代码:

    const NODE_URL = "https://speedy-nodes-nyc.moralis.io/6ee15640b2e5107f0e110d0e/eth/kovan";
    const provider = new ethers.providers.JsonRpcProvider(NODE_URL);
    const signer = provider.getSigner();
    

    如果你需要使用signer,可直接通过Hardhat的ethers实例获取:const [signer] = await ethers.getSigners()

  • 第三步:核对节点访问权限
    确认你使用的Speedy Nodes地址是你Moralis后台生成的有效地址,如果你开启了节点的IP白名单限制,需要把你运行测试的设备公网IP加入白名单,否则也会触发未授权报错。

  • 第四步:验证配置与运行测试
    先执行npx hardhat accounts --network kovan验证配置是否正常,无报错后再执行npx hardhat test --network kovan或对应本地网络的测试命令。

内容的提问来源于stack exchange,提问作者VGabriel45

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:15:02