Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
GlobalConfig — это конфигурационный счет на уровне протокола. Их может быть много — идентифицируются по (curve_type, index) — и каждый запуск выбирает ровно один при инициализации. Значения выбранного GlobalConfig становятся жёсткими ограничениями для параметров этого запуска. Для настройки на уровне платформы (ставка комиссии за платформу, допустимые формы кривых, разделение NFT при выпуске), см. products/launchlab/platform-config.Что это такое
GlobalConfig — это PDA, уникальный для каждой пары (curve_type, index), который устанавливает правила на уровне протокола, которым должен подчиняться каждый запуск:
- Тип допустимой кривой связывания (
curve_type). - Ставка комиссии за торговлю, которую взимает кривая при каждой покупке и продаже.
- Комиссия за миграцию, взимаемая при выпуске.
- Минимальные значения для предложения, коэффициента блокировки, коэффициента продажи и коэффициента миграции.
- Котировочный минт (обычно обёрнутый SOL или USDC) — актив, которым пользователи покупают.
- Четыре кошелька на уровне протокола: владелец комиссии протокола, владелец комиссии миграции и два кошелька управления миграцией, зарезервированные для выпуска CPMM и устаревшего AMM v4.
GlobalConfig могут быть созданы администратором программы LaunchLab или делегированным органом создания конфигурации. Только администратор обновляет существующие конфигурации. См. reference/program-addresses для получения канонических органов власти.
Структура
create_config программы является источником истины.)
Семантика полей
curve_type и index
Вместе они уникально идентифицируют GlobalConfig. Существует один GlobalConfig для каждой пары (curve_type, index):
curve_type = 0— кривая виртуального резерва с постоянным произведением. По умолчанию и наиболее часто используется.curve_type = 1— кривая с фиксированной ценой.curve_type = 2— кривая с линейной ценой.
index — это u16, который позволяет администратору опубликовать несколько конфигураций для каждого типа кривой (например, одну с более жёсткой комиссией, одну с более высоким минимальным сбором котировок). При инициализации запуск предоставляет пару (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). Ограничивает аргументshare_fee_rate, который принимаютBuyExactIn,BuyExactOut,SellExactInиSellExactOut— реферальная комиссия, выплачиваемая непосредственно получателю доли во время торговли. Это не ограничиваетPlatformConfig.fee_rate; эта ставка имеет свои собственные ограничения, описанные вplatform-config. КакCreateConfig, так иUpdateConfigобеспечиваютtrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Минимумы предложения и коэффициентов
Эти минимумы ограничивают параметры формы кривой, которые запуск может выбрать при инициализации. Если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). Минт может принадлежать либо программе SPL Token, либо Token-2022 — см. ниже.protocol_fee_owner— публичный ключ, который подписываетCollectFeeи требует накопленные комиссии протокола для каждого запуска, привязанного к этой конфигурации. Хранится в цепи; администратор может ротировать его черезUpdateConfig.migrate_fee_owner— публичный ключ, который подписываетCollectMigrateFee.
Котировочные минты Token-2022
CreateConfig принимает котировочный минт Token-2022, и пулы, привязанные к такой конфигурации, несут его от начала до конца: хранилище котировок, оба хранилища комиссий и счёт получателя комиссии доли создаются на Token-2022, и инструкции swap учитывают TransferFeeConfig на стороне котировки. Бит PoolState.token_program_flag bit1 записывает выбор для каждого запуска.
Два ограничения стоит знать, прежде чем полагаться на одно:
- Устаревший
Initializeне может запуститься против него. ТолькоInitializeV2иInitializeWithToken2022принимают программу котировки Token-2022. См.instructions. - Не применяется список разрешений расширений. В отличие от CPMM и CLMM, LaunchLab не проверяет расширения котировочного минта —
CreateConfigпринимает минт как есть, поэтому единственным ограничением является усмотрение администратора относительно того, какие минты привязаны к конфигурации. ПроверкаNoSupportExtensionпрограммы охватывает только минты базы Token-2022, которые создаёт сам LaunchLab. Рассматривайте привязку одного как действие с высокой степенью доверия; см.reference/token-2022-support.
Кошельки миграции
Два сохранённых кошелька выпуска требуют разных подписантов:migrate_to_amm_wallet— подписываетMigrateToAmmдля существующего устаревшего запуска, чей сохранённыйmigrate_type = 0.migrate_to_cpswap_wallet— подписываетMigrateToCpswap. Каждый вновь инициализированный запуск использует этот путь.
Списки разрешений на уровне платформы
GlobalConfig больше не имеет requires_platform_auth. Его бывший байт — это заполнение, поэтому размер счёта не меняется. Доступ теперь контролируется PlatformConfig.restrict_global_config и счётами PlatformAllowConfig, созданными администратором этой платформы. См. platform-config.
Значения по умолчанию при инициализации
Когда вызываетсяCreateConfig, программа инициализирует многие поля жёсткими значениями по умолчанию:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint и четыре публичных ключа кошельков при создании; последующие значения можно настроить через UpdateConfig.
Как запуск выбирает GlobalConfig
При инициализации создатель передаёт:
(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.migrate_type == 1(CPSWAP).- Если выбранная платформа имеет
restrict_global_config == 1, включается соответствующийPlatformAllowConfig.
Initialize PoolState запуска хранит публичный ключ global_config непосредственно, поэтому привязка постоянна.
Путь обновления
UpdateConfig только для администратора и принимает пару (param: u8, value: u64). Каждое значение param выбирает, какое поле мутировать:
Ротации кошельков (
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) принимают отдельную форму аргумента Pubkey; проверьте источник update_config для точной таблицы диспетчеризации перед составлением транзакции администратора.
Бывший селектор UpdateConfig 12 для авторизации платформы удалён. Администраторы платформ теперь управляют своими собственными списками разрешений.
Чтение GlobalConfig с клиента
getAllGlobalConfigs или запросите конечную точку API LaunchLab, которая их отражает; количество счётов в цепи невелико (на практике однозначное число).
Ссылки
products/launchlab/platform-config— наложение для каждой платформы, которое дополнительно ограничивает форму кривой.products/launchlab/accounts— полный граф счётов для запуска.products/launchlab/instructions— инструкции инициализации и обновления.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.

