Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Cette entrée couvre une mise à niveau du programme CPMM prévue pour le 2026-10-30. Elle a été vérifiée par rapport à la branche
feat/initialize-v2 de raydium-cp-swap (head 40cbd81) avant le déploiement. Confirmez le programme déployé avant de vous fier à la nouvelle instruction.enable_creator_fee et un côté creator_fee_on, tous deux fixés à la création. Jusqu’à présent, un créateur ne pouvait les définir que via InitializeWithPermission, qui nécessite un PDA Permission émis par l’admin. L’instruction publique Initialize stockait toujours les frais comme désactivés. En pratique, seuls les flux contrôlés comme les graduations LaunchLab pouvaient créer un pool qui facture des frais de créateur.
Cette version ajoute InitializeV2. C’est Initialize avec un argument supplémentaire, creator_fee_on: Option<CreatorFeeOn>, et n’importe qui peut l’appeler. Les mathématiques du pool, le swap, la liquidité, la collecte des frais et la part du protocole sur les frais de créateur ne sont pas modifiés.
TL;DR pour les intégrateurs
- Nouvelle instruction :
InitializeV2. Sans permission. Les arguments sontinit_amount_0,init_amount_1,open_timeetcreator_fee_on: Option<CreatorFeeOn>. Discriminateur[67, 153, 175, 39, 218, 16, 38, 32]. Some(side)active les frais de créateur de ce côté ;Noneles laisse désactivés.Nonestocke exactement ce que stockeInitialize.- Mêmes comptes que
Initialize, sansrent. Les 19 premiers comptes sont identiques et dans le même ordre. Voir la liste des comptes. - Le créateur est le signataire.
pool_state.pool_creatorest lecreatorsignataire. Contrairement àInitializeWithPermission, le bénéficiaire ne peut pas être défini sur une autre adresse. - Le créateur choisit l’activation et le côté, pas le taux. Le pool facture l’
AmmConfig.creator_fee_ratede son niveau de frais. Ce taux vaut0par défaut, donc un pool activé sur un tel niveau n’accumule rien. - Rien d’existant n’a changé.
InitializeetInitializeWithPermissionconservent leurs discriminateurs, comptes, arguments et comportement. Aucune disposition de compte ni code d’erreur n’a changé. - Rafraîchissez votre IDL pour obtenir la nouvelle instruction. Les clients qui ne l’appellent jamais n’ont besoin d’aucun changement.
Ce qui a changé dans le programme
Nouvelle instruction : InitializeV2
InitializeV2 exécute le même code de création que Initialize. Elle :
- accepte comme
pool_statesoit le PDA canonique du pool, soit une keypair aléatoire signée ; - applique les mêmes vérifications de la liste blanche Token-2022 et de
SupportMintAssociated, viaremaining_accounts; - rejette la création quand
amm_config.disable_create_poolest activé ; - porte
open_timeàblock_timestamp + 1quand il n’est pas dans le futur ; - verrouille 100 unités de base de LP et mint le reste au créateur ;
- facture
amm_config.create_pool_fee.
PoolState :
Un octet de tag ou de variante invalide échoue à la désérialisation des arguments par Anchor. Aucun nouveau code d’erreur n’intervient.
Comparaison des trois chemins de création
Refactorisation interne
Les trois handlers partagent désormais une seule routineinitialize_pool. La refactorisation ne modifie ni les comptes, ni les arguments, ni les vérifications, ni les valeurs stockées de Initialize ou InitializeWithPermission. Les nouveaux tests vérifient aussi qu’un simple Initialize sur la même configuration stocke toujours les frais de créateur comme désactivés.
Ce que les créateurs doivent savoir
- Vérifiez d’abord le niveau de frais. Le taux des frais de créateur appartient à l’
AmmConfig, pas au pool. Choisissez un niveau dont lecreator_fee_ratecorrespond à ce que vous voulez facturer. Les taux sont listés dansproducts/cpmm/fees. - Le choix est permanent. Aucune instruction ne modifie
enable_creator_feenicreator_fee_onaprès la création. Pour le changer, vous devez créer un nouveau pool. - Les traders les paient en plus des frais de trading. Les frais de créateur sont un taux séparé ajouté au swap. Ils ne réduisent pas les parts LP, protocole ou fonds, mais ils rendent le pool plus cher à trader qu’un pool du même niveau avec les frais désactivés.
- La collecte est inchangée. Utilisez
CollectCreatorFeeouCollectCreatorFeePermissionless. La part du protocole issue de la version du 2026-09-19 s’applique, et vous ne pouvez pas vous y soustraire à la création.
Notes de migration
- Créateurs de pools. Passez de
InitializeàInitializeV2uniquement si vous voulez activer les frais de créateur. PassezSome(side)et supprimez le compterent.Initializecontinue de fonctionner. - Utilisateurs du SDK.
raydium.cpmm.createPooldans@raydium-io/raydium-sdk-v2@0.2.64-alphaconstruitInitialize. Tant qu’aucune version ne fournit de builderInitializeV2, encodez-la à partir de l’IDL rafraîchi. - Indexeurs et routeurs. Attendez-vous à davantage de pools avec
enable_creator_fee = true, créés par des wallets ordinaires plutôt que par LaunchLab. Cotez à partir des propresenable_creator_feeetcreator_fee_onde chaque pool, jamais à partir du seul chemin de création ou du seul niveau. Décodez la nouvelle instruction si vous suivez la création de pools à partir des instructions. Le suivi à partir des comptesPoolStatene nécessite aucun changement. - Interfaces. Indiquez si un pool facture des frais de créateur et à quel taux, car deux pools du même niveau peuvent désormais différer.
- LaunchLab et autres flux avec permission. Aucun changement.
InitializeWithPermissionreste le chemin à utiliser quand le payeur et le créateur enregistré doivent être différents.
Ce qui n’a pas changé
- Toutes les dispositions de compte, y compris
PoolStateetAmmConfig. InitializeetInitializeWithPermission: discriminateurs, comptes, arguments et valeurs stockées.Permission,CreatePermissionPdaetClosePermissionPda.- Les mathématiques de swap, de dépôt et de retrait, la facturation des frais de créateur et la part du protocole sur les frais de créateur.
- Codes d’erreur.
6000–6015sont inchangés ; rien n’a été ajouté. - ID du programme.
Pages mises à jour
products/cpmm/instructions: bannière de mise à niveau ; lignes du résumé et de la matrice de changement d’état ; nouvelle sectionInitializeV2avec arguments, encodage et liste des comptes ; la postcondition deInitializerenvoie désormais versInitializeV2.products/cpmm/fees: la section « Frais de créateur » liste les trois chemins de création et précise qu’activer les frais ne fixe pas leur taux.products/cpmm/accounts: notes surpoolStateet l’ID du pool ; notes des champscreator_fee_on/enable_creator_fee; note surPermission; ligne du cycle de vie des comptes.products/cpmm/overview: l’encadré « Nouveautés » et la puce « Frais prévisibles ».products/cpmm/code-demos: note indiquant quecreatePoolconstruitInitializeet comment accéder àInitializeV2.protocol-overview/shared-infrastructure: les frais de créateur ne sont plus limités aux pools diplômés de LaunchLab.reference/token-2022-support: chemins de création de pools CPMM.
feat/initialize-v2 de raydium-cp-swap (40cbd81) : programs/cp-swap/src/lib.rs, instructions/initialize_v2.rs, instructions/initialize.rs, instructions/initialize_with_permission.rs, instructions/mod.rs, states/pool.rs et tests/initialize_v2.test.ts.
