通过来自不同合约的自动生成的 getter 访问变量
Access variables through auto-generated getters from a different contract
我将我的代币变量存储在主合约之外的一个名为 Storage
的合约中,因此,需要访问自动生成的公开声明变量的 getters与声明它们的合同不同。
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( /** ? */);
}
}
如果不在合约 Storage
中专门定义 getter,我如何访问变量 allowance
?
你只需要像调用函数一样传入它:
function getAllowance(address _owner, address _spender) public view returns (uint256) {
Storage s = Storage(storageAddress);
return s.allowance(_owner, _sender);
}
注意顺序。根据您处理存储的方式,您可能需要更换它。
我将我的代币变量存储在主合约之外的一个名为 Storage
的合约中,因此,需要访问自动生成的公开声明变量的 getters与声明它们的合同不同。
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( /** ? */);
}
}
如果不在合约 Storage
中专门定义 getter,我如何访问变量 allowance
?
你只需要像调用函数一样传入它:
function getAllowance(address _owner, address _spender) public view returns (uint256) {
Storage s = Storage(storageAddress);
return s.allowance(_owner, _sender);
}
注意顺序。根据您处理存储的方式,您可能需要更换它。