本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
本頁記錄了每次啟動的帳戶圖表:
PoolState(一次啟動的根狀態帳戶)、其兩個金庫、授權 PDA,以及啟動結算時獲得的畢業後參考。有關約束每次啟動的協議級設定,請參閱 products/launchlab/global-config。有關每個平台的覆蓋層,請參閱 products/launchlab/platform-config。有關歸屬帳戶(PoolState 上的 VestingSchedule、每個受益人的 VestingRecord),請參閱 products/launchlab/vesting。帳戶清單
SDK 的
raydium.launchpad.getLaunchById 返回 PoolState 加上一個標誌,指示啟動是否已畢業;如果已畢業,則包含遷移後的池 ID。
PoolState
每次啟動的根狀態。下面的欄位名稱與鏈上 Rust 結構(states/pool.rs)相符;某些值為了可讀性而簡化——請查閱原始碼以了解確切的記憶體佈局。
PoolStatus 值(來自 Anchor IDL):
status— 三個值,單調遞增(Funding → Migrate → Migrated)。讀取始終安全;寫入受限。real_base、real_quote— 當前曲線狀態。結合virtual_base/virtual_quote,它們足以計算現貨價格而無需接觸金庫。請參閱bonding-curve。total_base_sellvsreal_base— UI 的「畢業進度」比率。migrate_type— 新初始化需要1(CPSWAP)。儲存的0僅對在強制執行 CPMM 之前建立的現有啟動有意義。amm_creator_fee_on— 在畢業後 CPMM 池上選擇creator_fee_on = OnlyQuoteToken(0)或BothToken(1)。它不選擇遷移目標。請參閱creator-fees。token_program_flag— 位欄位,不是布林值。Bit0 是基礎鑄幣,bit1 是報價鑄幣,每個0表示 SPL Token,1表示 Token-2022,因此位元組取四個值:0(兩個舊版)、1(Token-2022 基礎)、2(Token-2022 報價)、3(兩個 Token-2022)。用(token_program_flag >> bit) & 1讀取一個鑄幣。將整個位元組與0比較以分類基礎鑄幣會將2解析為錯誤的程式。Bit1 在支援 Token-2022 報價鑄幣之前一直是常數0。quote_protocol_fee/platform_fee/migrate_fee— 三個獨立的費用計數器。每個都有自己的聲稱指令;請參閱instructions。vesting_schedule— 存在於每個PoolState上,但當total_locked_amount == 0時不活躍。請參閱vesting以了解完整生命週期。
授權 PDA
LaunchLab 在所有啟動中使用單一授權 PDA,無每次啟動的種子:- 每次啟動的
base_vault和quote_vault上的授權。 - 每次啟動的
base_mint上的mint_authority(畢業前)。 - CPMM 畢業 CPI 上的簽署者,以及現有狀態的舊版 AMM v4 畢業。
ClaimVestedToken從基礎金庫轉出的簽署者。- Token-2022 基礎鑄幣的
TransferFeeConfig上的transfer_fee_config_authority,用於整個畢業前階段——以及其withdraw_withheld_authority,但僅當平台未設定PlatformConfig.transfer_fee_extension_auth時。
mint_authority 在 MigrateToCpswap 或舊版 MigrateToAmm 呼叫後立即被撤銷,因此供應永久固定。
兩個額外的 PDA 控制費用金庫:
ClaimCreatorFee 和 ClaimPlatformFeeFromVault 期間簽署相應費用金庫的轉出。
基礎鑄幣
由Initialize 內聯建立,具有:
mint_authority = authority(在畢業時撤銷)。freeze_authority = None。supply = supply,完全鑄造到base_vault。decimals由創作者在Initialize時選擇(通常為 6)。
base_mint.supply 在啟動的整個生命週期中是常數。曲線購買將代幣從 base_vault 移動到買方,但不呼叫 mint_to。
Initialize / InitializeV2 建立 SPL Token 基礎鑄幣。專用的 InitializeWithToken2022 指令允許基礎鑄幣是 Token-2022 鑄幣(具有可選的 TransferFeeConfig)。所有三個初始化路徑都需要 CPMM 畢業。
當 InitializeWithToken2022 附加 TransferFeeConfig 時,鑄幣使用 transfer_fee_config_authority = authority 和 withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth 建立,當平台未設定該欄位時回退到 authority。兩個授權在畢業時重新分配給平台金鑰,提取端僅在 PDA 仍持有它時。請參閱 platform-config。
報價鑄幣獨立於基礎鑄幣,本身可能是 Token-2022 鑄幣——InitializeV2 和 InitializeWithToken2022 在其報價程式槽中接受任一程式。已棄用的 Initialize 不接受:其報價程式帳戶仍然類型為 SPL Token,因此報價鑄幣為 Token-2022 的設定只能通過其他兩個啟動。報價鑄幣永遠不會由 LaunchLab 建立;它是 GlobalConfig.quote_mint 命名的任何內容。請參閱 global-config 和 reference/token-2022-support。
金庫
base_vault 和 quote_vault 都是由 LaunchLab authority PDA 擁有的代幣帳戶,每個都在擁有其自己鑄幣的程式上建立——因此啟動可以有舊版基礎金庫和 Token-2022 報價金庫,或任何其他組合。token_program_flag 記錄哪個是哪個。地址儲存在 PoolState 上,也可以派生:
Initialize 帳戶結構驗證確切的種子前綴。)
費用金庫
兩個 PDA 跨啟動聚合費用:- 創作者費用金庫 — PDA,種子為
[creator, quote_mint]。每次在同一報價鑄幣上賺取相同創作者費用的啟動都流入同一金庫。創作者通過ClaimCreatorFee清掃它。 - 平台費用金庫 — PDA,種子為
[platform_config, quote_mint]。通過同一平台路由且使用同一報價鑄幣的每次啟動都流入同一金庫。平台的platform_fee_wallet通過ClaimPlatformFeeFromVault清掃它。還有一個每次啟動的清掃變體(ClaimPlatformFee),直接從啟動的quote_vault提取,無需通過聚合金庫。
報價金庫 ↔ real_quote
quote_vault.balance 和 PoolState.real_quote 應保持同步。它們最多可以漂移三個待處理費用計數器的總和(quote_protocol_fee、platform_fee、migrate_fee),這些計數器位於金庫中但屬於費用計數器而不是曲線儲備。曲線數學始終使用 real_quote,從不使用原始金庫餘額。
畢業前不變量:
PlatformCurveRule
每個 (PlatformConfig, GlobalConfig) 對一個帳戶,持有該平台在該設定上允許的啟動形狀。PDA 種子為 [b"platform_curve_rule", platform_config, global_config]。
150 + Σ(14 + 18 × constraints),解碼器不得假設固定大小。組是 OR 的:一旦一個組的約束全部成立,啟動就被允許。零組意味著沒有限制。
僅當擁有的 PlatformConfig.restrict_curve_param 為 1 時才讀取它——在 0 時程式忽略帳戶,舊規則可能就在那裡。欄位 ID、運算子和操作手冊在 products/launchlab/curve-rules。
生命週期帳戶轉換
接下來去哪裡
products/launchlab/bonding-curve—real_base↔real_quote背後的數學。products/launchlab/instructions— 每個指令的帳戶列表。products/launchlab/global-config— 協議級綁定。products/launchlab/platform-config— 平台覆蓋層。products/launchlab/vesting— 鎖定供應機制。products/cpmm/accounts— 畢業後cpmm_pool_state的樣子。
raydium-launch/programs/launchpad/src/states/pool.rs—PoolState、PoolStatus、VestingSchedule、AmmCreatorFeeOn。raydium-launch/programs/launchpad/src/lib.rs— PDA 種子常數(AUTH_SEED、CREATOR_FEE_VAULT_AUTH_SEED、PLATFORM_FEE_VAULT_AUTH_SEED)。- Raydium SDK v2
launchpad模組。

