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 →
Bu sayfa başlatma başına hesap grafiğini belgeler: PoolState (bir başlatma için kök durum hesabı), iki kasası, yetki PDA’sı ve başlatma kapandığında kazandığı sonrası referansları. Her başlatmayı sınırlayan protokol düzeyindeki yapılandırma için bkz. products/launchlab/global-config. Platform başına ek katman için bkz. products/launchlab/platform-config. Vesting hesapları (PoolState üzerinde VestingSchedule, yararlanıcı başına VestingRecord) için bkz. products/launchlab/vesting.

Hesap envanteri

SDK’nın raydium.launchpad.getLaunchById işlevi PoolState artı başlatmanın kapanıp kapanmadığını gösteren bir bayrak döndürür; kapandıysa, sonrası göç havuzu kimliği dahil edilir.

PoolState

Başlatma başına kök durum. Aşağıdaki alan adları zincir üzerindeki Rust yapısıyla eşleşir (states/pool.rs); bazı değerler okunabilirlik için basitleştirilmiştir — tam bellek düzeni için kaynağa bakın.
PoolStatus değerleri (Anchor IDL’den):
Entegratör tarafından görülen alanlar:
  • status — üç değer, monoton (Funding → Migrate → Migrated). Okumalar her zaman güvenli; yazımlar kapılı.
  • real_base, real_quote — mevcut eğri durumu. virtual_base / virtual_quote ile birlikte kasalara dokunmadan spot fiyatı hesaplamak için yeterlidirler. Bkz. bonding-curve.
  • total_base_sell vs real_base — UI’ler için “kapanışa doğru ilerleme” oranı.
  • migrate_type — yeni başlatma 1 (CPSWAP) gerektirir. Depolanan 0 yalnızca CPMM-only uygulaması öncesinde oluşturulan mevcut bir başlatma için anlamlı kalır.
  • amm_creator_fee_on — sonrası CPMM havuzunda creator_fee_on = OnlyQuoteToken (0) veya BothToken (1) seçer. Göç hedefini seçmez. Bkz. creator-fees.
  • token_program_flag — boole değil, bir bit alanı. Bit0 temel mint, bit1 alıntı mintidir; her biri SPL Token için 0, Token-2022 için 1’dir; bu nedenle bayt dört değer alır: 0 (her ikisi de eski), 1 (Token-2022 tabanı), 2 (Token-2022 alıntısı), 3 (her ikisi de Token-2022). Bir mintiyi (token_program_flag >> bit) & 1 ile okuyun. Tüm baytı 0 ile karşılaştırmak temel mintiyi sınıflandırmak 2’yi yanlış programa çözer. Bit1, Token-2022 alıntı mintleri desteklenene kadar sabit 0 idi.
  • quote_protocol_fee / platform_fee / migrate_fee — üç bağımsız ücret sayacı. Her birinin kendi talep talimatı vardır; bkz. instructions.
  • vesting_schedule — her PoolState üzerinde mevcut ancak total_locked_amount == 0 olduğunda etkin değil. Tam yaşam döngüsü için bkz. vesting.

Yetki PDA’sı

LaunchLab, tüm başlatmalar arasında tek bir yetki PDA’sı kullanır, başlatma başına tohum olmadan türetilir:
Bu tek PDA:
  • Her başlatmanın base_vault ve quote_vault üzerinde yetki.
  • Her başlatmanın base_mint üzerinde mint_authority (kapanış öncesi).
  • CPMM kapanışı CPI’sinde ve mevcut durum için eski AMM v4 kapanışında imzalayan.
  • ClaimVestedToken transferlerinde temel kasadan imzalayan.
  • Token-2022 temel mintinin TransferFeeConfig üzerinde transfer_fee_config_authority, tüm kapanış öncesi aşama için — ve withdraw_withheld_authority da, ancak yalnızca platform PlatformConfig.transfer_fee_extension_auth ayarlamadığında.
mint_authority, MigrateToCpswap veya eski MigrateToAmm çağrısından hemen sonra iptal edilir, bu nedenle arz kalıcı olarak sabitlenir. İki ek PDA ücret kasalarını kapılar:
Bunlar ClaimCreatorFee ve ClaimPlatformFeeFromVault sırasında ilgili ücret kasasından transferi imzalarlar.

Temel mint

Initialize tarafından satır içi oluşturulur:
  • mint_authority = authority (kapanışta iptal edilir).
  • freeze_authority = None.
  • supply = supply, tamamen base_vault içine basılır.
  • decimals yaratıcı tarafından Initialize sırasında seçilir (yaygın olarak 6).
