Зависимости внутри контрактов
Чтобы убедиться в детерминистском подходе к разработке контракта, во время регистрации контракта в DEX модуле мы просим разработчиков указывать какие еще зависимости есть в их контрактах. Контракт А считается зависимым от контракта В, если ответе на любой из вызовов контракта А могут содержаться данные о выставленных/отмененных ордерах в контракте В. Например, бессрочному фьючерсному контракту может понадобиться размещение ордеров в другом спотовом контракте во время внутреннего процесса размещения заявки, чтобы выполнить условия хеджирования при помощи покупки/продажи базового актива. В этом случае в бессрочном контракте должно присутствовать описание зависимости от спотового контракта. Синтаксис командной строки для регистрации такого контракта с зависимостями должен быть следующим:
В приведенном выше примере бессрочного/спотового контрактов, предполагается, что если адрес бессрочного контракта sei14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9sh9m79m
, а адрес спотового контракта sei1fzm6gzyccl8jvdv3qq6hp9vs6ylaruervs4m06c7k0ntzn2f8faq8un0p6
, то командная строка с информацией о регистрации контракта будет выглядеть следующим образом:
Обратите внимание, что регистрация контракта является операцией вида UPSERT (UPDATE or INSERT), поэтому регистрация одного и того же контракта несколько раз будет только обновлять регистрационную информацию.
Замыкание зависимостей
Замыкание зависимостей контрактов недопустимо и контракты, содержащие такие зависимости, будут отклоняться на этапе регистрации. Например, контракт А уже зарегистрировал наличие зависимости от контракта В, тогда регистрация контракта В, в котором содержаться зависимости от контракта А будет отклонена.
Last updated