Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
GlobalConfig ist das Konfigurationskonto auf Protokollebene. Es kann viele davon geben — indiziert nach (curve_type, index) — und jeder Start wählt genau eines zum Zeitpunkt von Initialize aus. Die Werte auf der gewählten GlobalConfig werden dann zu harten Grenzen für die Parameter dieses Starts. Für plattformspezifische Anpassungen (Pro-Plattform-Gebührensatz, zulässige Kurvenfunktionen, NFT-Aufteilungen beim Abschluss) siehe products/launchlab/platform-config.Was es ist
EineGlobalConfig ist eine Singleton-pro-(curve_type, index) PDA, die die Protokoll-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.
- Die Quote-Mint (typischerweise Wrapped SOL oder USDC) — das Asset, mit dem Benutzer kaufen.
- Vier Protokoll-Wallets: der Protokollgebühren-Eigentümer, der Migrationsgebühren-Eigentümer und die zwei 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 eine GlobalConfig eindeutig. Es gibt eine 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— ausgedrückt in1/1_000_000des Handelsvolumens. Wird auf jeden Kauf und Verkauf auf der Kurve angewendet. Derprotocol_fee_ownerfordert seinen Anteil überCollectFeean.migrate_fee— eine Pauschalgebühr in Lamports (oder Quote-Einheiten, je nach Konfiguration), die einmalig beim Abschluss erhoben wird. Wird vonmigrate_fee_ownerüberCollectMigrateFeebeansprucht.max_share_fee_rate— initialisiert auf10_000(100 bps). Begrenzt dasshare_fee_rate-Argument, dasBuyExactIn,BuyExactOut,SellExactInundSellExactOutakzeptieren — die Referral-Gebühr, die direkt an den Share-Empfänger während des Handels gezahlt wird. Es begrenzt nichtPlatformConfig.fee_rate; dieser Satz hat seine eigenen Obergrenzen, beschrieben inplatform-config. SowohlCreateConfigals auchUpdateConfigerzwingentrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Angebots- und Quoten-Untergrenzen
Diese Untergrenzen begrenzen, welche Kurvenform-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— ausgedrückt in1/1_000_000; Standard300_000(30%). Begrenzt Vesting übertotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— ausgedrückt in1/1_000_000; Standard200_000(20%). Begrenztbase_supply_graduation / supplyvon unten.min_base_migrate_rate— ausgedrückt in1/1_000_000; Standard200_000(20%). Begrenzt die Anzahl der Token, 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 der Quote-Mint.
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). EineGlobalConfigist an eine Quote-Mint gebunden; Starts, die eine andere Quote benötigen, zielen auf ein anderes(curve_type, index)ab. Die Mint kann entweder vom SPL-Token-Programm oder Token-2022 gehört werden — siehe unten.protocol_fee_owner— Pubkey, dieCollectFeesigniert und die aufgelaufenen Protokollgebühren bei jedem Start, der an diese Konfiguration gebunden ist, beansprucht. Auf der Kette gespeichert; der Admin kann es überUpdateConfigrotieren.migrate_fee_owner— Pubkey, dieCollectMigrateFeesigniert.
Token-2022-Quote-Mints
CreateConfig akzeptiert eine Token-2022-quote_mint, und Pools, die an eine solche Konfiguration gebunden sind, tragen sie von Anfang bis Ende: der Quote-Vault, beide Fee-Vaults und das Token-Konto des Share-Fee-Empfängers werden alle auf Token-2022 erstellt, und die Swap-Anweisungen berücksichtigen eine TransferFeeConfig auf der Quote-Seite. PoolState.token_program_flag Bit1 zeichnet die Wahl pro Start auf.
Zwei Einschränkungen sind erwähnenswert, bevor Sie sich auf eine verlassen:
- Das veraltete
Initializekann nicht dagegen starten. NurInitializeV2undInitializeWithToken2022akzeptieren ein Token-2022-Quote-Programm. Sieheinstructions. - Es wird keine Erweiterungs-Allowlist angewendet. Im Gegensatz zu CPMM und CLMM prüft LaunchLab die Erweiterungen einer Quote-Mint nicht —
CreateConfignimmt die Mint wie gegeben, daher ist das einzige Gate die Admin-Diskretion darüber, welche Mints an eine Konfiguration gebunden werden. DieNoSupportExtension-Prüfung des Programms deckt nur Token-2022-Base-Mints ab, die LaunchLab selbst erstellt. Behandeln Sie das Binden einer als hochvertrauenswürdige Aktion; siehereference/token-2022-support.
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.
Plattformseitige 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, initialisiert 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 eine GlobalConfig wählt
Bei Initialize übergibt der Ersteller:
(curve_type, index), um zu wählen, welcheGlobalConfigPDA geladen werden soll.CurveParams, die die Kurvenform beschreiben (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParams, die das gesperrte Angebot beschreiben.MintParamsfür die 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 Token ü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 die entsprechendePlatformAllowConfigenthalten.
Initialize speichert die PoolState des Starts die global_config-Pubkey direkt, daher ist die Bindung dauerhaft.
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 Plattformautorisierung ist entfernt. Plattform-Admins verwalten jetzt ihre eigenen Allowlists.
Lesen einer 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 Kurvenform weiter einschränkt.products/launchlab/accounts— vollständiger Kontograph für einen Start.products/launchlab/instructions—Initialize- und 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.

