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

TypeScript部署Rinkeby测试网Solidity代币合约报blockConfirmations读取错误

TypeScript部署Rinkeby网络合约读取blockConfirmations报错修复

报错核心原因是networkConfig[network.name]取值为undefined,代码尝试在undefined值上读取blockConfirmations属性触发类型错误,本质是当前运行环境识别到的网络,没有在networkConfig配置中找到对应匹配项。

排查步骤

  • 先确认当前脚本识别到的真实网络名称:在部署脚本头部加入打印语句console.log("当前网络标识:", network.name),执行部署命令查看输出值。常见问题包括:Rinkeby测试网已在2022年10月正式废弃,多数新版Hardhat脚手架默认配置已经移除Rinkeby相关条目;hardhat配置文件中定义的网络name字段和你预想的不一致,存在大小写、拼写偏差。
  • 核对networkConfig配置对象的键名:确保配置里的键和上一步打印出来的网络名完全一致,比如配置里写的是全小写rinkeby,但实际网络名是首字母大写的Rinkeby就会匹配失败。
  • 检查networkConfig的导入语句:确认导入路径正确、导入的变量名拼写无误,若导入失败拿到空值也会触发同类报错。

修复方案

  1. 给配置读取逻辑增加可选链兜底,避免配置缺失时直接中断运行,替换原代码中waitConfirmations字段的取值逻辑:
waitConfirmations: networkConfig[network.name]?.blockConfirmations || 1,
  1. 补全networkConfig中对应网络的配置项,参考示例:
// networkConfig一般存放在helper-hardhat-config.ts这类公共配置文件中
const networkConfig = {
  // 键名必须和hardhat.config中定义的网络name完全一致
  rinkeby: {
    blockConfirmations: 6,
    // 其余业务需要的配置项
  },
  sepolia: {
    blockConfirmations: 6,
  },
  hardhat: {
    blockConfirmations: 1,
  }
}

注意:Rinkeby测试网早已停止运行,官方已不提供出块、节点服务支持,建议迁移到Sepolia测试网进行合约调试,避免后续遇到节点连接、浏览器验证失败等网络层面的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:24:22