本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
GlobalConfig 是協議級設定帳戶。可以有多個——以 (curve_type, index) 為鍵——每次啟動在 Initialize 時恰好選擇一個。所選 GlobalConfig 上的值隨後成為該啟動參數的硬限制。如需平台級自訂(每平台費率、允許的曲線形狀、畢業時的 NFT 分割),請參閱 products/launchlab/platform-config。概述
GlobalConfig 是每個 (curve_type, index) 的單一 PDA,規定每次啟動必須遵守的協議端規則:
- 允許的聯合曲線類型(
curve_type)。 - 曲線在每次買賣時收取的交易費率。
- 畢業時收取的遷移費。
- 供應量、鎖定率、賣出率和遷移率的下限。
- 報價幣種(通常為 wrapped SOL 或 USDC)——用戶購買時使用的資產。
- 四個協議端錢包:協議費所有者、遷移費所有者,以及為 CPMM 和舊版 AMM v4 畢業保留的兩個遷移控制錢包。
GlobalConfig 帳戶可由 LaunchLab 程式管理員或委派的建立設定權限建立。只有管理員可更新現有設定。請參閱 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— 用戶購買時使用的資產。大多數啟動使用 wrapped 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。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
在 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。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 幫助程式或查詢鏡像它們的 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。

