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 →
LaunchLab expone un conjunto de instrucciones compacto: seis llamadas orientadas al usuario más un puñado de primitivas administrativas. El SDK las envuelve todas; esta página documenta la superficie bruta para agregadores, herramientas de monitoreo y programas que necesitan CPI.
Inventario de instrucciones
La división “ExactIn/ExactOut” refleja
SwapBaseInput / SwapBaseOutput de CPMM — en cadena son discriminadores de instrucción separados con redondeo ligeramente diferente.
Selección de ruta de graduación. Cada nueva llamada a Initialize, InitializeV2 e InitializeWithToken2022 debe establecer migrate_type = 1 (CPSWAP). Cualquier intento de inicializar un nuevo pool vinculado a AMM v4 devuelve MigrateTypeNotMatch. amm_creator_fee_on solo selecciona si la tarifa de creador CPMM resultante se aplica al token de cotización o a ambos tokens; no selecciona el programa de destino.
MigrateToAmm sigue siendo llamable para un PoolState existente que fue inicializado con migrate_type = 0 antes de esta restricción. La versión no reescribe el estado del pool existente ni elimina la instrucción heredada.
Initialize
Crear un nuevo lanzamiento.
Argumentos
Precondiciones
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- Los parámetros de tarifa pasan las comprobaciones
launch_config.max_*_fee_rate. open_time ≥ now − slop(SDK aplica≥ now; el programa tolera un ligero retroceso).curve_typees reconocido.
base_minttienesupply = base_supply_max, todo enbase_vault.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchStateinicializado constatus = Active,base_sold = 0,quote_reserve_real = 0.quote_reserve_targetcalculado a partir de parámetros de curva +base_supply_graduation+buy_numerator(aproximadamente).
InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (variante canónica: BuyExactIn)
El usuario proporciona un quote_in fijo; la curva calcula base_out.
Argumentos
Precondiciones
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
- Dividir
quote_inenquote_in_after_feey las partes de tarifa. - Resolver la curva con Newton para
base_outdado el presupuesto posterior a la tarifa. require(base_out ≥ minimum_base_out)de lo contrario revertirExceededSlippage.- Mover
quote_inusuario → bóveda. Moverbase_outbóveda → usuario. - Actualizar
base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share). - Actualizar contadores de tarifa (
protocol_fees_quote,creator_fees_quote). state_data.num_buys += 1.- Si
quote_reserve_real ≥ quote_reserve_targetdespués de la actualización, el SDK típicamente encadena una instrucciónGraduateen la misma transacción. El programa no se gradúa automáticamente dentro deBuy— se requiere unGraduateposterior.
BuyExactOut
El usuario especifica el base_out exacto; el programa calcula quote_in.
Argumentos
BuyExactIn. Utiliza la integral cuadrática de forma cerrada (o inversa CPMM, para curve_type 1) en lugar de iteración de Newton.
Sell / SellExactIn / SellExactOut
Espejo de Buy. El usuario devuelve base_in a la curva y recibe quote_out. La tarifa se deduce de quote_out, por lo que el usuario recibe menos que los ingresos integrados brutos.
Precondiciones —
user_base_ata.balance ≥ base_in.- La venta no puede empujar
base_soldpor debajo de 0 (redundante con lo anterior dado que la contabilidad es consistente). - El lanzamiento es
Active.
Buy. base_sold disminuye, quote_reserve_real disminuye. Las tarifas aún se acumulan.
MigrateToAmm / MigrateToCpswap
Graduar un lanzamiento en un pool comercializable una vez que la curva ha alcanzado total_quote_fund_raising. Los nuevos lanzamientos son solo CPMM. MigrateToAmm se retiene para pools existentes cuyo migrate_type almacenado es 0.
Quién firma
MigrateToAmm— lamigrate_to_amm_walletregistrada en la vinculaciónGlobalConfig.MigrateToCpswap— lamigrate_to_cpswap_walletregistrada en la vinculaciónGlobalConfig.
MigrateToAmm toma tres (principalmente parámetros del mercado OpenBook que el programa reenvía a AMM v4):
MigrateToCpswap no toma ninguno.
Efecto (común a ambos)
- Verificar
pool_state.status == Migrate(es decir,quote_reserve_targetha sido alcanzado). De lo contrario revertir conPoolMigrated(el estado ya eraMigrated) oPoolFunding(aún en financiación). - Verificar que
pool_state.migrate_typecoincida con la instrucción (0para AMM,1para CPMM). De lo contrario revertir conMigrateTypeNotMatch. - Calcular las reservas posteriores a la graduación:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI en el programa de destino (
AMM v4 Initialize2oCPMM InitializeWithPermission) con esas reservas para crear el pool posterior a la graduación. - Para migraciones CPMM ejecutadas después de la actualización del 2026-08-17, combinar
platform_scale + creator_scaleen una participación de LP bloqueada de propiedad de plataforma y acuñar como máximo un NFT de Clave de Tarifa aplatform_nft_wallet. Quemar el resto deburn_scale. Antes de la actualización,creator_scaleestaba bloqueado por separado y su Clave de Tarifa iba al creador del token. Las migraciones históricas completadas no se modifican. Para graduación heredada de AMM v4, la disposición de LP sigue el flujo existente de esa instrucción. - Revocar
base_mint.mint_authority(establecer aNone). - Cambiar
pool_state.status = Migrated, establecervesting_schedule.start_time = block_time + cliff_period.
BuyExactIn, BuyExactOut, SellExactIn, SellExactOut rechazarán a partir de este punto con PoolMigrated. El pool AMM resultante es canónico y comercia como cualquier otro pool AMM v4 / CPMM.
Errores comunes — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
Cuentas restantes de migración CPMM
Los clientes que construyenMigrateToCpswap deben usar estos índices de remaining_accounts fijos:
La instrucción requiere al menos diez cuentas restantes en la ruta actualizada. Las cuentas de mint de soporte son entradas CPI de solo lectura. Derivar ambas direcciones incluso cuando el mint no tiene un registro de soporte inicializado. Los constructores más antiguos que aún adjuntan cuentas de bloqueo de creador u omiten los índices 8–9 deben actualizarse.
Lista de permitidos de GlobalConfig de plataforma
PlatformConfig.restrict_global_config controla la comprobación:
0: la plataforma acepta cualquierGlobalConfigválido; no se requiere cuenta de permitidos.1:Initialize,InitializeV2eInitializeWithToken2022deben incluir elPlatformAllowConfigcoincidente en cualquier lugar enremaining_accounts.
CreatePlatformAllowConfig y ClosePlatformAllowConfig. Sus semillas son [b"platform_allow_config", platform_config, global_config]. Las instrucciones anteriores administradas por administrador PlatformGlobalAccess y PDA se retiran.
CollectFee
Barrido administrativo de las tarifas comerciales acumuladas del protocolo en un único lanzamiento.
Argumentos — ninguno.
Cuentas
Efecto — transferir
pool_state.quote_protocol_fee de quote_vault a recipient_token_account, luego poner a cero el contador. Llamable en cualquier momento después de la primera compra.
CollectMigrateFee
Barrido administrativo de la tarifa de migración acumulada en la graduación. La misma forma de cuenta que CollectFee con migrate_fee_owner como firmante (en lugar de protocol_fee_owner) y pool_state.migrate_fee como contador drenado.
ClaimCreatorFee
Barrido por creador de tarifas de creador acumuladas en cada lanzamiento que posee el creador que usa el mismo mint de cotización. Drena la bóveda de tarifas por creador, no la por pool.
Argumentos — ninguno.
Cuentas
Efecto — transferir el saldo completo de
creator_fee_vault a recipient_token_account. Revierte con una comprobación de requerimiento mayor que cero si la bóveda está vacía.
ClaimPlatformFee
Barrido por plataforma que drena la bóveda de cotización de un lanzamiento directamente. Utiliza esto cuando una plataforma quiere reclamar su porción para un lanzamiento específico sin pasar por la bóveda de plataforma agregada.
Argumentos — ninguno.
Cuentas
Efecto — transferir
pool_state.platform_fee de quote_vault a recipient_token_account, poner a cero el contador.
ClaimPlatformFeeFromVault
Barrido agregado por plataforma. Drena la bóveda de tarifas por mint de cotización de la plataforma que acumula tarifas de cada lanzamiento enrutado a través de la plataforma.
Argumentos — ninguno.
Cuentas
Efecto — transferir el saldo completo de
platform_fee_vault a recipient_token_account. Revierte si la bóveda está vacía.
Instrucciones de vesting y configuración de plataforma
Estas se documentan en páginas dedicadas porque cada una tiene su propio modelo de estado:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,UpdatePlatformCurveParam,RemovePlatformCurveParam,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreateConfig,UpdateConfig
Matriz de cambio de estado
Dónde ir a continuación
products/launchlab/code-demos— ejemplos de TypeScript para cada instrucción.products/launchlab/accounts— forma de estado completo.reference/error-codes— enumeración de errores de LaunchLab.
- Módulo
LaunchLabdel SDK de Raydium v2 - Fuente del programa LaunchLab de Raydium

