我怎样才能找到一个地址的代币余额?
How can I find out the token balance of an address?
我使用的合同来自:https://bscscan.com/address/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c#readContract
我看到它有一个 public 变量,它是:
mapping (address => uint) public balanceOf;
我正在尝试调用我的合同,但我不太清楚如何使用它,是通过接口还是以什么方式使用
contract checkBalanceOf {
mapping (address => uint) public balanceOf;
function balanceOf() public returns (uint256) {
address ERC20Address = targetInterface(0x18895B2a605CdAb301482d8F96E59FaDc17964C3);
return ERC20Address.balanceOf(bankAddress);
}
我试图应用这个答案的逻辑,但不同的是,这个答案没有 public 函数
为了检查 bankAddress
拥有多少 WBNB,并从您自己的合约中执行检查,您的合约需要:
- 在接口中定义
balanceOf()
函数
- 实例化指向
WBNB
合约地址的接口
- 调用
WBNB
函数 balanceOf()
将其传递给 bankAddress
- 推荐: 将调用包装在
view
函数中,以便在某些客户端应用程序中默认使用调用,而不是事务。
pragma solidity ^0.8;
interface IBEP20 {
// mind the `view` modifier
function balanceOf(address _owner) external view returns (uint256);
}
contract checkBalanceOf {
address bankAddress = address(0x123);
// mind the `view` modifier
function balanceOf() external view returns (uint256) {
// creating a pointer to the WBNB contract
IBEP20 WBNBContract = IBEP20(0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c);
// getting balance of `bankAddress` on the WBNB contract
return WBNBContract.balanceOf(bankAddress);
}
}
我使用的合同来自:https://bscscan.com/address/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c#readContract
我看到它有一个 public 变量,它是:
mapping (address => uint) public balanceOf;
我正在尝试调用我的合同,但我不太清楚如何使用它,是通过接口还是以什么方式使用
contract checkBalanceOf {
mapping (address => uint) public balanceOf;
function balanceOf() public returns (uint256) {
address ERC20Address = targetInterface(0x18895B2a605CdAb301482d8F96E59FaDc17964C3);
return ERC20Address.balanceOf(bankAddress);
}
我试图应用这个答案的逻辑,但不同的是,这个答案没有 public 函数
为了检查 bankAddress
拥有多少 WBNB,并从您自己的合约中执行检查,您的合约需要:
- 在接口中定义
balanceOf()
函数 - 实例化指向
WBNB
合约地址的接口 - 调用
WBNB
函数balanceOf()
将其传递给bankAddress
- 推荐: 将调用包装在
view
函数中,以便在某些客户端应用程序中默认使用调用,而不是事务。
pragma solidity ^0.8;
interface IBEP20 {
// mind the `view` modifier
function balanceOf(address _owner) external view returns (uint256);
}
contract checkBalanceOf {
address bankAddress = address(0x123);
// mind the `view` modifier
function balanceOf() external view returns (uint256) {
// creating a pointer to the WBNB contract
IBEP20 WBNBContract = IBEP20(0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c);
// getting balance of `bankAddress` on the WBNB contract
return WBNBContract.balanceOf(bankAddress);
}
}