Skip to main content
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 CLMM prévue pour le 2026-10-22. Elle a été vérifiée par rapport à la branche feat/create-customizable-pool-v2 de raydium-clmm (head 18f5db1) avant le déploiement. Confirmez le programme déployé avant de vous fier au nouveau nom d’instruction ou à la liste des comptes. La version du 2026-07-30 a ajouté CreatePermissionedPool, qui permet à un appelant de créer plus d’un pool pour le même (amm_config, token_mint_0, token_mint_1) en intégrant un seed_index dans le PDA du pool. C’était contrôlé : le payeur devait détenir un PDA Permission émis par un administrateur. Cette version supprime cette porte. L’instruction est renommée en CreateCustomizablePoolV2, n’importe qui peut l’appeler, et tout le mécanisme de permission est supprimé du programme. Les mathématiques du pool, le swap, la liquidité, les ordres limites, les frais et les récompenses restent inchangés.

TL;DR pour les intégrateurs

  • CreatePermissionedPool → CreateCustomizablePoolV2. Mêmes arguments (CreateCustomizableParams, seed_index: u16) et même dérivation d’adresse de pool. Le discriminateur Anchor change avec le nom, donc une transaction construite par rapport à l’ancienne instruction échoue après la mise à niveau. Reconstruisez-la par rapport au nouvel IDL.
  • Le compte permission a disparu de la liste des comptes. Il se trouvait à la position 3, donc chaque compte à partir de amm_config remonte d’une position. Voir la nouvelle liste des comptes.
  • La création multi-pool est maintenant sans permission. N’importe quel payeur peut créer des pools supplémentaires pour une paire et un niveau de frais avec un seed_index non nul. Traitez une paire comme ayant potentiellement de nombreux pools CLMM par niveau de frais, créés par n’importe qui.
  • Permission, CreatePermissionPda et ClosePermissionPda sont supprimés. Le programme et l’IDL ne connaissent plus le type Permission.
  • Actualisez votre IDL. Il supprime deux instructions et un type de compte, pour 37 instructions et 53 erreurs.
  • Aucune disposition de compte n’a changé et aucun code d’erreur n’a été ajouté. PoolState.seed_index conserve son décalage ; seule sa signification s’élargit de « pool autorisé » à « n’importe quel pool V2 ».

Ce qui a changé dans le programme

CreatePermissionedPool renommé en CreateCustomizablePoolV2

Le gestionnaire est le même code sous un nouveau nom. Il continue à :
  • exiger seed_index > 0 ;
  • dériver le pool à ["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()] ;
  • prendre le même CreateCustomizableParams que CreateCustomizablePool, donc les frais unilatéraux (collect_fee_on) et l’opt-in de frais dynamiques fonctionnent de la même manière ;
  • appliquer les mêmes vérifications de support de mint Token-2022 que CreatePool ;
  • enregistrer pool_creator comme pool_state.owner et écrire seed_index dans PoolState ;
  • émettre PoolCreatedEvent.
La vérification du PDA Permission est le seul comportement supprimé.

Liste des comptes CreateCustomizablePoolV2

remaining_accounts restent inchangés : les PDAs du registre de support de mint lorsqu’un mint Token-2022 en a besoin, et DynamicFeeConfig en dernier lorsque enable_dynamic_fee = true.
pool_creator n’est pas authentifié. N’importe quel payeur peut écrire n’importe quelle adresse dans pool_state.owner. Cette adresse gagne le droit d’appeler InitializeReward sur le pool, mais elle ne peut pas être utilisée comme preuve de qui l’a créé. Ne classez pas, n’étiquetez pas et ne faites pas confiance à un pool V2 en fonction de son champ owner.

Supprimé : Permission, CreatePermissionPda, ClosePermissionPda

  • Le type de compte Permission (["permission", authority], 280 octets) est supprimé du programme.
  • CreatePermissionPda et ClosePermissionPda sont supprimés, ainsi que la clé permission_pda_admin dédiée qui pouvait les signer.
  • Les PDAs de permission créés avant la mise à niveau restent sur la chaîne. Le programme ne les lit plus et n’a plus d’instruction qui les ferme.

Codes d’erreur

Aucun changement. 6000–6052 conservent leurs numéros. NotApproved (6000) n’a plus de cas « le signataire n’est ni admin ni permission_pda_admin », car ces instructions ont disparu.

Notes de migration

  • Créateurs de pools. Passez de CreatePermissionedPool à CreateCustomizablePoolV2, supprimez le compte permission, et décalez les comptes restants d’une position. Vous n’avez plus besoin d’une autorisation d’administrateur.
  • Indexeurs et routeurs. Indexez les pools CLMM à partir de PoolCreatedEvent ou en scannant les comptes PoolState, pas en dérivant le PDA à quatre seeds. Stockez seed_index pour tout pool où il est non nul, car vous en avez besoin pour re-dériver l’adresse. Attendez-vous à plus de pools non canoniques maintenant que n’importe qui peut les créer, et ne supposez pas que le pool canonique est le plus profond.
  • Interfaces utilisateur. Une paire et un niveau de frais peuvent avoir de nombreux pools avec des prix de départ différents. Affichez la liquidité et l’adresse du pool, et ne présentez pas un pool comme officiel en raison de son owner.
  • Consommateurs d’IDL. Supprimez tout code de décodeur ou client pour Permission, CreatePermissionPda et ClosePermissionPda.

Ce qui n’a pas changé

  • Chaque disposition de compte, y compris PoolState (le champ seed_index et son décalage sont les mêmes).
  • CreatePool et CreateCustomizablePool. Ils créent toujours le pool canonique unique par paire et niveau, avec seed_index = [0, 0].
  • Pools créés via CreatePermissionedPool avant la mise à niveau. Leurs adresses, état et seed_index restent inchangés.
  • Codes d’erreur, swap, liquidité, frais, frais dynamiques, récompenses et comportement des ordres limites.
  • ID du programme.

Pages mises à jour

  • products/clmm/instructions : bannière de mise à niveau ; lignes d’inventaire et de contrôle d’accès administrateur ; section CreateCustomizablePoolV2 avec la nouvelle liste des comptes.
  • products/clmm/accounts : Permission supprimé de l’inventaire et documenté comme retiré ; description de seed_index ; assistant PDA renommé en deriveCustomizablePoolV2 ; lignes de cycle de vie.
  • products/clmm/overview : note « Quoi de neuf ».
  • security/admin-and-multisig : rôle permission_pda_admin supprimé du tableau CLMM.
  • reference/error-codes : description de NotApproved.
  • reference/token-2022-support : chemins de création de pools CLMM.
  • sdk-api/anchor-idl : nombre d’instructions CLMM.
  • protocol-overview/versions-and-migration : puce d’historique de mise à niveau CLMM.
Vérifié par rapport à : branche raydium-clmm feat/create-customizable-pool-v2 (18f5db1) : instructions/create_customizable_pool_v2.rs, instructions/mod.rs, instructions/admin/mod.rs, states/mod.rs, states/pool.rs, lib.rs, et les fichiers supprimés admin/create_permission_pda.rs, admin/close_permission_pda.rs, states/permission.rs.