Skip to main content
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 →
Esta página documenta el gráfico de cuentas por lanzamiento: el PoolState (la cuenta de estado raíz para un lanzamiento), sus dos vaults, el PDA de autoridad, y las referencias posteriores a la graduación que adquiere cuando el lanzamiento se liquida.Para la configuración a nivel de protocolo que vincula cada lanzamiento, consulta products/launchlab/global-config. Para la superposición por plataforma, consulta products/launchlab/platform-config. Para cuentas de vesting (VestingSchedule en PoolState, VestingRecord por beneficiario), consulta products/launchlab/vesting.

Inventario de cuentas

El método raydium.launchpad.getLaunchById del SDK devuelve PoolState más una bandera indicando si el lanzamiento se ha graduado; si es así, se incluye el ID del pool posterior a la migración.

PoolState

El estado raíz por lanzamiento. Los nombres de campo a continuación coinciden con la estructura Rust en cadena (states/pool.rs); algunos valores se simplifican para legibilidad — consulta la fuente para el diseño exacto de memoria.
Valores de PoolStatus (del IDL de Anchor):
Campos orientados al integrador:
  • status — tres valores, monótonos (Funding → Migrate → Migrated). Las lecturas siempre son seguras; las escrituras están controladas.
  • real_base, real_quote — estado actual de la curva. Combinados con virtual_base / virtual_quote son suficientes para calcular el precio spot sin tocar los vaults. Consulta bonding-curve.
  • total_base_sell vs real_base — relación de “progreso hacia graduación” para interfaces de usuario.
  • migrate_type — la nueva inicialización requiere 1 (CPSWAP). Un 0 almacenado sigue siendo significativo solo para un lanzamiento existente creado antes de la aplicación exclusiva de CPMM.
  • amm_creator_fee_on — elige creator_fee_on = OnlyQuoteToken (0) o BothToken (1) en el pool CPMM posterior a la graduación. No elige el destino de migración. Consulta creator-fees.
  • quote_protocol_fee / platform_fee / migrate_fee — tres contadores de comisiones independientes. Cada uno tiene su propia instrucción de reclamación; consulta instructions.
  • vesting_schedule — presente en cada PoolState pero inactivo cuando total_locked_amount == 0. Consulta vesting para el ciclo de vida completo.

El PDA de autoridad

LaunchLab utiliza un único PDA de autoridad en todos los lanzamientos, derivado sin semilla por lanzamiento:
Ese PDA único es:
  • La autoridad en cada base_vault y quote_vault del lanzamiento.
  • El mint_authority en cada base_mint del lanzamiento (pre-graduación).
  • El firmante en el CPI de graduación de CPMM, y en la graduación heredada de AMM v4 para estado existente.
  • El firmante en las transferencias de ClaimVestedToken fuera del vault base.
El mint_authority se revoca inmediatamente después de MigrateToCpswap o una llamada heredada de MigrateToAmm, por lo que el suministro se fija permanentemente. Dos PDAs adicionales controlan los vaults de comisiones:
Estos firman la transferencia fuera de los vaults de comisiones correspondientes durante ClaimCreatorFee y ClaimPlatformFeeFromVault.

Mint base

Creado en línea por Initialize con:
  • mint_authority = authority (revocado en graduación).
  • freeze_authority = None.
  • supply = supply, completamente acuñado en base_vault.
  • decimals elegido por el creador en Initialize (comúnmente 6).
Debido a que el suministro completo se acuña previamente, base_mint.supply es constante durante la vida del lanzamiento. Las compras de curva mueven tokens de base_vault al comprador, pero no llaman a mint_to. Initialize / InitializeV2 crean lanzamientos de SPL Token. La instrucción dedicada InitializeWithToken2022 permite que el mint base sea un mint de Token-2022 (con TransferFeeConfig opcional); el mint quote sigue siendo SPL Token. Las tres rutas de inicialización requieren graduación de CPMM.

Vaults

Tanto base_vault como quote_vault son cuentas estándar de SPL Token propiedad del PDA authority de LaunchLab. Las direcciones se almacenan en PoolState y también se pueden derivar:
(Verifica los prefijos de semilla exactos de la estructura de cuentas Initialize de la fuente antes de confiar en una derivación en producción.)

Vaults de comisiones

Dos PDAs agregan comisiones en todos los lanzamientos:
  • Vault de comisión del creador — PDA con semillas [creator, quote_mint]. Cada lanzamiento que gana las mismas comisiones de creador en el mismo mint de quote vierte en el mismo vault. El creador lo barre a través de ClaimCreatorFee.
  • Vault de comisión de plataforma — PDA con semillas [platform_config, quote_mint]. Cada lanzamiento enrutado a través de la misma plataforma que usa el mismo mint de quote vierte en el mismo vault. La platform_fee_wallet de la plataforma lo barre a través de ClaimPlatformFeeFromVault. También hay una variante de barrido por lanzamiento (ClaimPlatformFee) que extrae del quote_vault del lanzamiento directamente sin pasar por el vault agregado.
El patrón de vault agregado es lo que permite que un creador o plataforma de alto volumen amortice el costo de renta de acumulación de comisiones en muchos lanzamientos.

Quote vault ↔ real_quote

quote_vault.balance y PoolState.real_quote deben mantenerse sincronizados. Pueden desviarse como máximo por la suma de los tres contadores de comisiones pendientes (quote_protocol_fee, platform_fee, migrate_fee), que se encuentran en el vault pero pertenecen a los contadores de comisiones y no a la reserva de curva. Las matemáticas de la curva siempre usan real_quote, nunca el saldo bruto del vault. Invariante pre-graduación:

Transiciones de cuentas del ciclo de vida

Dónde ir a continuación

Fuentes:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — constantes de semilla de PDA (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Módulo launchpad del SDK de Raydium v2.