このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
PoolState(1 つのローンチのルート状態アカウント)、その 2 つのヴォルト、オーソリティ PDA、およびローンチが決済されるときに取得するポストグラデュエーション参照です。
すべてのローンチを制限するプロトコルレベルの設定については、products/launchlab/global-config を参照してください。プラットフォームごとのオーバーレイについては、products/launchlab/platform-config を参照してください。ベスティングアカウント(PoolState の VestingSchedule、受益者ごとの VestingRecord)については、products/launchlab/vesting を参照してください。
アカウント一覧
SDK の
raydium.launchpad.getLaunchById は PoolState とローンチがグラデュエーションしたかどうかを示すフラグを返します。グラデュエーションしている場合、ポストマイグレーションプール ID が含まれます。
PoolState
ローンチごとのルート状態。以下のフィールド名はオンチェーン Rust 構造体(states/pool.rs)と一致します。一部の値は読みやすさのために簡略化されています。正確なメモリレイアウトについてはソースを参照してください。
PoolStatus の値(Anchor IDL から):
status— 3 つの値、単調(Funding → Migrate → Migrated)。読み取りは常に安全です。書き込みはゲートされます。real_base、real_quote— 現在のカーブ状態。virtual_base/virtual_quoteと組み合わせると、ヴォルトに触れずにスポット価格を計算するのに十分です。bonding-curveを参照してください。total_base_sellvsreal_base— UI の「グラデュエーションへの進捗」比率。migrate_type— 新しい初期化には1(CPSWAP)が必要です。保存された0は、CPMM のみの強制が適用される前に作成された既存のローンチに対してのみ意味があります。amm_creator_fee_on— ポストグラデュエーション CPMM プールでcreator_fee_on = OnlyQuoteToken(0)またはBothToken(1)を選択します。マイグレーションターゲットを選択しません。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 を使用します:- すべてのローンチの
base_vaultおよびquote_vaultのオーソリティ。 - 各ローンチの
base_mintのmint_authority(グラデュエーション前)。 - CPMM グラデュエーション CPI、および既存の状態のレガシー AMM v4 グラデュエーションの署名者。
ClaimVestedTokenがベースヴォルトから転送する際の署名者。- Token-2022 ベースミントの
TransferFeeConfigのtransfer_fee_config_authority(グラデュエーション前フェーズ全体)。およびwithdraw_withheld_authorityも、ただしプラットフォームがPlatformConfig.transfer_fee_extension_authを設定していない場合のみ。
mint_authority は MigrateToCpswap またはレガシー 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 グラデュエーションを必要とします。
InitializeWithToken2022 が TransferFeeConfig をアタッチする場合、ミントは 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_vault と quote_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_walletはClaimPlatformFeeFromVaultを通じてスイープします。ローンチのquote_vaultから直接引き出す、集約されたヴォルトを経由しないローンチごとのスイープバリアント(ClaimPlatformFee)もあります。
クォートヴォルト ↔ real_quote
quote_vault.balance と PoolState.real_quote は同期を保つ必要があります。3 つの保留中の手数料カウンター(quote_protocol_fee、platform_fee、migrate_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_param が 1 の場合にのみ読み取ります。0 の場合、プログラムはアカウントを無視し、古いルールがそこに存在する可能性があります。フィールド ID、オペレーター、およびプレイブックは products/launchlab/curve-rules にあります。
ライフサイクルアカウント遷移
次のステップ
products/launchlab/bonding-curve—real_base↔real_quoteの背後にある数学。products/launchlab/instructions— 命令ごとのアカウントリスト。products/launchlab/global-config— プロトコルレベルのバインディング。products/launchlab/platform-config— プラットフォームオーバーレイ。products/launchlab/vesting— ロック供給メカニクス。products/cpmm/accounts— ポストグラデュエーションcpmm_pool_stateの外観。
raydium-launch/programs/launchpad/src/states/pool.rs—PoolState、PoolStatus、VestingSchedule、AmmCreatorFeeOn。raydium-launch/programs/launchpad/src/lib.rs— PDA シード定数(AUTH_SEED、CREATOR_FEE_VAULT_AUTH_SEED、PLATFORM_FEE_VAULT_AUTH_SEED)。- Raydium SDK v2
launchpadモジュール。

