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.
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
GlobalConfig 是協議層級的設定帳戶。可以有多個 — 以 (curve_type, index) 為鍵 — 每次啟動在 Initialize 時會選擇一個。選定的 GlobalConfig 上的數值隨後會成為該啟動參數的硬限制。若要進行平台層級的自訂(每平台費率、允許的曲線形狀、畢業時的 NFT 拆分),請參閱 products/launchlab/platform-config。是什麼
GlobalConfig 是一個按 (curve_type, index) 的單例 PDA,它固定了每次啟動必須遵守的協議側規則:
- 允許的連結曲線類型(
curve_type)。 - 曲線在每次買賣時收取的交易費率。
- 畢業時收取的遷移費用。
- 供應量、鎖定率、賣出率和遷移率的下限。
- 報價幣種(通常是包裝的 SOL 或 USDC) — 使用者用來購買的資產。
- 三個協議側錢包:協議費擁有者、遷移費擁有者,以及兩個授權畢業到 AMM v4 / CPMM 的遷移控制錢包。
- 一個選項標誌(
requires_platform_auth),用於控制哪些平台可以使用此設定。
GlobalConfig 帳戶由 LaunchLab 程式管理員(跨 Anchor 型 Raydium 程式共享的硬編碼管理員公鑰 — 見 reference/program-addresses)建立和更新。
配置
create_config 指令是唯一的真實來源。)
欄位語義
curve_type 和 index
這兩者共同唯一確定一個 GlobalConfig。每個 (curve_type, index) 對都有一個 GlobalConfig:
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— 畢業時收取的固定費用,以 lamports(或報價單位,取決於設定)計算。由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 = 任何人都可以使用此設定;非零 = 只有具有有效 PlatformGlobalAccess PDA 的平台才能針對它啟動)。設定時,對此 GlobalConfig 的每個 Initialize 都必須包含一個匹配的 PlatformGlobalAccess 帳戶,證明該平台已通過 CreatePlatformGlobalAccess(僅限管理員的指令)獲得預授權。見 platform-config 了解平台端機制。
初始化時的預設值
呼叫CreateConfig 時,程式會用硬編碼的預設值初始化許多欄位:
curve_type、index、migrate_fee、trade_fee_rate、quote_mint 和四個錢包公鑰;後續值可以通過 UpdateConfig 調整。
啟動如何選擇 GlobalConfig
在 Initialize 時,建立者傳遞:
(curve_type, index)用於選擇要載入的GlobalConfigPDA。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,則包含一個有效的PlatformGlobalAccessPDA。
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 幫助程式或查詢鏡像它們的 LaunchLab API 端點;鏈上帳戶數量很少(實踐中為個位數)。
指標
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。


