このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
このページは、ローンチごとのアカウントグラフについて説明しています。
PoolState(1 つのローンチのルート状態アカウント)、その 2 つのヴォルト、オーソリティ PDA、およびローンチが決済されるときに取得するポストグラデュエーション参照です。すべてのローンチを制限するプロトコルレベルの設定については、products/launchlab/global-config を参照してください。プラットフォームごとのオーバーレイについては、products/launchlab/platform-config を参照してください。ベスティングアカウント(PoolState の VestingSchedule、受益者ごとの VestingRecord)については、products/launchlab/vesting を参照してください。アカウント一覧
SDK はこれを
raydium.launchpad.getRpcPoolInfo({ poolId }) で読み取ります。これはデコードされた PoolState を返し、バインドされた GlobalConfig が configInfo として付随します(バッチ形式は getRpcPoolsInfo({ poolIdList }))。getLaunchById は存在しません。プール ID 自体は (programId, mintA, mintB) の PDA です — getPdaLaunchpadPoolId。
PoolState
ローンチごとのルート状態。以下のフィールド名はオンチェーン Rust 構造体(states/pool.rs)と一致します。一部の値は読みやすさのために簡略化されています。正確なメモリレイアウトについてはソースを参照してください。
PoolStatus の値(IDL のバリアント名は Fund / Migrate / Trade):
status— 3 つの値、単調(Fund→Migrate→Trade)。読み取りは常に安全です。書き込みはゲートされます。ClaimVestedTokenはTradeを必要とします。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)。1 つのミントを読み取るには(token_program_flag >> bit) & 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上には何もありません。ミントオーソリティはInitializeV2が返される前に取り消されます(以下を参照)。- CPMM グラデュエーション CPI の署名者、および既存の状態に対するレガシー AMM v4 グラデュエーション。
ClaimVestedTokenがベースヴォルトから転送する際の署名者。- Token-2022 ベースミントの
TransferFeeConfigのtransfer_fee_config_authority。グラデュエーション前の全フェーズ。およびwithdraw_withheld_authorityも、ただしプラットフォームがPlatformConfig.transfer_fee_extension_authを設定しなかった場合のみ。
mint_authority は初期化命令で取り消されます。グラデュエーション時ではなく:InitializeV2 および InitializeWithToken2022 は完全な供給を base_vault にミントしてから、同じ命令で MintTokens を None に設定します。したがって供給はローンチが存在する瞬間から固定され、マイグレーションにはミントオーソリティステップがありません。副作用:誰もベースミントに署名できないため、その家賃は CollectExcessLamports で回収できません。
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を介してスイープします。また、ローンチごとのスイープバリアント(ClaimPlatformFee)もあり、集約ヴォルトを経由せずにローンチのquote_vaultから直接プルします。
クォートヴォルト ↔ 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モジュール。

