Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
LaunchLab expose un ensemble d’instructions resserré : six appels accessibles aux utilisateurs plus quelques primitives admin. Le SDK les enveloppe tous ; cette page documente la surface brute pour les agrégateurs, outils de surveillance et programmes ayant besoin de CPI.
Inventaire des instructions
La division « ExactIn/ExactOut » reflète celle de CPMM
SwapBaseInput / SwapBaseOutput — sur chaîne, ce sont des discriminateurs d’instruction distincts avec un arrondi légèrement différent.
Sélection du chemin de graduation. migrate_type est enregistré sur PoolState au moment de Initialize{V2,WithToken2022} et détermine laquelle des deux instructions de graduation peut s’exécuter. Les lancements Token-2022 migrent toujours vers CPMM. Les lancements SPL Token migrent vers AMM v4 ou CPMM selon le paramètre amm_creator_fee_on :
BothToken→MigrateToAmm→ pool AMM v4 (les frais créateur peuvent être collectés de chaque côté ; AMM v4 n’a pas de champ natif de frais créateur, donc les frais créateur sont prélevés via le mécanisme du NFT LP-lock à la place).QuoteToken→MigrateToCpswap→ pool CPMM aveccreator_fee_on = OnlyQuoteToken(le créateur continue de gagner des frais du pool CPMM via le NFT Fee Key LaunchLab — voirproducts/launchlab/creator-fees).
Initialize
Crée un nouveau lancement.
Arguments
Préconditions
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- Les paramètres de frais réussissent les vérifications
launch_config.max_*_fee_rate. open_time ≥ now − slop(le SDK applique≥ now; le programme tolère une antidatation légère).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 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.
- Divise
quote_inenquote_in_after_feeet les parts de frais. - Résout la courbe par Newton pour
base_outdonnés le devis post-frais. require(base_out ≥ minimum_base_out)sinon revertExceededSlippage.- Déplace
quote_inutilisateur → vault. Déplacebase_outvault → utilisateur. - Met à jour
base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share). - Met à 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 ixGraduatedans la même transaction. Le programme ne fait pas de graduation auto à l’intérieur deBuy— uneGraduateultérieure est requise.
BuyExactOut
L’utilisateur spécifie exactement le base_out ; le programme calcule quote_in.
Arguments
BuyExactIn. Utilise l’intégrale quadratique sous forme fermée (ou l’inverse CPMM, pour curve_type 1) plutôt que l’itération 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 bruts intégrés.
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
Graduate un lancement dans un pool AMM négociable une fois que la courbe a atteint total_quote_fund_raising. Les deux instructions correspondent aux deux cibles de graduation — AMM v4 et CPMM — et une seule d’elles est valide pour un lancement donné, déterminée par pool_state.migrate_type (défini au moment de Initialize).
Qui signe
MigrateToAmm— lemigrate_to_amm_walletenregistré sur leGlobalConfigde liaison.MigrateToCpswap— lemigrate_to_cpswap_walletenregistré sur leGlobalConfigde liaison.
MigrateToAmm prend trois arguments (principalement des paramètres du marché OpenBook que le programme transmet à AMM v4) :
MigrateToCpswap n’en prend aucun.
Effet (commun aux deux)
- Vérifie que
pool_state.status == Migrate(c.-à-d.,quote_reserve_targeta été atteint). Sinon revert avecPoolMigrated(le statut était déjàMigrated) ouPoolFunding(toujours en financement). - Vérifie que
pool_state.migrate_typecorrespond à l’instruction (0pour AMM,1pour CPMM). Sinon revert avecMigrateTypeNotMatch. - Calcule 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. - Divise le LP résultant selon le
PlatformConfig.{platform_scale, creator_scale, burn_scale}de liaison (CPMM uniquement) — un morceau mintée versplatform_nft_wallet, un vers un NFT créateur enrobé par le programme LP-Lock, un brûlé via Burn & Earn. Pour la graduation AMM v4, la disposition du LP est gouvernée par les propres paramètres d’initialisation d’AMM v4. - Révoque
base_mint.mint_authority(défini surNone). - Bascule
pool_state.status = Migrated, définitvesting_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.
CollectFee
Prélèvement admin des frais commerciaux accumulés du protocole sur un seul lancement.
Arguments — aucun.
Comptes
Effet — transfère
pool_state.quote_protocol_fee du quote_vault vers recipient_token_account, puis met le compteur à zéro. Peut être appelé n’importe quand après le premier achat.
CollectMigrateFee
Prélèvement 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
Prélèvement par créateur des frais créateur accumulés sur chaque lancement que le créateur possède utilisant le même mint de devis. Vide le vault de frais par créateur, pas celui par pool.
Arguments — aucun.
Comptes
Effet — transfère le solde entier de
creator_fee_vault vers recipient_token_account. Revert avec une vérification supérieure à zéro si le vault est vide.
ClaimPlatformFee
Prélèvement par plateforme qui vide directement le vault de devis d’un lancement. Utilisez ceci quand une plateforme veut réclamer sa part pour un lancement spécifique sans passer par le vault de plateforme agrégé.
Arguments — aucun.
Comptes
Effet — transfère
pool_state.platform_fee du quote_vault vers recipient_token_account, met le compteur à zéro.
ClaimPlatformFeeFromVault
Prélèvement agrégé par plateforme. Vide le vault de frais par-quote-mint de la plateforme qui accumule les frais de chaque lancement acheminé via la plateforme.
Arguments — aucun.
Comptes
Effet — transfère le solde entier de
platform_fee_vault vers recipient_token_account. Revert si le vault est vide.
Instructions de vesting et de config 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,CreatePlatformGlobalAccess,ClosePlatformGlobalAccessCreateConfig,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— Enum d’erreur LaunchLab.
- Module
LaunchLabdu SDK Raydium v2 - Code source du programme Raydium LaunchLab

