Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
LaunchLab expose un ensemble d’instructions compact : six appels accessibles aux utilisateurs plus une poignée de primitives administrateur. Le SDK les encapsule tous ; cette page documente la surface brute pour les agrégateurs, les outils de monitoring et les programmes qui ont besoin de CPI.
Inventaire des instructions
La division « ExactIn/ExactOut » reflète celle de CPMM
SwapBaseInput / SwapBaseOutput — sur la chaîne, ce sont des discriminateurs d’instruction distincts avec un arrondi légèrement différent.
Sélection du chemin de graduation. Chaque appel Initialize, InitializeV2 et InitializeWithToken2022 doit définir migrate_type = 1 (CPSWAP). Toute tentative d’initialisation d’un nouveau pool lié à AMM v4 retourne MigrateTypeNotMatch. amm_creator_fee_on sélectionne uniquement si les frais de créateur CPMM résultants s’appliquent au token de cotation ou aux deux tokens ; il ne sélectionne pas le programme cible.
MigrateToAmm reste appelable pour un PoolState existant qui a été initialisé avec migrate_type = 0 avant cette restriction. La version ne réécrit pas l’état du pool existant ni ne supprime l’instruction hérité.
Initialize
Créer un nouveau lancement.
Arguments
Préconditions
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- Les paramètres de frais passent les vérifications
launch_config.max_*_fee_rate. open_time ≥ now − slop(le SDK impose≥ now; le programme tolère un léger antidatage).curve_typeest reconnu.
base_mintasupply = base_supply_max, tout dansbase_vault.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchStateinitialisé avecstatus = Active,base_sold = 0,quote_reserve_real = 0.quote_reserve_targetcalculé à partir des paramètres de courbe +base_supply_graduation+buy_numerator(approximativement).
InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (variante canonique : BuyExactIn)
L’utilisateur fournit un quote_in fixe ; la courbe calcule base_out.
Arguments
Préconditions
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
- Diviser
quote_inenquote_in_after_feeet les parties de frais. - Résoudre par Newton la courbe pour
base_outétant donné la cotation post-frais. require(base_out ≥ minimum_base_out)sinon revenir avecExceededSlippage.- Déplacer
quote_inutilisateur → coffre. Déplacerbase_outcoffre → utilisateur. - Mettre à jour
base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share). - Mettre à jour les compteurs de frais (
protocol_fees_quote,creator_fees_quote). state_data.num_buys += 1.- Si
quote_reserve_real ≥ quote_reserve_targetaprès la mise à jour, le SDK enchaîne généralement une instructionGraduatedans la même transaction. Le programme ne se diplôme pas automatiquement à l’intérieur deBuy— unGraduateultérieur est requis.
BuyExactOut
L’utilisateur spécifie le base_out exact ; le programme calcule quote_in.
Arguments
BuyExactIn. Utilise l’intégrale quadratique de forme fermée (ou l’inverse CPMM, pour curve_type 1) plutôt que l’itération de Newton.
Sell / SellExactIn / SellExactOut
Miroir de Buy. L’utilisateur retourne base_in à la courbe et reçoit quote_out. Les frais sont déduits de quote_out, donc l’utilisateur reçoit moins que les produits intégrés bruts.
Préconditions —
user_base_ata.balance ≥ base_in.- La vente ne peut pas pousser
base_solden dessous de 0 (redondant avec ce qui précède étant donné que la comptabilité est cohérente). - Le lancement est
Active.
Buy. base_sold diminue, quote_reserve_real diminue. Les frais s’accumulent toujours.
MigrateToAmm / MigrateToCpswap
Diplômer un lancement dans un pool négociable une fois que la courbe a atteint total_quote_fund_raising. Les nouveaux lancements sont CPMM uniquement. MigrateToAmm est conservé pour les pools existants dont le migrate_type stocké est 0.
Qui signe
MigrateToAmm— lemigrate_to_amm_walletenregistré sur la liaisonGlobalConfig.MigrateToCpswap— lemigrate_to_cpswap_walletenregistré sur la liaisonGlobalConfig.
MigrateToAmm prend trois (principalement des paramètres de marché OpenBook que le programme transmet à AMM v4) :
MigrateToCpswap n’en prend aucun.
Effet (commun aux deux)
- Vérifier que
pool_state.status == Migrate(c.-à-d.,quote_reserve_targeta été atteint). Sinon revenir avecPoolMigrated(le statut était déjàMigrated) ouPoolFunding(toujours en financement). - Vérifier que
pool_state.migrate_typecorrespond à l’instruction (0pour AMM,1pour CPMM). Sinon revenir avecMigrateTypeNotMatch. - Calculer les réserves post-graduation :
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI dans le programme cible (
AMM v4 Initialize2ouCPMM InitializeWithPermission) avec ces réserves pour créer le pool post-graduation. - Pour les migrations CPMM exécutées après la mise à jour du 2026-08-17, combiner
platform_scale + creator_scaleen une part LP verrouillée détenue par la plateforme et frapper au maximum un NFT Fee Key versplatform_nft_wallet. Brûler le resteburn_scale. Avant la mise à jour,creator_scaleétait verrouillé séparément et son Fee Key allait au créateur du token. Les migrations historiques terminées ne sont pas modifiées. Pour la graduation AMM v4 hérité, la disposition LP suit le flux existant de cette instruction. - Révoquer
base_mint.mint_authority(définir àNone). - Basculer
pool_state.status = Migrated, définirvesting_schedule.start_time = block_time + cliff_period.
BuyExactIn, BuyExactOut, SellExactIn, SellExactOut rejetteront à partir de ce moment avec PoolMigrated. Le pool AMM résultant est canonique et se négocie comme n’importe quel autre pool AMM v4 / CPMM.
Erreurs courantes — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
Comptes restants de migration CPMM
Les clients construisantMigrateToCpswap doivent utiliser ces indices remaining_accounts fixes :
L’instruction nécessite au moins dix comptes restants sur le chemin mis à niveau. Les comptes support-mint sont des entrées CPI en lecture seule. Dériver les deux adresses même quand le mint n’a pas d’enregistrement de support initialisé. Les anciens constructeurs qui ajoutent toujours des comptes de verrouillage de créateur ou omettent les indices 8–9 doivent être mis à jour.
Liste d’autorisation GlobalConfig de plateforme
PlatformConfig.restrict_global_config contrôle la vérification :
0: la plateforme accepte n’importe quelGlobalConfigautrement valide ; aucun compte d’autorisation n’est requis.1:Initialize,InitializeV2etInitializeWithToken2022doivent inclure lePlatformAllowConfigcorrespondant n’importe où dansremaining_accounts.
CreatePlatformAllowConfig et ClosePlatformAllowConfig. Ses graines sont [b"platform_allow_config", platform_config, global_config]. Les anciennes instructions PlatformGlobalAccess gérées par l’admin et le PDA sont retirés.
CollectFee
Récupération admin des frais commerciaux accumulés du protocole sur un seul lancement.
Arguments — aucun.
Comptes
Effet — transférer
pool_state.quote_protocol_fee de quote_vault vers recipient_token_account, puis mettre le compteur à zéro. Appelable n’importe quand après le premier achat.
CollectMigrateFee
Récupération admin des frais de migration accumulés à la graduation. Même forme de compte que CollectFee avec migrate_fee_owner comme signataire (au lieu de protocol_fee_owner) et pool_state.migrate_fee comme compteur vidé.
ClaimCreatorFee
Récupération par créateur des frais de créateur accumulés sur chaque lancement que le créateur possède qui utilise le même mint de cotation. Vide le coffre de frais par créateur, pas celui par pool.
Arguments — aucun.
Comptes
Effet — transférer le solde entier de
creator_fee_vault vers recipient_token_account. Revient avec une vérification require-greater-than-zero si le coffre est vide.
ClaimPlatformFee
Récupération par plateforme qui vide directement le coffre de cotation d’un lancement. Utilisez ceci quand une plateforme veut réclamer sa part pour un lancement spécifique sans passer par le coffre de plateforme agrégé.
Arguments — aucun.
Comptes
Effet — transférer
pool_state.platform_fee de quote_vault vers recipient_token_account, mettre le compteur à zéro.
ClaimPlatformFeeFromVault
Récupération agrégée par plateforme. Vide le coffre de frais par mint de cotation de la plateforme qui accumule les frais de chaque lancement acheminé via la plateforme.
Arguments — aucun.
Comptes
Effet — transférer le solde complet de
platform_fee_vault vers recipient_token_account. Revient si le coffre est vide.
Instructions de vesting et de configuration de plateforme
Celles-ci sont documentées sur des pages dédiées car chacune a son propre modèle d’état :CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,UpdatePlatformCurveParam,RemovePlatformCurveParam,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreateConfig,UpdateConfig
Matrice de changement d’état
Où aller ensuite
products/launchlab/code-demos— exemples TypeScript pour chaque instruction.products/launchlab/accounts— forme d’état complète.reference/error-codes— énumération d’erreur LaunchLab.
- Module Raydium SDK v2
LaunchLab - Source du programme Raydium LaunchLab

