Понимание назначения функции "force_chain" в Ston.fi Основной контракт
-
В Ston.fi основной контрактный репозиторий GitHub (https://github.com/ston-fi/dex-core), есть строка функционального кода, как показано ниже:
force_chain(РАБОЧАЯ ЦЕПОЧКА, sender_address, WRONG_WORKCHAIN);
Почему эта функция используется для ограничения рабочей цепочки?
-
В общем, если мы будем следовать коду в
common/utils.func
(https://github.com/ston-fi/dex-core/blob/main/contracts/common/utils.func), мы получим следующий код:() force_chain(int workchain, slice address, int error_code) impure inline { (int wc) = get_workchain(address); throw_unless(error_code, wc == workchain); }
Насколько мне известно, эта функция гарантирует, что код контракта выполняется только в определенной рабочей цепочке. Поскольку TVM - это конструкция, основанная на нескольких цепочках, то есть на сегментной цепочке, на данный момент она ограничена только одной боковой цепочкой. Я не уверен в том, как мы можем расширить эту тему.
Для получения дополнительной информации вы можете проверить: