Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
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:
BothToken→MigrateToAmm→ 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).QuoteToken→MigrateToCpswap→ CPMM Pool mitcreator_fee_on = OnlyQuoteToken(Creator verdient weiterhin Gebühren aus dem CPMM Pool durch den LaunchLab Fee Key NFT — sieheproducts/launchlab/creator-fees).
Initialize
Erstellen Sie einen neuen Start.
Argumente
Vorbedingungen
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- Gebührenparameter erfüllen
launch_config.max_*_fee_rateChecks. open_time ≥ now − slop(SDK erzwingt≥ now; Programm toleriert leichte Rückdatierung).curve_typeist erkannt.
base_minthatsupply = base_supply_max, alles inbase_vault.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchStateinitialisiert mitstatus = Active,base_sold = 0,quote_reserve_real = 0.quote_reserve_targetberechnet aus Curve-Parametern +base_supply_graduation+buy_numerator(ungefähr).
InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (kanonische Variante: BuyExactIn)
Benutzer stellt einen festen quote_in bereit; die Curve berechnet base_out.
Argumente
Vorbedingungen
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
- Teilen Sie
quote_ininquote_in_after_feeund die Gebührenteile auf. - Newton-Solve der Curve für
base_outangesichts des post-Gebühren-Quote. require(base_out ≥ minimum_base_out)sonst Revert mitExceededSlippage.- Verschieben Sie
quote_inBenutzer → Vault. Verschieben Siebase_outVault → Benutzer. - Aktualisieren Sie
base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share). - Aktualisieren Sie Gebührenzähler (
protocol_fees_quote,creator_fees_quote). state_data.num_buys += 1.- Wenn
quote_reserve_real ≥ quote_reserve_targetnach der Aktualisierung, hängt das SDK normalerweise eineGraduateix in derselben Transaktion an. Das Programm graduiert nicht automatisch innerhalb vonBuy— eine nachfolgendeGraduateist erforderlich.
BuyExactOut
Benutzer gibt den exakten base_out an; Programm berechnet quote_in.
Argumente
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_soldnicht unter 0 drücken (redundant mit dem obigen, da die Buchhaltung konsistent ist). - Start ist
Active.
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— dasmigrate_to_amm_walletauf der Bindungs-GlobalConfigerfasst.MigrateToCpswap— dasmigrate_to_cpswap_walletauf der Bindungs-GlobalConfigerfasst.
MigrateToAmm benötigt drei (hauptsächlich OpenBook-Marktparameter, die das Programm an AMM v4 weiterleitet):
MigrateToCpswap benötigt keine.
Effekt (gemeinsam für beide)
- Stellen Sie sicher, dass
pool_state.status == Migrate(d.h.quote_reserve_targetwurde erreicht). Ansonsten Revert mitPoolMigrated(Status war bereitsMigrated) oderPoolFunding(noch in Finanzierung). - Stellen Sie sicher, dass
pool_state.migrate_typeder Anweisung entspricht (0für AMM,1für CPMM). Ansonsten Revert mitMigrateTypeNotMatch. - Berechnen Sie die Post-Graduierungs-Reserven:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI in das Ziel-Programm (
AMM v4 Initialize2oderCPMM InitializeWithPermission) mit diesen Reserven, um den Post-Graduierungs-Pool zu erstellen. - Teilen Sie das resultierende LP pro Bindungs-
PlatformConfig.{platform_scale, creator_scale, burn_scale}(nur CPMM) — ein Teil wird anplatform_nft_walletgeprä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. - Widerrufen Sie
base_mint.mint_authority(aufNonesetzen). - Kippen Sie
pool_state.status = Migrated, setzen Sievesting_schedule.start_time = block_time + cliff_period.
BuyExactIn, 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 Fehler — PoolFunding, 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:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,UpdatePlatformCurveParam,RemovePlatformCurveParam,CreatePlatformGlobalAccess,ClosePlatformGlobalAccessCreateConfig,UpdateConfig
State-Change-Matrix
Weiterführend
products/launchlab/code-demos— TypeScript-Beispiele für jede Anweisung.products/launchlab/accounts— vollständige State-Form.reference/error-codes— LaunchLab Error Enum.
- Raydium SDK v2
LaunchLabModul - Raydium LaunchLab Programmquellcode

