このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
LaunchLab は厳選されたインストラクションセットを公開しています:ユーザー向けの 6 つの呼び出しと、いくつかの管理プリミティブです。SDK はすべてをラップしていますが、このページではアグリゲーター、監視ツール、CPI が必要なプログラム向けの生のサーフェスを説明しています。
インストラクション一覧
「ExactIn/ExactOut」の分割は CPMM の
SwapBaseInput / SwapBaseOutput を反映しています — オンチェーンではわずかに異なるラウンディングを持つ別のインストラクション判別器です。
卒業パス選択。 すべての新しい Initialize、InitializeV2、InitializeWithToken2022 呼び出しは migrate_type = 1(CPSWAP)を設定する必要があります。新しい AMM v4 バウンドプールを初期化しようとすると MigrateTypeNotMatch が返されます。amm_creator_fee_on は、結果の CPMM クリエーター手数料がクォートトークンに適用されるか両方のトークンに適用されるかのみを選択します。ターゲットプログラムを選択しません。
MigrateToAmm は、この制限の前に migrate_type = 0 で初期化された既存の PoolState に対して呼び出し可能なままです。このリリースは既存のプール状態を書き直したり、レガシーインストラクションを削除したりしません。
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 と同じアカウント。Newton 反復ではなく、閉じた形の二次積分(または curve_type 1 の場合は CPMM 逆関数)を使用します。
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 に達したら、ローンチをトレード可能なプールに卒業させます。新しいローンチは CPMM のみです。MigrateToAmm は、保存された migrate_type が 0 である既存のプール用に保持されます。
署名者
MigrateToAmm— バインディングGlobalConfigに記録されたmigrate_to_amm_wallet。MigrateToCpswap— バインディングGlobalConfigに記録されたmigrate_to_cpswap_wallet。
MigrateToAmm は 3 つを取ります(主に 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
- ターゲットプログラム(
AMM v4 Initialize2またはCPMM InitializeWithPermission)に CPI して、卒業後のプールを作成します。 - 2026-08-17 アップグレード後に実行された CPMM マイグレーションの場合、
platform_scale + creator_scaleを 1 つのプラットフォーム所有のロック LP シェアに結合し、最大 1 つの Fee Key NFT をplatform_nft_walletにミントします。burn_scaleの残りを焼却します。アップグレード前は、creator_scaleは別々にロックされ、その Fee Key はトークンクリエーターに行きました。完了した履歴マイグレーションは変更されません。レガシー AMM v4 卒業の場合、LP 配置はそのインストラクションの既存フローに従います。 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。
CPMM マイグレーション残りアカウント
MigrateToCpswap を構築するクライアントは、これらの固定 remaining_accounts インデックスを使用する必要があります:
インストラクションはアップグレードされたパスで最低 10 個の残りアカウントが必要です。サポートミントアカウントは読み取り専用 CPI 入力です。ミントに初期化されたサポートレコードがない場合でも、両方のアドレスを派生させます。クリエーターロックアカウントを追加し続けるか、インデックス 8–9 を省略する古いビルダーは更新する必要があります。
プラットフォーム GlobalConfig アローリスト
PlatformConfig.restrict_global_config はチェックを制御します:
0:プラットフォームは有効なGlobalConfigを受け入れます;アローアカウントは必要ありません。1:Initialize、InitializeV2、InitializeWithToken2022は、remaining_accountsのどこかに一致するPlatformAllowConfigを含める必要があります。
CreatePlatformAllowConfig と ClosePlatformAllowConfig で PDA を作成または閉じます。そのシードは [b"platform_allow_config", platform_config, global_config] です。以前の管理者管理の PlatformGlobalAccess インストラクションと PDA は廃止されました。
CollectFee
単一のローンチでプロトコルの蓄積されたトレード手数料の管理者回収。
引数 — なし。
アカウント
効果 —
pool_state.quote_protocol_fee を quote_vault から recipient_token_account に転送し、カウンターをゼロにします。最初の買い後いつでも呼び出し可能です。
CollectMigrateFee
卒業時に蓄積されたマイグレーション手数料の管理者回収。CollectFee と同じアカウント形状で、protocol_fee_owner の代わりに migrate_fee_owner を署名者として、pool_state.migrate_fee をドレインされたカウンターとして使用します。
ClaimCreatorFee
クリエーターが所有するすべてのローンチにわたって蓄積されたクリエーター手数料の、同じクォートミントを使用するクリエーターごとの回収。プール単位のものではなく、クリエーター単位の手数料ボルトをドレインします。
引数 — なし。
アカウント
効果 —
creator_fee_vault の全残高を recipient_token_account に転送します。ボルトが空の場合、ゼロより大きいチェックで戻ります。
ClaimPlatformFee
単一のローンチのクォートボルトを直接ドレインするプラットフォームごとの回収。プラットフォームが集約されたプラットフォームボルトを経由せずに 1 つの特定のローンチのスライスを請求したい場合に使用します。
引数 — なし。
アカウント
効果 —
pool_state.platform_fee を quote_vault から recipient_token_account に転送し、カウンターをゼロにします。
ClaimPlatformFeeFromVault
プラットフォームごとの集約回収。プラットフォームを通じてルーティングされたすべてのローンチからの手数料を蓄積するプラットフォームのクォートミントごとの手数料ボルトをドレインします。
引数 — なし。
アカウント
効果 —
platform_fee_vault の全残高を recipient_token_account に転送します。ボルトが空の場合は戻ります。
ベスティングおよびプラットフォーム設定インストラクション
これらは専用ページに記載されています。各々が独自の状態モデルを持つためです:CreateVestingAccount、CreatePlatformVestingAccount、ClaimVestedTokenCreatePlatformConfig、UpdatePlatformConfig、UpdatePlatformCurveParam、RemovePlatformCurveParam、CreatePlatformAllowConfig、ClosePlatformAllowConfigCreateConfig、UpdateConfig
状態変化マトリックス
次のステップ
products/launchlab/code-demos— 各インストラクションの TypeScript 例。products/launchlab/accounts— 完全な状態形状。reference/error-codes— LaunchLab エラー列挙。
- Raydium SDK v2
LaunchLabモジュール - Raydium LaunchLab プログラムソース

