Zum Hauptinhalt springen
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
LaunchLab stellt eine kompakte Anweisungsmenge bereit: sechs Aufrufe für Benutzer plus einige Admin-Primitive. Das SDK umhüllt alle davon; diese Seite dokumentiert die rohe Oberfläche für Aggregatoren, Überwachungstools und Programme, die CPI benötigen.

Anweisungsübersicht

Die „ExactIn/ExactOut”-Aufteilung spiegelt CPMMs SwapBaseInput / SwapBaseOutput wider — on-chain sind es separate Anweisungs-Diskriminatoren mit leicht unterschiedlicher Rundung. Graduierungspfadauswahl. migrate_type wird auf PoolState bei Initialize{V2,WithToken2022} erfasst und bestimmt, welche der beiden Graduierungsanweisungen ausgeführt werden kann. Token-2022-Starts migrieren immer zu CPMM. SPL Token-Starts migrieren zu entweder AMM v4 oder CPMM, abhängig von der amm_creator_fee_on-Einstellung:
  • BothTokenMigrateToAmm → AMM v4 Pool (Creator-Gebühr kann von beiden Seiten erhoben werden; AMM v4 hat kein natives Creator-Gebühren-Feld, daher werden Creator-Gebühren stattdessen über den LP-Lock NFT-Mechanismus erfasst).
  • QuoteTokenMigrateToCpswap → CPMM Pool mit creator_fee_on = OnlyQuoteToken (Creator verdient weiterhin Gebühren aus dem CPMM Pool durch den LaunchLab Fee Key NFT — siehe products/launchlab/creator-fees).
Hinweis zum AmmCreatorFeeOn-Enum-Namen. Der Rust-Quellcode nennt dieses Enum AmmCreatorFeeOn mit Varianten QuoteToken und BothToken. Der Name ist irreführend: in der aktuellen Betriebspraxis steuert die Variante nicht nur, von welcher Seite die Creator-Gebühr im Post-Graduierungs-CPMM-Pool erhoben wird — sie wählt auch das Graduierungs-Ziel-Programm (AMM v4 vs CPMM) und paart sich mit migrate_type auf der PoolState des Starts. Behandeln Sie das Feld als „Migrationsziel + Post-Graduierungs-Creator-Gebühren-Seite” zusammengefasst. Der On-Chain-Enum-Name wurde nicht umgestaltet, aber das Denken daran als MigrationTarget entspricht der Realität genauer.

Initialize

Erstellen Sie einen neuen Start. Argumente
Konten (gekürzt) Vorbedingungen
  • quote_mint ∈ launch_config.allowed_quote_mints.
  • base_supply_graduation ≤ base_supply_max.
  • Gebührenparameter erfüllen launch_config.max_*_fee_rate Checks.
  • open_time ≥ now − slop (SDK erzwingt ≥ now; Programm toleriert leichte Rückdatierung).
  • curve_type ist erkannt.
Nachbedingungen
  • base_mint hat supply = base_supply_max, alles in base_vault.
  • base_mint.mint_authority = launch_authority, freeze_authority = None.
  • LaunchState initialisiert mit status = Active, base_sold = 0, quote_reserve_real = 0.
  • quote_reserve_target berechnet aus Curve-Parametern + base_supply_graduation + buy_numerator (ungefähr).
Häufige FehlerInvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.

Buy (kanonische Variante: BuyExactIn)

Benutzer stellt einen festen quote_in bereit; die Curve berechnet base_out. Argumente
Konten Vorbedingungen
  • launch_state.status == Active.
  • now ≥ open_time.
  • user_quote_ata.balance ≥ quote_in.
  • quote_in > 0.
Effekt
  1. Teilen Sie quote_in in quote_in_after_fee und die Gebührenteile auf.
  2. Newton-Solve der Curve für base_out angesichts des post-Gebühren-Quote.
  3. require(base_out ≥ minimum_base_out) sonst Revert mit ExceededSlippage.
  4. Verschieben Sie quote_in Benutzer → Vault. Verschieben Sie base_out Vault → Benutzer.
  5. Aktualisieren Sie base_sold += base_out, quote_reserve_real += quote_in_after_fee × (lp_share / total_share).
  6. Aktualisieren Sie Gebührenzähler (protocol_fees_quote, creator_fees_quote).
  7. state_data.num_buys += 1.
  8. Wenn quote_reserve_real ≥ quote_reserve_target nach der Aktualisierung, hängt das SDK normalerweise eine Graduate ix in derselben Transaktion an. Das Programm graduiert nicht automatisch innerhalb von Buy — eine nachfolgende Graduate ist erforderlich.

BuyExactOut

Benutzer gibt den exakten base_out an; Programm berechnet quote_in. Argumente
Gleiche Konten wie BuyExactIn. Verwendet das geschlossene quadratische Integral (oder CPMM-Inverse für curve_type 1) anstelle von Newton-Iteration.

Sell / SellExactIn / SellExactOut

Spiegel von Buy. Benutzer gibt base_in an die Curve zurück und erhält quote_out. Die Gebühr wird von quote_out abgezogen, daher erhält der Benutzer weniger als die rohen integrierten Erträge. Vorbedingungen
  • user_base_ata.balance ≥ base_in.
  • Der Verkauf kann base_sold nicht unter 0 drücken (redundant mit dem obigen, da die Buchhaltung konsistent ist).
  • Start ist Active.
