Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
GlobalConfig es la cuenta de configuración a nivel de protocolo. Puede haber muchas — indexadas por (curve_type, index) — y cada lanzamiento elige exactamente una en el momento de Initialize. Los valores en la GlobalConfig elegida se convierten entonces en límites máximos para los parámetros de ese lanzamiento. Para personalización a nivel de plataforma (tasa de comisión por plataforma, formas de curva permitidas, divisiones de NFT en la graduación), consulta products/launchlab/platform-config.Qué es
UnGlobalConfig es un PDA único por (curve_type, index) que fija las reglas a nivel de protocolo que todo lanzamiento debe cumplir:
- El tipo de curva de vinculación permitida (
curve_type). - La tasa de comisión comercial que cobra la curva en cada compra y venta.
- La comisión de migración cobrada en la graduación.
- Pisos en suministro, tasa de bloqueo, tasa de venta y tasa de migración.
- El mint de cotización (típicamente SOL envuelto o USDC) — el activo con el que los usuarios compran.
- Cuatro billeteras a nivel de protocolo: el propietario de la comisión de protocolo, el propietario de la comisión de migración, y las dos billeteras de control de migración retenidas para graduación CPMM y AMM v4 heredado.
GlobalConfig pueden ser creadas por el administrador del programa LaunchLab o la autoridad delegada de crear configuración. Solo el administrador actualiza configuraciones existentes. Consulta reference/program-addresses para las autoridades canónicas.
Diseño
create_config del programa es la fuente de verdad.)
Semántica de campos
curve_type e index
Juntos indexan un GlobalConfig de forma única. Hay un GlobalConfig por cada par (curve_type, index):
curve_type = 0— Curva de reserva virtual de producto constante. La más usada y predeterminada.curve_type = 1— Curva de precio fijo.curve_type = 2— Curva de precio lineal.
index es un u16 que permite al administrador publicar múltiples configuraciones por tipo de curva (por ejemplo, una con una comisión más ajustada, otra con un mínimo de recaudación de cotización más alto). En Initialize el lanzamiento proporciona un par (curve_type, index) y el programa carga el GlobalConfig coincidente.
Comisiones
trade_fee_rate— denominada en1/1_000_000del volumen comercial. Se aplica a cada compra y venta en la curva. Elprotocol_fee_ownerreclama su parte víaCollectFee.migrate_fee— una comisión fija en lámparas (o unidades de cotización, según la configuración) cobrada una vez en la graduación. Reclamada pormigrate_fee_ownervíaCollectMigrateFee.max_share_fee_rate— inicializada a10_000(100 bps). Limita la tasa de comisión de plataforma delPlatformConfigvinculante (consultaplatform-config). El programa refuerzatrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Pisos de suministro y tasa
Estos pisos limitan qué parámetros de forma de curva puede elegir un lanzamiento enInitialize. Si los CurveParams del creador violan alguno de ellos, Initialize revierte con InvalidInput.
min_base_supply— el mínimosupply(sin decimales) que la curva puede declarar. Por defecto10_000_000.max_lock_rate— denominada en1/1_000_000; por defecto300_000(30%). Limita el bloqueo de vesting víatotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— denominada en1/1_000_000; por defecto200_000(20%). Limitabase_supply_graduation / supplydesde abajo.min_base_migrate_rate— denominada en1/1_000_000; por defecto200_000(20%). Limita el número de tokens restantes para sembrar el pool posterior a la graduación.min_quote_fund_raising— mínimoquote_reserve_targetque un lanzamiento puede declarar (con decimales). Por defecto30_000_000_000unidades del mint de cotización.
Mint de cotización y billeteras de protocolo
quote_mint— el activo con el que los usuarios compran. La mayoría de lanzamientos usan SOL envuelto (So111…112) o USDC (EPjF…Dt1v). UnGlobalConfigestá vinculado a un mint de cotización; los lanzamientos que necesitan un objetivo de cotización diferente apuntan a un(curve_type, index)diferente.protocol_fee_owner— clave pública que firmaCollectFeey reclama las comisiones de protocolo acumuladas en cada lanzamiento vinculado a esta configuración. Almacenada en cadena; el administrador puede rotarla víaUpdateConfig.migrate_fee_owner— clave pública que firmaCollectMigrateFee.
Billeteras de migración
Las dos billeteras de graduación almacenadas requieren firmantes diferentes:migrate_to_amm_wallet— firmaMigrateToAmmpara un lanzamiento heredado existente cuyomigrate_type = 0almacenado.migrate_to_cpswap_wallet— firmaMigrateToCpswap. Todo lanzamiento recién inicializado usa esta ruta.
Listas de permitidos a nivel de plataforma
GlobalConfig ya no tiene requires_platform_auth. Su byte anterior es relleno, por lo que el tamaño de la cuenta no cambia. El acceso ahora se controla mediante PlatformConfig.restrict_global_config y cuentas PlatformAllowConfig creadas por el administrador de esa plataforma. Consulta platform-config.
Valores predeterminados en la inicialización
Cuando se llama aCreateConfig, el programa siembra muchos campos con valores predeterminados codificados:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint, y las cuatro claves públicas de billetera explícitamente en el momento de creación; los valores posteriores pueden ajustarse vía UpdateConfig.
Cómo un lanzamiento elige un GlobalConfig
En Initialize, el creador pasa:
(curve_type, index)para seleccionar qué PDAGlobalConfigcargar.CurveParamsdescribiendo la forma de la curva (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParamsdescribiendo el suministro bloqueado.MintParamspara el mint base.
curve_typecoincide conglobal_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— es decir, suficientes tokens restantes para sembrar el pool posterior a la graduación.total_quote_fund_raising >= min_quote_fund_raising.migrate_type == 1(CPSWAP).- Si la plataforma seleccionada tiene
restrict_global_config == 1, se incluye elPlatformAllowConfigcoincidente.
Initialize, el PoolState del lanzamiento almacena la clave pública global_config directamente, por lo que el vínculo es permanente.
Ruta de actualización
UpdateConfig es solo para administrador y toma un par (param: u8, value: u64). Cada valor param selecciona qué campo mutar:
Las rotaciones de billetera (
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) toman una forma de argumento Pubkey separada; consulta la fuente de update_config para la tabla de despacho exacta antes de componer una transacción de administrador.
El selector anterior de UpdateConfig 12 para autorización de plataforma se elimina. Los administradores de plataforma ahora administran sus propias listas de permitidos.
Lectura de un GlobalConfig desde un cliente
getAllGlobalConfigs del SDK o consulta el punto final de la API de LaunchLab que las refleja; el recuento de cuentas en cadena es pequeño (dígitos únicos en la práctica).
Referencias
products/launchlab/platform-config— superposición por plataforma que limita aún más la forma de la curva.products/launchlab/accounts— gráfico de cuentas completo para un lanzamiento.products/launchlab/instructions— instruccionesInitializey de actualización.reference/program-addresses— clave pública del administrador, ID del programa, autoridades compartidas.
raydium-launch/programs/launchpad/src/states/config.rs— structGlobalConfigeinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.

