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

求助:用WalletConnect+ethers.js转以太坊自定义代币时Trust Wallet显示异常

自定义代币转账时Trust Wallet误显示ETH的修复方案

问题根源

Trust Wallet无法正确识别自定义代币,核心原因有两个:

  • ethers.utils.parseUnits默认采用ETH的18位小数解析金额,若自定义代币小数位不同,会导致参数异常,钱包无法识别代币类型
  • 代码中存在合约地址拼写错误(contractAdderss),可能导致钱包读取错误的合约信息

具体修复步骤

  • 修正金额解析逻辑
    必须根据代币实际小数位解析金额,先通过合约获取小数位,再传入parseUnits方法:

    const decimals = await contract.decimals();
    const transferAmount = ethers.utils.parseUnits(amount, decimals);
    
  • 修正合约地址拼写
    将代码中的contractAdderss改为正确的contractAddress,确保指向目标代币合约

  • 完整修复代码

    const web3 = new ethers.providers.Web3Provider(ethereumProvider);
    const signer = web3.getSigner();
    const contract = new ethers.Contract(
      contractAddress, // 修正拼写错误
      ABI,
      signer
    );
    // 获取代币小数位
    const decimals = await contract.decimals();
    // 按代币实际小数位解析转账金额
    const transferAmount = ethers.utils.parseUnits(amount, decimals);
    // 执行转账
    const transfer = await contract.transfer(
      walletAddress,
      transferAmount
    );
    
  • 额外验证项

    • 确认合约地址是目标自定义代币的正确地址,而非ETH相关地址
    • 检查WalletConnect连接的链ID与代币所在链完全一致(比如以太坊主网是1,BSC是56)
    • 确保Trust Wallet已添加该代币,或钱包能通过合约地址自动识别代币信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:52:13