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 — identificadas 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 duros 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
UnaGlobalConfig es una PDA singleton 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 la tasa de suministro, bloqueo, venta y 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 la graduación de 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 identifican una GlobalConfig de forma única. Hay una GlobalConfig por cada par (curve_type, index):
curve_type = 0— Curva de reserva virtual de producto constante. La más utilizada 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 la GlobalConfig correspondiente.
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 a través deCollectFee.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_ownera través deCollectMigrateFee.max_share_fee_rate— inicializada a10_000(100 bps). Limita el argumentoshare_fee_ratequeBuyExactIn,BuyExactOut,SellExactInySellExactOutaceptan — la comisión de referencia pagada directamente al receptor de la parte durante el comercio. No limitaPlatformConfig.fee_rate; esa tasa tiene sus propios límites, descritos enplatform-config. TantoCreateConfigcomoUpdateConfigaplicantrade_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 a través detotal_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 los lanzamientos usan SOL envuelto (So111…112) o USDC (EPjF…Dt1v). UnaGlobalConfigestá vinculada a un mint de cotización; los lanzamientos que necesitan un objetivo de cotización diferente apuntan a un(curve_type, index)diferente. El mint puede ser propiedad del programa SPL Token o Token-2022 — consulta a continuación.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 a través deUpdateConfig.migrate_fee_owner— clave pública que firmaCollectMigrateFee.
Mints de cotización Token-2022
CreateConfig acepta un quote_mint de Token-2022, y los pools vinculados a tal configuración lo llevan de principio a fin: la bóveda de cotización, ambas bóvedas de comisión, y la cuenta de token del receptor de comisión de parte se crean todas en Token-2022, y las instrucciones de intercambio cuentan con una TransferFeeConfig en el lado de la cotización. El bit1 de PoolState.token_program_flag registra la elección por lanzamiento.
Dos restricciones vale la pena conocer antes de confiar en una:
- El
Initializedeprecado no puede lanzarse contra ella. SoloInitializeV2eInitializeWithToken2022aceptan un programa de cotización Token-2022. Consultainstructions. - No se aplica lista de permitidos de extensiones. A diferencia de CPMM y CLMM, LaunchLab no examina las extensiones de un mint de cotización —
CreateConfigtoma el mint tal como está, por lo que la única puerta es la discreción del administrador sobre qué mints se vinculan a una configuración. La verificaciónNoSupportExtensiondel programa cubre solo los mints base de Token-2022 que LaunchLab crea por sí mismo. Trata vincular uno como una acción de alta confianza; consultareference/token-2022-support.
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. Cada 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 a través de 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 la creación; los valores posteriores se pueden ajustar a través de UpdateConfig.
Cómo un lanzamiento elige una GlobalConfig
En Initialize, el creador pasa:
(curve_type, index)para seleccionar qué PDA deGlobalConfigcargar.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 laPlatformAllowConfigcorrespondiente.
Initialize, la PoolState del lanzamiento almacena la clave pública de 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 de 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 una 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 cuenta completo para un lanzamiento.products/launchlab/instructions— instrucciones deInitializey 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.