Effekt — symmetrisch zu Buy. base_sold sinkt, quote_reserve_real sinkt. Gebühren fallen weiterhin an.

MigrateToAmm / MigrateToCpswap

Graduieren Sie einen Start in einen handelbaren AMM-Pool, sobald die Curve total_quote_fund_raising erreicht hat. Die beiden Anweisungen entsprechen den zwei Graduierungszielen — AMM v4 und CPMM — und nur eine von ihnen ist für jeden gegebenen Start gültig, bestimmt durch pool_state.migrate_type (bei Initialize-Zeit gesetzt). Wer unterzeichnet
  • MigrateToAmm — das migrate_to_amm_wallet auf der Bindungs-GlobalConfig erfasst.
  • MigrateToCpswap — das migrate_to_cpswap_wallet auf der Bindungs-GlobalConfig erfasst.
Diese Wallets werden normalerweise von der von Raydium betriebenen Graduierungs-Crank gehalten; in der Praxis erfolgt die Graduierung Sekunden nachdem der Schwellwert überschritten wird, unabhängig davon, wer den finalen Kauf ausgelöst hat. Argumente MigrateToAmm benötigt drei (hauptsächlich OpenBook-Marktparameter, die das Programm an AMM v4 weiterleitet):
MigrateToCpswap benötigt keine. Effekt (gemeinsam für beide)
  1. Stellen Sie sicher, dass pool_state.status == Migrate (d.h. quote_reserve_target wurde erreicht). Ansonsten Revert mit PoolMigrated (Status war bereits Migrated) oder PoolFunding (noch in Finanzierung).
  2. Stellen Sie sicher, dass pool_state.migrate_type der Anweisung entspricht (0 für AMM, 1 für CPMM). Ansonsten Revert mit MigrateTypeNotMatch.
  3. Berechnen Sie die Post-Graduierungs-Reserven:
    • base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
    • quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
  4. CPI in das Ziel-Programm (AMM v4 Initialize2 oder CPMM InitializeWithPermission) mit diesen Reserven, um den Post-Graduierungs-Pool zu erstellen.
  5. Teilen Sie das resultierende LP pro Bindungs-PlatformConfig.{platform_scale, creator_scale, burn_scale} (nur CPMM) — ein Teil wird an platform_nft_wallet geprägt, einer an einen Creator-NFT, der vom LP-Lock-Programm umhüllt wird, einer wird über Burn & Earn verbrannt. Für AMM v4-Graduierung wird die LP-Disposition durch AMM v4s eigene Initialisierungsparameter gesteuert.
  6. Widerrufen Sie base_mint.mint_authority (auf None setzen).
  7. Kippen Sie pool_state.status = Migrated, setzen Sie vesting_schedule.start_time = block_time + cliff_period.
NachbedingungenBuyExactIn, BuyExactOut, SellExactIn, SellExactOut werden von diesem Punkt an mit PoolMigrated ablehnen. Der resultierende AMM-Pool ist kanonisch und handelt wie alle anderen AMM v4 / CPMM Pools. Häufige FehlerPoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.

CollectFee

Admin-Abruf der angesammelten Handelsgebühren des Protokolls bei einem einzelnen Start. Argumente — keine. Konten Effekt — Übertragen Sie pool_state.quote_protocol_fee von quote_vault zu recipient_token_account, dann nullen Sie den Zähler. Aufrufbar jederzeit nach dem ersten Kauf.

CollectMigrateFee

Admin-Abruf der Migrationsgebühr, die bei der Graduierung angesammelt wurde. Gleiche Kontenform wie CollectFee mit migrate_fee_owner als Unterzeichner (anstelle von protocol_fee_owner) und pool_state.migrate_fee als abgelasster Zähler.

ClaimCreatorFee

Pro-Creator-Abruf angesammelter Creator-Gebühren über jeden Start, den der Creator besitzt, der das gleiche Quote Mint verwendet. Leert die Pro-Creator-Gebühren-Vault, nicht die Pro-Pool. Argumente — keine. Konten Effekt — Übertragen Sie den gesamten Saldo von creator_fee_vault zu recipient_token_account. Revert mit einem größer-als-Null-Check, wenn die Vault leer ist.

ClaimPlatformFee

Pro-Plattform-Abruf, der eine Start-Quoten-Vault direkt ablässt. Verwenden Sie dies, wenn eine Plattform ihren Anteil für einen bestimmten Start beanspruchen möchte, ohne durch die aggregierte Plattform-Vault zu gehen. Argumente — keine. Konten Effekt — Übertragen Sie pool_state.platform_fee von quote_vault zu recipient_token_account, nullen Sie den Zähler.

ClaimPlatformFeeFromVault

Pro-Plattform aggregierter Abruf. Leert die Pro-Quote-Mint-Gebühren-Vault der Plattform, die Gebühren von jedem Start sammelt, der durch die Plattform geleitet wird. Argumente — keine. Konten Effekt — Übertragen Sie den vollen Saldo von platform_fee_vault zu recipient_token_account. Revert, wenn die Vault leer ist.

Vesting und Plattformkonfigurationsanweisungen

Diese sind auf dedizierten Seiten dokumentiert, da jede ihr eigenes State-Modell hat:

State-Change-Matrix

Weiterführend

Quellen: