Skip to main content
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Этот пункт описывает обновление программы CLMM, запланированное на 2026-10-22. Оно было проверено на ветке feat/create-customizable-pool-v2 репозитория raydium-clmm (коммит 18f5db1) перед развёртыванием. Перед использованием нового имени инструкции или списка учётных записей убедитесь в развёрнутой программе.
Выпуск 2026-07-30 добавил CreatePermissionedPool, который позволял вызывающему создавать более одного пула для одной пары (amm_config, token_mint_0, token_mint_1), встраивая seed_index в PDA пула. Это было защищено: плательщик должен был иметь PDA Permission, выданный администратором. Этот выпуск удаляет этот шлюз. Инструкция переименована в CreateCustomizablePoolV2, её может вызвать кто угодно, и вся система разрешений удалена из программы. Математика пула, своп, ликвидность, лимитные ордера, комиссии и награды остаются без изменений.

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

  • CreatePermissionedPool → CreateCustomizablePoolV2. Те же аргументы (CreateCustomizableParams, seed_index: u16) и та же производная адреса пула. Дискриминатор Anchor меняется с именем, поэтому транзакция, собранная для старой инструкции, не пройдёт после обновления. Пересоберите её с новым IDL.
  • Учётная запись permission удалена из списка учётных записей. Она находилась в позиции 3, поэтому каждая учётная запись от amm_config и далее сдвигается на одну позицию вверх. См. новый список учётных записей.
  • Создание мультипулов теперь без разрешений. Любой плательщик может создавать дополнительные пулы для пары и комиссии с ненулевым seed_index. Рассматривайте пару как потенциально имеющую много CLMM-пулов на комиссию, созданных кем угодно.
  • Permission, CreatePermissionPda и ClosePermissionPda удалены. Программа и IDL больше не знают тип Permission.
  • Обновите IDL. Он удаляет две инструкции и один тип учётной записи, оставляя 37 инструкций и 53 ошибки.
  • Ни один макет учётной записи не изменился и ни один код ошибки не был добавлен. PoolState.seed_index сохраняет свой смещение; только его значение расширяется с «пула с разрешением» на «любой V2-пул».

Что изменилось в программе

CreatePermissionedPool переименован в CreateCustomizablePoolV2

Обработчик — это тот же код под новым именем. Он по-прежнему:
  • требует seed_index > 0;
  • производит пул по адресу ["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()];
  • принимает те же CreateCustomizableParams, что и CreateCustomizablePool, поэтому односторонняя комиссия (collect_fee_on) и динамическая комиссия работают одинаково;
  • применяет те же проверки поддержки Token-2022 mint, что и CreatePool;
  • записывает pool_creator как pool_state.owner и записывает seed_index в PoolState;
  • выдаёт PoolCreatedEvent.
Проверка Permission PDA — единственное удалённое поведение.

Список учётных записей CreateCustomizablePoolV2

remaining_accounts остаются без изменений: PDA реестра поддерживаемых mint, когда Token-2022 mint их требует, и DynamicFeeConfig в конце, когда enable_dynamic_fee = true.
pool_creator не аутентифицирован. Любой плательщик может записать любой адрес в pool_state.owner. Этот адрес получает право вызывать InitializeReward на пуле, но его нельзя использовать как доказательство того, кто создал пул. Не ранжируйте, не помечайте и не доверяйте V2-пулу по его полю owner.

Удалено: Permission, CreatePermissionPda, ClosePermissionPda

  • Тип учётной записи Permission (["permission", authority], 280 байт) удалён из программы.
  • CreatePermissionPda и ClosePermissionPda удалены вместе с выделенным ключом permission_pda_admin, который мог их подписывать.
  • PDA разрешений, созданные до обновления, остаются в цепи. Программа больше их не читает и не имеет инструкции для их закрытия.

Коды ошибок

Без изменений. 6000–6052 сохраняют свои номера. NotApproved (6000) больше не имеет случая «подписант ни admin, ни permission_pda_admin», потому что эти инструкции удалены.

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

  • Создатели пулов. Переключитесь с CreatePermissionedPool на CreateCustomizablePoolV2, удалите учётную запись permission и сдвиньте оставшиеся учётные записи на одну позицию вверх. Вам больше не нужно разрешение администратора.
  • Индексаторы и маршрутизаторы. Индексируйте CLMM-пулы из PoolCreatedEvent или сканируя учётные записи PoolState, а не производя четырёхсемейный PDA. Сохраняйте seed_index для любого пула, где он ненулевой, потому что он нужен для повторного производства адреса. Ожидайте больше неканонических пулов теперь, когда их может создавать кто угодно, и не предполагайте, что канонический пул — самый глубокий.
  • UI. Пара и комиссия могут иметь много пулов с разными начальными ценами. Показывайте ликвидность и адрес пула, и не представляйте пул как официальный из-за его owner.
  • Потребители IDL. Удалите любой код декодера или клиента для Permission, CreatePermissionPda и ClosePermissionPda.

Что не изменилось

  • Каждый макет учётной записи, включая PoolState (поле seed_index и его смещение остаются теми же).
  • CreatePool и CreateCustomizablePool. Они по-прежнему создают единственный канонический пул на пару и уровень комиссии с seed_index = [0, 0].
  • Пулы, созданные через CreatePermissionedPool до обновления. Их адреса, состояние и seed_index остаются без изменений.
  • Коды ошибок, своп, ликвидность, комиссия, динамическая комиссия, награда и поведение лимитных ордеров.
  • ID программы.

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

  • products/clmm/instructions: баннер обновления; строки инвентаря и администраторского шлюза; раздел CreateCustomizablePoolV2 с новым списком учётных записей.
  • products/clmm/accounts: Permission удалён из инвентаря и задокументирован как снятый с производства; описание seed_index; помощник PDA переименован в deriveCustomizablePoolV2; строки жизненного цикла.
  • products/clmm/overview: примечание «Что нового».
  • security/admin-and-multisig: роль permission_pda_admin удалена из таблицы CLMM.
  • reference/error-codes: описание NotApproved.
  • reference/token-2022-support: пути создания CLMM-пула.
  • sdk-api/anchor-idl: количество инструкций CLMM.
  • protocol-overview/versions-and-migration: пункт истории обновлений CLMM.
Проверено на: ветка raydium-clmm feat/create-customizable-pool-v2 (18f5db1): instructions/create_customizable_pool_v2.rs, instructions/mod.rs, instructions/admin/mod.rs, states/mod.rs, states/pool.rs, lib.rs и удалённые admin/create_permission_pda.rs, admin/close_permission_pda.rs, states/permission.rs.