跳轉到主要內容

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 自動翻譯,所有內容以英文版本為準。查看英文版 →
LaunchLab 公開了一套精簡的指令集:六個用戶面向的呼叫加上少數管理員原語。SDK 包裝了所有這些;本頁面為聚合器、監測工具和需要 CPI 的程式文檔化了原始接口。

指令清單

分組指令可由以下調用
全域設定CreateConfig / UpdateConfig管理員
啟動生命週期Initialize / InitializeV2任何人(創建者)— SPL Token 啟動;V2 記錄 amm_creator_fee_on 以供最終 CPMM 畢業使用
啟動生命週期InitializeWithToken2022任何人(創建者)— Token-2022 啟動,可選的 TransferFeeConfig
交易BuyExactIn / BuyExactOut任何人 — 結合曲線上的精確輸入/精確輸出買入
交易SellExactIn / SellExactOut任何人 — 結合曲線上的精確輸入/精確輸出賣出
畢業MigrateToAmm遷移錢包(在 GlobalConfig 上設定)— 畢業到 AMM v4。在 amm_creator_fee_on = BothToken 時使用,以便創建者費用可以在任一側收取。
畢業MigrateToCpswap遷移錢包 — 畢業到 CPMM。在 amm_creator_fee_on = QuoteToken 時使用,Token-2022 啟動需要。包裝 CPMM 上的 InitializeWithPermission
費用CollectFee管理員 — 掃除啟動中的協議費用
費用CollectMigrateFee管理員 — 掃除應計的遷移費用
費用ClaimCreatorFee創建者 — 在曲線階段索取應計的創建者費用
解鎖CreateVestingAccount創建者 — 為受益人分配鎖定代幣,於畢業後解鎖
解鎖CreatePlatformVestingAccount平台管理員 — 為平台側受益人分配鎖定代幣
解鎖ClaimVestedToken受益人 — 懸崖期後索取已解鎖的代幣
平台設定CreatePlatformConfig / UpdatePlatformConfig平台管理員
平台設定UpdatePlatformCurveParam / RemovePlatformCurveParam平台管理員 — 管理每個平台的允許曲線形狀列表
平台費用ClaimPlatformFee / ClaimPlatformFeeFromVault平台管理員
平台存取CreatePlatformGlobalAccess / ClosePlatformGlobalAccess管理員 — 限制哪些平台可以使用給定的 GlobalConfig
「ExactIn/ExactOut」分割類似 CPMM 的 SwapBaseInput / SwapBaseOutput — 鏈上它們是單獨的指令判別式,具有略微不同的四捨五入。 畢業路徑選擇。 migrate_typeInitialize{V2,WithToken2022} 時記錄在 PoolState 上,決定了兩個畢業指令中的哪一個可以執行。Token-2022 啟動始終遷移到 CPMM。SPL Token 啟動根據 amm_creator_fee_on 設定遷移到 AMM v4 或 CPMM:
  • BothTokenMigrateToAmm → AMM v4 池(創建者費用可以從任一側收取;AMM v4 沒有原生創建者費用欄位,所以創建者費用改由 LP 鎖定 NFT 機制取得)。
  • QuoteTokenMigrateToCpswap → 具有 creator_fee_on = OnlyQuoteToken 的 CPMM 池(創建者繼續通過 LaunchLab Fee Key NFT 從 CPMM 池賺取費用 — 見 products/launchlab/creator-fees)。
關於 AmmCreatorFeeOn 枚舉名稱的注意。 Rust 原始碼將此枚舉稱為 AmmCreatorFeeOn,變體為 QuoteTokenBothToken。名稱具有誤導性:在目前的運營實踐中,變體不僅控制創建者費用在畢業後 CPMM 池上的哪一側收取 — 它還選擇了畢業目標程式(AMM v4 對比 CPMM),並與啟動 PoolState 上的 migrate_type 配對。將欄位視為「遷移目標 + 畢業後創建者費用側」合併為一個。鏈上枚舉名稱尚未重構,但將其推理為 MigrationTarget 更接近現實。

Initialize

建立新的啟動。 參數
launch_params: {
    curve_type:                 u8,
    base_supply_max:            u64,
    base_supply_graduation:     u64,
    k:                          u128,              // 或初始虛擬報價儲備,curve_type=1 時
    open_time:                  u64,
    quote_mint:                 Pubkey,
    base_token_metadata: {                         // 內聯名稱/符號/uri;程式 CPI 到 Metaplex
        name:   String,
        symbol: String,
        uri:    String,
    },
    fees: {
        buy_numerator:   u64,
        buy_denominator: u64,
        sell_numerator:  u64,
        sell_denominator: u64,
        lp_share:        u64,
        creator_share:   u64,
        protocol_share:  u64,
        total_share:     u64,
    },
    post_graduation_lp_policy:  u8,                // 0 = Burn, 1 = Lock, 2 = ToCreator
}
帳戶(簡化版)
#名稱WS註記
1creatorWS支付租金 + 基礎鑄幣廠建立。
2launch_config協議配置繫結。
3launch_stateW新帳戶。
4launch_authorityPDA。
5base_mintWS新的 Keypair(或 PDA)— 此指令初始化它。
6base_vaultWlaunch_authoritybase_mint 上的 ATA。
7quote_mint
8quote_vaultWlaunch_authorityquote_mint 上的 ATA。
9metadataWMetaplex 元資料 PDA。
10metaplex_program
11token_program僅限 SPL Token。
12system_program
13rent
前置條件
  • quote_mint ∈ launch_config.allowed_quote_mints
  • base_supply_graduation ≤ base_supply_max
  • 費用參數通過 launch_config.max_*_fee_rate 檢查。
  • open_time ≥ now − slop(SDK 強制 ≥ now;程式允許輕微的反向日期)。
  • curve_type 被識別。
