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

# 2026-08-17 — CPMM: сбор комиссий создателя без разрешения

> CPMM добавляет инструкцию с ограничением по назначению, которая позволяет любому плательщику переводить комиссии создателя на канонические ATA создателя пула, и делегирует создание Permission PDA без делегирования отзыва.

<Info>
  **Эта страница переведена с помощью ИИ. За эталон принимается английская версия.**

  [Открыть английскую версию →](/reference/changelog/2026-08-17-cpmm-permissionless-creator-fee-collection)
</Info>

<Info>
  Запись в журнале изменений документации для предстоящего обновления программы CPMM. Индекс всех обновлений см. в [`reference/changelog`](/ru/reference/changelog). Историческую временную шкалу протокола см. в [`introduction/history-and-milestones`](/ru/introduction/history-and-milestones).
</Info>

Этот релиз добавляет путь без разрешения для сбора комиссий создателя. Любой может оплатить запуск сбора, но программа фиксирует получателя как `PoolState.pool_creator` и оба назначения как канонические associated token accounts этого создателя. Существующая инструкция, подписанная создателем, остаётся без изменений.

Также позволяет выделенному органу создавать CPMM `Permission` PDA. Это делегирование намеренно асимметрично: выделенный орган может предоставить доступ к `InitializeWithPermission`, в то время как только администратор программы может отозвать грант с помощью `ClosePermissionPda`.

## TL;DR для интеграторов

* **Новая дополнительная инструкция: `CollectCreatorFeePermissionless`.** Любой подписант может быть `payer`. Записанный создатель пула не подписывает.
* **Вызывающий не может перенаправить средства.** `creator` должен равняться `pool_state.pool_creator`. `creator_token_0` и `creator_token_1` должны быть каноническими ATA этого создателя для минтов хранилища пула и их соответствующих программ токенов.
* **Плательщик покрывает отсутствующие ATA.** Обе учётные записи получателя используют `init_if_needed`; плательщик финансирует аренду, когда любая учётная запись не существует.
* **Сбор — всё или ничего.** Инструкция переводит оба полностью накопленных счётчика комиссий создателя, обнуляет оба и обновляет `recent_epoch`. Возвращает существующую ошибку `NoFeeCollect`, когда оба счётчика равны нулю.
* **Существующие интеграции остаются совместимыми.** `CollectCreatorFee` не изменяется и не удаляется. Нет изменений макета `PoolState`, `AmmConfig`, `Permission`, событий или кодов ошибок.
* **Создание Permission имеет второго владельца.** `CreatePermissionPda` принимает администратора программы или выделенного владельца create-permission-PDA. `ClosePermissionPda` остаётся только для администратора.

## Новые учётные записи инструкции

`CollectCreatorFeePermissionless` принимает 14 учётных записей в этом порядке:

| #     | Учётная запись                       | Ограничение или роль                                                   |
| ----- | ------------------------------------ | ---------------------------------------------------------------------- |
| 1     | `payer`                              | Writable signer; финансирует отсутствующие creator ATA.                |
| 2     | `creator`                            | Должен равняться `pool_state.pool_creator`; не подписывает.            |
| 3     | `authority`                          | CPMM глобальный PDA органа хранилища.                                  |
| 4     | `pool_state`                         | Writable; содержит счётчики комиссий создателя.                        |
| 5–6   | `token_0_vault`, `token_1_vault`     | Writable; должны совпадать с хранилищами, сохранёнными в пуле.         |
| 7–8   | `vault_0_mint`, `vault_1_mint`       | Должны совпадать с соответствующим минтом хранилища.                   |
| 9–10  | `creator_token_0`, `creator_token_1` | Writable канонические creator ATA; инициализируются при необходимости. |
| 11–12 | `token_0_program`, `token_1_program` | SPL Token или Token-2022 для каждого минта.                            |
| 13    | `associated_token_program`           | Создаёт отсутствующий creator ATA.                                     |
| 14    | `system_program`                     | Поддерживает создание учётной записи, финансируемое плательщиком.      |

