Доступ к хранилищу вызывающего контракта в библиотеке

Мне нужно понять, как можно получить доступ к хранилищу вызывающего контракта из кода библиотеки. Из руководства по твердости:

  

Это означает, что, если вызываются библиотечные функции, их код выполняется в контексте вызывающего контракта, то есть это указывает на вызывающий контракт и, в частности, доступ к хранилищу из вызывающего контракта.

Итак, я пытаюсь скомпилировать эту простую тестовую библиотеку:

library Test_Lib {
    function test_function()
    public
    returns (bool)
    {
        return (this.owner.send(this.balance));
    }
}

Но я получаю следующую ошибку:

  

Ошибка: член «владелец» не найден или не отображается после зависимого от аргумента поиска в библиотеке Test_Lib

Где я ошибаюсь?

6 голосов | спросил Sun78 5 J000000Tuesday16 2016, 15:41:39

1 ответ


3

Если вы думаете об этом, библиотека не может знать имена переменных вызывающего контракта. Компилятор должен выйти из строя. Что вы можете сделать, это передать переменную через интерфейс. В фоновом режиме никаких транзакционных вызовов не требуется, и параметр может передаваться по ссылке вместо значения-значения ...

ответил Roland Kofler 5 J000000Tuesday16 2016, 16:30:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132