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

Remix中调用SeeBalance函数无法查看合约Token余额求助

问题排查与修复

核心问题:SeeBalance函数无返回值

你的SeeBalance函数仅调用了balanceOf方法,但没有返回结果,所以调用后解码输出为空。Solidity的view函数如果要返回数据,必须显式声明返回类型并使用return语句。

修复后的SeeBalance函数

function SeeBalance(IERC20 token) public view returns (uint256) {
   return IERC20(token).balanceOf(address(this));
}

额外潜在问题提示

  • 构造函数赋值错误:构造函数里的owner == msg.sender是比较操作,不是赋值,应改为owner = msg.sender;,否则owner会保持默认的address(0),导致transferIERC20函数永远无法被正常调用。
  • swapExactInputMultihop逻辑风险:当前函数先调用transfer将用户的SHUBYDAI转入合约,但若用户未提前给合约授权,该操作会失败。建议改为让用户先调用ERC20的approve方法授权合约,或使用transferFrom替代transfer。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:55:18