В отличие от `CollectCreatorFee`, новый макет имеет отдельные учётные записи `payer` и не подписывающего `creator` и не принимает `amm_config`. Поэтому требует собственный дискриминатор и построитель.

## Влияние на SDK и IDL

Ветка исходного кода программы не включает зафиксированное обновление SDK или IDL. Интеграторы должны обновить развёрнутый CPMM IDL или использовать выпуск клиента, который явно поддерживает `CollectCreatorFeePermissionless`. Закреплённый в документации набор построителей `@raydium-io/raydium-sdk-v2@0.2.42-alpha` охватывает только исходный путь, подписанный создателем.

## Граница безопасности

Вызов без разрешения не означает хранение без разрешения. Вызывающий может выбрать, когда собирать, и может потратить SOL на создание отсутствующих creator ATA. Вызывающий не может выбрать бенефициара, подставить произвольные учётные записи токенов, запросить частичную сумму или изменить конфигурацию комиссий создателя пула.

Новая роль создателя permission-PDA может создать грант для любого `permission_authority` и платит аренду новой учётной записи. Она не может закрыть этот PDA в соответствии с этим изменением. Рассматривайте это как делегированный орган предоставления доступа, а не полного администратора разрешений.

## Примечания по миграции

* Оставьте существующие транзакции `CollectCreatorFee` без изменений.
* Добавьте инструкцию без разрешения только после развёртывания целевого CPMM и клиента, включающего её IDL.
* Автоматизация может сканировать пулы с ненулевыми `creator_fees_token_0` или `creator_fees_token_1` и запускать сбор без хранения ключей создателя.
* Обрабатывайте `NoFeeCollect` как доброкачественное состояние гонки, когда другой вызывающий сначала опустошает счётчики.
* Не передавайте произвольные учётные записи токенов получателя; выведите creator ATA из `pool_state.pool_creator`, каждого минта хранилища и соответствующей программы токенов.

## Обновлённые страницы

* `products/cpmm/overview` — обновление сбора комиссий создателя и сводка безопасности назначения.
* `products/cpmm/instructions` — сводка новой инструкции, полный список учётных записей, эффекты и матрица изменения состояния.
* `products/cpmm/accounts` — пути сбора счётчиков комиссий создателя и делегированное создание Permission PDA.
* `products/cpmm/fees` — механика сбора без разрешения и операционный поток.
* `products/cpmm/code-demos` — предупреждение о доступности SDK и граница миграции клиента.
* `products/launchlab/platform-config` — уточнено, что записанный создатель CPMM остаётся бенефициаром даже когда другой плательщик запускает сбор.
* `protocol-overview/shared-infrastructure` — пути сбора с ограничением по органу и назначению.
* `security/admin-and-multisig` — границы делегированного органа предоставления доступа и сборщика без разрешения.
* `reference/program-addresses` — канонические адреса выделенного владельца `CreatePermissionPda`.
* `reference/error-codes` — расширенный `NoFeeCollect` для охвата сбора комиссий создателя.

**Проверено 2026-08-13 против**:

* [`raydium-cp-swap` ветка `feat/permissionless-collect-creator-fee`](https://github.com/raydium-io/raydium-cp-swap/tree/feat/permissionless-collect-creator-fee).
* Коммиты [`9585ea1`](https://github.com/raydium-io/raydium-cp-swap/commit/9585ea1efeb27be7be7eab1ebc033449f9c793b4) и [`d99d542`](https://github.com/raydium-io/raydium-cp-swap/commit/d99d5420c65b973af05d4efa009a2a9d060461f9), сравнены с `master` в [`78f254e`](https://github.com/raydium-io/raydium-cp-swap/commit/78f254e1023751e706df7dc15c453fc3e046697c).

<Warning>
  Эта проверка охватывает исходную ветку, а не развёртывание на mainnet-beta. Подтвердите развёрнутую программу и опубликованный IDL перед включением нового пути в production.
</Warning>
