通过来自不同合同的自动生成的getter访问变量

时间:2018-05-07 17:05:46

标签: ethereum getter solidity

我将主令牌之外的令牌变量存储在一个名为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

1 个答案:

答案 0 :(得分:1)

您只需要将其传递,就像调用函数一样:

function getAllowance(address _owner, address _spender) public view returns (uint256) {
    Storage s = Storage(storageAddress);
    return s.allowance(_owner, _sender);
}

小心订单。您可能需要根据您处理存储的方式进行交换。