Skip to main content
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Une entrée de journal des modifications de documentation pour une mise à jour du programme CPMM à venir. Pour l’index de toutes les mises à jour, consultez reference/changelog. Pour la chronologie historique du protocole, consultez introduction/history-and-milestones.
Cette version ajoute un chemin opérationnel sans permission pour la collecte des frais de créateur. N’importe qui peut payer pour déclencher le transfert, mais le programme fixe le propriétaire du destinataire à PoolState.pool_creator et fixe les deux destinations aux comptes de jetons associés canoniques de ce créateur. L’instruction existante signée par le créateur reste inchangée. Elle permet également à une autorité dédiée de créer des PDA CPMM Permission. Cette délégation est intentionnellement asymétrique : l’autorité dédiée peut accorder l’accès à InitializeWithPermission, tandis que seul l’administrateur du programme peut révoquer une autorisation avec ClosePermissionPda.

TL;DR pour les intégrateurs

  • Nouvelle instruction additive : CollectCreatorFeePermissionless. N’importe quel signataire peut être le payer. Le créateur du pool enregistré ne signe pas.
  • L’appelant ne peut pas rediriger les fonds. creator doit être égal à pool_state.pool_creator. creator_token_0 et creator_token_1 doivent être les ATA canoniques de ce créateur pour les mints des coffres du pool et leurs programmes de jetons respectifs.
  • Le payeur couvre les ATA manquants. Les deux comptes destinataires utilisent init_if_needed ; le payeur finance le loyer lorsque l’un des comptes n’existe pas.
  • La collecte est tout ou rien. L’instruction transfère les deux compteurs de frais de créateur accumulés complets, les met à zéro tous les deux, et met à jour recent_epoch. Elle retourne l’erreur NoFeeCollect existante lorsque les deux compteurs sont à zéro.
  • Les intégrations existantes restent compatibles. CollectCreatorFee n’est pas modifié ni supprimé. Aucune modification de disposition PoolState, AmmConfig, Permission, événement ou code d’erreur n’est présente.
  • La création de Permission a un deuxième propriétaire. CreatePermissionPda accepte l’administrateur du programme ou un propriétaire de création de PDA Permission dédié. ClosePermissionPda reste réservé à l’administrateur.

Nouveaux comptes d’instruction

CollectCreatorFeePermissionless prend 14 comptes dans cet ordre : Contrairement à CollectCreatorFee, la nouvelle disposition a des comptes payer et creator non-signataire séparés et ne prend pas amm_config. Elle nécessite donc son propre discriminateur et constructeur.

Impact sur le SDK et l’IDL

La branche source du programme n’inclut pas de mise à jour SDK ou IDL validée. Les intégrateurs doivent actualiser l’IDL CPMM déployé ou utiliser une version client qui supporte explicitement CollectCreatorFeePermissionless. L’ensemble de constructeurs @raydium-io/raydium-sdk-v2@0.2.42-alpha épinglé de la documentation couvre uniquement le chemin original signé par le créateur.

Limite de sécurité

L’invocation sans permission ne signifie pas la garde sans permission. L’appelant peut choisir quand collecter et peut dépenser du SOL pour créer des ATA de créateur manquants. L’appelant ne peut pas choisir le bénéficiaire, substituer des comptes de jetons arbitraires, demander un montant partiel, ou modifier la configuration des frais de créateur du pool. Le nouveau rôle de créateur de PDA Permission peut créer une autorisation pour n’importe quel permission_authority, et il paie le loyer du nouveau compte. Il ne peut pas fermer ce PDA sous cette modification. Traitez-le comme une autorité d’autorisation déléguée, pas comme un administrateur de permission complet.

Notes de migration

  • Gardez les transactions CollectCreatorFee existantes inchangées.
  • Ajoutez l’instruction sans permission uniquement après que le déploiement CPMM cible et l’IDL client l’incluent.
  • L’automatisation peut analyser les pools avec creator_fees_token_0 ou creator_fees_token_1 non nuls et déclencher la collecte sans garde des clés de créateur.
  • Traitez NoFeeCollect comme une course bénigne lorsqu’un autre appelant vide les compteurs en premier.
  • Ne passez pas de comptes de jetons destinataires arbitraires ; dérivez les ATA de créateur de pool_state.pool_creator, de chaque mint de coffre, et du programme de jetons correspondant.

Pages mises à jour

  • products/cpmm/overview — mise à jour de la collecte des frais de créateur et résumé de la sécurité des destinations.
  • products/cpmm/instructions — résumé de la nouvelle instruction, liste complète des comptes, effets, et matrice de changement d’état.
  • products/cpmm/accounts — chemins de collecte des compteurs de frais de créateur et création de PDA Permission déléguée.
  • products/cpmm/fees — mécaniques de collecte sans permission et flux opérationnel.
  • products/cpmm/code-demos — avertissement de disponibilité du SDK et limite de migration client.
  • products/launchlab/platform-config — clarification que le créateur CPMM enregistré reste le bénéficiaire même lorsqu’un autre payeur déclenche la collecte.
  • protocol-overview/shared-infrastructure — chemins de collecte contrôlés par autorité et contraints par destination.
  • security/admin-and-multisig — autorité d’autorisation déléguée et limites du collecteur sans permission.
  • reference/program-addresses — adresses du propriétaire CreatePermissionPda dédié canonique.
  • reference/error-codesNoFeeCollect étendu pour couvrir la collecte des frais de créateur.
Vérifié 2026-08-13 contre :
Cette vérification couvre la branche source, pas un déploiement mainnet-beta. Confirmez le programme déployé et l’IDL publié avant d’activer le nouveau chemin en production.