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

如何通过Truffle Console调用另一合约内部实例化合约的方法

问题原因

你直接调用instance.token.balanceOf报错的核心原因是:Truffle 生成的合约实例中,public 修饰的状态变量默认暴露的是取值方法,不会直接返回封装好的子合约实例,你拿到的instance.token本质是token()这个getter方法的引用,本身没有任何合约方法。

正确操作步骤

按以下顺序在Truffle Console执行命令即可:

  • 第一步:获取已部署的MyCoinDEX实例
let dexInstance = await MyCoinDEX.deployed()
  • 第二步:调用token()方法获取DEX内部实例化的Token合约地址
let tokenAddress = await dexInstance.token()
  • 第三步:用拿到的地址生成MyCoinSupply合约的Truffle调用实例
let tokenInstance = await MyCoinSupply.at(tokenAddress)
  • 第四步:直接调用token实例的方法即可
await tokenInstance.balanceOf("0xE1994C1054f9c4171B8ae9a7E7a68F404c2bF829")
补充说明

如果你只需要调用ERC20标准接口的方法,也可以用IERC20的artifact替代MyCoinSupply来构造实例,前提是你已经在truffle配置中导入了IERC20的合约文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:54:07