Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Этот пункт описывает обновление программы CPMM, запланированное на 2026-10-30. Оно было проверено на ветке
feat/initialize-v2 репозитория raydium-cp-swap (коммит 40cbd81) перед развёртыванием. Прежде чем полагаться на новую инструкцию, убедитесь в развёрнутой программе.enable_creator_fee и сторона creator_fee_on, обе фиксируются при создании. До сих пор создатель мог задать их только через InitializeWithPermission, для которой нужен выданный администратором PDA Permission. Публичная Initialize всегда сохраняла комиссию выключенной. На практике только выпуски LaunchLab и другие закрытые потоки могли создать пул, взимающий комиссию создателя.
Этот релиз добавляет InitializeV2. Это Initialize с одним дополнительным аргументом, creator_fee_on: Option<CreatorFeeOn>, и вызвать её может кто угодно. Математика пула, своп, ликвидность, сбор комиссий и доля протокола в комиссии создателя не затронуты.
TL;DR для интеграторов
- Новая инструкция:
InitializeV2. Без разрешений. Аргументы:init_amount_0,init_amount_1,open_timeиcreator_fee_on: Option<CreatorFeeOn>. Дискриминатор[67, 153, 175, 39, 218, 16, 38, 32]. Some(side)включает комиссию создателя с этой стороны;Noneоставляет её выключенной.Noneсохраняет ровно то же, что сохраняетInitialize.- Те же учётные записи, что у
Initialize, безrent. Первые 19 учётных записей идентичны и идут в том же порядке. См. список учётных записей. - Создатель — это подписант.
pool_state.pool_creator— подписывающийcreator. В отличие отInitializeWithPermission, получателя нельзя назначить на другой адрес. - Создатель выбирает включение/выключение и сторону, но не ставку. Пул взимает
AmmConfig.creator_fee_rateсвоего уровня комиссий. По умолчанию эта ставка равна0, поэтому на таком уровне пул с включённой комиссией ничего не накапливает. - Ничего существующего не изменилось.
InitializeиInitializeWithPermissionсохраняют свои дискриминаторы, учётные записи, аргументы и поведение. Ни макет учётной записи, ни код ошибки не изменились. - Обновите IDL, чтобы получить новую инструкцию. Клиентам, которые её не вызывают, ничего менять не нужно.
Что изменилось в программе
Новая инструкция: InitializeV2
InitializeV2 выполняет тот же код создания, что и Initialize. Она:
- принимает в качестве
pool_stateлибо канонический PDA пула, либо подписанную случайную пару ключей; - применяет те же проверки списка разрешённых расширений Token-2022 и
SupportMintAssociatedчерезremaining_accounts; - отклоняет создание, когда установлен
amm_config.disable_create_pool; - увеличивает
open_timeдоblock_timestamp + 1, если он не в будущем; - блокирует 100 базовых единиц LP и выпускает остаток создателю;
- взимает
amm_config.create_pool_fee.
PoolState:
Неверный байт тега или варианта не проходит десериализацию аргументов Anchor. Новый код ошибки не задействован.
Сравнение трёх путей создания
Внутренний рефакторинг
Три обработчика теперь используют общую процедуруinitialize_pool. Рефакторинг не меняет учётные записи, аргументы, проверки или сохраняемые значения Initialize и InitializeWithPermission. Новые тесты также проверяют, что обычная Initialize на той же конфигурации по-прежнему сохраняет комиссию создателя выключенной.
Что нужно знать создателям
- Сначала проверьте уровень комиссий. Ставка комиссии создателя принадлежит
AmmConfig, а не пулу. Выберите уровень, чейcreator_fee_rateсоответствует тому, что вы хотите взимать. Ставки перечислены вproducts/cpmm/fees. - Выбор постоянен. Ни одна инструкция не меняет
enable_creator_feeилиcreator_fee_onпосле создания. Чтобы изменить его, нужно создать новый пул. - Трейдеры платят её сверх торговой комиссии. Комиссия создателя — отдельная ставка, добавляемая к свопу. Она не уменьшает доли LP, протокола или фонда, но делает торговлю с пулом дороже, чем с пулом того же уровня с выключенной комиссией.
- Сбор не изменился. Используйте
CollectCreatorFeeилиCollectCreatorFeePermissionless. Доля протокола из релиза 2026-09-19 применяется, и отказаться от неё при создании нельзя.
Примечания по миграции
- Создатели пулов. Переходите с
InitializeнаInitializeV2, только если хотите включить комиссию создателя. ПередайтеSome(side)и уберите учётную записьrent.Initializeпродолжает работать. - Пользователи SDK.
raydium.cpmm.createPoolв@raydium-io/raydium-sdk-v2@0.2.64-alphaсобираетInitialize. Пока не выйдет релиз со сборщикомInitializeV2, кодируйте её из обновлённого IDL. - Индексаторы и маршрутизаторы. Ожидайте больше пулов с
enable_creator_fee = true, созданных обычными кошельками, а не LaunchLab. Котируйте по собственнымenable_creator_feeиcreator_fee_onкаждого пула, никогда только по пути создания или уровню. Декодируйте новую инструкцию, если отслеживаете создание пулов по инструкциям. Отслеживание по учётным записямPoolStateизменений не требует. - UI. Показывайте, взимает ли пул комиссию создателя и по какой ставке, поскольку два пула одного уровня теперь могут различаться.
- LaunchLab и другие разрешённые потоки. Без изменений.
InitializeWithPermissionпо-прежнему остаётся путём, когда плательщик и записанный создатель должны различаться.
Что не изменилось
- Все макеты учётных записей, включая
PoolStateиAmmConfig. InitializeиInitializeWithPermission: дискриминаторы, учётные записи, аргументы и сохраняемые значения.Permission,CreatePermissionPdaиClosePermissionPda.- Математика свопа, депозита и вывода, взимание комиссии создателя и доля протокола в комиссии создателя.
- Коды ошибок.
6000–6015не изменились; ничего не добавлено. - ID программы.
Обновлённые страницы
products/cpmm/instructions: баннер обновления; строки сводки и матрицы изменений состояния; новый разделInitializeV2с аргументами, кодированием и списком учётных записей; постусловиеInitializeтеперь указывает наInitializeV2.products/cpmm/fees: раздел «Комиссия создателя» перечисляет все три пути создания и отмечает, что включение комиссии не задаёт её ставку.products/cpmm/accounts: примечания оpoolStateи ID пула; примечания о поляхcreator_fee_on/enable_creator_fee; примечание оPermission; строка жизненного цикла учётных записей.products/cpmm/overview: выноска «Что нового» и пункт «Предсказуемые комиссии».products/cpmm/code-demos: примечание о том, чтоcreatePoolсобираетInitialize, и как перейти кInitializeV2.protocol-overview/shared-infrastructure: комиссии создателя больше не ограничены пулами, выпущенными LaunchLab.reference/token-2022-support: пути создания пулов CPMM.
raydium-cp-swap feat/initialize-v2 (40cbd81): programs/cp-swap/src/lib.rs, instructions/initialize_v2.rs, instructions/initialize.rs, instructions/initialize_with_permission.rs, instructions/mod.rs, states/pool.rs и tests/initialize_v2.test.ts.
