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

使用ethers.getContract获取已部署合约报错求助

问题解决:ethers.getContract 报错 "No Contract deployed with name [地址]"
  • 错误原因:你误用了ethers.getContract的参数逻辑。该方法第一个参数是项目中编译后的合约名称(从artifacts文件读取),而非合约地址;第二个参数是签名者/提供者实例,不是合约创建者地址。你把合约地址当作名称传入,自然找不到匹配的合约记录。

  • 正确调用方式二选一:

    1. 直接通过ABI和地址初始化合约(通用场景):
      // 替换为你的合约ABI内容
      const contractAbi = [/* 合约ABI数组 */];
      // signer可以是ethers.provider或钱包实例,根据你的交互需求选择
      const deployedContract = new ethers.Contract(
          "0x33F4623337b8F9EDc9529a79F0d68B2BeC98d5E2",
          contractAbi,
          signer
      );
      
    2. 基于Hardhat/Truffle框架的合约名称调用(项目内已编译合约):
      // 替换为你的合约编译名称,比如"MyToken"
      const deployedContract = await ethers.getContract(
          "YourContractName",
          "0x33F4623337b8F9EDc9529a79F0d68B2BeC98d5E2"
      );
      
  • 额外验证点:确保你的ethers提供者已正确连接到Goerli测试网,否则即使地址和ABI正确也无法正常交互。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:25:17