Skip to main content
このページは 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 のタイミングは変わりません。 これはローンチ authority PDA のままで、卒業時に transfer_fee_extension_auth に移動します。フィーレートはローンチ中に変更できません。
  • ローンチ前に transfer_fee_extension_auth を設定してください。 ミント作成時に Pubkey::default() の場合、withdraw authority は authority PDA にフォールバックします(古い動作)。その後フィールドを設定すると、卒業時に 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 つの時点で読み取られます:
  1. InitializeWithToken2022 で、withdraw_withheld_authority 用。
  2. 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 のインターフェース。 同じアカウント、同じ TransferFeeExtensionParamsMetadataPointerTransferFeeConfig 以外の何かに対する同じ NoSupportExtension 拒否。
  • クォート側 Token-2022 処理。 2026-08-24 から変わりません。
  • エラーコード。 60006023 は変わりません。このリリースは何も追加しません。
  • アカウントレイアウトと IDL。 変わりません。PlatformConfig.transfer_fee_extension_auth はそのオフセットと型を保持します。プログラムがそれを読み取る方法だけが変わりました。

更新されたページ

  • products/launchlab/platform-config — 両方の authority、両方のハンドオーバーポイント、およびローテーショントラップをカバーする新しい「Token-2022 トランスファーフィー authority」セクション。レイアウトコメントと落とし穴リストが修正されました。
  • products/launchlab/instructionsMigrateToCpswap は「Token-2022 トランスファーフィー authority ハンドオーバー」ブロックを獲得します。Initialize の事後条件は新しいミント作成 authority を記録します。
  • products/launchlab/accounts — authority-PDA ロールリストとベースミントセクションは、PDA が実際に保持するトランスファーフィー authority を記録します。
  • reference/token-2022-support — LaunchLab ベースミントエントリは、トランスファーフィー authority を保持する人と時期を述べています。