Skip to main content
本頁內容由 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 以了解規範權限。

佈局

PDA 推導:
(簽署前請從鏈上帳戶驗證確切的種子順序——程式的 create_config 指令是真實來源。)

欄位語義

curve_typeindex

這兩者共同唯一地鍵定一個 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。每個新初始化的啟動都使用此路徑。
這些通常由 Raydium 運營的畢業 crank 持有,因此畢業在曲線達到閾值後不久進行,而不是等待建立者呼叫。

平台端允許清單

GlobalConfig 不再有 requires_platform_auth。其前一個位元組是填充,因此帳戶大小不變。存取現在由 PlatformConfig.restrict_global_config 和該平台管理員建立的 PlatformAllowConfig 帳戶控制。請參閱 platform-config

初始化時的預設值

呼叫 CreateConfig 時,程式使用硬編碼預設值為許多欄位設定種子:
管理員在建立時明確設定 curve_typeindexmigrate_feetrade_fee_ratequote_mint 和四個錢包公鑰;後續值可通過 UpdateConfig 調整。

啟動如何選擇 GlobalConfig

Initialize 時,建立者傳遞:
  • (curve_type, index) 以選擇要載入的 GlobalConfig PDA。
  • CurveParams 描述曲線形狀(supplytotal_base_selltotal_quote_fund_raisingmigrate_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 == 1CPSWAP)。
  • 如果選定的平台有 restrict_global_config == 1,則包含匹配的 PlatformAllowConfig
Initialize 後,啟動的 PoolState 直接儲存 global_config 公鑰,因此綁定是永久的。

更新路徑

UpdateConfig 僅限管理員,接受 (param: u8, value: u64) 對。每個 param 值選擇要變更的欄位: 錢包輪換(protocol_fee_ownermigrate_fee_ownermigrate_to_amm_walletmigrate_to_cpswap_wallet)採用單獨的 Pubkey 引數形狀;在編寫管理員交易前檢查 update_config 原始碼以了解確切的分派表。 舊的 UpdateConfig 選擇器 12 用於平台授權已移除。平台管理員現在管理自己的允許清單。

從用戶端讀取 GlobalConfig

對於列出所有可用設定的 UI,遍歷 SDK 的 getAllGlobalConfigs 幫助程式或查詢鏡像它們的 LaunchLab API 端點;鏈上帳戶計數很小(實際上是個位數)。

指標

來源:
  • raydium-launch/programs/launchpad/src/states/config.rsGlobalConfig 結構和 initialize
  • raydium-launch/programs/launchpad/src/lib.rscreate_configupdate_config