Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Этот раздел описывает предстоящее обновление программы 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 раньше принимал одну программу token на 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 как действие высокого доверия, по той же причине, по которой регистрация mint в реестре поддерживаемых 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 в этом наборе документации не изменился; проверьте опубликованную версию перед использованием новых параметров.
Эталонная реализация
Демо-код для мгновенной выборки вновь созданных конфигураций quote: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 наблюдатель конфига/пула.reference/token-2022-support— строка LaunchLab и раздел quote-mint.reference/error-codes—6023CalculateOverflow.