Tam arz önceden basıldığından, base_mint.supply başlatmanın ömrü boyunca sabittir. Eğri alımları tokenları base_vault’tan alıcıya taşır, ancak mint_to çağırmaz. Initialize / InitializeV2 SPL Token temel mintleri oluşturur. Özel InitializeWithToken2022 talimatı temel mintin Token-2022 mintidir (isteğe bağlı TransferFeeConfig ile). Üç başlatma yolu da CPMM kapanışı gerektirir. InitializeWithToken2022 bir TransferFeeConfig eklediğinde, mint transfer_fee_config_authority = authority ve withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth ile oluşturulur, platform bu alanı ayarlamadığında authority’ye geri döner. Her iki yetki de kapanışta platform anahtarına yeniden atanır, geri çekme tarafı yalnızca PDA hala tutuyorsa. Bkz. platform-config. Alıntı mintidir temel mintten bağımsız ve kendisi Token-2022 mintidir — InitializeV2 ve InitializeWithToken2022 alıntı programı yuvasında her iki programı da kabul eder. Kullanımdan kaldırılan Initialize yapmaz: alıntı programı hesabı hala SPL Token’a yazılmıştır, bu nedenle alıntı mintidir Token-2022 olan bir yapılandırma yalnızca diğer ikisi aracılığıyla başlatılabilir. Alıntı mintidir LaunchLab tarafından asla oluşturulmaz; GlobalConfig.quote_mint adlandırdığı şeydir. Bkz. global-config ve reference/token-2022-support.

Kasalar

Hem base_vault hem de quote_vault, LaunchLab authority PDA’sına ait token hesaplarıdır; her biri kendi mintine sahip olan programda oluşturulur — bu nedenle bir başlatma eski bir temel kasaya ve Token-2022 alıntı kasasına sahip olabilir veya başka herhangi bir kombinasyon. token_program_flag hangisinin hangisi olduğunu kaydeder. Adresler PoolState üzerinde depolanır ve ayrıca türetilebilir:
(Üretimde bir türetmeye güvenmeden önce kaynağın Initialize hesapları yapısından tam tohum öneklerini doğrulayın.)

Ücret kasaları

İki PDA başlatmalar arasında ücretleri toplar:
  • Yaratıcı ücret kasası[creator, quote_mint] tohumlarında PDA. Aynı alıntı mintinde aynı yaratıcı ücretlerini kazanan her başlatma aynı kasaya dökülür. Yaratıcı ClaimCreatorFee aracılığıyla temizler.
  • Platform ücret kasası[platform_config, quote_mint] tohumlarında PDA. Aynı platform üzerinden yönlendirilen ve aynı alıntı mintini kullanan her başlatma aynı kasaya dökülür. Platform’un platform_fee_wallet ClaimPlatformFeeFromVault aracılığıyla temizler. Başlatmanın quote_vault’undan doğrudan toplanan ücret kasasından geçmeden çeken başlatma başına bir temizleme varyantı (ClaimPlatformFee) da vardır.
Her ikisi de ücret tahakkuk ettiren ilk swapte, alıntı mintine sahip olan programda tembel olarak oluşturulur. Aynı alıntı mintinde eski ve Token-2022 alıntı mintlerine karşı başlatmalar çalıştıran bir yaratıcı veya platform, zaten iki farklı eski mint için yaptığı gibi mint başına bir kasa ile sonuçlanır. Toplanan kasa deseni, yüksek hacimli bir yaratıcı veya platformun ücret birikiminin kira maliyetini birçok başlatma arasında amortize etmesine izin verir.

Alıntı kasası ↔ real_quote

quote_vault.balance ve PoolState.real_quote senkronize kalmalıdır. Üç bekleyen ücret sayacının toplamı kadar sapabilirler (quote_protocol_fee, platform_fee, migrate_fee), bunlar kasada oturur ancak ücret sayaçlarına ve eğri rezervine değil. Eğri matematiği her zaman real_quote kullanır, asla ham kasa bakiyesini değil. Kapanış öncesi değişmez:

PlatformCurveRule

(PlatformConfig, GlobalConfig) çifti başına bir hesap, o yapılandırmada platformun izin verdiği başlatma şekillerini tutar. PDA tohumları [b"platform_curve_rule", platform_config, global_config]’dir.
Hesap hiçbir grup tutmadan oluşturulur ve her grup değişikliğinde yeniden boyutlandırılır, bu nedenle uzunluğu 150 + Σ(14 + 18 × constraints)’dir ve kod çözücüler sabit bir boyut varsaymamalıdır. Gruplar OR’lanır: bir başlatma, bir grubun kısıtlamalarının tümü tutulur tutulmaz izin verilir. Sıfır grup kısıtlama yok anlamına gelir. Sahibi PlatformConfig.restrict_curve_param 1 olduğunda okuyun — 0’da program hesabı yok sayar ve eski bir kural orada oturabilir. Alan kimlikleri, operatörler ve oyun kitapları products/launchlab/curve-rules’da.

Yaşam döngüsü hesap geçişleri

Sonraki adım

Kaynaklar:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — PDA tohum sabitleri (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Raydium SDK v2 launchpad modülü.