我作为所有者发送了一些代币 TESTTOKEN 到代币地址。 我有点困惑如何检查代币合约本身而不是所有者的代币余额。
contract ERC20 {
function totalSupply() public constant returns (uint);
function balanceOf(address tokenOwner) public constant returns (uint balance);
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
mycontract TESTTOKEN.. {
如果我在令牌本身中获取 ERC-20 令牌的实例,我如何在这里检查余额?
我应该使用函数 address(this).balance 还是它返回 eth 而不是令牌,我对此感到困惑。
答案 0 :(得分:0)
您的 balanceOf(address)
方法很可能是 mapping(address => uint256)
属性的 getter,该属性可能名为 balances
。
所以要得到这个THETOKEN
合约的THETOKEN
代币余额(不是ETH余额),你需要得到balances[address(this)]
的价值。 >
function getThisAddressTokenBalance() public view returns (uint256) {
return balances[address(this)];
}