Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
このページは、ローンチごとのアカウントグラフを説明します。PoolState(1 つのローンチのルート状態アカウント)、その 2 つのヴォルト、オーソリティ PDA、およびローンチが決済されるときに取得するポストグラデュエーション参照です。 すべてのローンチを制限するプロトコルレベルの設定については、products/launchlab/global-config を参照してください。プラットフォームごとのオーバーレイについては、products/launchlab/platform-config を参照してください。ベスティングアカウント(PoolStateVestingSchedule、受益者ごとの VestingRecord)については、products/launchlab/vesting を参照してください。

アカウント一覧

SDK の raydium.launchpad.getLaunchByIdPoolState とローンチがグラデュエーションしたかどうかを示すフラグを返します。グラデュエーションしている場合、ポストマイグレーションプール ID が含まれます。

PoolState

ローンチごとのルート状態。以下のフィールド名はオンチェーン Rust 構造体(states/pool.rs)と一致します。一部の値は読みやすさのために簡略化されています。正確なメモリレイアウトについてはソースを参照してください。
PoolStatus の値(Anchor IDL から):
インテグレーター向けフィールド:
  • status — 3 つの値、単調(Funding → Migrate → Migrated)。読み取りは常に安全です。書き込みはゲートされます。
  • real_basereal_quote — 現在のカーブ状態。virtual_base / virtual_quote と組み合わせると、ヴォルトに触れずにスポット価格を計算するのに十分です。bonding-curve を参照してください。
  • total_base_sell vs real_base — UI の「グラデュエーションへの進捗」比率。
  • migrate_type — 新しい初期化には 1CPSWAP)が必要です。保存された 0 は、CPMM のみの強制が適用される前に作成された既存のローンチに対してのみ意味があります。
  • amm_creator_fee_on — ポストグラデュエーション CPMM プールで creator_fee_on = OnlyQuoteToken0)または BothToken1)を選択します。マイグレーションターゲットを選択しません。creator-fees を参照してください。
  • token_program_flag — ブール値ではなくビットフィールド。Bit0 はベースミント、Bit1 はクォートミント。各々 SPL Token の場合は 0、Token-2022 の場合は 1 です。したがってバイトは 4 つの値を取ります:0(両方レガシー)、1(Token-2022 ベース)、2(Token-2022 クォート)、3(両方 Token-2022)。(token_program_flag >> bit) & 1 で 1 つのミントを読み取ります。ベースミントを分類するために全バイトを 0 と比較すると、2 が間違ったプログラムに解決されます。Bit1 は Token-2022 クォートミントがサポートされるまで定数 0 でした。
  • quote_protocol_fee / platform_fee / migrate_fee — 3 つの独立した手数料カウンター。各々に独自のクレーム命令があります。instructions を参照してください。
  • vesting_schedule — すべての PoolState に存在しますが、total_locked_amount == 0 の場合は非アクティブです。完全なライフサイクルについては vesting を参照してください。

オーソリティ PDA

LaunchLab は、ローンチごとのシードなしで導出された、すべてのローンチ全体で単一のオーソリティ PDA を使用します:
その単一 PDA は:
  • すべてのローンチの base_vault および quote_vault のオーソリティ。
  • 各ローンチの base_mintmint_authority(グラデュエーション前)。
  • CPMM グラデュエーション CPI、および既存の状態のレガシー AMM v4 グラデュエーションの署名者。
  • ClaimVestedToken がベースヴォルトから転送する際の署名者。
  • Token-2022 ベースミントの TransferFeeConfigtransfer_fee_config_authority(グラデュエーション前フェーズ全体)。および withdraw_withheld_authority も、ただしプラットフォームが PlatformConfig.transfer_fee_extension_auth を設定していない場合のみ。
mint_authorityMigrateToCpswap またはレガシー MigrateToAmm 呼び出しの直後に取り消されるため、供給は永久に固定されます。 2 つの追加 PDA が手数料ヴォルトをゲートします:
これらは ClaimCreatorFee および ClaimPlatformFeeFromVault 中に対応する手数料ヴォルトから転送する際に署名します。

ベースミント

Initialize によってインラインで作成されます:
  • mint_authority = authority(グラデュエーション時に取り消し)。
  • freeze_authority = None
  • supply = supply、完全に base_vault にミントされます。
  • decimals はクリエーターが Initialize で選択(通常 6)。
