Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
GlobalConfig ist das Protokoll-Ebenen-Konfigurationskonto. Es kann viele davon geben — indiziert nach (curve_type, index) — und jeder Start wählt genau einen zum Zeitpunkt von Initialize aus. Die Werte auf dem gewählten GlobalConfig werden dann zu harten Grenzen für die Parameter dieses Starts. Für Plattform-Ebenen-Anpassungen (Pro-Plattform-Gebührensatz, zulässige Kurvenfunktionen, NFT-Aufteilungen beim Abschluss) siehe products/launchlab/platform-config.Was es ist
EinGlobalConfig ist eine Singleton-pro-(curve_type, index) PDA, die die Protokoll-seitigen Regeln festlegt, die jeder Start befolgen muss:
- Die Art der zulässigen Bindungskurve (
curve_type). - Der Handelgebührensatz, den die Kurve bei jedem Kauf und Verkauf erhebt.
- Die beim Abschluss erhobene Migrationsgebühr.
- Untergrenzen für Angebot, Sperrquote, Verkaufsquote und Migrationsquote.
- Der Quote-Mint (typischerweise Wrapped SOL oder USDC) — das Asset, mit dem Benutzer kaufen.
- Vier Protokoll-seitige Wallets: der Protokollgebühren-Eigentümer, der Migrationsgebühren-Eigentümer und die beiden Migrations-Kontroll-Wallets, die für CPMM und Legacy-AMM-v4-Abschluss beibehalten werden.
GlobalConfig-Konten können vom LaunchLab-Programm-Admin oder der delegierten Create-Config-Autorität erstellt werden. Nur der Admin aktualisiert bestehende Konfigurationen. Siehe reference/program-addresses für die kanonischen Autoritäten.
Layout
create_config-Anweisung des Programms ist die Quelle der Wahrheit.)
Feldsemanantik
curve_type und index
Zusammen identifizieren diese einen GlobalConfig eindeutig. Es gibt einen GlobalConfig pro (curve_type, index)-Paar:
curve_type = 0— Konstant-Produkt-Virtual-Reserve-Kurve. Standard und am häufigsten verwendet.curve_type = 1— Festpreis-Kurve.curve_type = 2— Linear-Preis-Kurve.
index ist ein u16, das dem Admin ermöglicht, mehrere Konfigurationen pro Kurventyp zu veröffentlichen (z. B. eine mit einer strengeren Gebühr, eine mit einer höheren Mindestquote-Erhöhung). Bei Initialize liefert der Start ein (curve_type, index)-Paar und das Programm lädt die entsprechende GlobalConfig.
Gebühren
trade_fee_rate— denominiert in1/1_000_000des Handelsvolumens. Angewendet auf jeden Kauf und Verkauf auf der Kurve. Derprotocol_fee_ownerbeansprucht seinen Anteil überCollectFee.migrate_fee— eine Pauschalgebühr in Lamports (oder Quote-Einheiten, je nach Konfiguration), die einmalig beim Abschluss erhoben wird. Beansprucht vonmigrate_fee_ownerüberCollectMigrateFee.max_share_fee_rate— initialisiert auf10_000(100 bps). Begrenzt die Plattform-Anteil-Gebührenrate aus der bindendenPlatformConfig(sieheplatform-config). Das Programm erzwingttrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Angebots- und Quoten-Untergrenzen
Diese Untergrenzen beschränken, welche Kurvenfunktions-Parameter ein Start beiInitialize wählen kann. Wenn die CurveParams des Erstellers eine davon verletzen, wird Initialize mit InvalidInput rückgängig gemacht.
min_base_supply— das Minimumsupply(ohne Dezimalstellen), das die Kurve deklarieren kann. Standard ist10_000_000.max_lock_rate— denominiert in1/1_000_000; Standard300_000(30%). Begrenzt Vesting übertotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— denominiert in1/1_000_000; Standard200_000(20%). Begrenztbase_supply_graduation / supplyvon unten.min_base_migrate_rate— denominiert in1/1_000_000; Standard200_000(20%). Begrenzt die Anzahl der Tokens, die übrig bleiben, um den Post-Abschluss-Pool zu seeden.min_quote_fund_raising— Minimumquote_reserve_target, das ein Start deklarieren darf (mit Dezimalstellen). Standard ist30_000_000_000Einheiten des Quote-Mints.
Quote-Mint und Protokoll-Wallets
quote_mint— das Asset, mit dem Benutzer kaufen. Die meisten Starts verwenden Wrapped SOL (So111…112) oder USDC (EPjF…Dt1v). EinGlobalConfigist an einen Quote-Mint gebunden; Starts, die ein anderes Quote-Ziel benötigen, zielen auf ein anderes(curve_type, index)ab.protocol_fee_owner— Pubkey, derCollectFeesigniert und die aufgelaufenen Protokollgebühren bei jedem Start, der an diese Konfiguration gebunden ist, beansprucht. On-Chain gespeichert; Admin kann es überUpdateConfigrotieren.migrate_fee_owner— Pubkey, derCollectMigrateFeesigniert.
Migrations-Wallets
Die zwei gespeicherten Abschluss-Wallets erfordern unterschiedliche Unterzeichner:migrate_to_amm_wallet— signiertMigrateToAmmfür einen bestehenden Legacy-Start, dessen gespeichertermigrate_type = 0.migrate_to_cpswap_wallet— signiertMigrateToCpswap. Jeder neu initialisierte Start verwendet diesen Pfad.
Plattform-seitige Allowlists
GlobalConfig hat nicht mehr requires_platform_auth. Sein ehemaliges Byte ist Padding, daher ändert sich die Kontogröße nicht. Der Zugriff wird jetzt durch PlatformConfig.restrict_global_config und PlatformAllowConfig-Konten kontrolliert, die vom Admin dieser Plattform erstellt werden. Siehe platform-config.
Standardwerte bei der Initialisierung
WennCreateConfig aufgerufen wird, seeded das Programm viele Felder mit hartcodierten Standardwerten:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint und die vier Wallet-Pubkeys explizit zum Erstellungszeitpunkt; nachfolgende Werte können über UpdateConfig angepasst werden.
Wie ein Start einen GlobalConfig wählt
Bei Initialize übergibt der Ersteller:
(curve_type, index), um zu wählen, welcheGlobalConfigPDA geladen werden soll.CurveParams, die die Kurvenfunktion beschreiben (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParams, die das gesperrte Angebot beschreiben.MintParamsfür den Base-Mint.
curve_typestimmt mitglobal_config.curve_typeüberein.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— d. h. genug Tokens übrig, um den Post-Abschluss-Pool zu seeden.total_quote_fund_raising >= min_quote_fund_raising.migrate_type == 1(CPSWAP).- Wenn die ausgewählte Plattform
restrict_global_config == 1hat, ist das entsprechendePlatformAllowConfigenthalten.
Initialize speichert der PoolState des Starts die global_config Pubkey direkt, sodass die Bindung permanent ist.
Update-Pfad
UpdateConfig ist nur für Admins und nimmt ein (param: u8, value: u64)-Paar. Jeder param-Wert wählt, welches Feld mutiert werden soll:
Wallet-Rotationen (
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) nehmen eine separate Pubkey-Argument-Form; überprüfen Sie die update_config-Quelle auf die genaue Dispatch-Tabelle, bevor Sie eine Admin-Transaktion zusammenstellen.
Der ehemalige UpdateConfig-Selektor 12 für Plattform-Autorisierung ist entfernt. Plattform-Admins verwalten jetzt ihre eigenen Allowlists.
Lesen eines GlobalConfig von einem Client
getAllGlobalConfigs-Helper des SDK oder fragen Sie den LaunchLab-API-Endpunkt ab, der sie spiegelt; die On-Chain-Kontoanzahl ist klein (in der Praxis einstellig).
Verweise
products/launchlab/platform-config— Pro-Plattform-Overlay, das die Kurvenfunktion weiter einschränkt.products/launchlab/accounts— vollständiger Kontograph für einen Start.products/launchlab/instructions—Initializeund Update-Anweisungen.reference/program-addresses— Admin-Pubkey, Programm-ID, gemeinsame Autoritäten.
raydium-launch/programs/launchpad/src/states/config.rs—GlobalConfig-Struktur undinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.

