このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
このエントリは、今後の LaunchLab プログラム更新をカバーしています。デプロイ前にローカルリリースブランチに対して検証されました。卒業前の withheld フィー引き出しに依存する前に、デプロイされたプログラムを確認してください。
InitializeWithToken2022 で作成された Token-2022 ベースミントは TransferFeeConfig を持つことができます。この拡張には 2 つの authority があります:フィーレートと最大フィーを変更する transfer_fee_config_authority と、Token-2022 がトークンアカウントで保留するフィーを引き出す withdraw_withheld_authority です。
このリリースまで、プログラムはミント作成時にローンチ authority PDA を両方に配置し、卒業時に両方を PlatformConfig.transfer_fee_extension_auth に渡していました。ローンチパッドプログラムには withdraw-withheld または harvest 命令がないため、ボンディングカーブ全体を通じて誰も withheld 残高を引き出すことができませんでした。それができるのは、それで署名する命令を持たない PDA だけでした。
このリリースでは、ミント作成時に transfer_fee_extension_auth を直接 withdraw_withheld_authority に書き込むため、プラットフォームは最初のトレードから withheld フィーをスイープできます。MigrateToCpswap はガードを獲得し、PDA がまだそれを保持している場合のみその authority を再割り当てするため、両世代のミントの卒業が機能します。
他に何も変わりません。アカウントが増減せず、命令がアカウントを獲得または失わず、引数が変わらず、エラーコードが移動しません。
インテグレーター向け TL;DR
- Withheld トランスファーフィーはローンチ中に引き出し可能です。 プラットフォームが
transfer_fee_extension_authを設定した新しい Token-2022 ローンチでは、そのキーは作成時からミントのwithdraw_withheld_authorityです。Token-2022 のWithdrawWithheldTokensFromAccounts/WithdrawWithheldTokensFromMintを直接呼び出してください。LaunchLab にはこの命令がなく、かつてもありませんでした。 transfer_fee_config_authorityのタイミングは変わりません。 これはローンチauthorityPDA のままで、卒業時にtransfer_fee_extension_authに移動します。フィーレートはローンチ中に変更できません。- ローンチ前に
transfer_fee_extension_authを設定してください。 ミント作成時にPubkey::default()の場合、withdraw authority はauthorityPDA にフォールバックします(古い動作)。その後フィールドを設定すると、卒業時に authority を復旧できますが、withheld 残高はそれまでストランドします。 - ローンチ中にフィールドをローテーションしないでください。 2 つの authority は 2 つの異なる時点で読み取られるため、その間に変わる値は異なるキーに残します。詳細は Rotation splits the two authorities を参照してください。
MigrateToCpswapは呼び出し側では変わりません。 同じアカウント、同じ引数、同じエラー。新しいガードは内部的なもので、これがないと新世代ミントの移行は Token-2022 内で戻ります。PDA はもはや保持していない authority を署名で譲ることができないためです。- 既存のローンチは影響を受けません。 すでにオンチェーンのミントは PDA を両方の authority に保持し、卒業時に両方を渡されます。
- IDL リフレッシュは不要です。 レイアウト、アカウント、引数、またはエラーコードは変わりません。
誰が何を保持し、いつ保持するか
両方のハンドオーバーは、常にあった同じ外側の条件の背後にあります:ベースミントは
TransferFeeConfig を持つ必要があり、transfer_fee_extension_auth は非デフォルトである必要があります。フィールドを設定しないプラットフォームは、両方の authority を authority PDA に永遠に保持します。フィーレートは変更できず、withheld 残高は引き出せません。
Rotation が 2 つの authority を分割する
transfer_fee_extension_auth はローンチごとに 2 回、数日離れた 2 つの時点で読み取られます:
InitializeWithToken2022で、withdraw_withheld_authority用。MigrateToCpswapで、transfer_fee_config_authority用。および PDA がまだそれを保持している場合のみwithdraw_withheld_authority用。
UpdatePlatformConfig を通じてフィールドをローテーションすると、2 つの authority は異なるキーに着地します:withdraw 側は作成時に設定されたキーを保持します。PDA はもはやそれを保持していないため、移行はそのハンドオーバーをスキップします。一方、フィー設定側は新しいキーに移動します。どちらの呼び出しも失敗しません。分割はサイレントです。ローンチ間でローテーションするか、古いキーで署名して Token-2022 を直接通じてキーを調整してください。
ガードが必要な理由、単なる防御的ではなく
Token-2022 のSetAuthority は現在の authority の署名を必要とします。新しい作成ルールの下では、ローンチ authority PDA は新しいミントの withdraw-withheld authority ではないため、プログラムが使用していた無条件 CPI は失敗します。そしてそれは MigrateToCpswap 内にあるため、その失敗は、フィールドを設定していたプラットフォーム上のトランスファーフィーを持つすべての Token-2022 ローンチの卒業をブロックしていたでしょう。2 つの変更はペアとしてのみ機能します。
変わらなかったもの
- トランスファーフィーの数学と会計。
MAX_TRANSFER_FEE_RATEは依然として500(5%、分母10_000)で、フィーは依然として同じ方法で曲線に価格設定され、withheld 残高は依然として Token-2022 がそれを配置するトークンアカウントに蓄積します。 MigrateToCpswapのインターフェース。 同じアカウントリスト、同じremaining_accountsインデックス、同じ 2 つのトークンプログラム、引数なし。InitializeWithToken2022のインターフェース。 同じアカウント、同じTransferFeeExtensionParams、MetadataPointerとTransferFeeConfig以外の何かに対する同じNoSupportExtension拒否。- クォート側 Token-2022 処理。 2026-08-24 から変わりません。
- エラーコード。
6000–6023は変わりません。このリリースは何も追加しません。 - アカウントレイアウトと IDL。 変わりません。
PlatformConfig.transfer_fee_extension_authはそのオフセットと型を保持します。プログラムがそれを読み取る方法だけが変わりました。
更新されたページ
products/launchlab/platform-config— 両方の authority、両方のハンドオーバーポイント、およびローテーショントラップをカバーする新しい「Token-2022 トランスファーフィー authority」セクション。レイアウトコメントと落とし穴リストが修正されました。products/launchlab/instructions—MigrateToCpswapは「Token-2022 トランスファーフィー authority ハンドオーバー」ブロックを獲得します。Initializeの事後条件は新しいミント作成 authority を記録します。products/launchlab/accounts— authority-PDA ロールリストとベースミントセクションは、PDA が実際に保持するトランスファーフィー authority を記録します。reference/token-2022-support— LaunchLab ベースミントエントリは、トランスファーフィー authority を保持する人と時期を述べています。

