Skip to main content
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, sıkı bir talimat seti sunar: altı kullanıcı tarafından çağrılabilen işlem artı bir avuç yönetici ilkel işlemi. SDK bunların tümünü sarmalamaktadır; bu sayfa, toplayıcılar, izleme araçları ve CPI gerektiren programlar için ham yüzeyi belgeler.

Talimat envanteri

“ExactIn/ExactOut” bölünmesi CPMM’nin SwapBaseInput / SwapBaseOutput yöntemini yansıtır — zincir üzerinde bunlar biraz farklı yuvarlama ile ayrı talimat ayırıcılarıdır. Mezuniyet yolu seçimi. Her yeni Initialize, InitializeV2 ve InitializeWithToken2022 çağrısı migrate_type = 1 (CPSWAP) ayarlamalıdır. Yeni bir AMM v4 bağlı havuzu başlatmaya yönelik herhangi bir girişim MigrateTypeNotMatch döndürür. amm_creator_fee_on yalnızca ortaya çıkan CPMM yaratıcı ücretinin alıntı jetonuna mı yoksa her iki jetona mı uygulanacağını seçer; hedef programı seçmez. MigrateToAmm, bu kısıtlama öncesinde migrate_type = 0 ile başlatılan mevcut bir PoolState için çağrılabilir kalır. Sürüm mevcut havuz durumunu yeniden yazmaz veya eski talimatı kaldırmaz.

Initialize

Yeni bir başlatma oluştur. 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 kontrollerini geçer.
  • open_time ≥ now − slop (SDK ≥ now uygular; program hafif geriye dönük tarihlendirmeyi tolere eder).
  • curve_type tanınır.
Son koşullar
  • base_mint supply = base_supply_max ile, tümü base_vault içinde.
  • 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 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 öğesini quote_in_after_fee ve ücret kısımlarına böl.
  2. Post-ücret alıntısı verilen base_out için eğriyi Newton-çöz.
  3. require(base_out ≥ minimum_base_out) aksi takdirde ExceededSlippage ile geri dön.
  4. quote_in kullanıcı → kasa taşı. base_out kasa → kullanıcı 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üncelleme sonrası quote_reserve_real ≥ quote_reserve_target ise, SDK tipik olarak aynı işlemde bir Graduate ix zincirler. Program Buy içinde otomatik olarak mezun olmaz — sonraki bir Graduate gereklidir.

BuyExactOut

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

Sell / SellExactIn / SellExactOut

Buy yansıması. Kullanıcı base_in öğesini eğriye döndürür ve quote_out alır. Ücret quote_out öğesinden düşülür, bu nedenle kullanıcı ham entegre gelirlerin daha azını alır. Ön koşullar
  • user_base_ata.balance ≥ base_in.
  • Satış base_sold öğesini 0’ın altına itemiyor (muhasebe tutarlı olduğu göz önüne alındığında yukarıdakiyle gereksiz).
  • Başlatma Active durumundadır.
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 öğesine ulaştığında bir başlatmayı işlem gören bir havuza mezun et. Yeni başlatmalar yalnızca CPMM’dir. MigrateToAmm, depolanan migrate_type öğesi 0 olan mevcut havuzlar için tutulur. İmzalayan
  • MigrateToAmm — bağlama GlobalConfig öğesinde kaydedilen migrate_to_amm_wallet.
  • MigrateToCpswap — bağlama GlobalConfig öğesinde kaydedilen migrate_to_cpswap_wallet.
Bu cüzdanlar tipik olarak Raydium tarafından işletilen mezuniyet krankı tarafından tutulur; uygulamada mezuniyet eşik geçildikten sonra saniyeler içinde gerçekleşir, son satın almayı kimin tetiklediğine bakılmaksızın. Argümanlar MigrateToAmm üç tane alır (esas olarak programın AMM v4’e ileteceği OpenBook pazar parametreleri):
MigrateToCpswap hiçbirini almaz. Etki (her ikisine de ortak)
  1. pool_state.status == Migrate doğrula (yani, quote_reserve_target ulaşıldı). Aksi takdirde PoolMigrated (durum zaten Migrated idi) veya PoolFunding (hala finansman aşamasında) ile geri dön.
  2. pool_state.migrate_type öğesinin talimatla eşleştiğini doğrula (0 AMM için, 1 CPMM için). Aksi takdirde MigrateTypeNotMatch ile geri dön.
  3. Mezuniyet sonrası rezervleri hesapla:
    • 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 (AMM v4 Initialize2 veya CPMM InitializeWithPermission) bu rezervlerle CPI yaparak mezuniyet sonrası havuzu oluştur.
  5. 2026-08-17 yükseltmesinden sonra yürütülen CPMM geçişleri için, platform_scale + creator_scale öğesini bir platform tarafından sahip olunan kilitli LP payına birleştir ve en fazla bir Fee Key NFT’yi platform_nft_wallet öğesine bas. burn_scale kalanını yak. Yükseltmeden önce, creator_scale ayrı olarak kilitliydi ve Fee Key’i jeton yaratıcısına gitti. Tamamlanan tarihsel geçişler değiştirilmez. Eski AMM v4 mezuniyeti için, LP dağılımı bu talimatın mevcut akışını izler.
  6. base_mint.mint_authority öğesini iptal et (None olarak ayarla).
  7. pool_state.status = Migrated çevir, vesting_schedule.start_time = block_time + cliff_period ayarla.
