Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Cette entrée couvre une mise à jour à venir du programme LaunchLab. Elle a été vérifiée par rapport à la branche de version locale avant le déploiement. Confirmez le programme déployé et l’IDL publié avant d’activer les nouveaux chemins en production.
GlobalConfig, initialisation du pool, les quatre instructions de swap, toutes les réclamations de frais et la migration CPMM — accepte désormais l’un ou l’autre programme token, et les instructions de swap tiennent compte des frais de transfert du mint quote.
TL;DR pour les intégrateurs
- Les quote mints peuvent être Token-2022.
CreateConfigaccepte unquote_token_mintToken-2022, etInitializeV2/InitializeWithToken2022acceptent l’un ou l’autre programme token dans l’emplacement quote-program. L’ordre des comptes ne change pas — la valeur que vous passez dans cet emplacement change. - Le deprecated
Initializereste legacy-only. Son compte quote-program est toujours typé pour SPL Token, donc une config dont le mint quote est Token-2022 ne peut être lancée que viaInitializeV2ouInitializeWithToken2022. - Les bornes de slippage se déplacent vers ce que le payeur paie et reçoit réellement.
minimum_amount_outetmaximum_amount_insont désormais comparés au montant net des frais de transfert du mint quote, et non au montant que le vault a déplacé. La logique de cotation existante sous-évalue le coût et surévalue les revenus sur un mint quote porteur de frais. - Le bit1 de
PoolState.token_program_flagdevient significatif. Il était toujours0tant que les quote mints étaient legacy-only. Les clients qui comparent l’octet entier à0liront désormais un mint de base legacy comme Token-2022 chaque fois que le mint quote est Token-2022. C’est la rupture silencieuse la plus probable de cette version. MigrateToCpswaprenomme ses deux comptes token-program.base_token_program/quote_token_programdeviennenttoken_program/token_program_2022. Les deux sont toujours requis, et le programme choisit le bon par mint.- Les paires mint/programme sont désormais validées. Les deux mints de swap ont gagné une contrainte
mint::token_program, tout comme le mint quote deClaimPlatformFee, donc une paire mal appariée revient au lieu d’être ignorée. - Nouvelle erreur
6023CalculateOverflow. Les codes6000–6022sont inchangés.6023a été libéré par la version précédente et est désormais réutilisé. - Les vaults de frais suivent le mint quote. Les vaults de frais du créateur et de la plateforme, et le compte token du destinataire des frais de partage, vivent sur le programme qui possède le mint quote.
Quels comptes ont changé de type
Aucun de ces changements ne change de position dans sa liste de comptes. Seule la valeur autorisée change.Initialize (le chemin V1 deprecated) n’est délibérément pas dans ce tableau. Son compte quote-program reste typé pour SPL Token.
Plusieurs d’entre eux ont également resserré leurs contraintes de mint, donc une paire mint/programme mal appariée revient désormais là où elle était précédemment acceptée ou non vérifiée :
- Les quatre instructions de swap contraignent à la fois
base_token_mintetquote_token_mintau programme passé dans l’emplacement correspondant. Aucun ne portait cette contrainte avant, donc un mauvais programme de base était silencieusement accepté. ClaimPlatformFeeajoute la même contrainte surquote_mint.ClaimPlatformFeeFromVaultcorrige sa contrainte d’une forme de compte token à la forme mint sur ce qui est un compte mint.
Comptabilité des frais de transfert côté quote
C’est la partie qui change les nombres plutôt que les listes de comptes. Sur un mint quote sansTransferFeeConfig, chaque formule ci-dessous s’effondre au comportement précédent, donc les pools legacy et les pools Token-2022 sans frais sont bit-for-bit inchangés.
Deux conséquences qui méritent d’être énoncées clairement :
- Une borne calculée à partir d’un pool équivalent sans frais n’est plus acceptable.
BuyExactOutavec le coût sans frais commemaximum_amount_inrevient désormais avecExceededSlippage, tout commeSellExactInavec les revenus sans frais commeminimum_amount_out. C’est le comportement prévu — l’ancienne comparaison permettait au payeur d’être débité des frais de transfert en plus d’une borne à laquelle il avait déjà accepté. - Le pool ne réserve que ce qui a atteint le vault. Après un
BuyExactIndeamount_insur un mint quote à 5 %,real_quoteavance deamount_in × 0.95, pasamount_in.
get_transfer_inverse_fee a également supprimé son cas particulier pour un mint à frais de 100 % : au lieu de revenir à maximum_fee, il retourne désormais la nouvelle erreur CalculateOverflow quand les frais inverses ne peuvent pas être calculés. Un mint quote à 10000 points de base échoue donc les chemins exact-out plutôt que de transiger silencieusement au plafond des frais.
Bit1 de token_program_flag
PoolState.token_program_flag est un champ de bits, et l’a toujours été :
1, car un mint quote peut maintenant être un mint Token-2022. Les quatre valeurs sont :
Lisez le programme de chaque mint avec
(token_program_flag >> bit) & 1. Tout client qui traite l’octet comme un booléen pour le mint de base — flag === 0 ? Token : Token-2022 — résout la valeur 2 en un mint de base Token-2022 et construira le compte token et le transfert côté base par rapport au mauvais programme. Aucun changement de taille de compte ou de décalage de champ, donc les indexeurs n’ont besoin d’aucune migration de stockage, seulement d’une correction de décodage.
Renommage du compte de migration CPMM
MigrateToCpswap prenait auparavant un programme token par mint, et l’appelant décidait lequel était lequel. Il prend désormais les deux programmes sans condition et dérive le mappage des mints eux-mêmes :
Les deux positions sont inchangées, c’est donc un changement de valeur, pas un changement de disposition — mais les valeurs sont proches d’être inversées, et un constructeur qui continue de passer son ancienne paire passera Token-2022 où le programme legacy est requis dès que l’un ou l’autre mint est un mint Token-2022.
Le programme legacy est toujours requis sans condition indépendamment de l’un ou l’autre mint, car le mint LP CPMM et le NFT Fee Key verrouillé vivent toujours sur lui. La disposition
remaining_accounts de la version du 2026-08-17 est inchangée.
Les quote mints sont admis à la seule discrétion de l’administrateur
Contrairement à CPMM et CLMM, LaunchLab n’exécute aucune liste d’autorisation d’extension par rapport à un mint quote.CreateConfig accepte le compte mint tel quel, donc la seule porte est les mints qu’un administrateur lie à un GlobalConfig. La vérification NoSupportExtension du programme s’applique uniquement aux mints de base Token-2022 que LaunchLab crée lui-même, où seuls MetadataPointer et TransferFeeConfig sont autorisés.
Traitez la liaison d’un mint quote Token-2022 comme une action de haute confiance avec le même raisonnement que les listes blanches statiques CPMM/CLMM dans reference/token-2022-support. Un mint quote TransferHook ou PermanentDelegate serait admis au moment de la création de la config et s’exécuterait ensuite sur, ou serait capable de balayer, chaque pool coté en lui.
Porte temporelle amm_creator_fee_on
InitializeV2 supprime la porte temporelle qui rejetait tout amm_creator_fee_on autre que BothToken avant l’horodatage de mise à niveau. La porte équivalente est toujours présente dans InitializeWithToken2022. En pratique, les deux chemins acceptent l’une ou l’autre valeur sur mainnet-beta aujourd’hui, car cet horodatage (1755522000, 2025-08-18 13:00 UTC) est bien passé — c’est du nettoyage, pas un changement de comportement pour les appelants actuels.
Impact sur les erreurs et l’IDL
Les codes6000–6022 sont inchangés, y compris 6022 InvalidPlatformAllowConfig.
La version précédente a retiré l’ancien
6023 et l’a laissé vacant ; cette version réutilise le numéro. Ne décodez pas 6023 avec un IDL de l’une ou l’autre version antérieure.
Actualisez l’IDL LaunchLab avant de passer un programme quote Token-2022, de décoder le bit1 de token_program_flag, ou de construire la liste de comptes MigrateToCpswap renommée.
Impact sur le SDK
Le côté quote du module launchpad du SDK était codé en dur àTOKEN_PROGRAM_ID aux mêmes endroits que le programme. La branche qui accompagne cette version résout le propriétaire du mint quote à la place, le transmet par la création de compte token, l’ATA du destinataire des frais de partage et l’emplacement du programme quote de l’instruction, et ajoute un transferFeeConfigB optionnel aux quatre méthodes Curve afin que les quotes reflètent les formules ci-dessus. Les résultats de Curve gagnent un champ transferFeeB ; amountB garde sa signification — ce que le payeur dépense ou ce que le vendeur reçoit — donc un mint quote sans frais produit des nombres identiques à avant.
Ces modifications du SDK ne sont pas publiées. L’épingle canonique sur les pages de démonstration de code dans cet ensemble de documentation est inchangée ; vérifiez la version publiée avant de vous fier aux nouveaux paramètres.
Implémentation de référence
Une nouvelle démo s’abonne au programme LaunchLab sur Yellowstone gRPC et enregistre, pour chaque mise à jour deGlobalConfig et PoolState, si chaque mint est un mint Token ou Token-2022 :
raydium-sdk-V2-demo/src/grpc/launchpadPoolInfo.ts
C’est une référence compacte pour deux choses que cette version rend nécessaires. Les pools sont classés directement à partir de token_program_flag, en décodant les deux bits sans aucune récupération de mint — c’est la correction pour la rupture du bit1 décrite ci-dessus. Les configs ne peuvent pas être classées de cette façon, car un GlobalConfig ne stocke que l’adresse de son mint quote et aucun drapeau de programme, donc la démo lit le propriétaire du compte mint une fois et le met en cache par mint. Voir les deux chemins côte à côte est le moyen le plus rapide de vérifier votre propre décodeur.
Voir products/launchlab/code-demos pour la procédure pas à pas.
Pages mises à jour
products/launchlab/accounts— programme token du mint quote, disposition du bit detoken_program_flaget propriété du vault.products/launchlab/instructions— comptes quote-program, sémantique du slippage des swaps et comptes de migration renommés.products/launchlab/global-config—quote_mintpeut être un mint Token-2022, et ce qui le porte ou non.products/launchlab/code-demos— le watcher config/pool gRPC.reference/token-2022-support— ligne LaunchLab et section quote-mint.reference/error-codes—6023CalculateOverflow.

