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 →
GlobalConfig, protokol seviyesi yapılandırma hesabıdır. Birçok olabilir — (curve_type, index) ile anahtarlanmış — ve her başlatma Initialize sırasında tam olarak birini seçer. Seçilen GlobalConfig üzerindeki değerler, o başlatmanın parametreleri için sabit sınırlar haline gelir. Platform seviyesi özelleştirme için (platform başına işlem ücreti oranı, 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 tekil bir PDA olup her başlatmanın uyması gereken protokol tarafı kurallarını belirler:
  • İzin verilen bağlama eğrisinin türü (curve_type).
  • Eğrinin her alım ve satışta uyguladığı işlem ücreti oranı.
  • Mezuniyet sırasında alınan göç ücreti.
  • Arz, kilitlenme oranı, satış oranı ve göç oranı tabanları.
  • Alıntı mint’i (genellikle sarılı SOL veya USDC) — kullanıcıların satın aldığı varlık.
  • Dört protokol tarafı cüzdan: protokol ücreti sahibi, göç ücreti sahibi ve CPMM ile eski AMM v4 mezuniyeti için tutulan iki göç kontrol cüzdanı.
GlobalConfig hesapları LaunchLab program yöneticisi veya devredilen yapılandırma oluşturma yetkisi tarafından oluşturulabilir. Yalnızca yönetici mevcut yapılandırmaları günceller. Kanonik yetkililer için reference/program-addresses bölümüne bakın.

Düzen

PDA türetme:
(İmzalamadan önce zincir üstü hesabın tam seed sırasını doğrulayın — programın create_config talimatı gerçeğin kaynağıdır.)

Alan semantiği

curve_type ve index

Birlikte bir GlobalConfig’i benzersiz şekilde anahtarlarlar. Her (curve_type, index) çifti için bir GlobalConfig vardır:
  • curve_type = 0 — Sabit ürün sanal rezerv 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, yöneticinin eğri türü başına birden fazla yapılandırma yayınlamasına izin veren bir u16’dır (örn. daha sıkı bir ücret oranı olan bir tane, daha yüksek minimum alıntı artışı olan bir tane). Initialize sırasında başlatma bir (curve_type, index) çifti sağlar ve program eşleşen GlobalConfig’i yükler.

Ücretler

  • trade_fee_rate — işlem hacminin 1/1_000_000 cinsinden ifade edilir. Eğri üzerindeki 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 kez alınan lamport cinsinden sabit ücret (veya yapılandırmaya bağlı olarak alıntı birimleri). migrate_fee_owner tarafından CollectMigrateFee aracılığıyla talep edilir.
  • max_share_fee_rate10_000 (100 bps) olarak başlatılır. Bağlayıcı PlatformConfig’den platform’un paylaşım ü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.

Arz ve oran tabanları

Bu tabanlar, bir başlatmanın Initialize sırasında seçebileceği eğri şekli parametrelerini sınırlandırır. Yaratıcının CurveParams’ı bunlardan herhangi birini ihlal ederse, Initialize InvalidInput ile geri döner.
  • min_base_supply — eğrinin bildirebileceği minimum supply (ondalık yok). Varsayılan 10_000_000.
  • max_lock_rate1/1_000_000 cinsinden ifade edilir; varsayılan 300_000 (%30). total_locked_amount <= supply * max_lock_rate / 1_000_000 aracılığıyla vesting’i 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 tohumlamak için kalan token sayısını sınırlandırır.
  • min_quote_fund_raising — bir başlatmanın bildirebileceği minimum quote_reserve_target (ondalık ile). Varsayılan alıntı mint’inin 30_000_000_000 birimi.

Alıntı mint’i ve protokol cüzdanları

  • quote_mint — kullanıcıların satın aldığı varlık. Çoğu başlatma sarılı SOL (So111…112) veya USDC (EPjF…Dt1v) kullanır. Bir GlobalConfig bir alıntı mint’ine bağlıdır; farklı bir alıntı hedefine ihtiyaç duyan başlatmalar farklı bir (curve_type, index) hedefini alır.
  • protocol_fee_ownerCollectFee’yi imzalayan ve bu yapılandırmaya bağlı her başlatmada tahakkuk eden protokol ücretlerini talep eden pubkey. Zincir üstünde depolanır; yönetici UpdateConfig aracılığıyla döndürebilir.
  • migrate_fee_ownerCollectMigrateFee’yi imzalayan pubkey.

Göç cüzdanları

Depolanan iki mezuniyet cüzdanı farklı imzacılar gerektirir:
  • migrate_to_amm_wallet — depolanan migrate_type = 0 olan mevcut eski bir başlatma için MigrateToAmm’yi imzalar.
  • migrate_to_cpswap_walletMigrateToCpswap’ı imzalar. Yeni başlatılan her başlatma bu yolu kullanır.
Bunlar genellikle Raydium tarafından işletilen mezuniyet crank tarafından tutulur, böylece mezuniyet eğri eşiğe ulaştıktan kısa süre sonra gerçekleşir ve yaratıcının bunu çağrmasını beklemez.

Platform tarafı izin listeleri

GlobalConfig artık requires_platform_auth’a sahip değildir. Eski baytı padding’dir, bu nedenle hesap boyutu değişmez. Erişim artık PlatformConfig.restrict_global_config ve o platform’un yöneticisi tarafından oluşturulan PlatformAllowConfig hesapları tarafından kontrol edilir. Bkz. platform-config.

Başlatma sırasında varsayılanlar

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

Bir başlatma GlobalConfig’i nasıl seçer

Initialize sırasında yaratıcı şunları geçer:
  • (curve_type, index) — hangi GlobalConfig PDA’nın yükleneceğini seçmek için.
  • CurveParams — eğri şeklini tanımlayan (supply, total_base_sell, total_quote_fund_raising, migrate_type).
  • VestingParams — kilitli arzı tanımlayan.
  • MintParams — temel mint için.
Program şunları 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 tohumlamak için yeterli token.
  • total_quote_fund_raising >= min_quote_fund_raising.
  • migrate_type == 1 (CPSWAP).
  • Seçilen platform restrict_global_config == 1 varsa, eşleşen PlatformAllowConfig dahil edilir.
Initialize sonrasında, başlatmanın PoolState’i global_config pubkey’ini doğrudan depolar, bu nedenle bağlama kalıcıdır.

Güncelleme yolu

UpdateConfig yalnızca yönetici tarafından kullanılabilir ve bir (param: u8, value: u64) çifti 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 update_config kaynağındaki tam gönderme tablosunu kontrol edin. Platform yetkilendirmesi için eski UpdateConfig seçicisi 12 kaldırılmıştır. Platform yöneticileri artık kendi izin listelerini yönetir.

İstemciden GlobalConfig okuma

Mevcut tüm yapılandırmaları listeleyen bir UI için SDK’nın getAllGlobalConfigs yardımcısını yürütün veya bunları yansıtan LaunchLab API uç noktasını sorgulayın; zincir üstü hesap sayısı küçüktür (pratikte tek haneli).

İşaretçiler

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