Son koşullarBuyExactIn, BuyExactOut, SellExactIn, SellExactOut bu noktadan itibaren PoolMigrated ile reddedecektir. Ortaya çıkan AMM havuzu kanonik ve diğer herhangi bir AMM v4 / CPMM havuzu gibi işlem görür. Yaygın hatalarPoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.

CPMM geçişi kalan hesapları

MigrateToCpswap oluşturan istemciler bu sabit remaining_accounts dizinlerini kullanmalıdır: Talimat, yükseltilmiş yolda en az on kalan hesap gerektirir. Destek-mint hesapları salt okunur CPI girdileridir. Her iki adresi de mint’in başlatılmış bir destek kaydı olmasa bile türet. Hala yaratıcı-kilit hesapları ekleyen veya dizinleri 8–9 atlayan eski oluşturucular güncellenmeli.

Platform GlobalConfig izin listesi

PlatformConfig.restrict_global_config kontrolü denetler:
  • 0: platform herhangi bir başka şekilde geçerli GlobalConfig öğesini kabul eder; izin hesabı gerekli değildir.
  • 1: Initialize, InitializeV2 ve InitializeWithToken2022 eşleşen PlatformAllowConfig öğesini remaining_accounts içinde herhangi bir yere dahil etmelidir.
Platform yöneticisi CreatePlatformAllowConfig ve ClosePlatformAllowConfig ile PDA’yı oluşturur veya kapatır. Tohumları [b"platform_allow_config", platform_config, global_config] öğesidir. Eski yönetici tarafından yönetilen PlatformGlobalAccess talimatları ve PDA’sı emekli olmuştur.

CollectFee

Protokolün tek bir başlatmada birikmiş işlem ücretlerinin yönetici tarafından temizlenmesi. Argümanlar — hiçbiri. Hesaplar Etkipool_state.quote_protocol_fee öğesini quote_vault öğesinden recipient_token_account öğesine aktar, ardından sayacı sıfırla. İlk satın almadan sonra herhangi bir zamanda çağrılabilir.

CollectMigrateFee

Mezuniyet sırasında birikmiş geçiş ücretinin yönetici tarafından temizlenmesi. CollectFee ile aynı hesap şekli, protocol_fee_owner yerine migrate_fee_owner imzalayan (yerine) ve pool_state.migrate_fee boşaltılan sayaç olarak.

ClaimCreatorFee

Yaratıcının sahip olduğu her başlatmada birikmiş yaratıcı ücretlerinin yaratıcı başına temizlenmesi, aynı alıntı mint’i kullanan. Per-havuz olanı değil, per-yaratıcı ücret kasasını boşaltır. Argümanlar — hiçbiri. Hesaplar Etkicreator_fee_vault öğesinin tüm bakiyesini recipient_token_account öğesine aktar. Kasa boşsa sıfırdan büyük bir kontrol ile geri dön.

ClaimPlatformFee

Bir başlatmanın alıntı kasasını doğrudan boşaltan platform başına temizleme. Bunu, bir platform toplu platform kasasından geçmeden belirli bir başlatma için payını talep etmek istediğinde kullanın. Argümanlar — hiçbiri. Hesaplar Etkipool_state.platform_fee öğesini quote_vault öğesinden recipient_token_account öğesine aktar, sayacı sıfırla.

ClaimPlatformFeeFromVault

Platform başına toplanan temizleme. Platform tarafından yönlendirilen her başlatmadan ücretleri biriktiren platform’un per-alıntı-mint ücret kasasını boşaltır. Argümanlar — hiçbiri. Hesaplar Etkiplatform_fee_vault öğesinin tam bakiyesini recipient_token_account öğesine aktar. Kasa boşsa geri dön.

Vesting ve platform yapılandırması talimatları

Bunlar ayrılmış sayfalarda belgelenmiştir çünkü her birinin kendi durum modeli vardır:

Durum değişimi matrisi

Sonraki adım

Kaynaklar: