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 quote token’ına mı yoksa her iki token’a mı uygulanacağını seçer; hedef programı seçmez.
MigrateToAmm, bu kısıtlamadan önce 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.
Quote tarafı token programı. Quote mint, SPL Token programı veya Token-2022 tarafından sahip olunabilir. Buna dokunan her talimat — CreateConfig, InitializeV2, InitializeWithToken2022, dört işlem talimatının tümü, CollectFee, CollectMigrateFee, ClaimCreatorFee, ClaimPlatformFee ve ClaimPlatformFeeFromVault — sahip olan programı quote-program hesap yuvasında alır. Hesap konumları değişmedi; yalnızca kabul edilen değer değişti. GlobalConfig.quote_mint sahibi olan programı geçin; bunu mevcut bir başlatma için PoolState.token_program_flag bit1’den okuyabilir (bkz. accounts) veya aksi takdirde mint hesabının sahibinden.
Kullanımdan kaldırılan Initialize istisnadır: quote-program hesabı hala SPL Token’a yazılmıştır, bu nedenle quote mint’i Token-2022 olan bir yapılandırma InitializeV2 veya InitializeWithToken2022 aracılığıyla başlatılmalıdır.
MigrateToCpswap diğer istisnadır, ters yönde — mint başına bir yerine her iki programı da koşulsuz olarak alır. Bkz. aşağıdaki geçiş hesapları.
Initialize
Yeni bir başlatma oluştur.
Argümanlar
Ön koşullar
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- Ücret parametreleri
launch_config.max_*_fee_ratekontrollerini geçer. open_time ≥ now − slop(SDK≥ nowuygular; program hafif geriye dönük tarihlendirmeyi tolere eder).curve_typetanınır.
base_mintsupply = base_supply_maxile, tümübase_vaultiçinde.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchStatestatus = Active,base_sold = 0,quote_reserve_real = 0ile başlatılır.quote_reserve_targeteğri parametreleri +base_supply_graduation+buy_numerator(yaklaşık olarak) hesaplanır.InitializeWithToken2022içinTransferFeeConfigekli:transfer_fee_config_authority = launch_authorityvewithdraw_withheld_authority = PlatformConfig.transfer_fee_extension_authbu alan ayarlandığında, aksi takdirdelaunch_authority. Çekme tarafı, platform mezuniyetten önce kesilen ücretleri temizleyebilmesi için tam olarak mint oluşturmada yazılır. Bkz.platform-config.
InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (kanonik varyant: BuyExactIn)
Kullanıcı sabit quote_in sağlar; eğri base_out hesaplar.
Argümanlar
Ön koşullar
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
quote_inöğesiniquote_in_after_feeve ücret kısımlarına böl.- Post-ücret quote verilen
base_outiçin eğriyi Newton-çöz. require(base_out ≥ minimum_base_out)aksi takdirdeExceededSlippageile geri dön.quote_inkullanıcı → kasa taşı.base_outkasa → kullanıcı taşı.base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share)güncelle.- Ücret sayaçlarını güncelle (
protocol_fees_quote,creator_fees_quote). state_data.num_buys += 1.- Güncelleme sonrası
quote_reserve_real ≥ quote_reserve_targetise, SDK tipik olarak aynı işlemde birGraduateix zincirler. ProgramBuyiçinde otomatik olarak mezun olmaz — sonraki birGraduategereklidir.
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 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
Activeolur.
Buy ile simetrik. base_sold azalır, quote_reserve_real azalır. Ücretler yine de tahakkuk eder.
Quote tarafı transfer ücretleri
Quote mint birTransferFeeConfig taşıdığında, kasanın hareket ettiği miktar ile ödeyenin borçlandırıldığı veya alacaklandırıldığı miktar farklıdır ve slippage sınırı ödeyenin tarafına karşı kontrol edilir. TransferFeeConfig olmayan quote mint’te aşağıdaki her durum düz eski mint ile aynıdır.
Alıntı için iki sonuç:
- Mint ücretsiz olsaydı hesaplanan bir sınır reddedilir. Ücretsiz maliyeti
maximum_amount_inolarak veya ücretsiz gelirleriminimum_amount_outolarak geçmekExceededSlippageile geri döner. real_quoteyalnızca kasaya ulaşan tarafından ilerler.amount_inöğesindeBuyExactIn%5 quote mint’tereal_quoteöğesiniamount_in × 0.95tarafından hareket ettirir.
10000 baz puan) ters çevrilemez ve tam çıkış yollarında CalculateOverflow ile geri döner.
Her iki işlem tarafı mint’i de eşleşen yuvasında geçirilen programa kısıtlanır, bu nedenle uyumsuz base_token_program artık yoksayılmak yerine başarısız olur. Bkz. algorithms/token-2022-transfer-fees temel ücret matematiği için.
MigrateToAmm / MigrateToCpswap
Eğri total_quote_fund_raising öğesine ulaştığında bir başlatmayı işlem yapılabilir bir havuza mezun et. Yeni başlatmalar yalnızca CPMM’dir. MigrateToAmm depolanan migrate_type öğesi 0 olan mevcut havuzlar için tutulur.
Kim imzalar
MigrateToAmm— bağlamaGlobalConfigüzerinde kaydedilenmigrate_to_amm_wallet.MigrateToCpswap— bağlamaGlobalConfigüzerinde kaydedilenmigrate_to_cpswap_wallet.
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)
pool_state.status == Migratedoğrula (yani,quote_reserve_targetulaşıldı). Aksi takdirdePoolMigrated(durum zatenMigratedidi) veyaPoolFunding(hala finansman) ile geri dön.pool_state.migrate_typetalimatla eşleştiğini doğrula (0AMM için,1CPMM için). Aksi takdirdeMigrateTypeNotMatchile geri dön.- Mezuniyet sonrası rezervleri hesapla:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- Hedef programa CPI (
AMM v4 Initialize2veyaCPMM InitializeWithPermission) bu rezervlerle mezuniyet sonrası havuzu oluşturmak için. - 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’yiplatform_nft_walletöğesine bas.burn_scalekalanını yak. Yükseltmeden önce,creator_scaleayrı olarak kilitliydi ve Fee Key’i token 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. base_mint.mint_authorityöğesini iptal et (ayarlaNone).pool_state.status = Migratedçevir,vesting_schedule.start_time = block_time + cliff_periodayarla.
TransferFeeConfig ve PlatformConfig.transfer_fee_extension_auth varsayılan olmayan olduğunda, geçiş ayrıca bu uzantının yetkililerini platform anahtarına yeniden atar:
transfer_fee_config_authorityher zaman yeniden atanır. BaşlatmaauthorityPDA tüm ön mezuniyet aşaması boyunca tuttuğu için, her zaman taşınacak bir şey vardır.WithheldWithdrawyalnızcaauthorityPDA hala tuttuğunda yeniden atanır. 2026-08-27 ve sonrasında oluşturulan başlatmalar zaten mint oluşturmadan bu yetkiliyetransfer_fee_extension_authtaşır, bu nedenle adım atlanır. Koruma, geçişin bu mint’lerde geri dönmesini engeller — PDA artık tutmadığı bir yetkiliye imza atamaz.
transfer_fee_extension_auth geçiş zamanında Pubkey::default() ise, hiçbir yetki hareket etmez ve her ikisi de authority PDA’da kalıcı olarak kalır. Bkz. platform-config.
Son koşullar — BuyExactIn, 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 yapar.
Yaygın hatalar — PoolFunding, 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.
CPMM geçişi token programları
MigrateToCpswap her iki token programını da koşulsuz olarak alır ve hangi programın her mint’e sahip olduğunu kendisi çözer. İki token-program hesabı buna göre yeniden adlandırıldı:
Bunlar eski
base_token_program (hangi program temel mint’e sahipse) ve quote_token_program (her zaman eski) yerine geçer. Konumlar değişmedi, bu nedenle bu bir düzen değişikliği yerine bir değer değişikliğidir — ancak iki değer neredeyse ters çevrilir ve eski çiftini geçirmeye devam eden bir oluşturucu, her iki mint de Token-2022 mint olur olmaz Token-2022’yi eski programın gerekli olduğu yere sağlayacaktır.
Eski program, hiçbir mint bunu kullanmasa bile gereklidir, çünkü CPMM LP mint’i ve kilitli likidite Fee Key NFT’si her zaman üzerinde yaşar.
Platform GlobalConfig izin listesi
PlatformConfig.restrict_global_config kontrolü:
0: platform herhangi bir başka şekilde geçerliGlobalConfigkabul eder; izin hesabı gerekli değildir.1:Initialize,InitializeV2veInitializeWithToken2022eşleşenPlatformAllowConfigöğesiniremaining_accountsiçinde herhangi bir yere dahil etmelidir.
CreatePlatformAllowConfig ve ClosePlatformAllowConfig ile PDA’yı oluşturur veya kapatır. Tohumları [b"platform_allow_config", platform_config, global_config] olur. Eski yönetici tarafından yönetilen PlatformGlobalAccess talimatları ve PDA’sı emekli olmuştur.
Platform başlatma parametresi kuralları
Dört talimat birPlatformCurveRule hesabını yönetir. Dördü de PlatformConfig.curve_rule_manager veya platform yöneticisi tarafından imzalanır — program, imzalayanı PlatformConfig PDA’sından yeniden türeterek yöneticiyi kabul eder, bu nedenle ayrı bir hesap bunu kanıtlamaz. Ne de olmayan bir imzalayan InvalidCurveRuleAuthority döndürür.
platform_curve_rule [b"platform_curve_rule", platform_config, global_config] adresindeki PDA’dır.
Createhiçbir grup tutmayan hesabı ayırır. Bu durum hiçbir şeyi kısıtlamaz.Updatebugroup_idile grubu upsert eder, varsa tamamen değiştirir. Hesabı sığdırmak için yeniden boyutlandırır, bu nedenle imzalayan büyüdüğü kirayı toplar ve küçüldüğü kirayı geri alır. Onuncu ötesinde yeni bir grupCurveRuleGroupsExceededdöndürür; 25’ten fazla kısıtlama, bilinmeyen alan veya operatör veya bir grupta aynı(field, op)çifti iki kezInvalidCurveRuleConstraintdöndürür; dörtTotalSellAtüretilmiş alan sabit olmayan ürün yapılandırmasındaCurveRuleFieldNotSupportedByCurvedöndürür.Removebir grubu kimliğe göre bırakır, hesabı küçültür ve farkı geri öder. Bilinmeyen kimlikCurveRuleGroupNotExistdöndürür.Closetüm kirayı imzalayana döndürür. Yapılandırma daha sonrarestrict_curve_param1kalsa bile sınırsız olur.
UpdatePlatformConfig::RestrictCurveParam(0 | 1) olup, yalnızca platform yöneticisi çağırabilir.
Başlatma yolunda. restrict_curve_param 1 iken, InitializeV2 ve InitializeWithToken2022 kural PDA’sını remaining_accounts içinde gerektirir — var olmadığında bile, bunu atlayamayacak şekilde. Eksik hesap NotEnoughRemainingAccounts olur; hiçbir grubu karşılamayan başlatma CurveParamNotMatchPlatformRule olur. Kontrol GlobalConfig kendi sınırlarından önce çalışır ve yalnızca onları daraltabilir. Model ve oyun kitapları: products/launchlab/curve-rules. Her iki hata da istemci tarafında kaçınılabilir — SDK bu kontrolü saf bir işlev olarak yansıtır, bkz. Göndermeden önce kontrol et.
CollectFee
Yönetici, tek bir başlatmada protokolün birikmiş işlem ücretlerini temizler.
Argümanlar — hiçbiri.
Hesaplar
Etki —
quote_protocol_fee öğesini quote_vault öğesinden recipient_token_account öğesine aktar, sonra sayacı sıfırla. İlk satın almadan sonra herhangi bir zamanda çağrılabilir.
CollectMigrateFee
Yönetici, mezuniyette birikmiş geçiş ücretini temizler. CollectFee ile aynı hesap şekli, imzalayan olarak migrate_fee_owner (protocol_fee_owner yerine) ve drenaj sayacı olarak pool_state.migrate_fee.
ClaimCreatorFee
Yaratıcı başına, yaratıcının sahip olduğu her başlatmada birikmiş yaratıcı ücretlerinin taraması, aynı quote mint’i kullanan. Per-pool olanı değil, per-yaratıcı ücret kasasını drains.
Argümanlar — hiçbiri.
Hesaplar
Etki —
creator_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öner.
ClaimPlatformFee
Platform başına, bir başlatmanın quote kasasını doğrudan drains. Bunu, bir platform toplam platform kasasından geçmeden belirli bir başlatma için dilimini talep etmek istediğinde kullanın.
Argümanlar — hiçbiri.
Hesaplar
Etki —
pool_state.platform_fee öğesini quote_vault öğesinden recipient_token_account öğesine aktar, sayacı sıfırla.
ClaimPlatformFeeFromVault
Platform başına toplam tarama. Platform’un her başlatmadan yönlendirilen ücretleri biriktiren per-quote-mint ücret kasasını drains.
Argümanlar — hiçbiri.
Hesaplar
Etki —
platform_fee_vault öğesinin tam bakiyesini recipient_token_account öğesine aktar. Kasa boşsa geri döner.
Vesting ve platform-config talimatları
Bunlar ayrılmış sayfalarda belgelenmiştir çünkü her birinin kendi durum modeli vardır:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreatePlatformCurveRule,UpdatePlatformCurveRule,RemovePlatformCurveRule,ClosePlatformCurveRuleCreateConfig,UpdateConfig
Durum değişikliği matrisi
Sonraki adım
products/launchlab/code-demos— her talimat için TypeScript örnekleri.products/launchlab/accounts— tam durum şekli.reference/error-codes— LaunchLab hata enum’u.
- Raydium SDK v2
LaunchLabmodülü - Raydium LaunchLab program kaynağı

