Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Этот пункт описывает обновление программы CLMM, запланированное на 2026-10-22. Оно было проверено на ветке
feat/create-customizable-pool-v2 репозитория raydium-clmm (коммит 18f5db1) перед развёртыванием. Перед использованием нового имени инструкции или списка учётных записей убедитесь в развёрнутой программе.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.
Список учётных записей CreateCustomizablePoolV2
remaining_accounts остаются без изменений: PDA реестра поддерживаемых mint, когда Token-2022 mint их требует, и DynamicFeeConfig в конце, когда enable_dynamic_fee = true.
Удалено: 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.