後置條件
  • base_mintsupply = base_supply_max,全部在 base_vault 中。
  • base_mint.mint_authority = launch_authorityfreeze_authority = None
  • LaunchState 初始化為 status = Activebase_sold = 0quote_reserve_real = 0
  • quote_reserve_target 根據曲線參數 + base_supply_graduation + buy_numerator 計算(大約)。
常見錯誤InvalidQuoteMintFeeRateTooHighInvalidCurveParamsMathOverflow

Buy(標準變體:BuyExactIn

用戶提供固定的 quote_in;曲線計算 base_out 參數
quote_in:          u64
minimum_base_out:  u64
帳戶
#名稱WS
1userWS
2launch_stateW
3launch_authority
4base_vaultW
5quote_vaultW
6user_base_ataW
7user_quote_ataW
8base_mint
9quote_mint
10token_program
11associated_token_program
12system_program
前置條件
  • launch_state.status == Active
  • now ≥ open_time
  • user_quote_ata.balance ≥ quote_in
  • quote_in > 0
效果
  1. quote_in 分割為 quote_in_after_fee 和費用部分。
  2. 對曲線進行 Newton 求解,給定收費後的報價找到 base_out
  3. require(base_out ≥ minimum_base_out) 否則以 ExceededSlippage 復原。
  4. 移動 quote_in(用戶 → 金庫)。移動 base_out(金庫 → 用戶)。
  5. 更新 base_sold += base_outquote_reserve_real += quote_in_after_fee × (lp_share / total_share)
  6. 更新費用計數器(protocol_fees_quotecreator_fees_quote)。
  7. state_data.num_buys += 1
  8. 更新後如果 quote_reserve_real ≥ quote_reserve_target,SDK 通常在同一交易中鏈結 Graduate ix。程式不會在 Buy 內自動畢業 — 需要後續的 Graduate

BuyExactOut

用戶指定確切的 base_out;程式計算 quote_in 參數
base_out:      u64
maximum_quote_in: u64
BuyExactIn 相同的帳戶。使用閉式二次積分(或 CPMM 逆運算,適用於 curve_type 1)而非 Newton 迭代。

Sell / SellExactIn / SellExactOut

Buy 的鏡像。用戶向曲線返回 base_in 並接收 quote_out。費用從 quote_out 中扣除,所以用戶收到的少於原始積分所得。 前置條件
  • user_base_ata.balance ≥ base_in
  • 賣出不能將 base_sold 推低於 0(考慮到帳戶一致性,與上述冗餘)。
  • 啟動是 Active
效果 — 對稱於 Buybase_sold 減少、quote_reserve_real 減少。費用仍然應計。

MigrateToAmm / MigrateToCpswap

啟動一旦曲線達到 total_quote_fund_raising 就畢業成可交易的 AMM 池。兩個指令對應於兩個畢業目標 — AMM v4 和 CPMM — 並且對於任何給定的啟動,其中只有一個有效,由 pool_state.migrate_type 決定(在 Initialize 時設定)。 誰簽署
  • MigrateToAmm — 記錄在繫結 GlobalConfig 上的 migrate_to_amm_wallet
  • MigrateToCpswap — 記錄在繫結 GlobalConfig 上的 migrate_to_cpswap_wallet
這些錢包通常由 Raydium 營運的畢業人工控制持有;實踐中畢業在閾值被超越後的秒內進行,不論誰觸發了最後的買入。 參數 MigrateToAmm 需要三個(主要是 OpenBook 市場參數,程式轉發到 AMM v4):
base_lot_size:               u64
quote_lot_size:              u64
market_vault_signer_nonce:   u8
MigrateToCpswap 不需要任何參數。 效果(兩者共同)
  1. 驗證 pool_state.status == Migrate(即 quote_reserve_target 已達到)。否則以 PoolMigrated(狀態已經是 Migrated)或 PoolFunding(仍在籌資中)復原。
  2. 驗證 pool_state.migrate_type 符合指令(AMM 為 0,CPMM 為 1)。否則以 MigrateTypeNotMatch 復原。
  3. 計算畢業後的儲備:
    • base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
    • quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
  4. CPI 進入目標程式(AMM v4 Initialize2CPMM InitializeWithPermission)使用那些儲備來建立畢業後的池。
  5. 根據繫結的 PlatformConfig.{platform_scale, creator_scale, burn_scale}(僅限 CPMM)分割結果 LP — 一部分鑄幣給 platform_nft_wallet,一部分給由 LP-Lock 程式包裝的創建者 NFT,一部分通過 Burn & Earn 燒毀。對於 AMM v4 畢業,LP 處置由 AMM v4 自己的初始化參數控制。
  6. 撤銷 base_mint.mint_authority(設定為 None)。
  7. 翻轉 pool_state.status = Migrated,設定 vesting_schedule.start_time = block_time + cliff_period
後置條件 — 從此時起 BuyExactInBuyExactOutSellExactInSellExactOut 將以 PoolMigrated 拒絕。結果的 AMM 池是規範的,交易像任何其他 AMM v4 / CPMM 池一樣。 常見錯誤PoolFundingPoolMigratedMigrateTypeNotMatchInvalidCpSwapConfigMathOverflow

CollectFee

管理員對單一啟動上應計交易費用的掃除。 參數 — 無。 帳戶
#名稱WS註記
1protocol_fee_ownerS必須等於 global_config.protocol_fee_owner
2authorityPDA [b"vault_auth_seed"];簽署金庫轉帳。
3pool_stateW變動以零出 quote_protocol_fee
4global_config簽署者的真實來源。
5quote_vaultWquote_protocol_fee 抽乾。
6recipient_token_accountWprotocol_fee_ownerquote_mint 上的 ATA。
7quote_mint
8token_programSPL Token(報價鑄幣廠始終是 SPL Token)。
效果 — 從 quote_vault 轉帳 pool_state.quote_protocol_feerecipient_token_account,然後將計數器置零。可在首次買入後的任何時間調用。

CollectMigrateFee

管理員對畢業時應計的遷移費用的掃除。帳戶形狀與 CollectFee 相同,但使用 migrate_fee_owner 作為簽署者(而非 protocol_fee_owner)和 pool_state.migrate_fee 作為抽乾的計數器。

ClaimCreatorFee

每個創建者對創建者擁有的每個使用相同報價鑄幣廠的啟動上應計創建者費用的掃除。抽乾每個創建者的費用金庫,而非每個池的費用金庫。 參數 — 無。 帳戶
#名稱WS註記
1creatorWS池創建者。
2fee_vault_authorityPDA [b"creator_fee_vault_auth_seed"]
3creator_fee_vaultWPDA,種子為 [creator, quote_mint];聚合創建者金庫。
4recipient_token_accountWinit_if_neededcreatorquote_mint 上的 ATA。
5quote_mint
6token_program
7system_program若需要用於 ATA 建立。
8associated_token_program
效果 — 轉帳 creator_fee_vault 的全部餘額到 recipient_token_account。如果金庫為空,以大於零檢查復原。

ClaimPlatformFee

每個平台的掃除,直接抽乾啟動的報價金庫。在平台想為一個特定啟動索取其份額而不通過聚合平台金庫時使用。 參數 — 無。 帳戶
#名稱WS註記
1platform_fee_walletWS必須等於 platform_config.platform_fee_wallet
2authorityPDA [b"vault_auth_seed"]
3pool_stateWpool_state.platform_fee 抽乾。
4platform_config簽署者的真實來源。
5quote_vaultW抽乾。
6recipient_token_accountWinit_if_neededplatform_fee_wallet 的 ATA。
7quote_mint
8token_program
9system_program
10associated_token_program
效果 — 從 quote_vault 轉帳 pool_state.platform_feerecipient_token_account,將計數器置零。

ClaimPlatformFeeFromVault

每個平台的聚合掃除。抽乾平台的每個報價鑄幣廠費用金庫,該金庫從每個通過平台路由的啟動累積費用。 參數 — 無。 帳戶
#名稱WS註記
1platform_fee_walletWS必須等於 platform_config.platform_fee_wallet
2fee_vault_authorityPDA [b"platform_fee_vault_auth_seed"]
3platform_config
4platform_fee_vaultWPDA,種子為 [platform_config, quote_mint]
5recipient_token_accountWinit_if_neededplatform_fee_wallet 的 ATA。
6quote_mint
7token_program
8system_program
9associated_token_program
效果 — 轉帳 platform_fee_vault 的全部餘額到 recipient_token_account。如果金庫為空則復原。

解鎖和平台設定指令

這些記錄在專門的頁面上,因為每個都有其自己的狀態模型:

狀態變化矩陣

指令statusreal_basereal_quote費用計數器畢業後池
Initialize{V2,WithToken2022}Funding000
BuyExactIn(q_in)Funding+∆+∆q_after_feequote_protocol_fee += ∆platform_fee += ∆
SellExactIn(b_in)Funding−∆−∆q_before_fee(相同)
達到閾值→ Migrate
MigrateToAmm / MigrateToCpswap→ Migrated(凍結)(凍結)migrate_fee 設定建立,LP 根據 PlatformConfig 分割
CollectFee / CollectMigrateFee任何計數器置零
ClaimCreatorFee / ClaimPlatformFee*任何抽乾金庫
CreateVestingAccountFunding碰撞 allocated_share_amount
ClaimVestedTokenMigrated抽乾 base_vault

接下來去哪裡

來源: