> ## Documentation Index
> Fetch the complete documentation index at: https://docs.garden.finance/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Процесс обработки намерения

> Узнайте, как устроен полный технический процесс обработки намерений пользователей в протоколе Garden

<Frame>
  <img src="https://mintcdn.com/garden-e60e7dd0/NpoTY5cHYX9LGVws/images/garden%20protocol.png?fit=max&auto=format&n=NpoTY5cHYX9LGVws&q=85&s=93e05bd99d51836ac8a125a2d2a53ded" alt="Обзор архитектуры протокола Garden" width="7680" height="4000" data-path="images/garden protocol.png" />
</Frame>

Теперь, когда мы знаем всех участников и модули системы, подробно рассмотрим с технической стороны, как они взаимодействуют друг с другом.

Вот упрощённое представление процесса:

<Steps>
  <Step title="Создание намерения">
    Пользователь запрашивает котировку → Подписывает намерение → Отправляет намерение в книгу ордеров
  </Step>

  <Step title="Выбор солвера">
    Книга ордеров выбирает солвера → Солвер начинает расчёт
  </Step>

  <Step title="Расчёт со стороны пользователя">
    Пользователь инициирует транзакцию → Солвер выполняет транзакцию в целевом блокчейне
  </Step>

  <Step title="Завершение">
    Пользователь получает средства → Солвер завершает расчёт
  </Step>
</Steps>

Далее подробно рассмотрим каждый этап процесса.

## Создание намерения

<CardGroup cols={1}>
  <Card title="Запрос котировки" icon="calculator">
    Пользователь начинает процесс с запроса **котировки** для желаемого обмена. Котировка содержит такие данные, как входной и выходной активы, задействованные блокчейны и желаемые суммы.
  </Card>

  <Card title="Принятие котировки" icon="signature">
    Пользователь получает котировку и должен **принять её**, создав **подписанное сообщение с намерением.**
  </Card>

  <Card title="Создание намерения" icon="list-check">
    Подписанное намерение отражает цель пользователя и включает такие параметры, как активы, блокчейны, суммы и срок действия.
  </Card>
</CardGroup>

## Выбор солвера в книге ордеров

После того как пользователь подписал намерение, оно отправляется в **книгу ордеров** — децентрализованную систему, в которой солверы соревнуются за исполнение намерения.

### Процесс аукциона:

<Steps>
  <Step title="Отправка котировок">
    Все солверы отправляют свои котировки на основе параметров намерения.
  </Step>

  <Step title="Определение лучшей котировки">
    Определяется **лучшая котировка** (самая низкая цена или наибольшая эффективность).
  </Step>

  <Step title="Разрешение ничьей">
    Солверы с **более высоким рейтингом стейкеров**, чем у солвера с лучшей котировкой, получают 5-секундное окно, чтобы предложить такую же котировку.

    * **Никто не принял:** побеждает солвер с лучшей котировкой.
    * **Принял один солвер:** побеждает принявший солвер.
    * **Приняли несколько солверов:** побеждает солвер с самым высоким рейтингом стейкеров.
  </Step>

  <Step title="Подтверждение солвера">
    После выбора солвер готовится к исполнению обмена.
  </Step>
</Steps>

## Расчёт: исполнение на стороне пользователя

<Steps>
  <Step title="Начало расчёта">
    Процесс расчёта начинается после подтверждения выбранного солвера.
  </Step>

  <Step title="Инициирование пользователем">
    Пользователь должен **инициировать расчёт**, создав для намерения **подписанное сообщение с транзакцией**.
  </Step>

  <Step title="Трансляция через релейер">
    Подписанное сообщение передаётся **релейеру**, который транслирует его в блокчейн.
  </Step>

  <Step title="Ончейн-обработка">
    Транзакция обрабатывается ончейн, а средства пользователя блокируются или переводятся на соответствующий контракт или кошелёк.
  </Step>

  <Step title="Подтверждение">
    Когда транзакция набирает необходимое количество подтверждений в блокчейне, расчёт переходит на сторону солвера.
  </Step>
</Steps>

## Расчёт: исполнение на стороне солвера

<Steps>
  <Step title="Получение подтверждения">
    Получив подтверждение транзакции на стороне пользователя, солвер инициирует соответствующую транзакцию со своей стороны.
  </Step>

  <Step title="Исполнение в целевом блокчейне">
    На этом этапе солвер блокирует в целевом блокчейне средства, предназначенные для пользователя.
  </Step>

  <Step title="Подтверждение транзакции солвера">
    Транзакция солвера также проходит процесс подтверждения в целевом блокчейне, что обеспечивает безопасность и надёжность.
  </Step>
</Steps>

## Получение средств

<Steps>
  <Step title="Доступность активов">
    После того как транзакция солвера наберёт необходимое количество подтверждений:

    * Пользователь может получить средства в целевом блокчейне, раскрыв прехеш обмена.
  </Step>

  <Step title="Получение средств солвером">
    Как только пользователь раскрывает прехеш, солвер может получить средства в исходном блокчейне, завершая обмен.
  </Step>
</Steps>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.