> For the complete documentation index, see [llms.txt](https://docs.termina.technology/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.termina.technology/documentation/developer-docs-ru/scenarii/perenapravlenie-istoricheskogo-potoka/perenapravlenie-cherez-agregator.md).

# Перенаправление через агрегатор

{% stepper %}
{% step %}

#### Перенаправление потока

Чтобы перенаправить поток ордеров через Jupiter Metis и оценить новую логику котирования программы, включите флаг перенаправления в [команде `sim run`](/documentation/developer-docs-ru/scenarii/vosproizvedenie-rynka.md).

```bash
sim run \
  --start-slot 400000000 \
  --end-slot 400010000 \
  --program-id <PROGRAM_ID> \
  --program-so <NEW_QUOTING_LOGIC_BINARY> \
  --reroute-order-flow router
```

{% endstep %}

{% step %}

#### Выбор агрегаторов

Симуляция умеет сопоставлять свопы от крупных агрегаторов: Jupiter, DFlow, OKX и Titan.

По умолчанию через Metis перенаправляются только транзакции Jupiter: так воспроизведение получается самым точным. Но свопы других роутеров тоже можно направить через Metis.

```bash
sim run ...
  --reroute-aggregators jupiter,okx
```

Например, если маркет-мейкер не интегрирован с DFlow или Titan и не может получать от них поток в мейннете, в симуляции можно включить только Jupiter и OKX.
{% endstep %}

{% step %}

#### Арбитраж

Заметная часть объема агрегаторов приходится на токсичный поток, особенно на атомарный арбитраж: замкнутый цикл вроде `SOL` → `USDC` → `SOL` внутри одной транзакции.

Большинство арбитражных сделок собирают серчеры вне агрегатора, а в инструкции агрегатора их только оборачивают. Поэтому если провести их через Metis, результат часто не будет отражать то, как они были построены на самом деле.

По умолчанию атомарные арбитражные сделки не перенаправляются и сохраняют исходный маршрут, но это можно включить. Тогда симуляция ищет новый маршрут, который сохраняет исходный замысел свопа. Например, арбитраж `SOL` → `USDC` → `SOL`, который изначально шел через площадку A, может быть перенаправлен через площадку B.

```bash
sim run ...
  --reroute-circular-arbs
```

{% endstep %}
{% endstepper %}

{% hint style="info" %}

#### Настройка рыночных условий

CLI-клиент `sim` пока позволяет менять только бинарник программы.

Чтобы проверить другие параметры, например справедливую цену в обновлении оракула, его позицию в блоке или объем капитала в хранилищах пула, используйте [клиент на Rust](/documentation/developer-docs-ru/obzor/ustanovka/spravochnik-po-rust.md). Хорошая отправная точка: [публичные примеры](https://github.com/nitro-svm/examples).
{% endhint %}