完全な供給が事前にミントされるため、base_mint.supply はローンチの生涯を通じて定数です。カーブの買いはトークンを base_vault から買い手に移動しますが、mint_to を呼び出しません。 Initialize / InitializeV2 は SPL Token ベースミントを作成します。専用の InitializeWithToken2022 命令により、ベースミントを Token-2022 ミント(オプションの TransferFeeConfig 付き)にできます。3 つの初期化パスすべてが CPMM グラデュエーションを必要とします。 InitializeWithToken2022TransferFeeConfig をアタッチする場合、ミントは transfer_fee_config_authority = authority および withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth で作成され、プラットフォームがそのフィールドを設定していない場合は authority にフォールバックします。両方のオーソリティはグラデュエーション時にプラットフォームキーに再割り当てされます。引き出し側は PDA がまだ保有している場合のみです。platform-config を参照してください。 クォートミントはベースミントから独立しており、それ自体が Token-2022 ミントである可能性があります。InitializeV2 および InitializeWithToken2022 はクォートプログラムスロットでどちらのプログラムも受け入れます。非推奨の Initialize はそうではありません。そのクォートプログラムアカウントは依然として SPL Token に型付けされているため、クォートミントが Token-2022 である設定は他の 2 つを通じてのみ起動できます。クォートミントは LaunchLab によって作成されることはありません。GlobalConfig.quote_mint が指定するものです。global-config および reference/token-2022-support を参照してください。

ヴォルト

base_vaultquote_vault の両方は LaunchLab authority PDA によって所有されるトークンアカウントで、各々は独自のミントを所有するプログラムで作成されます。したがって、ローンチはレガシーベースヴォルトと Token-2022 クォートヴォルト、または他の任意の組み合わせを持つことができます。token_program_flag はどちらがどちらかを記録します。アドレスは PoolState に保存され、導出することもできます:
(本番環境での導出に依存する前に、ソースの Initialize アカウント構造体から正確なシードプレフィックスを確認してください。)

手数料ヴォルト

2 つの PDA がローンチ全体の手数料を集約します:
  • クリエーター手数料ヴォルト — シード [creator, quote_mint] の PDA。同じクォートミントで同じクリエーター手数料を獲得するすべてのローンチが同じヴォルトに流れ込みます。クリエーターは ClaimCreatorFee を通じてスイープします。
  • プラットフォーム手数料ヴォルト — シード [platform_config, quote_mint] の PDA。同じプラットフォームを通じてルーティングされ、同じクォートミントを使用するすべてのローンチが同じヴォルトに流れ込みます。プラットフォームの platform_fee_walletClaimPlatformFeeFromVault を通じてスイープします。ローンチの quote_vault から直接引き出す、集約されたヴォルトを経由しないローンチごとのスイープバリアント(ClaimPlatformFee)もあります。
両方ともクォートミントを所有するプログラムで、手数料を発生させる最初のスワップで遅延作成されます。クリエーターまたはプラットフォームがレガシーと Token-2022 クォートミントの両方に対してローンチを実行する場合、2 つの異なるレガシーミントの場合と同様に、ミントごとに 1 つのヴォルトで終わります。 集約ヴォルトパターンにより、高ボリュームのクリエーターまたはプラットフォームは、多くのローンチ全体で手数料蓄積のレント コストを償却できます。

クォートヴォルト ↔ real_quote

quote_vault.balancePoolState.real_quote は同期を保つ必要があります。3 つの保留中の手数料カウンター(quote_protocol_feeplatform_feemigrate_fee)の合計によって最大でドリフトする可能性があります。これらはヴォルトに存在しますが、手数料カウンターに属し、カーブリザーブには属しません。カーブ数学は常に real_quote を使用し、生のヴォルト残高は使用しません。 グラデュエーション前の不変式:

PlatformCurveRule

(PlatformConfig, GlobalConfig) ペアごとに 1 つのアカウント。そのプラットフォームがそのコンフィグで許可するローンチ形状を保有します。PDA シードは [b"platform_curve_rule", platform_config, global_config] です。
アカウントはグループなしで作成され、グループ変更のたびにリサイズされるため、その長さは 150 + Σ(14 + 18 × constraints) であり、デコーダーは固定サイズを想定してはいけません。グループは OR されます。1 つのグループの制約がすべて成立するとすぐに、ローンチが許可されます。ゼログループは制限がないことを意味します。 所有する PlatformConfig.restrict_curve_param1 の場合にのみ読み取ります。0 の場合、プログラムはアカウントを無視し、古いルールがそこに存在する可能性があります。フィールド ID、オペレーター、およびプレイブックは products/launchlab/curve-rules にあります。

ライフサイクルアカウント遷移

次のステップ

ソース:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolStatePoolStatusVestingScheduleAmmCreatorFeeOn
  • raydium-launch/programs/launchpad/src/lib.rs — PDA シード定数(AUTH_SEEDCREATOR_FEE_VAULT_AUTH_SEEDPLATFORM_FEE_VAULT_AUTH_SEED)。
  • Raydium SDK v2 launchpad モジュール