> For the complete documentation index, see [llms.txt](https://docs.pancakeswap.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pancakeswap.finance/russian/torgovlya/pancakeswap-infinity/key-features.md).

# Ключевые возможности

### 1️⃣ Singleton

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

Infinity решает эту проблему с помощью модели Singleton. Теперь все пулы находятся внутри единого контракта, называемого PoolManager. Это изменение снижает затраты на газ при создании пулов до 99% и делает мультихоп-обмены (обмены, проходящие через несколько пулов) значительно дешевле за счёт устранения ненужных переводов токенов.

#### ⚙️ **Как это работает:**

* Данные каждого пула хранятся в общем контракте с использованием уникального идентификатора пула.
* Создание нового пула теперь — это просто обновление состояния, а не полное развёртывание контракта.
* Обмен между пулами выполняется быстрее и потребляет меньше газа.<br>

Подход Singleton, наряду с другими оптимизациями, такими как Flash Accounting и ERC-6909, делает PancakeSwap Infinity одной из наиболее газоэффективных DEX-платформ, доступных сегодня.

***

### ⚡️ Flash Accounting

Flash Accounting — это мощная оптимизация в PancakeSwap Infinity, которая помогает снизить комиссии за газ при сложных транзакциях, таких как мультихоп-обмены и изменения ликвидности.

В старых версиях (например, v3) токены перемещались внутрь и наружу каждого пула на каждом шаге транзакции. Это приводило к высоким затратам на газ, особенно при мультихоп-обменах.

С Flash Accounting это больше не нужно. Вместо перемещения токенов после каждого шага PancakeSwap Infinity отслеживает все перемещения токенов внутренне и выполняет только один финальный перевод в конце всей транзакции. Это значительно экономит газ.

#### ⚙️ **Как это работает:**

* При взаимодействии с Infinity (например, при обмене или добавлении ликвидности) система рассчитывает чистый баланс токенов, которые ты должен или получишь.
* Эти чистые балансы токенов временно хранятся с использованием Transient Storage — новой функции, введённой в рамках обновления Ethereum Cancun (EIP-1153).
* Transient Storage дешевле традиционного хранилища, поскольку существует только в течение транзакции — постоянная запись или чтение не требуются.

***

### 🪙 Поддержка нативных токенов

С введением архитектуры Singleton и Flash Accounting PancakeSwap Infinity теперь поддерживает нативные газовые токены (например, BNB, ETH) непосредственно в пулах ликвидности — больше не нужно оборачивать и разворачивать токены.

#### ✅ Ключевые преимущества

* **Прямые пулы с нативными токенами:** Теперь можно создавать пулы, такие как ETH/USDC, BNB/CAKE, без необходимости использования WETH или WBNB.
* **Газовая эффективность:** Переводы нативных токенов примерно на 50% дешевле переводов токенов ERC-20, что снижает затраты на газ при обменах и операциях с ликвидностью.<br>

**Ранее отсутствовала, теперь возвращена:** Поддержка нативных токенов отсутствовала в более ранних версиях из-за сложности реализации и фрагментации ликвидности.

***

### 📈 Пользовательские ценовые кривые

PancakeSwap Infinity даёт разработчикам возможность создавать пользовательские ценовые модели для пулов — выходя за рамки традиционной модели, используемой в большинстве AMM.

{% hint style="success" %}
**Разработчики могут создавать совершенно новые варианты поведения при обмене и модели ликвидности, адаптированные к конкретным типам активов или торговым стратегиям.**
{% endhint %}

#### 🔧 Что такое пользовательские ценовые кривые?

Пользовательские ценовые кривые позволяют разработчикам:

* Обходить нативную логику менеджера пула, создавая пулы с пользовательским поведением обмена.
* Изменять способ расчёта количества токенов при обменах или изменениях ликвидности.
* Внедрять пользовательскую механику комиссий, например:
  * Комиссии за вывод ликвидности
  * Скидки или штрафы на основе стратегии

Всё это стало возможным благодаря хук-колбэкам до/после обмена, которые могут динамически перехватывать и изменять параметры обмена.

#### 🛠 Примеры использования

* **Кривые StableSwap:** Проектирование более пологих кривых вокруг соотношения цен 1:1, снижающих влияние на цену между активами, такими как USDC и USDT.
* **RWA:** Создание пользовательского поведения для различных типов активов с динамическим предложением.
* **Комиссии на уровне хука:** Взимание уникальных комиссий, отличных от комиссий на уровне пула, например, комиссий разработчика.
* **Пользовательские модели риска:** Корректировка ценообразования с учётом волатильности, данных оракулов или внешних показателей.

{% hint style="info" %}
В предыдущих версиях AMM (например, PancakeSwap v2/v3) логика ценообразования была жёстко закодирована. Архитектура PancakeSwap Infinity открывает возможность создания более капиталоэффективных и адаптированных пулов.
{% endhint %}

#### 🔍 Гибкость для разработчиков

* Разработчики могут развёртывать пользовательские хук-контракты для переопределения логики ценообразования.
* Хук-колбэки, такие как beforeSwap и afterSwap, обеспечивают полный контроль над тем, как рассчитываются и применяются дельты токенов.

***

### 🧮 ERC-6909: Эффективный учёт нескольких токенов

PancakeSwap Infinity принимает[ ERC-6909](https://eips.ethereum.org/EIPS/eip-6909) — лёгкий и газоэффективный стандарт токенов, разработанный для внутреннего учёта нескольких токенов в рамках единого контракта. Он заменяет многие традиционные операции ERC-20 примитивами mint и burn — что приводит к значительной экономии газа и упрощению потоков транзакций.

#### ⚙️ Как это работает

Вместо перемещения токенов внутрь и наружу протокола при каждом взаимодействии токены ERC-6909 представляют внутренние балансы:

* Mint (чеканка): Когда пользователи вносят токены или совершают сделку, они могут выбрать получение токенов ERC-6909 в качестве требований.
* Burn (сжигание): Позже, вместо повторного перевода токенов ERC-20, пользователи могут просто сжечь эти токены ERC-6909 для погашения балансов или финансирования новых операций.

Эта модель значительно снижает необходимость во внешних переводах токенов, которые, как правило, влекут более высокие затраты на газ и взаимодействуют со сторонней логикой (например, проверками чёрного списка USDC).

#### 🪙 Преимущества ERC-6909

<table><thead><tr><th width="262.9921875">Функция</th><th width="497.7421875">Преимущество</th></tr></thead><tbody><tr><td>✅ Требования на внутренний баланс</td><td>Нет необходимости многократно переводить токены между пользователем и контрактом</td></tr><tr><td>✅ Газоэффективные Mint/Burn</td><td>Постоянные накладные расходы независимо от токена, без вызовов внешних контрактов</td></tr><tr><td>✅ Проще, чем ERC-1155</td><td>Меньший размер кода, без колбэков, без требований к пакетным переводам</td></tr><tr><td>✅ Поддержка нескольких токенов</td><td>Один контракт может отслеживать несколько типов токенов с изолированными балансами</td></tr><tr><td>✅ Бесшовная интеграция с PoolManager</td><td>Устраняет избыточные одобрения и переводы ERC-20</td></tr></tbody></table>

#### 🚀 Варианты использования

* **Высокочастотные трейдеры:** Избегай газозатратных переводов и взаимодействуй напрямую с использованием внутренних балансов.
* **Менеджеры ликвидности:** Открывай и закрывай позиции более эффективно без избыточных перемещений токенов.

#### 💡 Ключевые замечания

* Пользователи самостоятельно включают поток ERC-6909, когда не нуждаются в немедленном расчёте переводов токенов.
* Внутренние балансы могут быть консолидированы и нетто-погашены позже, предоставляя опытным пользователям больший контроль и гибкость.

***

### 💸 Метод Donate

Метод `donate()` позволяет пользователям напрямую стимулировать поставщиков ликвидности, находящихся в диапазоне цен внутри пула, путём пожертвования токенов. Этот метод опирается на систему учёта комиссий пула для проведения выплат, обеспечивая поддержку только токенов пула.

#### 🔹 Ключевые функции:

* **Прямые выплаты поставщикам ликвидности:** Пожертвования передаются непосредственно поставщикам ликвидности, вознаграждая тех, кто поддерживает ликвидность в активном диапазоне пула.
* **Поддержка только токенов пула:** Метод `donate()` поддерживает только пожертвования в токенах пула, поскольку использует систему учёта комиссий для обеспечения надлежащего распределения.
* **Доступен всем пользователям:** Любой пользователь может вызвать метод `donate()`, что позволяет каждому стимулировать активное предоставление ликвидности.

Хотя метод `donate()` является мощным инструментом для стимулирования поставщиков ликвидности, жертвователи должны знать, что их пожертвования могут быть подвержены фронтраннингу со стороны других пользователей. Это может произойти, когда пользователь быстро добавляет ликвидность в пул непосредственно перед пожертвованием, получая часть пожертвованных средств.

Чтобы предотвратить фронтраннинг, жертвователям, возможно, потребуется рассмотреть дополнительные стратегии при разработке механизмов пожертвований, например:

* Обеспечение того, чтобы пожертвования происходили таким образом, чтобы минимизировать возможности для оппортунистического фронтраннинга.
* Добавление временных задержек или специальных условий (с использованием хук-колбэков до/после пожертвования), обеспечивающих защиту от эксплуатации таким образом.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.pancakeswap.finance/russian/torgovlya/pancakeswap-infinity/key-features.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
