Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
GlobalConfig est le compte de configuration au niveau du protocole. Il peut y en avoir plusieurs — indexés par (curve_type, index) — et chaque lancement en choisit exactement un au moment de l’Initialize. Les valeurs du GlobalConfig choisi deviennent alors des limites strictes pour les paramètres de ce lancement. Pour la personnalisation au niveau de la plateforme (taux de frais par plateforme, formes de courbes autorisées, répartition NFT à la graduation), consultez products/launchlab/platform-config.Qu’est-ce que c’est
UnGlobalConfig est une PDA singleton par (curve_type, index) qui fixe les règles au niveau du protocole que chaque lancement doit respecter :
- Le type de courbe de liaison autorisé (
curve_type). - Le taux de frais commerciaux que la courbe applique à chaque achat et vente.
- Les frais de migration facturés à la graduation.
- Les planchers sur l’approvisionnement, le taux de verrouillage, le taux de vente et le taux de migration.
- Le mint de cotation (généralement SOL enrobé ou USDC) — l’actif avec lequel les utilisateurs achètent.
- Quatre portefeuilles au niveau du protocole : le propriétaire des frais de protocole, le propriétaire des frais de migration, et les deux portefeuilles de contrôle de migration conservés pour la graduation CPMM et AMM v4 hérité.
GlobalConfig peuvent être créés par l’administrateur du programme LaunchLab ou par l’autorité déléguée de création de configuration. Seul l’administrateur met à jour les configurations existantes. Consultez reference/program-addresses pour les autorités canoniques.
Disposition
create_config du programme est la source de vérité.)
Sémantique des champs
curve_type et index
Ensemble, ils identifient de manière unique un GlobalConfig. Il y a un GlobalConfig par paire (curve_type, index) :
curve_type = 0— Courbe de réserve virtuelle à produit constant. Par défaut et la plus utilisée.curve_type = 1— Courbe à prix fixe.curve_type = 2— Courbe à prix linéaire.
index est un u16 qui permet à l’administrateur de publier plusieurs configurations par type de courbe (par exemple, une avec des frais plus serrés, une avec un minimum de levée de fonds en cotation plus élevé). À l’Initialize, le lancement fournit une paire (curve_type, index) et le programme charge le GlobalConfig correspondant.
Frais
trade_fee_rate— exprimé en1/1_000_000du volume commercial. Appliqué à chaque achat et vente sur la courbe. Leprotocol_fee_ownerréclame sa part viaCollectFee.migrate_fee— un frais forfaitaire en lamports (ou unités de cotation, selon la configuration) facturé une fois à la graduation. Réclamé parmigrate_fee_ownerviaCollectMigrateFee.max_share_fee_rate— initialisé à10_000(100 bps). Plafonne le taux de frais de partage de la plateforme à partir duPlatformConfigcontraignant (voirplatform-config). Le programme appliquetrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Planchers d’approvisionnement et de taux
Ces planchers limitent les paramètres de forme de courbe qu’un lancement peut choisir à l’Initialize. Si les CurveParams du créateur violent l’un d’eux, Initialize revient avec InvalidInput.
min_base_supply— l’supplyminimale (sans décimales) que la courbe peut déclarer. Par défaut10_000_000.max_lock_rate— exprimé en1/1_000_000; par défaut300_000(30%). Limite le verrouillage viatotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— exprimé en1/1_000_000; par défaut200_000(20%). Limitebase_supply_graduation / supplypar le bas.min_base_migrate_rate— exprimé en1/1_000_000; par défaut200_000(20%). Limite le nombre de jetons restants pour amorcer le pool post-graduation.min_quote_fund_raising— minimumquote_reserve_targetqu’un lancement peut déclarer (avec décimales). Par défaut30_000_000_000unités du mint de cotation.
Mint de cotation et portefeuilles de protocole
quote_mint— l’actif avec lequel les utilisateurs achètent. La plupart des lancements utilisent SOL enrobé (So111…112) ou USDC (EPjF…Dt1v). UnGlobalConfigest lié à un mint de cotation ; les lancements qui ont besoin d’une cible de cotation différente ciblent un(curve_type, index)différent.protocol_fee_owner— clé publique qui signeCollectFeeet réclame les frais de protocole accumulés sur chaque lancement lié à cette configuration. Stocké on-chain ; l’administrateur peut le faire tourner viaUpdateConfig.migrate_fee_owner— clé publique qui signeCollectMigrateFee.
Portefeuilles de migration
Les deux portefeuilles de graduation stockés nécessitent des signataires différents :migrate_to_amm_wallet— signeMigrateToAmmpour un lancement hérité existant dont lemigrate_type = 0stocké.migrate_to_cpswap_wallet— signeMigrateToCpswap. Chaque lancement nouvellement initialisé utilise ce chemin.
Listes blanches au niveau de la plateforme
GlobalConfig n’a plus requires_platform_auth. Son ancien octet est du remplissage, donc la taille du compte ne change pas. L’accès est maintenant contrôlé par PlatformConfig.restrict_global_config et les comptes PlatformAllowConfig créés par l’administrateur de cette plateforme. Consultez platform-config.
Valeurs par défaut à l’initialisation
LorsqueCreateConfig est appelé, le programme amorce de nombreux champs avec des valeurs par défaut codées en dur :
curve_type, index, migrate_fee, trade_fee_rate, quote_mint et les quatre clés publiques de portefeuille au moment de la création ; les valeurs suivantes peuvent être ajustées via UpdateConfig.
Comment un lancement choisit un GlobalConfig
À l’Initialize, le créateur transmet :
(curve_type, index)pour sélectionner quel PDAGlobalConfigcharger.CurveParamsdécrivant la forme de la courbe (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParamsdécrivant l’approvisionnement verrouillé.MintParamspour le mint de base.
curve_typecorrespond àglobal_config.curve_type.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— c’est-à-dire suffisamment de jetons restants pour amorcer le pool post-graduation.total_quote_fund_raising >= min_quote_fund_raising.migrate_type == 1(CPSWAP).- Si la plateforme sélectionnée a
restrict_global_config == 1, lePlatformAllowConfigcorrespondant est inclus.
Initialize, le PoolState du lancement stocke directement la clé publique global_config, de sorte que la liaison est permanente.
Chemin de mise à jour
UpdateConfig est réservé à l’administrateur et prend une paire (param: u8, value: u64). Chaque valeur param sélectionne quel champ muter :
Les rotations de portefeuille (
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) prennent une forme d’argument Pubkey séparé ; consultez la source update_config pour la table de dispatch exacte avant de composer une transaction d’administrateur.
L’ancien sélecteur UpdateConfig 12 pour l’autorisation de plateforme est supprimé. Les administrateurs de plateforme gèrent maintenant leurs propres listes blanches.
Lecture d’un GlobalConfig depuis un client
getAllGlobalConfigs du SDK ou interrogez le point de terminaison de l’API LaunchLab qui les reflète ; le nombre de comptes on-chain est petit (quelques unités en pratique).
Pointeurs
products/launchlab/platform-config— superposition par plateforme qui contraint davantage la forme de la courbe.products/launchlab/accounts— graphique de compte complet pour un lancement.products/launchlab/instructions— instructionsInitializeet de mise à jour.reference/program-addresses— clé publique d’administrateur, ID de programme, autorités partagées.
raydium-launch/programs/launchpad/src/states/config.rs— structGlobalConfigetinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.

