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:
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 limita 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.
PoolStatus (del IDL de Anchor):
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 convirtual_base/virtual_quoteson suficientes para calcular el precio spot sin tocar los vaults. Consultabonding-curve.total_base_sellvsreal_base— relación de “progreso hacia graduación” para interfaces de usuario.migrate_type— la nueva inicialización requiere1(CPSWAP). Un0almacenado sigue siendo significativo solo para un lanzamiento existente creado antes de la aplicación exclusiva de CPMM.amm_creator_fee_on— eligecreator_fee_on = OnlyQuoteToken(0) oBothToken(1) en el pool CPMM posterior a la graduación. No elige el destino de migración. Consultacreator-fees.token_program_flag— un campo de bits, no un booleano. Bit0 es el mint base y bit1 es el mint quote, cada uno0para SPL Token y1para Token-2022, por lo que el byte toma cuatro valores:0(ambos heredados),1(Token-2022 base),2(Token-2022 quote),3(ambos Token-2022). Lee un mint con(token_program_flag >> bit) & 1. Comparar el byte completo contra0para clasificar el mint base resuelve2al programa incorrecto. Bit1 fue constante0hasta que se admitieron mints quote Token-2022.quote_protocol_fee/platform_fee/migrate_fee— tres contadores de comisión independientes. Cada uno tiene su propia instrucción de reclamación; consultainstructions.vesting_schedule— presente en cadaPoolStatepero inactivo cuandototal_locked_amount == 0. Consultavestingpara 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:- La autoridad en cada
base_vaultyquote_vaultde lanzamiento. - La
mint_authorityen cada mint base de lanzamiento (pre-graduación). - El firmante en el CPI de graduación CPMM, y en la graduación AMM v4 heredada para estado existente.
- El firmante en transferencias
ClaimVestedTokenfuera del vault base. - La
transfer_fee_config_authorityen laTransferFeeConfigde un mint base Token-2022, para toda la fase pre-graduación — y suwithdraw_withheld_authoritytambién, pero solo cuando la plataforma dejóPlatformConfig.transfer_fee_extension_authsin establecer.
mint_authority se revoca inmediatamente después de una llamada MigrateToCpswap o MigrateToAmm heredada, por lo que el suministro se fija permanentemente.
Dos PDAs adicionales controlan los vaults de comisión:
ClaimCreatorFee y ClaimPlatformFeeFromVault.
Mint base
Creado en línea porInitialize con:
mint_authority = authority(revocado en graduación).freeze_authority = None.supply = supply, completamente acuñado enbase_vault.decimalselegido por el creador enInitialize(comúnmente 6).
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 mints base SPL Token. La instrucción dedicada InitializeWithToken2022 permite que el mint base sea un mint Token-2022 (con TransferFeeConfig opcional). Las tres rutas de inicialización requieren graduación CPMM.
Cuando InitializeWithToken2022 adjunta una TransferFeeConfig, el mint se crea con transfer_fee_config_authority = authority y withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth, retrocediendo a authority cuando la plataforma no ha establecido ese campo. Ambas autoridades se reasignan a la clave de plataforma en graduación, el lado de retiro solo si el PDA aún la posee. Consulta platform-config.
El mint quote es independiente del mint base y puede ser en sí mismo un mint Token-2022 — InitializeV2 e InitializeWithToken2022 aceptan cualquier programa en su ranura de programa quote. El Initialize deprecado no: su cuenta de programa quote aún está tipificada a SPL Token, por lo que una configuración cuyo mint quote es Token-2022 solo puede lanzarse a través de las otras dos. LaunchLab nunca crea el mint quote; es lo que GlobalConfig.quote_mint nombra. Consulta global-config y reference/token-2022-support.
Vaults
Tantobase_vault como quote_vault son cuentas de token propiedad del PDA authority de LaunchLab, cada una creada en el programa que posee su propio mint — por lo que un lanzamiento puede tener un vault base heredado y un vault quote Token-2022, o cualquier otra combinación. token_program_flag registra cuál es cuál. Las direcciones se almacenan en PoolState y también se pueden derivar:
Initialize de la fuente antes de confiar en una derivación en producción.)
Vaults de comisión
Dos PDAs agregan comisiones en todos los lanzamientos:- Vault de comisión de creador — PDA con semillas
[creator, quote_mint]. Cada lanzamiento que gana las mismas comisiones de creador en el mismo mint quote vierte en el mismo vault. El creador lo barre a través deClaimCreatorFee. - 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 quote vierte en el mismo vault. Laplatform_fee_walletde la plataforma lo barre a través deClaimPlatformFeeFromVault. También hay una variante de barrido por lanzamiento (ClaimPlatformFee) que extrae delquote_vaultdel lanzamiento directamente sin pasar por el vault agregado.
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 comisión pendientes (quote_protocol_fee, platform_fee, migrate_fee), que se encuentran en el vault pero pertenecen a los contadores de comisión y no a la reserva de curva. Las matemáticas de curva siempre usan real_quote, nunca el saldo bruto del vault.
Invariante pre-graduación:
PlatformCurveRule
Una cuenta por par (PlatformConfig, GlobalConfig), que contiene las formas de lanzamiento que esa plataforma permite en esa configuración. Las semillas del PDA son [b"platform_curve_rule", platform_config, global_config].
150 + Σ(14 + 18 × constraints) y los decodificadores no deben asumir un tamaño fijo. Los grupos se ORean: un lanzamiento se permite tan pronto como se cumplen todas las restricciones de un grupo. Cero grupos significa sin restricción.
Léelo solo cuando el PlatformConfig.restrict_curve_param propietario sea 1 — en 0 el programa ignora la cuenta, y una regla obsoleta bien puede estar sentada allí. Los IDs de campo, operadores y los manuales están en products/launchlab/curve-rules.
Transiciones de cuentas del ciclo de vida
A dónde ir a continuación
products/launchlab/bonding-curve— las matemáticas detrás dereal_base↔real_quote.products/launchlab/instructions— listas de cuentas por instrucción.products/launchlab/global-config— vinculación a nivel de protocolo.products/launchlab/platform-config— superposición de plataforma.products/launchlab/vesting— mecánica de suministro bloqueado.products/cpmm/accounts— cómo se ve elcpmm_pool_stateposterior a la graduación.
raydium-launch/programs/launchpad/src/states/pool.rs—PoolState,PoolStatus,VestingSchedule,AmmCreatorFeeOn.raydium-launch/programs/launchpad/src/lib.rs— constantes de semilla PDA (AUTH_SEED,CREATOR_FEE_VAULT_AUTH_SEED,PLATFORM_FEE_VAULT_AUTH_SEED).- Módulo
launchpaddel SDK de Raydium v2.

