Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Это журнал изменений документации — запись обновлений этих страниц с момента запуска проекта. Каждый релиз ниже ссылается на собственную запись; откройте её для полного резюме, затронутых разделов и даты проверки. Для собственной исторической хронологии протокола см.
introduction/history-and-milestones.Релизы
CLMM: Anchor 1.0, восстановление избыточных lamports и фиксированные владельцы комиссий
CLMM переходит на Anchor
1.0.2 на Agave 3.1.10, как это сделали CPMM и LaunchLab 2026-09-09. Обе публичные CPI-крейты теперь закреплены на =1.0.2, поэтому одна программа может выполнять CPI в CPMM и CLMM. Новая администраторская инструкция CollectExcessLamports возвращает rent, освобождённый SIMD-0437. Она обрабатывает один пул за вызов: PDA PoolState подписывает свои собственные хранилища и хранилища вознаграждений, хранилища wSOL проходят через цикл SyncNative / UnwrapLamports, и любой счёт, принадлежащий CLMM, в remaining_accounts уменьшается до минимума rent. CreateAmmConfig теперь записывает жёстко закодированные ключи protocol_fee_owner и fund_fee_owner вместо подписывающего. На mainnet это ключи, уже хранящиеся на всех 21 конфигах, и существующие конфиги не переписываются. Добавлено 6052. Ни одна инструкция, видимая пользователю, или макет счёта не изменились.Читать полную запись →CPMM: протокол получает долю комиссии создателя
CPMM теперь может удерживать часть комиссии создателя. Разделение применяется при сборе комиссии, а не при её начислении: swap по-прежнему начисляет всю комиссию создателя на
creator_fees_token*, а CollectCreatorFee / CollectCreatorFeePermissionless затем перемещают долю в существующие счётчики protocol_fees_token* пула и выплачивают создателю остаток — с округлением вниз, поэтому пыль остаётся у создателя. Ставка берётся из нового AmmConfig.creator_fee_share_rate (вырезано из padding; счёт по-прежнему 236 байт, но старый padding[0] теперь активное поле) или из PDA CreatorFeeShare для каждого создателя, который переопределяет его, управляемый новыми администраторскими инструкциями CreateCreatorFeeShare / CloseCreatorFeeShare. Критично для клиентов с комиссией создателя: обе инструкции сбора принимают новые счёта, добавленные в конец их списков — существующие счёта сохраняют свои позиции, но новые обязательны, поэтому транзакция до обновления отклоняется за отсутствующие счёта. UpdateAmmConfig получает param = 8. PoolState, математика swap и проверка k не затронуты, и новый код ошибки не добавлен. Попутно: исправление двухпроходного упорядочивания в CollectExcessLamports.Читать полную запись →LaunchLab: Anchor 1.0, восстановление избыточных lamports и конец переходных шлюзов
LaunchLab переходит на Anchor
1.0.2 на Agave 3.1.10 и прекращает использование своего переходного каркаса. Устаревшая инструкция Initialize теперь безусловно завершается с ошибкой NotApproved. MigrateToAmm критично нарушает совместимость для кошелька миграции: все три аргумента и девять счётов OpenBook удалены, следуя собственному удалению OpenBook в AMM v4, и программа больше не инициализирует рынок через CPI. Часовой шлюз get_upgrade_timestamp удалён, поэтому три торговых remaining_accounts безусловно требуются (с проверкой слота system_program), MigrateToCpswap всегда принимает путь с разрешением CPMM, и InitializeWithToken2022 отбрасывает ограничение amm_fee_on. Новая администраторская инструкция CollectExcessLamports возвращает rent, освобождённый SIMD-0437 — учтите, что исходные счёта должны быть сгруппированы по тому, какой из трёх PDA-органов управления хранилищем их владеет. Три ограничения адреса MigrateToCpswap перемещены в тело инструкции, изменяя 2012 на 2502. Добавлено 6031. Ни один макет счёта, торговая инструкция или поведение комиссии не изменились.Читать полную запись →CPMM: Anchor 1.0, восстановление избыточных lamports и фиксированные владельцы комиссий
CPMM переходит на Anchor
1.0.2 на Agave 3.1.10 и добавляет администраторскую инструкцию CollectExcessLamports, которая возвращает rent, освобождённый SIMD-0437, из хранилищ, LP-минтов и PDA — включая завёрнутые SOL-хранилища, через цикл SyncNative / UnwrapLamports, который оставляет завёрнутый баланс нетронутым. Три поведенческих изменения идут попутно: CreateAmmConfig теперь записывает жёстко закодированные ключи protocol_fee_owner и fund_fee_owner вместо подписывающего (существующие конфиги не мигрируются — прочитайте поля), жёстко закодированный четырёхадресный Token-2022 MINT_WHITELIST удалён, поэтому PDA реестра SupportMintAssociated — единственный оставшийся обход, и ClosePermissionPda теперь принимает выделенный орган выдачи разрешений. Добавлено 6015. Ни одна инструкция, видимая пользователю, или макет счёта не изменились.Читать полную запись →AMM v4: зависимости Solana 3.0 и восстановление избыточных lamports
AMM v4 перестраивается для
solana-program 3.0.0, spl-token 9.0.0, spl-associated-token-account 8.0.0 и новой крейта solana-system-interface, и добавляет администраторскую инструкцию WithdrawExcessLamports (тег 18), которая возвращает rent, освобождённый SIMD-0437. Каждая инструкция для трейдеров и LP сохраняет свои счёта, аргументы и математику, и ничего в релизе не нарушает совместимость: CreateConfigAccount перестал читать свой завершающий rent sysvar, но по-прежнему принимает старый список из пяти счётов. AmmError получает код 60 (нумеруется с 0, а не с 6000).Читать полную запись →LaunchLab: правила кривой платформы заменяют список параметров кривой
Ограничения параметров запуска переходят с
PlatformConfig в счёта PlatformCurveRule для каждой конфигурации. Правило содержит до 10 групп проверок из до 25 ограничений (field, op, value) над 19 параметрами запуска, с Eq / Gte / Lte / Neq — поэтому платформа наконец может выразить диапазон значений, альтернативные уровни, крышку валюации выпуска, пол миграции, шлюз типа токена или группу, которая переключается по дате, ничего из чего список с равенством не мог. PlatformConfig сохраняет размер 944 байта: restrict_curve_param, curve_rule_manager и префикс длины удалённого вектора выходят из padding. Декодеры должны отбросить завершающий Vec<PlatformCurveParam>, и строители запусков должны добавить PDA правила в remaining_accounts, пока флаг включен. Две инструкции удалены, четыре добавлены, два варианта UpdatePlatformConfig добавлены, добавлены 6024–6030. Требуется обновление IDL. SDK поставляется с двумя чистыми внецепочными проверками, поэтому создатель никогда не должен узнавать правило из отменённой транзакции, и запись документирует репетицию devnet перед включением флага на mainnet.Читать полную запись →LaunchLab: платформа держит орган вывода удержанных средств с момента создания минта
InitializeWithToken2022 теперь записывает PlatformConfig.transfer_fee_extension_auth в withdraw_withheld_authority нового базового минта вместо PDA запуска authority, поэтому платформа может собирать удержанные комиссии за передачу во время фазы кривой связывания, а не ждать выпуска — сама программа не имеет инструкции вывода удержанных средств. MigrateToCpswap переназначает этот орган только когда PDA по-прежнему его держит, что сохраняет выпуск работающим для минтов обоих поколений. transfer_fee_config_authority по-прежнему переходит только при выпуске, поэтому ротация transfer_fee_extension_auth во время запуска молча оставляет два органа на разных ключах. Ни один макет счёта, инструкция, аргумент или код ошибки не изменились.Читать полную запись →LaunchLab: потолок ставки комиссии платформы поднят до 500 bps
Потолок
fee_rate платформы переходит на 50000 (500 bps) на обоих путях, которые его проверяют. CreatePlatformConfig был ограничен на 10000 (100 bps) с первого релиза программы; UpdatePlatformConfig был ограничен на 25000 (250 bps) с 2026-01-27. Две проверки теперь согласуются, поэтому платформа, созданная с любой разрешённой ставкой, также может быть обновлена с ней — включая через вариант AllInfo массового обновления, который переподтверждает fee_rate при переписывании каждого другого поля. Два пути по-прежнему вызывают разные ошибки (InvalidInput при создании, InvalidPlatformInfo при обновлении). Ни один макет счёта, инструкция или код ошибки не изменились, и ни одна существующая платформа или запуск не переоценены. GlobalConfig.max_share_fee_rate остаётся на 100 bps и ограничивает только реферальный share_fee_rate за транзакцию.Читать полную запись →LaunchLab: минты котировок Token-2022
Запуск теперь может быть котирован в минте Token-2022.
CreateConfig, InitializeV2, InitializeWithToken2022, четыре инструкции swap и каждый сбор комиссии принимают любую программу токена в своём слоте программы котировки; устаревшая инструкция Initialize остаётся только для наследия. Границы проскальзывания swap теперь сравниваются с тем, что плательщик фактически платит или получает, за вычетом комиссии за передачу минта котировки. Бит1 PoolState.token_program_flag становится значимым, поэтому декодеры, которые тестируют весь байт против 0, неправильно читают наследственный базовый минт как Token-2022. MigrateToCpswap переименовывает свои два счёта программы токена в token_program / token_program_2022, и 6023 переиспользуется для CalculateOverflow.Читать полную запись →LaunchLab: запуски только CPMM и элементы управления конфигурацией платформы
Новая инициализация запуска теперь требует CPMM, в то время как состояние, привязанное к наследственному AMM v4, остаётся мигрируемым. До этого релиза
creator_scale создавал ключ комиссии, принадлежащий создателю; миграции CPMM, выполненные после обновления, вместо этого консолидируют platform_scale + creator_scale в одну долю ключа комиссии, принадлежащую платформе. Платформы также могут ограничивать запуски своими собственными PDA PlatformAllowConfig, и строители миграции должны добавить оба PDA поддержки минта CPMM.Читать полную запись →CLMM: замораживание позиционных NFT с ограниченным издателем
Новые минты позиционных NFT CLMM используют свой пул в качестве органа замораживания, но их счёта токенов остаются незамороженными по умолчанию. Замораживание происходит только на
OpenPositionV2 или OpenPositionWithToken22Nft, когда орган замораживания любого из основных минтов хранилища совпадает со списком ограниченного издателя. Совпадающая позиция не может передаваться или менять владельца, но по-прежнему может управлять ликвидностью. Её вызов ClosePosition должен добавить пул, чтобы CLMM мог разморозить, сжечь и закрыть атомарно. Существующие позиции остаются без изменений.Читать полную запись →CPMM: сбор комиссии создателя без разрешения
Дополнительная инструкция
CollectCreatorFeePermissionless позволяет любому плательщику собрать все накопленные комиссии создателя, ограничивая бенефициара и оба назначения токенов на PoolState.pool_creator и канонические ATA создателя. Исходный путь с подписью создателя остаётся без изменений. CreatePermissionPda также принимает выделенный орган выдачи разрешений, в то время как ClosePermissionPda остаётся только для администратора.Читать полную запись →CLMM: многопулы с разрешением и защита замороженного счёта лимитного ордера
Два дополнительных, обратно совместимых обновления программы CLMM.
CreatePermissionedPool складывает предоставленный клиентом ненулевой seed_index в семена PDA пула, позволяя внесённому в список оператору (тому, кто держит PDA Permission) создавать несколько пулов на (config, mint0, mint1) — поэтому ID пула больше не канонический для пары. Новые администраторские инструкции CreatePermissionPda / ClosePermissionPda управляют этими разрешениями, и PoolState получает поле seed_index (вырезано из padding, без изменения размера). Отдельно, OpenLimitOrder теперь принимает счёта стороны вывода и отклоняет ордера, чей счёт входного или выходного токена заморожен (NotApproved).Читать полную запись →AMM v4: удаление зависимости OpenBook / Serum
AMM v4 удаляет свою давно неиспользуемую зависимость OpenBook/Serum, все CPI книги заказов и мёртвые инструкции создания рынка.
SwapBaseIn / SwapBaseOut, Deposit и Withdraw сохраняют свои макеты (удалённые счёта рынка теперь игнорируются, не проверяются); критично нарушающая совместимость WithdrawPnl (17 → 10, без совместимости) и SetParams (уменьшенные счёта + переномерованный param); и Initialize, PreInitialize, MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo, AdminCancelOrders больше не вызываются. Макеты счётов в цепи и коды ошибок остаются стабильными; мигрируйте swap на точки входа V2.Читать полную запись →Stable AMM: удаление мёртвого кода OpenBook (рынка)
Stable AMM удаляет свои давно неиспользуемые счёта и код создания рынка OpenBook. Меньшие макеты
SwapBaseIn / SwapBaseOut (18 → 9), Deposit (14 → 12) и Withdraw (21/22 → 12) (старые макеты по-прежнему совместимы); критично нарушающее совместимость изменение WithdrawPnl (16 → 10, без совместимости); реферальная комиссия снята; и упрощённая формула активов пула только для хранилища. Большинство других инструкций Stable больше не вызываются.Читать полную запись →CLMM: лимитные ордера, односторонняя комиссия, динамическая комиссия
Три дополнительные, обратно совместимые возможности CLMM: лимитные ордера первого класса (с хранителем
limit_order_admin), сбор односторонней комиссии (CollectFeeOn) и отслеживающая волатильность динамическая комиссия. Добавляет CreateCustomizablePool, переформатирование PoolState (критично для индексаторов), новые поля TickState, одиннадцать новых кодов ошибок (с числовым сдвигом) и соответствующие добавления SDK / API.Читать полную запись →Первоначальная публикация
Первый публичный релиз набора документации Raydium, проверенный на соответствие развёртываниям на живом mainnet-beta и
@raydium-io/raydium-sdk-v2@0.2.42-alpha.Читать полную запись →Соглашения документации
- Версионирование: эта документация использует календарное версионирование (YYYY-MM-DD). Каждое обновление добавляет новую страницу записи и новую строку в начало хронологии выше.
- Одна страница на релиз: каждое резюме релиза живёт на собственной странице под
reference/changelog/, поэтому этот индекс остаётся коротким и каждая запись независимо ссылаема. - Дата проверки: каждая запись записывает, когда содержание было последний раз перепроверено на соответствие состоянию в цепи / API и исходному коду программы. Если не указано, предположите основную дату записи.
- Критичные изменения: выделены в прямоугольном предупреждении на затронутых страницах и помечены в записи.
- Охват: этот журнал изменений охватывает сам набор документации. Собственная историческая хронология протокола живёт в
introduction/history-and-milestonesи является источником истины для «когда X произошло на Raydium».
Исправления
Если вы найдёте ошибку в этой документации, пожалуйста, откройте issue или pull request в репозитории документации. Исправления регистрируются как записи журнала изменений.Указатели
introduction/history-and-milestones— собственная хронология протокола.security/audits— история аудитов.ray/protocol-fees— разделение комиссий протокола.reference/program-addresses— источник истины для адресов программ.

