Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
PoolState (das Root-State-Konto für einen Launch), seine zwei Vaults, die Authority-PDA und die Post-Graduation-Referenzen, die es erhält, wenn der Launch abgeschlossen ist.
Für die Protocol-Level-Konfiguration, die jeden Launch begrenzt, siehe products/launchlab/global-config. Für die Pro-Platform-Überlagerung siehe products/launchlab/platform-config. Für Vesting-Konten (VestingSchedule auf PoolState, VestingRecord pro Begünstigtem) siehe products/launchlab/vesting.
Konteninventar
Das SDK
raydium.launchpad.getLaunchById gibt PoolState plus ein Flag zurück, das anzeigt, ob der Launch abgeschlossen ist; wenn ja, ist die Post-Migration-Pool-ID enthalten.
PoolState
Der Pro-Launch-Root-State. Feldnamen unten entsprechen dem On-Chain-Rust-Struct (states/pool.rs); einige Werte sind zur Lesbarkeit vereinfacht — konsultieren Sie die Quelle für das exakte Memory-Layout.
PoolStatus-Werte (aus dem Anchor IDL):
status— drei Werte, monoton (Funding → Migrate → Migrated). Lesevorgänge immer sicher; Schreibvorgänge gated.real_base,real_quote— aktueller Curve-State. Kombiniert mitvirtual_base/virtual_quotesind sie ausreichend, um den Spotpreis zu berechnen, ohne die Vaults zu berühren. Siehebonding-curve.total_base_sellvsreal_base— „Fortschritt zur Graduation”-Verhältnis für UIs.migrate_type— neue Initialisierung erfordert1(CPSWAP). Ein gespeichertes0bleibt nur für einen bestehenden Launch sinnvoll, der vor der CPMM-Only-Erzwingung erstellt wurde.amm_creator_fee_on— wähltcreator_fee_on = OnlyQuoteToken(0) oderBothToken(1) auf dem Post-Graduation-CPMM-Pool. Es wählt nicht das Migrationsziel. Siehecreator-fees.token_program_flag— ein Bitfeld, kein Boolean. Bit0 ist die Base-Mint und Bit1 ist die Quote-Mint, jeweils0für SPL Token und1für Token-2022, daher nimmt das Byte vier Werte an:0(beide Legacy),1(Token-2022 Base),2(Token-2022 Quote),3(beide Token-2022). Lesen Sie eine Mint mit(token_program_flag >> bit) & 1. Das Vergleichen des ganzen Bytes gegen0zur Klassifizierung der Base-Mint löst2zum falschen Programm auf. Bit1 war konstant0, bis Token-2022-Quote-Mints unterstützt wurden.quote_protocol_fee/platform_fee/migrate_fee— drei unabhängige Gebührenzähler. Jeder hat seine eigene Claim-Anweisung; sieheinstructions.vesting_schedule— vorhanden auf jedemPoolState, aber inaktiv, wenntotal_locked_amount == 0. Siehevestingfür den vollständigen Lebenszyklus.
Die Authority-PDA
LaunchLab verwendet eine einzelne Authority-PDA über alle Launches hinweg, abgeleitet ohne Pro-Launch-Seed:- Die Authority auf jedem Launch
base_vaultundquote_vault. - Die
mint_authorityauf jeder Launchbase_mint(vor Graduation). - Der Unterzeichner auf der CPMM-Graduation-CPI und auf Legacy-AMM-v4-Graduation für bestehenden State.
- Der Unterzeichner auf
ClaimVestedToken-Transfers aus dem Base-Vault. - Die
transfer_fee_config_authorityauf einer Token-2022-Base-MintTransferFeeConfig, für die gesamte Pre-Graduation-Phase — und auch ihrewithdraw_withheld_authority, aber nur wenn die PlatformPlatformConfig.transfer_fee_extension_authnicht gesetzt hat.
mint_authority wird unmittelbar nach MigrateToCpswap oder einem Legacy-MigrateToAmm-Aufruf widerrufen, daher ist die Versorgung dauerhaft festgelegt.
Zwei zusätzliche PDAs gaten die Gebühren-Vaults:
ClaimCreatorFee und ClaimPlatformFeeFromVault.
Base-Mint
Erstellt inline durchInitialize mit:
mint_authority = authority(widerrufen bei Graduation).freeze_authority = None.supply = supply, vollständig inbase_vaultgeprägt.decimalsvom Creator beiInitializegewählt (üblicherweise 6).
base_mint.supply für die Lebensdauer des Launches konstant. Curve-Käufe verschieben Token von base_vault zum Käufer, rufen aber nicht mint_to auf.
Initialize / InitializeV2 erstellen SPL-Token-Base-Mints. Die dedizierte InitializeWithToken2022-Anweisung ermöglicht es, dass die Base-Mint eine Token-2022-Mint ist (mit optionaler TransferFeeConfig). Alle drei Initialisierungspfade erfordern CPMM-Graduation.
Wenn InitializeWithToken2022 eine TransferFeeConfig anhängt, wird die Mint mit transfer_fee_config_authority = authority und withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth erstellt, fällt auf authority zurück, wenn die Platform dieses Feld nicht gesetzt hat. Beide Authorities werden bei Graduation zum Platform-Schlüssel neu zugewiesen, die Withdraw-Seite nur, wenn die PDA sie noch hält. Siehe platform-config.
Die Quote-Mint ist unabhängig von der Base-Mint und kann selbst eine Token-2022-Mint sein — InitializeV2 und InitializeWithToken2022 akzeptieren beide Programme in ihrem Quote-Programm-Slot. Das veraltete Initialize nicht: sein Quote-Programm-Konto ist immer noch auf SPL Token typisiert, daher kann eine Konfiguration, deren Quote-Mint Token-2022 ist, nur durch die anderen zwei gestartet werden. Die Quote-Mint wird nie von LaunchLab erstellt; sie ist, was GlobalConfig.quote_mint benennt. Siehe global-config und reference/token-2022-support.
Vaults
Sowohlbase_vault als auch quote_vault sind Token-Konten, die von der LaunchLab-authority-PDA besessen werden, jeweils auf dem Programm erstellt, das seine eigene Mint besitzt — daher kann ein Launch einen Legacy-Base-Vault und einen Token-2022-Quote-Vault haben, oder jede andere Kombination. token_program_flag zeichnet auf, welcher welcher ist. Adressen werden auf PoolState gespeichert und können auch abgeleitet werden:
Initialize-Accounts-Struct der Quelle, bevor Sie sich in der Produktion auf eine Ableitung verlassen.)
Gebühren-Vaults
Zwei PDAs aggregieren Gebühren über Launches hinweg:- Creator-Gebühren-Vault — PDA mit Seeds
[creator, quote_mint]. Jeder Launch, der die gleichen Creator-Gebühren auf der gleichen Quote-Mint verdient, fließt in den gleichen Vault. Der Creator leert ihn überClaimCreatorFee. - Platform-Gebühren-Vault — PDA mit Seeds
[platform_config, quote_mint]. Jeder Launch, der durch die gleiche Platform geleitet wird und die gleiche Quote-Mint verwendet, fließt in den gleichen Vault. Dieplatform_fee_walletder Platform leert ihn überClaimPlatformFeeFromVault. Es gibt auch eine Pro-Launch-Sweep-Variante (ClaimPlatformFee), die direkt aus dem Launchquote_vaultzieht, ohne durch den aggregierten Vault zu gehen.
Quote-Vault ↔ real_quote
quote_vault.balance und PoolState.real_quote sollten synchron bleiben. Sie können um höchstens die Summe der drei ausstehenden Gebührenzähler (quote_protocol_fee, platform_fee, migrate_fee) abweichen, die im Vault sitzen, aber zu den Gebührenzählern und nicht zur Curve-Reserve gehören. Die Curve-Mathematik verwendet immer real_quote, nie den rohen Vault-Saldo.
Pre-Graduation-Invariante:
PlatformCurveRule
Ein Konto pro (PlatformConfig, GlobalConfig)-Paar, das die Launch-Formen hält, die diese Platform auf dieser Konfiguration erlaubt. PDA-Seeds sind [b"platform_curve_rule", platform_config, global_config].
150 + Σ(14 + 18 × constraints) und Decoder dürfen keine feste Größe annehmen. Gruppen sind ORed: ein Launch ist erlaubt, sobald alle Constraints einer Gruppe gelten. Null Gruppen bedeutet keine Einschränkung.
Lesen Sie es nur, wenn die besitzende PlatformConfig.restrict_curve_param 1 ist — bei 0 ignoriert das Programm das Konto, und eine veraltete Regel kann dort sitzen. Feld-IDs, Operatoren und die Playbooks sind in products/launchlab/curve-rules.
Lebenszyklus-Kontoübergänge
Nächste Schritte
products/launchlab/bonding-curve— die Mathematik hinterreal_base↔real_quote.products/launchlab/instructions— Pro-Anweisung-Kontolisten.products/launchlab/global-config— Protocol-Level-Bindung.products/launchlab/platform-config— Platform-Überlagerung.products/launchlab/vesting— Mechanik der gesperrten Versorgung.products/cpmm/accounts— wie der Post-Graduationcpmm_pool_stateaussieht.
raydium-launch/programs/launchpad/src/states/pool.rs—PoolState,PoolStatus,VestingSchedule,AmmCreatorFeeOn.raydium-launch/programs/launchpad/src/lib.rs— PDA-Seed-Konstanten (AUTH_SEED,CREATOR_FEE_VAULT_AUTH_SEED,PLATFORM_FEE_VAULT_AUTH_SEED).- Raydium SDK v2
launchpadmodule.

