本頁內容由 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)。限制BuyExactIn、BuyExactOut、SellExactIn和SellExactOut接受的share_fee_rate參數——在交易期間直接支付給份額接收者的推薦費。它不約束PlatformConfig.fee_rate;該費率有自己的上限,詳見platform-config。CreateConfig和UpdateConfig都強制執行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)。幣種可由 SPL Token 程式或 Token-2022 擁有——見下文。protocol_fee_owner— 簽署CollectFee並領取綁定到此設定的每次啟動上累積的協議費的公鑰。儲存在鏈上;管理員可通過UpdateConfig輪換它。migrate_fee_owner— 簽署CollectMigrateFee的公鑰。
Token-2022 報價幣種
CreateConfig 接受 Token-2022 quote_mint,綁定到此類設定的池從頭到尾都使用它:報價金庫、兩個費用金庫和份額費接收者的代幣帳戶都在 Token-2022 上建立,交換指令考慮報價端的 TransferFeeConfig。PoolState.token_program_flag 位 1 按啟動記錄選擇。
在依賴其中一個之前,有兩個值得了解的限制:
- 已棄用的
Initialize無法針對它啟動。 只有InitializeV2和InitializeWithToken2022接受 Token-2022 報價程式。請參閱instructions。 - 不應用擴展允許清單。 與 CPMM 和 CLMM 不同,LaunchLab 不篩選報價幣種的擴展——
CreateConfig按原樣接受幣種,因此唯一的門檻是管理員對哪些幣種綁定到設定的自由裁量權。程式的NoSupportExtension檢查僅涵蓋 LaunchLab 自己建立的 Token-2022 基礎幣種。將綁定視為高信任操作;請參閱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
在 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。

