我将主令牌之外的令牌变量存储在一个名为Storage
的合约中,因此,需要从不同的合同中访问公开声明的变量的自动生成的getter。他们被宣布。
contract Storage {
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;
}
contract TokenA {
address public storageAddress;
function getAllowance(address _owner, address _spender) public returns (uint256) {
return Storage(storageAddress). allowance( /** ? */);
}
}
如果没有在合同allowance
中明确定义getter,我如何访问变量Storage
?
答案 0 :(得分:1)
您只需要将其传递,就像调用函数一样:
function getAllowance(address _owner, address _spender) public view returns (uint256) {
Storage s = Storage(storageAddress);
return s.allowance(_owner, _sender);
}
小心订单。您可能需要根据您处理存储的方式进行交换。