Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
GlobalConfig — это конфигурационный счет уровня протокола. Их может быть несколько — индексированные по (curve_type, index) — и каждый запуск выбирает ровно один на этапе Initialize. Значения выбранного GlobalConfig становятся жёсткими ограничениями для параметров этого запуска. Для настройки на уровне платформы (ставка комиссии за платформу, допустимые формы кривых, распределение NFT при выпуске) см. products/launchlab/platform-config.Что это такое
GlobalConfig — это PDA, уникальный для каждой пары (curve_type, index), который устанавливает правила уровня протокола, которые должен соблюдать каждый запуск:
- Тип допускаемой кривой бондинга (
curve_type). - Ставка торговой комиссии, взимаемая кривой при каждой покупке и продаже.
- Комиссия на миграцию, взимаемая при выпуске.
- Минимальные значения для предложения, коэффициента блокировки, ставки продажи и ставки миграции.
- Минт котировочного токена (обычно завёрнутый SOL или USDC) — актив, которым пользователи покупают.
- Три кошелька уровня протокола: владелец комиссии протокола, владелец комиссии миграции и два кошелька управления миграцией, которые авторизируют выпуск на AMM v4 / CPMM.
- Опциональный флаг (
requires_platform_auth), который ограничивает, какие платформы могут использовать эту конфигурацию.
GlobalConfig создаются и обновляются администратором программы LaunchLab (жёстко закодированный адрес администратора, общий для всех программ Raydium на основе Anchor — см. reference/program-addresses).
Структура
create_config программы является источником истины.)
Семантика полей
curve_type и index
Вместе они однозначно идентифицируют GlobalConfig. Существует один GlobalConfig на каждую пару (curve_type, index):
curve_type = 0— кривая с постоянным произведением и виртуальным резервом. По умолчанию и наиболее часто используется.curve_type = 1— кривая с фиксированной ценой.curve_type = 2— кривая с линейной ценой.
index — это u16, который позволяет администратору опубликовать несколько конфигураций на тип кривой (например, одна с более жёсткой комиссией, одна с более высоким минимальным сбором котировок). При Initialize запуск предоставляет пару (curve_type, index) и программа загружает соответствующий GlobalConfig.
Комиссии
trade_fee_rate— выражена в1/1_000_000объёма торговли. Применяется к каждой покупке и продаже на кривой. Владелецprotocol_fee_ownerполучает свою долю черезCollectFee.migrate_fee— фиксированная комиссия в ламортах (или единицах котировки, в зависимости от конфигурации), взимаемая один раз при выпуске. Получаетсяmigrate_fee_ownerчерезCollectMigrateFee.max_share_fee_rate— инициализируется как10_000(100 bps). Ограничивает ставку комиссии за долю платформы из привязанногоPlatformConfig(см.platform-config). Программа обеспечиваетtrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Минимумы предложения и ставок
Эти минимумы ограничивают, какие параметры формы кривой запуск может выбрать приInitialize. Если CurveParams создателя нарушают любой из них, Initialize откатывается с InvalidInput.
min_base_supply— минимальноеsupply(без десятичных знаков), которое может объявить кривая. По умолчанию10_000_000.max_lock_rate— выражена в1/1_000_000; по умолчанию300_000(30%). Ограничивает вестинг черезtotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— выражена в1/1_000_000; по умолчанию200_000(20%). Ограничиваетbase_supply_graduation / supplyснизу.min_base_migrate_rate— выражена в1/1_000_000; по умолчанию200_000(20%). Ограничивает количество токенов, оставленных для заполнения пула после выпуска.min_quote_fund_raising— минимумquote_reserve_target, который может объявить запуск (с десятичными знаками). По умолчанию30_000_000_000единиц минта котировки.
Минт котировки и кошельки протокола
quote_mint— актив, которым пользователи покупают. Большинство запусков используют завёрнутый SOL (So111…112) или USDC (EPjF…Dt1v). ОдинGlobalConfigпривязан к одному минту котировки; запуски, которым требуется другая котировка, выбирают другой(curve_type, index).protocol_fee_owner— публичный ключ, который подписываетCollectFeeи получает накопленные комиссии протокола на каждом запуске, привязанном к этой конфигурации. Хранится в цепи; администратор может ротировать его черезUpdateConfig.migrate_fee_owner— публичный ключ, который подписываетCollectMigrateFee.
Кошельки миграции
Два пути выпуска требуют разных подписантов:migrate_to_amm_wallet— должен подписатьMigrateToAmm. Используется для запусков, чейmigrate_type = 0(выпуск на AMM v4 + OpenBook).migrate_to_cpswap_wallet— должен подписатьMigrateToCpswap. Используется дляmigrate_type = 1(выпуск на CPMM). Запуски Token-2022 всегда берут этот путь.
requires_platform_auth
Флаг u8 (0 = любой может использовать эту конфигурацию; ненулевое значение = только платформы с действительным PDA PlatformGlobalAccess могут запускаться против неё). Когда установлен, каждый Initialize для этого GlobalConfig должен включать соответствующий счет PlatformGlobalAccess, доказывающий, что платформа была предварительно авторизирована через CreatePlatformGlobalAccess (инструкция только для администратора). См. platform-config для механики на стороне платформы.
Значения по умолчанию при инициализации
Когда вызываетсяCreateConfig, программа инициализирует множество полей жёстко закодированными значениями по умолчанию:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint и четыре публичных ключа кошельков при создании; последующие значения можно настроить через UpdateConfig.
Как запуск выбирает GlobalConfig
При Initialize создатель передаёт:
(curve_type, index)для выбора какого PDAGlobalConfigзагружать.CurveParams, описывающие форму кривой (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParams, описывающие заблокированное предложение.MintParamsдля базового минта.
curve_typeсовпадает сglobal_config.curve_type.supply >= global_config.min_base_supply.total_locked_amount <= supply * max_lock_rate / 1_000_000.total_base_sell >= supply * min_base_sell_rate / 1_000_000.(supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000— то есть достаточно токенов осталось для заполнения пула после выпуска.total_quote_fund_raising >= min_quote_fund_raising.- Если
requires_platform_auth != 0, включен действительный PDAPlatformGlobalAccess.
Initialize PoolState запуска напрямую сохраняет публичный ключ global_config, поэтому привязка постоянна.
Путь обновления
UpdateConfig доступна только администратору и принимает пару (param: u8, value: u64). Каждое значение param выбирает какое поле мутировать:
param | Изменённое поле |
|---|---|
| 0 | migrate_fee |
| 1 | trade_fee_rate |
| 2 | max_share_fee_rate |
| 3 | min_base_supply |
| 4 | max_lock_rate |
| 5 | min_base_sell_rate |
| 6 | min_base_migrate_rate |
| 7 | min_quote_fund_raising |
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) используют отдельную форму аргумента Pubkey; проверьте исходный код update_config для точной таблицы диспетчеризации перед составлением транзакции администратора.
requires_platform_auth переключается через set_requires_platform_auth(bool).
Чтение GlobalConfig с клиента
getAllGlobalConfigs или запросите конечную точку API LaunchLab, которая их зеркалирует; количество счетов в цепи невелико (единичные цифры на практике).
Ссылки
products/launchlab/platform-config— наложение на уровне платформы, которое дополнительно ограничивает форму кривой.products/launchlab/accounts— полный граф счетов для запуска.products/launchlab/instructions— инструкцииInitializeи обновления.reference/program-addresses— публичный ключ администратора, ID программы, общие органы управления.
raydium-launch/programs/launchpad/src/states/config.rs— структураGlobalConfigиinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.


