Доступ к переменным через автоматически сгенерированные геттеры из другого контракта - PullRequest
0 голосов
/ 07 мая 2018

Я храню переменные моего токена вне основного контракта в контракте с именем Storage и, следовательно, мне нужен доступ к автоматически сгенерированным получателям публично объявленных переменных из контракта, отличного от того, в котором они находятся объявлен.

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 без специального определения геттера внутри контракта Storage?

1 Ответ

0 голосов
/ 08 мая 2018

Вам просто нужно передать его, как если бы вы вызывали функцию:

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

Будьте осторожны с порядком. Возможно, вам придется поменять его в зависимости от того, как вы обрабатываете хранилище.

...