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é avant de vous fier au retrait des frais retenus avant la graduation.
InitializeWithToken2022 peut porter une TransferFeeConfig. Cette extension a deux autorités : transfer_fee_config_authority, qui modifie le taux de frais et les frais maximaux, et withdraw_withheld_authority, qui retire les frais que Token-2022 retient sur les comptes de jetons.
Jusqu’à cette version, le programme plaçait la PDA d’authority de lancement sur les deux au moment de la création du mint et les remettait toutes les deux à PlatformConfig.transfer_fee_extension_auth à la graduation. Le programme de lancement n’a pas d’instruction de retrait de frais retenus ou de récolte, donc pendant toute la phase de courbe de liaison, personne ne pouvait retirer le solde retenu — la seule clé qui pouvait le faire était une PDA sans instruction pour la signer.
Cette version écrit transfer_fee_extension_auth directement dans withdraw_withheld_authority au moment de la création du mint, de sorte que la plateforme peut récupérer les frais retenus dès le premier échange. MigrateToCpswap gagne une garde pour qu’elle ne réassigne cette autorité que si la PDA la détient toujours, ce qui maintient la graduation fonctionnelle pour les mints des deux générations.
Rien d’autre n’a changé. Aucun compte n’a grandi ou rétréci, aucune instruction n’a gagné ou perdu un compte, aucun argument n’a changé, et aucun code d’erreur n’a bougé.
TL;DR pour les intégrateurs
- Les frais de transfert retenus sont retirables pendant le lancement. Sur un nouveau lancement Token-2022 dont la plateforme a
transfer_fee_extension_authdéfini, cette clé est lawithdraw_withheld_authoritydu mint depuis la création. Appelez directement les propresWithdrawWithheldTokensFromAccounts/WithdrawWithheldTokensFromMintde Token-2022 ; LaunchLab n’a pas d’instruction pour cela et n’en a jamais eu. - Le calendrier de
transfer_fee_config_authorityest inchangé. C’est toujours la PDA d’authorityde lancement jusqu’à la graduation, et elle se déplace toujours verstransfer_fee_extension_authdansMigrateToCpswap. Le taux de frais ne peut pas être modifié en cours de lancement. - Définissez
transfer_fee_extension_authavant le lancement. Quand il estPubkey::default()au moment de la création du mint, l’autorité de retrait revient à la PDA d’authority— l’ancien comportement. Définir le champ après coup récupère toujours l’autorité à la graduation, mais le solde retenu est bloqué jusqu’à ce moment. - Ne faites pas pivoter le champ en cours de lancement. Les deux autorités sont lues à deux moments différents, donc une valeur qui change entre les deux les laisse sur des clés différentes. Détails dans La rotation divise les deux autorités.
MigrateToCpswapest inchangé pour les appelants. Mêmes comptes, mêmes arguments, mêmes erreurs. La nouvelle garde est interne ; sans elle, la migration d’un mint de nouvelle génération reviendrait à l’intérieur de Token-2022 car la PDA ne peut plus signer une autorité qu’elle ne détient pas.- Les lancements existants ne sont pas affectés. Les mints déjà en chaîne gardent la PDA sur les deux autorités et les deux sont toujours remises à la graduation.
- Aucune actualisation IDL n’est requise. Aucune disposition, compte, argument ou code d’erreur n’a changé.
Qui détient quoi, et quand
Les deux remises sont toujours derrière la même condition externe qu’elles l’ont toujours été : le mint de base doit porter
TransferFeeConfig et transfer_fee_extension_auth doit être non-défaut. Une plateforme qui ne définit jamais le champ garde les deux autorités sur la PDA d’authority pour toujours — le taux de frais ne peut jamais être modifié et le solde retenu ne peut jamais être retiré.
La rotation divise les deux autorités
transfer_fee_extension_auth est lu deux fois par lancement, à deux moments qui peuvent être séparés de jours :
- À
InitializeWithToken2022, pourwithdraw_withheld_authority. - À
MigrateToCpswap, pourtransfer_fee_config_authority— et pourwithdraw_withheld_authorityuniquement si la PDA la détient toujours.
UpdatePlatformConfig entre les deux et les deux autorités atterrissent sur des clés différentes : le côté retrait garde la clé qui a été configurée à la création, car la PDA ne la détient plus et la migration ignore cette remise, tandis que le côté configuration des frais va à la nouvelle clé. Aucun appel n’échoue ; la division est silencieuse. Faites pivoter entre les lancements, ou réconciliez les clés après coup directement via Token-2022 avec l’ancienne clé signant.
Pourquoi la garde est requise, pas seulement défensive
LeSetAuthority de Token-2022 exige que l’autorité actuelle signe. Selon la nouvelle règle de création, la PDA d’authority de lancement n’est pas l’autorité de retrait des frais retenus sur un nouveau mint, donc le CPI inconditionnel que le programme avait l’habitude de faire échouerait — et parce qu’il se trouve à l’intérieur de MigrateToCpswap, cet échec aurait bloqué la graduation pour chaque lancement Token-2022 avec des frais de transfert sur une plateforme qui avait configuré le champ. Les deux changements ne fonctionnent que comme une paire.
Ce qui n’a pas changé
- Les mathématiques et la comptabilité des frais de transfert.
MAX_TRANSFER_FEE_RATEest toujours500(5 %, dénominateur10_000), les frais sont toujours évalués dans la courbe de la même manière, et le solde retenu s’accumule toujours sur les comptes de jetons que Token-2022 y place. - L’interface de
MigrateToCpswap. Même liste de comptes, mêmes indicesremaining_accounts, mêmes deux programmes de jetons, pas d’arguments. - L’interface de
InitializeWithToken2022. Mêmes comptes, mêmesTransferFeeExtensionParams, même rejetNoSupportExtensionpour tout ce qui n’est pasMetadataPointeretTransferFeeConfig. - La gestion Token-2022 du côté devis. Inchangée depuis 2026-08-24.
- Les codes d’erreur.
6000–6023sont inchangés ; cette version n’en ajoute aucun. - Les dispositions de compte et l’IDL. Inchangés.
PlatformConfig.transfer_fee_extension_authgarde son décalage et son type ; seul le moment où le programme le lit a changé.
Pages mises à jour
products/launchlab/platform-config— nouvelle section « Autorités de frais de transfert Token-2022 » couvrant les deux autorités, les deux points de remise et le piège de rotation ; commentaire de disposition et liste des pièges corrigés.products/launchlab/instructions—MigrateToCpswapgagne un bloc « Remise d’autorité de frais de transfert Token-2022 » ; les postconditions d’Initializeenregistrent les nouvelles autorités de création de mint.products/launchlab/accounts— liste des rôles de la PDA d’autorité et la section du mint de base notent quelles autorités de frais de transfert la PDA détient réellement.reference/token-2022-support— l’entrée du mint de base LaunchLab indique qui détient les autorités de frais de transfert et quand.

