> For the complete documentation index, see [llms.txt](https://seinetwork.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://seinetwork.gitbook.io/docs/order-matching/dex-inter-contract-dependencies.md).

# Зависимости внутри контрактов

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

```
seid tx dex register-contract [contract address] [code id] \
    [need hook] [need order matching] [dependency1,dependency2,...]
```

В приведенном выше примере бессрочного/спотового контрактов, предполагается, что если адрес бессрочного контракта `sei14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9sh9m79m`, а адрес спотового контракта `sei1fzm6gzyccl8jvdv3qq6hp9vs6ylaruervs4m06c7k0ntzn2f8faq8un0p6`, то командная строка с информацией о регистрации контракта будет выглядеть следующим образом:

```
seid tx dex register-contract sei14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9sh9m79m \
    1 true true sei1fzm6gzyccl8jvdv3qq6hp9vs6ylaruervs4m06c7k0ntzn2f8faq8un0p6
```

{% hint style="info" %}
Обратите внимание, что регистрация контракта является операцией вида UPSERT (UPDATE or INSERT), поэтому регистрация одного и того же контракта несколько раз будет только обновлять регистрационную информацию.
{% endhint %}

### Замыкание зависимостей

Замыкание зависимостей контрактов недопустимо и контракты, содержащие такие зависимости, будут отклоняться на этапе регистрации. Например, контракт А уже зарегистрировал наличие зависимости от контракта В, тогда регистрация контракта В, в котором содержаться зависимости от контракта А будет отклонена.
