Ana içeriğe atla
Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →
LaunchLab dar bir talimat setini sunar: altı kullanıcı taraflı çağrı ve bir avuç yönetici primitifi. SDK hepsini sarmalamaktadır; bu sayfa, aggregatör, izleme araçları ve CPI gerektiren programlar için ham arayüzü belgelemektedir.

Talimat envanteri

“ExactIn/ExactOut” bölünmesi CPMM’nin SwapBaseInput / SwapBaseOutput öğesini yansıtır — zincir üzerinde bunlar, hafifçe farklı yuvarlama ile ayrı talimat ayırıcılarıdır. Mezuniyet yolunun seçimi. migrate_type, Initialize{V2,WithToken2022} zamanında PoolState’te kaydedilir ve iki mezuniyet talimatından hangisinin çalışabileceğini belirler. Token-2022 başlatmaları her zaman CPMM’ye geçiş yapır. SPL Token başlatmaları, amm_creator_fee_on ayarına bağlı olarak AMM v4 veya CPMM’ye geçiş yapır:
  • BothTokenMigrateToAmm → AMM v4 havuzu (yaratıcı ücreti her iki taraftan tahsil edilebilir; AMM v4’ün yerel bir yaratıcı-ücret alanı yoktur, bu nedenle yaratıcı ücretleri bunun yerine LP-kilit NFT mekanizması aracılığıyla alınır).
  • QuoteTokenMigrateToCpswapcreator_fee_on = OnlyQuoteToken ile CPMM havuzu (yaratıcı LaunchLab Ücret Anahtarı NFT’si aracılığıyla CPMM havuzundan ücret almaya devam eder — products/launchlab/creator-fees adresine bakın).
AmmCreatorFeeOn enum adı hakkında not. Rust kaynağı bu enum’u AmmCreatorFeeOn olarak adlandırır ve QuoteToken ile BothToken varyantlarına sahiptir. Ad yanıltıcıdır: mevcut operasyonel uygulamada, varyant sadece yaratıcı ücreti hangi taraftan mezuniyet sonrası CPMM havuzunda tahsil edildiğini kontrol etmekle kalmaz — aynı zamanda mezuniyet hedef programını (AMM v4 vs CPMM) seçer ve başlatmanın PoolState’tindeki migrate_type ile eşleşir. Alanı “göç hedefi + mezuniyet sonrası yaratıcı-ücret tarafı” olarak birleştirilmiş olarak düşünün. Zincir üzerindeki enum adı yeniden düzenlenmiştir, ancak MigrationTarget olarak akıl yürütmek gerçeğe daha yakından uyar.

Initialize

Yeni bir başlatma oluşturun. Argümanlar
Hesaplar (kısaltılmış) Ön koşullar
  • quote_mint ∈ launch_config.allowed_quote_mints.
  • base_supply_graduation ≤ base_supply_max.
  • Ücret parametreleri launch_config.max_*_fee_rate kontrolleri geçer.
  • open_time ≥ now − slop (SDK ≥ now uygular; program hafif geriye dönük tarihlemeyi tolere eder).
  • curve_type tanınmaktadır.
Sonkoşullar
  • base_mint supply = base_supply_max’a sahiptir, hepsi base_vault’ta.
  • base_mint.mint_authority = launch_authority, freeze_authority = None.
  • LaunchState status = Active, base_sold = 0, quote_reserve_real = 0 ile başlatılır.
  • quote_reserve_target eğri parametrelerinden + base_supply_graduation + buy_numerator (yaklaşık olarak) hesaplanır.
Yaygın hatalarInvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.

Buy (kanonik varyant: BuyExactIn)

Kullanıcı sabit bir quote_in sağlar; eğri base_out’u hesaplar. Argümanlar
Hesaplar Ön koşullar
  • launch_state.status == Active.
  • now ≥ open_time.
  • user_quote_ata.balance ≥ quote_in.
  • quote_in > 0.
Etki
  1. quote_in’i quote_in_after_fee ve ücret kısımlarına böl.
  2. Post-ücret teklifi verilen base_out için eğriyi Newton-çöz.
  3. require(base_out ≥ minimum_base_out) aksi halde ExceededSlippage ile geri dön.
  4. quote_in kullanıcısını → kasaya taşı. base_out kasasını → kullanıcıya taşı.
  5. base_sold += base_out, quote_reserve_real += quote_in_after_fee × (lp_share / total_share) güncelle.
  6. Ücret sayaçlarını güncelle (protocol_fees_quote, creator_fees_quote).
  7. state_data.num_buys += 1.
  8. Güncellendikten sonra quote_reserve_real ≥ quote_reserve_target ise, SDK tipik olarak aynı işlemde bir Graduate ix zincirlemektedir. Program Buy içinde otomatik mezuniyet yapmaz — sonraki bir Graduate gereklidir.

BuyExactOut

Kullanıcı tam base_out’u belirtir; program quote_in’i hesaplar. Argümanlar
BuyExactIn ile aynı hesaplar. Newton iterasyonu yerine kapalı form ikinci dereceden integral (veya CPMM tersi, curve_type 1 için) kullanır.

Sell / SellExactIn / SellExactOut

Buy’ın aynalanması. Kullanıcı base_in’i eğriye geri döndürür ve quote_out alır. Ücret quote_out’dan düşülür, bu nedenle kullanıcı ham entegre gelirden daha az alır. Ön koşullar
  • user_base_ata.balance ≥ base_in.
  • Satış base_sold’u 0’ın altına itemiyor (muhasebe tutarlı olarak bu ile fazlalıklı).
  • Başlatma Active’dir.
