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 →
GlobalConfig, protokol düzeyinde yapılandırma hesabıdır. Çok sayıda olabilir — (curve_type, index) anahtarına göre dizinlenmiş — ve her lansmanı Initialize sırasında tam olarak bir tane seçer. Seçilen GlobalConfig üzerindeki değerler, o lansmanın parametreleri için sabit sınırlar haline gelir. Platform düzeyinde özelleştirme için (platform başına işlem ücreti, izin verilen eğri şekilleri, mezuniyet sırasında NFT bölünmesi), bkz. products/launchlab/platform-config.

Nedir?

GlobalConfig, (curve_type, index) başına singleton olan bir PDA’dır ve her lansmanın uyması gereken protokol tarafı kurallarını düzenler:
  • İzin verilen bağlama eğrisinin türü (curve_type).
  • Eğri tarafından her alım ve satışta alınan ticari işlem ücreti oranı.
  • Mezuniyet sırasında alınan geçiş ücreti.
  • Tedarik, kilitleme oranı, satış oranı ve geçiş oranı tabanları.
  • Teklif mint’i (tipik olarak wrapped SOL veya USDC) — kullanıcıların satın aldığı varlık.
  • Üç protokol tarafı cüzdanı: protokol ücreti sahibi, geçiş ücreti sahibi ve AMM v4 / CPMM’ye mezuniyet onayını veren iki geçiş kontrol cüzdanı.
  • İsteğe bağlı bir bayrak (requires_platform_auth) bu yapılandırmanın hangi platformlar tarafından kullanılabileceğini kontrol eder.
GlobalConfig hesapları, LaunchLab program yöneticisi tarafından oluşturulur ve güncellenir (Anchor tabanlı Raydium programları arasında paylaşılan sabit kodlanmış yönetici pubkey’i — bkz. reference/program-addresses).

Layout

PDA türetimi:
(İmza atılmadan önce, tam seed sırasını zincir üstü hesaptan doğrulayın — program’ın create_config komutu kaynak kaynağıdır.)

Alan semantiği

curve_type ve index

Bunlar birlikte bir GlobalConfig’i benzersiz şekilde belirler. Her (curve_type, index) çifti için bir GlobalConfig vardır:
  • curve_type = 0 — Sabit ürün sanal yedek eğrisi. Varsayılan ve en çok kullanılan.
  • curve_type = 1 — Sabit fiyat eğrisi.
  • curve_type = 2 — Doğrusal fiyat eğrisi.
index, eğri türü başına birden fazla yapılandırma yayınlamak için yöneticiye izin veren bir u16’dır (örneğin, daha sıkı bir ücret oranı ile bir tane, daha yüksek minimum teklif yükseltme ile bir tane). Initialize sırasında lansmanı bir (curve_type, index) çifti sağlayın ve program eşleşen GlobalConfig’i yükleyecektir.

Ücretler

  • trade_fee_rate — ticari işlem hacminin 1/1_000_000’de ifade edilir. Eğri üzerinde her alım ve satışa uygulanır. protocol_fee_owner, CollectFee aracılığıyla payını talep eder.
  • migrate_fee — mezuniyet sırasında bir kere alınan lamport’ta sabit bir ücret (veya yapılandırmaya bağlı olarak teklif birlikleri). migrate_fee_owner tarafından CollectMigrateFee aracılığıyla talep edilir.
  • max_share_fee_rate10_000 (100 bps) olarak başlatılır. Platform’ın bağlayıcı PlatformConfig öğesinden hisse ücreti oranını sınırlandırır (bkz. platform-config). Program trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE olmasını zorunlu kılar.

Tedarik ve oran tabanları

Bu tabanlar, lansmanın Initialize’da seçebileceği eğri şekil parametrelerini sınırlandırır. Yaratıcının CurveParams bunlardan herhangi birini ihlal ederse, Initialize InvalidInput ile başarısız olur.
  • min_base_supply — eğri tarafından beyan edilebilecek minimum supply (ondalık yok). Varsayılan 10_000_000.
  • max_lock_rate1/1_000_000 cinsinden ifade edilir; varsayılan 300_000 (% 30). Vesting’i total_locked_amount <= supply * max_lock_rate / 1_000_000 aracılığıyla sınırlandırır.
  • min_base_sell_rate1/1_000_000 cinsinden ifade edilir; varsayılan 200_000 (% 20). base_supply_graduation / supply öğesini aşağıdan sınırlandırır.
  • min_base_migrate_rate1/1_000_000 cinsinden ifade edilir; varsayılan 200_000 (% 20). Mezuniyet sonrası havuzu tohum olarak bırakan token sayısını sınırlandırır.
  • min_quote_fund_raising — lansmanın beyan edebileceği minimum quote_reserve_target (ondalık ile). Varsayılan, teklif mint’inin 30_000_000_000 birimidir.

