本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
LaunchLab 公開了一套精簡的指令集:六個用戶面向的呼叫加上少數管理員原語。SDK 包裝了所有這些;本頁面為聚合器、監測工具和需要 CPI 的程式文檔化了原始接口。
指令清單
「ExactIn/ExactOut」分割類似 CPMM 的
SwapBaseInput / SwapBaseOutput — 鏈上它們是單獨的指令判別式,具有略微不同的四捨五入。
畢業路徑選擇。 migrate_type 在 Initialize{V2,WithToken2022} 時記錄在 PoolState 上,決定了兩個畢業指令中的哪一個可以執行。Token-2022 啟動始終遷移到 CPMM。SPL Token 啟動根據 amm_creator_fee_on 設定遷移到 AMM v4 或 CPMM:
BothToken→MigrateToAmm→ AMM v4 池(創建者費用可以從任一側收取;AMM v4 沒有原生創建者費用欄位,所以創建者費用改由 LP 鎖定 NFT 機制取得)。QuoteToken→MigrateToCpswap→ 具有creator_fee_on = OnlyQuoteToken的 CPMM 池(創建者繼續通過 LaunchLab Fee Key NFT 從 CPMM 池賺取費用 — 見products/launchlab/creator-fees)。
Initialize
建立新的啟動。
參數
前置條件
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_mint有supply = base_supply_max,全部在base_vault中。base_mint.mint_authority = launch_authority,freeze_authority = None。LaunchState初始化為status = Active、base_sold = 0、quote_reserve_real = 0。quote_reserve_target根據曲線參數 +base_supply_graduation+buy_numerator計算(大約)。
InvalidQuoteMint、FeeRateTooHigh、InvalidCurveParams、MathOverflow。
Buy(標準變體:BuyExactIn)
用戶提供固定的 quote_in;曲線計算 base_out。
參數
前置條件
launch_state.status == Active。now ≥ open_time。user_quote_ata.balance ≥ quote_in。quote_in > 0。
- 將
quote_in分割為quote_in_after_fee和費用部分。 - 對曲線進行 Newton 求解,給定收費後的報價找到
base_out。 require(base_out ≥ minimum_base_out)否則以ExceededSlippage復原。- 移動
quote_in(用戶 → 金庫)。移動base_out(金庫 → 用戶)。 - 更新
base_sold += base_out、quote_reserve_real += quote_in_after_fee × (lp_share / total_share)。 - 更新費用計數器(
protocol_fees_quote、creator_fees_quote)。 state_data.num_buys += 1。- 更新後如果
quote_reserve_real ≥ quote_reserve_target,SDK 通常在同一交易中鏈結Graduateix。程式不會在Buy內自動畢業 — 需要後續的Graduate。
BuyExactOut
用戶指定確切的 base_out;程式計算 quote_in。
參數
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。
Buy。base_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。
MigrateToAmm 需要三個(主要是 OpenBook 市場參數,程式轉發到 AMM v4):
MigrateToCpswap 不需要任何參數。
效果(兩者共同)
- 驗證
pool_state.status == Migrate(即quote_reserve_target已達到)。否則以PoolMigrated(狀態已經是Migrated)或PoolFunding(仍在籌資中)復原。 - 驗證
pool_state.migrate_type符合指令(AMM 為0,CPMM 為1)。否則以MigrateTypeNotMatch復原。 - 計算畢業後的儲備:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI 進入目標程式(
AMM v4 Initialize2或CPMM InitializeWithPermission)使用那些儲備來建立畢業後的池。 - 根據繫結的
PlatformConfig.{platform_scale, creator_scale, burn_scale}(僅限 CPMM)分割結果 LP — 一部分鑄幣給platform_nft_wallet,一部分給由 LP-Lock 程式包裝的創建者 NFT,一部分通過 Burn & Earn 燒毀。對於 AMM v4 畢業,LP 處置由 AMM v4 自己的初始化參數控制。 - 撤銷
base_mint.mint_authority(設定為None)。 - 翻轉
pool_state.status = Migrated,設定vesting_schedule.start_time = block_time + cliff_period。
BuyExactIn、BuyExactOut、SellExactIn、SellExactOut 將以 PoolMigrated 拒絕。結果的 AMM 池是規範的,交易像任何其他 AMM v4 / CPMM 池一樣。
常見錯誤 — PoolFunding、PoolMigrated、MigrateTypeNotMatch、InvalidCpSwapConfig、MathOverflow。
CollectFee
管理員對單一啟動上應計交易費用的掃除。
參數 — 無。
帳戶
效果 — 從
quote_vault 轉帳 pool_state.quote_protocol_fee 到 recipient_token_account,然後將計數器置零。可在首次買入後的任何時間調用。
CollectMigrateFee
管理員對畢業時應計的遷移費用的掃除。帳戶形狀與 CollectFee 相同,但使用 migrate_fee_owner 作為簽署者(而非 protocol_fee_owner)和 pool_state.migrate_fee 作為抽乾的計數器。
ClaimCreatorFee
每個創建者對創建者擁有的每個使用相同報價鑄幣廠的啟動上應計創建者費用的掃除。抽乾每個創建者的費用金庫,而非每個池的費用金庫。
參數 — 無。
帳戶
效果 — 轉帳
creator_fee_vault 的全部餘額到 recipient_token_account。如果金庫為空,以大於零檢查復原。
ClaimPlatformFee
每個平台的掃除,直接抽乾啟動的報價金庫。在平台想為一個特定啟動索取其份額而不通過聚合平台金庫時使用。
參數 — 無。
帳戶
效果 — 從
quote_vault 轉帳 pool_state.platform_fee 到 recipient_token_account,將計數器置零。
ClaimPlatformFeeFromVault
每個平台的聚合掃除。抽乾平台的每個報價鑄幣廠費用金庫,該金庫從每個通過平台路由的啟動累積費用。
參數 — 無。
帳戶
效果 — 轉帳
platform_fee_vault 的全部餘額到 recipient_token_account。如果金庫為空則復原。
解鎖和平台設定指令
這些記錄在專門的頁面上,因為每個都有其自己的狀態模型:CreateVestingAccount、CreatePlatformVestingAccount、ClaimVestedTokenCreatePlatformConfig、UpdatePlatformConfig、UpdatePlatformCurveParam、RemovePlatformCurveParam、CreatePlatformGlobalAccess、ClosePlatformGlobalAccessCreateConfig、UpdateConfig
狀態變化矩陣
接下來去哪裡
products/launchlab/code-demos— 每個指令的 TypeScript 範例。products/launchlab/accounts— 完整狀態形狀。reference/error-codes— LaunchLab 錯誤列舉。
- Raydium SDK v2
LaunchLab模組 - Raydium LaunchLab 程式原始碼

