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 →
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):
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_quoteile birlikte kasalara dokunmadan spot fiyatı hesaplamak için yeterlidirler. Bkz.bonding-curve.total_base_sellvsreal_base— UI’ler için “kapanışa doğru ilerleme” oranı.migrate_type— yeni başlatma1(CPSWAP) gerektirir. Depolanan0yalnızca CPMM-only uygulaması öncesinde oluşturulan mevcut bir başlatma için anlamlı kalır.amm_creator_fee_on— sonrası CPMM havuzundacreator_fee_on = OnlyQuoteToken(0) veyaBothToken(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çin0, Token-2022 için1’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) & 1ile okuyun. Tüm baytı0ile karşılaştırmak temel mintiyi sınıflandırmak2’yi yanlış programa çözer. Bit1, Token-2022 alıntı mintleri desteklenene kadar sabit0idi.quote_protocol_fee/platform_fee/migrate_fee— üç bağımsız ücret sayacı. Her birinin kendi talep talimatı vardır; bkz.instructions.vesting_schedule— herPoolStateüzerinde mevcut ancaktotal_locked_amount == 0olduğ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:- Her başlatmanın
base_vaultvequote_vaultüzerinde yetki. - Her başlatmanın
base_mintüzerindemint_authority(kapanış öncesi). - CPMM kapanışı CPI’sinde ve mevcut durum için eski AMM v4 kapanışında imzalayan.
ClaimVestedTokentransferlerinde temel kasadan imzalayan.- Token-2022 temel mintinin
TransferFeeConfigüzerindetransfer_fee_config_authority, tüm kapanış öncesi aşama için — vewithdraw_withheld_authorityda, ancak yalnızca platformPlatformConfig.transfer_fee_extension_authayarlamadığı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:
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, tamamenbase_vaultiçine basılır.decimalsyaratıcı tarafındanInitializesırasında seçilir (yaygın olarak 6).
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
Hembase_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:
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ıClaimCreatorFeearacı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’unplatform_fee_walletClaimPlatformFeeFromVaultaracılığıyla temizler. Başlatmanınquote_vault’undan doğrudan toplanan ücret kasasından geçmeden çeken başlatma başına bir temizleme varyantı (ClaimPlatformFee) da vardır.
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.
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
products/launchlab/bonding-curve—real_base↔real_quotearkasındaki matematik.products/launchlab/instructions— talimat başına hesap listeleri.products/launchlab/global-config— protokol düzeyindeki bağlama.products/launchlab/platform-config— platform ek katmanı.products/launchlab/vesting— kilitli arz mekaniği.products/cpmm/accounts— kapanış sonrasıcpmm_pool_stateneye benziyor.
raydium-launch/programs/launchpad/src/states/pool.rs—PoolState,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
launchpadmodülü.