Teklif mint’i ve protokol cüzdanları

  • quote_mint — kullanıcıların satın aldığı varlık. Çoğu lansmanı wrapped SOL (So111…112) veya USDC (EPjF…Dt1v) kullanır. Bir GlobalConfig bir teklif mint’ine bağlıdır; farklı bir teklif hedefi gereken lansmanlar farklı bir (curve_type, index) hedefi alır.
  • protocol_fee_ownerCollectFee imzalayan ve bu yapılandırmaya bağlı her lansmanın birikmiş protokol ücretlerini talep eden pubkey. Zincir üzerinde depolanır; yönetici UpdateConfig aracılığıyla döndürebilir.
  • migrate_fee_ownerCollectMigrateFee imzalayan pubkey.

Geçiş cüzdanları

İki mezuniyet yolu farklı imzacılar gerektirir:
  • migrate_to_amm_walletMigrateToAmm imzalamalıdır. migrate_type = 0 olan lansmanlar için kullanılır (AMM v4 + OpenBook’a mezuniyet).
  • migrate_to_cpswap_walletMigrateToCpswap imzalamalıdır. migrate_type = 1 (CPMM’ye mezuniyet) için kullanılır. Token-2022 lansmanları her zaman bu yolu alır.
Bunlar tipik olarak Raydium tarafından işletilen mezuniyet crank tarafından tutulur, böylece eğri eşiğe ulaştıktan kısa süre sonra mezuniyet gerçekleşir ve yaratıcının bunu çağırmasını beklemez.

requires_platform_auth

Bir u8 bayrak (0 = herkes bu yapılandırmayı kullanabilir; sıfır olmayan = yalnızca geçerli PlatformGlobalAccess PDA’sı olan platformlar buna karşı lansmanı başlatabilir). Ayarlandığında, bu GlobalConfig karşısında her Initialize, platformun CreatePlatformGlobalAccess (yalnızca yönetici komutu) aracılığıyla önceden yetkilendirilmiş olduğunu kanıtlayan eşleşen bir PlatformGlobalAccess hesabı içermelidir. Platform tarafı mekanikler için bkz. platform-config.

Başlatmada varsayılanlar

CreateConfig çağrıldığında, program birçok alanı sabit kodlanmış varsayılanlarla hazırlar:
Yönetici, oluşturma sırasında curve_type, index, migrate_fee, trade_fee_rate, quote_mint ve dört cüzdan pubkey’ini açıkça ayarlar; sonraki değerler UpdateConfig aracılığıyla ayarlanabilir.

Lansmanın GlobalConfig’i nasıl seçtiği

Initialize’da, yaratıcı şunları geçer:
  • Hangi GlobalConfig PDA’sını yükleyeceğini seçmek için (curve_type, index).
  • Eğri şeklini açıklayan CurveParams (supply, total_base_sell, total_quote_fund_raising, migrate_type).
  • Kilitli tedariki açıklayan VestingParams.
  • Taban mint için MintParams.
Program aşağıdakileri zorunlu kılar:
  • curve_type global_config.curve_type ile eşleşir.
  • supply >= global_config.min_base_supply.
  • total_locked_amount <= supply * max_lock_rate / 1_000_000.
  • total_base_sell >= supply * min_base_sell_rate / 1_000_000.
  • (supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000 — yani, mezuniyet sonrası havuzu tohum olarak bırakacak kadar token.
  • total_quote_fund_raising >= min_quote_fund_raising.
  • requires_platform_auth != 0 ise, geçerli bir PlatformGlobalAccess PDA’sı dahil edilir.
Initialize sonrasında, lansmanın PoolState doğrudan global_config pubkey’ini depolayarak bağlanma kalıcı hale gelir.

Güncelleme yolu

UpdateConfig yalnızca yöneticiye özeldir ve bir (param: u8, value: u64) çiftini alır. Her param değeri, hangi alanın mutasyona uğrayacağını seçer: Cüzdan döndürmeleri (protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) ayrı bir Pubkey argümanı şekli alır; yönetici işlemi oluşturmadan önce tam işlem tablosu için update_config kaynağını kontrol edin. requires_platform_auth, set_requires_platform_auth(bool) aracılığıyla açılıp kapatılır.

İstemciden GlobalConfig okuma

Mevcut tüm yapılandırmaları listeleyen bir kullanıcı arayüzü için SDK’nın getAllGlobalConfigs yardımcısında yürüyün veya bunları aynı şekilde yansıtan LaunchLab API uç noktasını sorgulayın; zincir üstü hesap sayısı azdır (pratikte tek rakamlar).

İşaretçiler

Kaynaklar:
  • raydium-launch/programs/launchpad/src/states/config.rsGlobalConfig yapısı ve initialize.
  • raydium-launch/programs/launchpad/src/lib.rscreate_config, update_config.