Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Этот релиз описывает предстоящее обновление программы LaunchLab. Он был проверен на локальной ветке релиза перед развёртыванием. Перед включением новых путей в production убедитесь в развёрнутой программе и опубликованном IDL.
GlobalConfig, инициализация пула, четыре инструкции swap, все сборы комиссий и миграция CPMM — поддерживается любая программа токенов, и инструкции swap учитывают комиссию за трансфер quote mint.
TL;DR для интеграторов
- Quote mints могут быть Token-2022.
CreateConfigпринимает Token-2022quote_token_mint, аInitializeV2/InitializeWithToken2022принимают любую программу токенов в слоте quote-program. Порядок аккаунтов не меняется — меняется только значение, которое вы передаёте в этот слот. - Устаревший
Initializeостаётся только для legacy. Его аккаунт quote-program по-прежнему типизирован под SPL Token, поэтому конфиг с Token-2022 quote mint можно запустить только черезInitializeV2илиInitializeWithToken2022. - Границы slippage теперь соответствуют тому, что платит и получает плательщик.
minimum_amount_outиmaximum_amount_inтеперь сравниваются с суммой за вычетом комиссии за трансфер quote mint, а не с суммой, которую переместил vault. Существующая логика расчёта цены недооценивает стоимость и переоценивает доход при использовании quote mint с комиссией. - Бит1
PoolState.token_program_flagстановится значимым. Раньше он всегда был0, пока quote mints были только legacy. Клиенты, которые сравнивают весь байт с0, будут читать legacy base mint как Token-2022 всякий раз, когда quote mint является Token-2022. Это наиболее вероятный скрытый сбой в этом релизе. MigrateToCpswapпереименовывает два аккаунта token-program.base_token_program/quote_token_programстановятсяtoken_program/token_program_2022. Оба всегда требуются, и программа выбирает правильный для каждого mint.- Пары mint/program теперь валидируются. Оба swap mint получили ограничение
mint::token_program, как и quote mint вClaimPlatformFee, поэтому несовпадающая пара теперь вызывает ошибку вместо игнорирования. - Новая ошибка
6023CalculateOverflow. Коды6000–6022не изменились.6023был освобождён в предыдущем релизе и теперь переиспользуется. - Fee vaults следуют за quote mint. Vault комиссий создателя и платформы, а также аккаунт токенов получателя share-fee, находятся в программе, которой принадлежит quote mint.
Какие аккаунты изменили тип
Ни один из них не меняет позицию в списке аккаунтов. Меняется только допустимое значение.Initialize (устаревший путь V1) намеренно не включён в эту таблицу. Его аккаунт quote-program остаётся типизирован под SPL Token.
Несколько из них также усилили ограничения на mint, поэтому несовпадающая пара mint/program теперь вызывает ошибку вместо того, чтобы быть принятой или проигнорированной:
- Четыре инструкции swap ограничивают как
base_token_mint, так иquote_token_mintпрограммой, переданной в соответствующий слот. Раньше ни один из них не имел этого ограничения, поэтому неправильная base программа была молча принята. ClaimPlatformFeeдобавляет то же ограничение наquote_mint.ClaimPlatformFeeFromVaultисправляет своё ограничение с формы token-account на форму mint для того, что является аккаунтом mint.
Учёт комиссии за трансфер на стороне quote
Это часть, которая меняет числа, а не списки аккаунтов. На quote mint безTransferFeeConfig каждая формула ниже сворачивается к предыдущему поведению, поэтому legacy пулы и пулы Token-2022 без комиссии остаются бит-в-бит неизменными.
Два следствия, которые стоит сформулировать ясно:
- Граница, вычисленная из эквивалентного пула без комиссии, больше не приемлема.
BuyExactOutс cost пула без комиссии какmaximum_amount_inтеперь вызывает ошибкуExceededSlippage, как иSellExactInс proceeds пула без комиссии какminimum_amount_out. Это предусмотренное поведение — старое сравнение позволяло плательщику быть дебетованным на комиссию за трансфер поверх границы, которую они уже согласовали. - Пул учитывает только то, что попало в vault. После
BuyExactInнаamount_inна 5% quote mint,real_quoteувеличивается наamount_in × 0.95, а не наamount_in.
get_transfer_inverse_fee также отказался от специального случая для mint со 100% комиссией: вместо возврата к maximum_fee он теперь возвращает новую ошибку CalculateOverflow, когда обратная комиссия не может быть вычислена. Quote mint с 10000 basis points поэтому не пройдёт exact-out пути вместо молчаливого транзакта на лимите комиссии.
Бит1 token_program_flag
PoolState.token_program_flag — это битовое поле, и всегда было:
1, потому что quote mint теперь может быть Token-2022 mint. Четыре значения:
Читайте программу каждого mint с помощью
(token_program_flag >> bit) & 1. Любой клиент, который рассматривает байт как булево значение для base mint — flag === 0 ? Token : Token-2022 — разрешит значение 2 как Token-2022 base mint и построит base-side token account и трансфер против неправильной программы. Нет изменений размера аккаунта или смещения поля, поэтому индексаторам не нужна миграция хранилища, только исправление декодирования.
Переименование аккаунта миграции CPMM
MigrateToCpswap раньше принимал одну программу токенов на mint, и вызывающий решал, какая какая. Теперь он принимает обе программы безусловно и выводит отображение из самих mint:
Две позиции не изменились, поэтому это изменение значения, а не изменение макета — но значения почти инвертированы, и разработчик, который продолжает передавать свою старую пару, будет передавать Token-2022 там, где требуется legacy программа, как только один из mint будет Token-2022 mint.
Legacy программа по-прежнему требуется безусловно независимо от любого mint, потому что LP mint CPMM и заблокированный NFT Fee Key всегда находятся на ней. Макет
remaining_accounts из релиза 2026-08-17 не изменился.
Quote mints допускаются только по усмотрению администратора
В отличие от CPMM и CLMM, LaunchLab не запускает список разрешений расширений для quote mint.CreateConfig принимает аккаунт mint как есть, поэтому единственный контроль — какие mint администратор привязывает к GlobalConfig. Проверка NoSupportExtension программы применяется исключительно к Token-2022 base mint, которые создаёт сама LaunchLab, где разрешены только MetadataPointer и TransferFeeConfig.
Рассматривайте привязку Token-2022 quote mint как действие высокого доверия с тем же обоснованием, что и статические списки разрешений CPMM/CLMM в reference/token-2022-support. Quote mint с TransferHook или PermanentDelegate будет допущен во время создания конфига и затем будет запущен на, или сможет очистить, каждый пул, котируемый в нём.
Временные ворота amm_creator_fee_on
InitializeV2 отказывается от временных ворот, которые отклоняли любой amm_creator_fee_on, отличный от BothToken, до времени обновления. Эквивалентные ворота по-прежнему присутствуют в InitializeWithToken2022. На практике оба пути принимают любое значение на mainnet-beta сегодня, потому что это время (1755522000, 2025-08-18 13:00 UTC) давно прошло — это очистка, а не изменение поведения для текущих вызывающих.
Влияние на ошибки и IDL
Коды6000–6022 не изменились, включая 6022 InvalidPlatformAllowConfig.
Предыдущий релиз отказался от старого
6023 и оставил его вакантным; этот релиз переиспользует номер. Не декодируйте 6023 с IDL из любой более ранней версии.
Обновите IDL LaunchLab перед передачей Token-2022 quote программы, декодированием бита1 token_program_flag или построением переименованного списка аккаунтов MigrateToCpswap.
Влияние на SDK
Сторона quote модуля launchpad SDK была жёстко закодирована наTOKEN_PROGRAM_ID в тех же местах, что и программа. Ветка, которая сопровождает этот релиз, вместо этого разрешает владельца quote mint, передаёт его через создание token-account, ATA получателя share-fee и слот quote-program инструкции, и добавляет опциональный transferFeeConfigB к четырём методам Curve, чтобы цены отражали формулы выше. Результаты Curve получают поле transferFeeB; amountB сохраняет своё значение — что платит плательщик или получает продавец — поэтому quote mint без комиссии производит идентичные числа, как раньше.
Эти изменения SDK не выпущены. Канонический pin на страницах code-demo в этом наборе документации не изменился; проверьте опубликованную версию перед использованием новых параметров.
Эталонная реализация
Новая демонстрация подписывается на программу LaunchLab через Yellowstone gRPC и логирует для каждого обновленияGlobalConfig и PoolState, является ли каждый mint Token или Token-2022 mint:
raydium-sdk-V2-demo/src/grpc/launchpadPoolInfo.ts
Это компактный эталон для двух вещей, которые этот релиз делает необходимыми. Пулы классифицируются прямо из token_program_flag, декодируя оба бита без выборки mint вообще — это исправление для сбоя bit1, описанного выше. Конфиги не могут быть классифицированы таким образом, потому что GlobalConfig хранит только адрес своего quote mint и никакой флаг программы, поэтому демонстрация читает владельца аккаунта mint один раз и кэширует его на mint. Видение обоих путей рядом — это самый быстрый способ проверить ваш собственный декодер.
Смотрите products/launchlab/code-demos для пошагового руководства.
Обновлённые страницы
products/launchlab/accounts— программа token quote-mint, макет битаtoken_program_flagи владение vault.products/launchlab/instructions— аккаунты quote-program, семантика slippage swap и переименованные аккаунты миграции.products/launchlab/global-config—quote_mintможет быть Token-2022 mint, и что его контролирует, а что нет.products/launchlab/code-demos— наблюдатель gRPC config/pool.reference/token-2022-support— строка LaunchLab и раздел quote-mint.reference/error-codes—6023CalculateOverflow.

