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

Maticmum网络ENS不支持错误排查:众筹DApp开发问题

错误原因分析

这个错误的核心原因是:调用e.args.campaignAddress.toString()时,ethers.js默认尝试对地址执行ENS反向解析,但Polygon Mumbai(maticmum)测试网并不支持ENS服务。

你使用的ethers.js providers/5.5.3版本中,Address类型的toString()方法会自动触发ENS反向解析逻辑,试图将合约地址转换为对应的域名。但Mumbai测试网既没有部署ENS合约,也没有相关解析服务,因此直接抛出UNSUPPORTED_OPERATION错误。

解决办法

不要用toString()方法获取地址字符串,改用以下方式直接获取原始十六进制地址(跳过ENS解析):

  1. 使用地址对象的address属性:
address: e.args.campaignAddress.address
  1. 用ethers.utils.getAddress()方法(同时验证地址格式合法性):
address: ethers.utils.getAddress(e.args.campaignAddress)
  1. 直接强制转换为字符串:
address: `${e.args.campaignAddress}`

修改后的getStaticPaths代码示例:

export async function getStaticPaths(){
    const provider=new ethers.providers.JsonRpcProvider(AlchemyProvider);
    const contract=new ethers.Contract(contractAddress, CampaignFactory.abi, provider);
    const getAllCampaigns=contract.filters.createdCampaign();
    const allCampaigns=await contract.queryFilter(getAllCampaigns);
    
    return{
        paths: allCampaigns.map((e)=>({
            params:{
                address: ethers.utils.getAddress(e.args.campaignAddress)
            }
        })),
        fallback:true
    }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:04:56