EtkiBuy ile simetrik. base_sold azalır, quote_reserve_real azalır. Ücretler yine de tahakkuk eder.

MigrateToAmm / MigrateToCpswap

Eğri total_quote_fund_raising’e vurduktan sonra, bir başlatmayı ticari bir AMM havuzuna mezun edin. İki talimat, iki mezuniyet hedefine karşılık gelir — AMM v4 ve CPMM — ve herhangi bir başlatma için bunlardan sadece biri geçerlidir, pool_state.migrate_type tarafından belirlenmiştir (Initialize zamanında ayarlanan). Kim imzalar
  • MigrateToAmm — bağlama GlobalConfig’te kaydedilen migrate_to_amm_wallet.
  • MigrateToCpswap — bağlama GlobalConfig’te kaydedilen migrate_to_cpswap_wallet.
Bu cüzdanlar tipik olarak Raydium tarafından işletilen mezuniyet krank tarafından tutulur; uygulamada mezuniyet, sonraki alışı tetikleyen ne olursa olsun, eşik aşıldıktan saniyeler sonra iner. Argümanlar MigrateToAmm üç tane alır (esas olarak programın AMM v4’e ilettiği OpenBook pazar parametreleri):
MigrateToCpswap hiçbir şey almaz. Etki (her ikisi için ortak)
  1. pool_state.status == Migrate’i doğrulayın (yani, quote_reserve_target ulaşılmış). Aksi halde PoolMigrated (durum zaten Migrated oldu) veya PoolFunding (hala finansmandadır) ile geri dön.
  2. pool_state.migrate_type’ın talimata uygun olduğunu doğrulayın (0 AMM için, 1 CPMM için). Aksi halde MigrateTypeNotMatch ile geri dön.
  3. Mezuniyet sonrası rezervleri hesaplayın:
    • 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. Hedef programa CPI yap (AMM v4 Initialize2 veya CPMM InitializeWithPermission) bu rezervlerle mezuniyet sonrası havuzunu oluşturmak.
  5. Sonuçta ortaya çıkan LP’yi bağlama PlatformConfig.{platform_scale, creator_scale, burn_scale} (CPMM yalnız) — bir parça platform_nft_wallet’e basılmış, biri LP-Lock programı tarafından sarılmış bir yaratıcı NFT’ye, biri Burn & Earn aracılığıyla yakılmış. AMM v4 mezuniyeti için, LP düzeni AMM v4’ün kendi başlatma parametreleri tarafından yönetilir.
  6. base_mint.mint_authority’yi iptal edin (sıfıra ayarlayın).
  7. pool_state.status = Migrated ters çevir, vesting_schedule.start_time = block_time + cliff_period ayarlayın.
SonkoşullarBuyExactIn, BuyExactOut, SellExactIn, SellExactOut bu noktadan itibaren PoolMigrated ile red edecektir. Ortaya çıkan AMM havuzu kanonik ve diğer herhangi bir AMM v4 / CPMM havuzu gibi ticaret yapar. Yaygın hatalarPoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.

CollectFee

Tek bir başlatmada protokolün biriken ticaret ücretlerinin yönetici temizliği. Argümanlar — hiçbiri. Hesaplar Etkipool_state.quote_protocol_fee’yi quote_vault’tan recipient_token_account’a aktar, sonra sayacı sıfırla. İlk alışveriş sonrasında istediğiniz zaman çağrılabilir.

CollectMigrateFee

Mezuniyette biriken göç ücretinin yönetici temizliği. CollectFee ile aynı hesap şekli (protocol_fee_owner yerine imzalayanı migrate_fee_owner olarak) ve pool_state.migrate_fee drained sayacı.

ClaimCreatorFee

Aynı teklif yalanını kullanan sahip olduğu her başlatma genelinde biriken yaratıcı ücretlerinin yaratıcı başına temizliği. Per-pool’u değil, per-creator ücret kasasını boşaltır. Argümanlar — hiçbiri. Hesaplar Etkicreator_fee_vault’ın tüm bakiyesini recipient_token_account’a aktar. Kasa boşsa sıfırdan daha büyük kontrol ile geri dön.

ClaimPlatformFee

Bir başlatmanın teklif kasasını doğrudan boşaltan platform başına temizlik. Bunu, bir platform toplanmış platform kasası aracılığıyla gitmeden belirli bir başlatma için dilimini talep etmek istediğinde kullanın. Argümanlar — hiçbiri. Hesaplar Etkipool_state.platform_fee’yi quote_vault’tan recipient_token_account’a aktar, sayacı sıfırla.

ClaimPlatformFeeFromVault

Platform başına toplanmış temizlik. Platform aracılığıyla yönlendirilen her başlatmadan ücretleri biriktiren platform’un per-quote-mint ücret kasasını boşaltır. Argümanlar — hiçbiri. Hesaplar Etkiplatform_fee_vault’ın tüm bakiyesini recipient_token_account’a aktar. Kasa boşsa geri dön.

Vesting ve platform-config talimatları

Bunlar, her biri kendi durum modeline sahip olduğu için ayrılmış sayfalarda belgelenmiştir:

Durum değişim matrisi

Sonraki nereye gitmeli

Kaynaklar: