このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
このエントリは、今後の LaunchLab プログラム更新をカバーしています。デプロイ前にローカル リリース ブランチに対して検証されました。本番環境で新しいパスを有効にする前に、デプロイされたプログラムと公開された IDL を確認してください。
GlobalConfig 作成、プール初期化、4 つのスワップ命令、すべてのフィー請求、CPMM マイグレーション)は、どちらのトークンプログラムも受け入れるようになり、スワップ命令は quote ミントのトランスファーフィーを考慮します。
インテグレーター向け TL;DR
- Quote mints は Token-2022 になります。
CreateConfigは Token-2022quote_token_mintを受け入れ、InitializeV2/InitializeWithToken2022は quote-program スロットでどちらのトークンプログラムも受け入れます。アカウント順序は変わりません。そのスロットに渡す値が変わります。 - 非推奨の
Initializeはまだレガシーのみです。 その quote-program アカウントは SPL Token に型付けされたままなので、quote ミントが Token-2022 であるコンフィグはInitializeV2またはInitializeWithToken2022を通じてのみ起動できます。 - スリッページ境界は支払者が実際に支払い、受け取る金額に移動します。
minimum_amount_outとmaximum_amount_inは、vault が移動した金額ではなく、quote ミントのトランスファーフィーを差し引いた金額と比較されるようになりました。フィーを負担する quote ミント上の既存の見積もりロジックは、コストを過小見積もりし、収益を過大見積もりします。 PoolState.token_program_flagbit1 が意味を持つようになります。 quote mints がレガシーのみの間は常に0でした。バイト全体を0と比較するクライアントは、quote ミントが Token-2022 の場合、レガシー base ミントを Token-2022 として読み取ります。これはこのリリースで最も可能性の高いサイレント破損です。MigrateToCpswapは 2 つのトークンプログラム アカウントの名前を変更します。base_token_program/quote_token_programはtoken_program/token_program_2022になります。両方は常に必須であり、プログラムはミントごとに正しいものを選択します。- Mint/program ペアが検証されるようになりました。 両方のスワップ ミントは
mint::token_program制約を取得し、ClaimPlatformFeeの quote ミントも同様に取得したため、一致しないペアは無視される代わりに戻ります。 - 新しいエラー
6023CalculateOverflow。 コード6000–6022は変更されていません。6023は前のリリースで空けられ、現在は再利用されています。 - フィー vault は quote ミントに従います。 クリエーター フィーと プラットフォーム フィー vault、および share-fee レシーバーのトークン アカウントは、quote ミントを所有するプログラムに存在します。
どのアカウントが型を変更したか
これらのいずれもアカウント リスト内の位置は変わりません。許可される値のみが変わります。Initialize(非推奨の V1 パス)は意図的にこのテーブルに含まれていません。その quote-program アカウントは SPL Token に型付けされたままです。
これらの多くは、mint 制約も厳しくしたため、一致しない mint/program ペアは以前受け入れられたか未チェックだった場所で戻るようになりました:
- 4 つのスワップ命令は、
base_token_mintとquote_token_mintの両方を、一致するスロットで渡されたプログラムに制約します。どちらも以前はその制約を持っていなかったため、間違った base プログラムはサイレントに受け入れられました。 ClaimPlatformFeeはquote_mintに同じ制約を追加します。ClaimPlatformFeeFromVaultは、トークン アカウント形式から mint アカウントである mint 形式への制約を修正します。
Quote-side トランスファーフィー会計
これはアカウント リストではなく数値を変更する部分です。TransferFeeConfig がない quote ミント上では、以下のすべての式は前の動作に縮小されるため、レガシー プールとフィーなし Token-2022 プールはビット単位で変更されません。
明確に述べる価値のある 2 つの結果:
- 同等のフィーなし プールから計算された境界はもはや受け入れられません。フィーなしコストを
maximum_amount_inとしてBuyExactOutを実行すると、ExceededSlippageで戻り、SellExactInもフィーなし収益をminimum_amount_outとして戻ります。これは意図した動作です。古い比較により、支払者は既に同意した境界の上にトランスファーフィーで請求されました。 - プール帳簿は vault に到達したものだけを記録します。5% quote ミント上で
amount_inのBuyExactInの後、real_quoteはamount_in × 0.95ではなくamount_inで進みます。
get_transfer_inverse_fee は 100% フィー ミントの特殊ケースも削除しました。maximum_fee にフォールバックする代わりに、逆フィーを計算できない場合は新しい CalculateOverflow エラーを返すようになりました。したがって、10000 ベーシス ポイントの quote ミントは、フィー キャップで静かにトランザクションするのではなく、正確な出力パスで失敗します。
token_program_flag bit1
PoolState.token_program_flag はビットフィールドであり、常にそうでした:
1 になる可能性があることです。4 つの値は:
各ミントのプログラムを
(token_program_flag >> bit) & 1 で読み取ります。バイトを base ミントのブール値として扱うクライアント(flag === 0 ? Token : Token-2022)は、値 2 を Token-2022 base ミントに解決し、base-side トークン アカウントと転送を間違ったプログラムに対して構築します。アカウント サイズまたはフィールド オフセットの変更がないため、インデクサーはストレージ マイグレーションは不要で、デコード修正のみが必要です。
CPMM マイグレーション アカウント名変更
MigrateToCpswap は以前、ミントごとに 1 つのトークンプログラムを取得し、呼び出し元がどちらであるかを決定しました。現在は両方のプログラムを無条件に取得し、ミント自体からマッピングを導出します:
2 つの位置は変更されていないため、これは値の変更であり、レイアウトの変更ではありません。ただし、値はほぼ反転しており、古いペアを渡し続けるビルダーは、どちらかのミントが Token-2022 ミントになるとすぐに、レガシー プログラムが必須である場所に Token-2022 を渡します。
レガシー プログラムは、CPMM LP ミントとロックされたリクイディティ フィー キー NFT が常にそこに存在するため、どちらのミントに関わらず無条件に必須です。2026-08-17 リリースからの
remaining_accounts レイアウトは変更されていません。
Quote mints は管理者の裁量でのみ許可されます
CPMM および CLMM とは異なり、LaunchLab は quote ミントに対して拡張許可リストを実行しません。CreateConfig はミント アカウントをそのまま受け入れるため、唯一のゲートは管理者が GlobalConfig にバインドするミントです。プログラムの NoSupportExtension チェックは、LaunchLab 自体が作成する Token-2022 base ミントにのみ適用され、MetadataPointer と TransferFeeConfig のみが許可されます。
Token-2022 quote ミントのバインドを、reference/token-2022-support の CPMM/CLMM 静的ホワイトリストと同じ推論を持つ高信頼アクションとして扱います。TransferHook または PermanentDelegate quote ミントは config 作成時に許可され、その後、それで引用されるすべてのプールで実行されるか、スイープできます。
amm_creator_fee_on タイムスタンプ ゲート
InitializeV2 は、アップグレード タイムスタンプ前に BothToken 以外の amm_creator_fee_on を拒否したタイムスタンプ ゲートを削除します。同等のゲートは InitializeWithToken2022 に存在します。実際には、両方のパスは mainnet-beta で今日どちらの値も受け入れます。そのタイムスタンプ(1755522000、2025-08-18 13:00 UTC)は遠い過去だからです。これはクリーンアップであり、現在の呼び出し元の動作変更ではありません。
エラーと IDL への影響
コード6000–6022 は、6022 InvalidPlatformAllowConfig を含めて変更されていません。
前のリリースは古い
6023 を廃止し、それを空けました。このリリースは番号を再利用します。前のいずれかのバージョンの IDL で 6023 をデコードしないでください。
Token-2022 quote プログラムを渡す前に、LaunchLab IDL をリフレッシュしてください。token_program_flag bit1 をデコードするか、名前が変更された MigrateToCpswap アカウント リストを構築します。
SDK への影響
SDK のローンチパッド モジュールの quote 側は、プログラムと同じ場所でTOKEN_PROGRAM_ID にハードコードされていました。このリリースに付属するブランチは、代わりに quote ミントの所有者を解決し、トークン アカウント作成、share-fee レシーバーの ATA、命令の quote-program スロットを通じてスレッド化し、4 つの Curve メソッドにオプションの transferFeeConfigB を追加して、見積もりが上記の式を反映するようにします。Curve 結果は transferFeeB フィールドを取得します。amountB はその意味を保持します。支払者が費やすか売り手が受け取るものです。したがって、フィーなし quote ミントは前と同じ数値を生成します。
これらの SDK 変更はリリースされていません。このドキュメント セットのコード デモ ページの正規ピンは変更されていません。新しいパラメーターに依存する前に、公開されたバージョンを確認してください。
リファレンス実装
新しいデモは Yellowstone gRPC 経由で LaunchLab プログラムをサブスクライブし、すべてのGlobalConfig および PoolState 更新について、各ミントが Token または Token-2022 ミントであるかどうかをログに記録します:
raydium-sdk-V2-demo/src/grpc/launchpadPoolInfo.ts
これはこのリリースが必要にする 2 つのことのコンパクト リファレンスです。プールは token_program_flag から直接分類され、ミント フェッチなしで両方のビットをデコードします。これは上記で説明した bit1 破損の修正です。GlobalConfig はその quote ミントのアドレスのみを格納し、プログラム フラグを格納しないため、コンフィグはそのようには分類できません。デモはミント アカウントの所有者を 1 回読み取り、ミントごとにキャッシュします。両方のパスを並べて見ることは、独自のデコーダーをチェックする最速の方法です。
詳細は products/launchlab/code-demos を参照してください。
更新されたページ
products/launchlab/accounts— quote-mint トークンプログラム、token_program_flagビット レイアウト、および vault 所有権。products/launchlab/instructions— quote-program アカウント、スワップ スリッページ セマンティクス、および名前が変更されたマイグレーション アカウント。products/launchlab/global-config—quote_mintは Token-2022 ミントになる可能性があり、何がそれをゲートし、何がゲートしないか。products/launchlab/code-demos— gRPC config/pool ウォッチャー。reference/token-2022-support— LaunchLab 行と quote-mint セクション。reference/error-codes—6023CalculateOverflow。

