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
相关产品推荐
相关产品推荐

