Sepolia测试网MetaMask钱包余额查询函数返回0问题求助
问题原因与解决方案
你的函数返回0是因为**address(this).balance获取的是智能合约自身的ETH余额**,而非你的MetaMask钱包余额。如果合约从未接收过ETH,自然会返回0。
解决方案1:获取调用函数的MetaMask钱包余额
修改函数,使用msg.sender获取当前调用者(即你的MetaMask钱包)的地址,再读取其余额:
function getBalance() external view onlyOwner returns (uint256) { return msg.sender.balance; }
解决方案2:获取指定钱包地址的余额
如果需要灵活查询任意钱包的余额,可以给函数添加地址参数:
function getBalance(address _targetWallet) external view onlyOwner returns (uint256) { return _targetWallet.balance; }
调用时传入你的MetaMask钱包地址即可返回对应余额。
内容的提问来源于stack exchange,提问作者turki
相关产品推荐
相关产品推荐

