Skip to main content
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Esta entrada aborda uma atualização futura do programa LaunchLab. Foi verificada contra a branch de lançamento local antes da implantação. Confirme o programa implantado antes de depender da retirada de taxas retidas pré-graduação.
Um mint base Token-2022 criado por InitializeWithToken2022 pode carregar uma TransferFeeConfig. Essa extensão tem duas autoridades: transfer_fee_config_authority, que altera a taxa de taxa e a taxa máxima, e withdraw_withheld_authority, que retira as taxas que Token-2022 retém nas contas de token. Até este lançamento, o programa colocava a PDA de authority de lançamento em ambas na criação do mint e entregava ambas a PlatformConfig.transfer_fee_extension_auth na graduação. O programa do launchpad não possui instrução de withdraw-withheld ou harvest, portanto, durante toda a fase de curva de ligação, ninguém poderia retirar o saldo retido — a única chave que poderia era uma PDA sem instrução para assinar com ela. Este lançamento escreve transfer_fee_extension_auth diretamente em withdraw_withheld_authority na criação do mint, para que a plataforma possa coletar taxas retidas desde a primeira negociação. MigrateToCpswap ganha uma proteção para que apenas reatribua essa autoridade quando a PDA ainda a mantém, o que mantém a graduação funcionando para mints de ambas as gerações. Nada mais mudou. Nenhuma conta cresceu ou encolheu, nenhuma instrução ganhou ou perdeu uma conta, nenhum argumento mudou e nenhum código de erro se moveu.

TL;DR para integradores

  • As taxas de transferência retidas são retiráveis durante o lançamento. Em um novo lançamento Token-2022 cuja plataforma tem transfer_fee_extension_auth definido, essa chave é a withdraw_withheld_authority do mint desde a criação. Chame diretamente WithdrawWithheldTokensFromAccounts / WithdrawWithheldTokensFromMint do próprio Token-2022; LaunchLab não possui instrução para isso e nunca teve.
  • O tempo de transfer_fee_config_authority não mudou. Ainda é a PDA de authority de lançamento até a graduação e ainda se move para transfer_fee_extension_auth em MigrateToCpswap. A taxa não pode ser alterada durante o lançamento.
  • Defina transfer_fee_extension_auth antes de lançar. Quando é Pubkey::default() na criação do mint, a autoridade de retirada volta para a PDA de authority — o comportamento antigo. Definir o campo depois ainda recupera a autoridade na graduação, mas o saldo retido fica preso até então.
  • Não rotacione o campo durante o lançamento. As duas autoridades são lidas em dois momentos diferentes, portanto um valor que muda entre eles as deixa em chaves diferentes. Detalhes em A rotação divide as duas autoridades.
  • MigrateToCpswap não mudou para chamadores. Mesmas contas, mesmos argumentos, mesmos erros. A nova proteção é interna; sem ela, a migração de um mint de nova geração reverteria dentro de Token-2022 porque a PDA não pode mais assinar uma autoridade que não mantém.
  • Lançamentos existentes não são afetados. Mints já on-chain mantêm a PDA em ambas as autoridades e ainda as recebem na graduação.
  • Nenhuma atualização de IDL é necessária. Nenhum layout, conta, argumento ou código de erro mudou.

Quem mantém o quê e quando

Ambas as transferências ainda estão atrás da mesma condição externa que sempre estiveram: o mint base deve carregar TransferFeeConfig e transfer_fee_extension_auth deve ser não-padrão. Uma plataforma que nunca define o campo mantém ambas as autoridades na PDA de authority para sempre — a taxa nunca pode ser alterada e o saldo retido nunca pode ser retirado.

A rotação divide as duas autoridades

transfer_fee_extension_auth é lido duas vezes por lançamento, em dois momentos que podem estar dias de distância:
  1. Em InitializeWithToken2022, para withdraw_withheld_authority.
  2. Em MigrateToCpswap, para transfer_fee_config_authority — e para withdraw_withheld_authority apenas quando a PDA ainda a mantém.
Rotacione o campo através de UpdatePlatformConfig entre eles e as duas autoridades acabam em chaves diferentes: o lado de retirada mantém a chave que foi configurada na criação, porque a PDA não a mantém mais e a migração pula essa transferência, enquanto o lado de configuração de taxa vai para a nova chave. Nenhuma chamada falha; a divisão é silenciosa. Rotacione entre lançamentos ou reconcilie as chaves depois através de Token-2022 diretamente com a chave antiga assinando.

Por que a proteção é necessária, não apenas defensiva

SetAuthority do Token-2022 requer que a autoridade atual assine. Sob a nova regra de criação, a PDA de authority de lançamento não é a autoridade de withdraw-withheld em um novo mint, portanto o CPI incondicional que o programa costumava fazer falharia — e porque fica dentro de MigrateToCpswap, essa falha teria bloqueado a graduação para cada lançamento Token-2022 com uma taxa de transferência em uma plataforma que tinha configurado o campo. As duas mudanças funcionam apenas como um par.

O que não mudou

  • Matemática e contabilidade de taxa de transferência. MAX_TRANSFER_FEE_RATE ainda é 500 (5%, denominador 10_000), a taxa ainda é precificada na curva da mesma forma, e o saldo retido ainda se acumula nas contas de token que Token-2022 coloca.
  • Interface de MigrateToCpswap. Mesma lista de contas, mesmos índices de remaining_accounts, mesmos dois programas de token, sem argumentos.
  • Interface de InitializeWithToken2022. Mesmas contas, mesmos TransferFeeExtensionParams, mesma rejeição de NoSupportExtension para qualquer coisa fora de MetadataPointer e TransferFeeConfig.
  • Manipulação de Token-2022 do lado da cotação. Inalterado desde 2026-08-24.
  • Códigos de erro. 60006023 não mudaram; este lançamento não adiciona nenhum.
  • Layouts de conta e o IDL. Inalterado. PlatformConfig.transfer_fee_extension_auth mantém seu deslocamento e seu tipo; apenas quando o programa o lê mudou.

Páginas atualizadas

  • products/launchlab/platform-config — nova seção “Autoridades de taxa de transferência Token-2022” cobrindo ambas as autoridades, ambos os pontos de transferência e a armadilha de rotação; comentário de layout e lista de armadilhas corrigidos.
  • products/launchlab/instructionsMigrateToCpswap ganha um bloco “Transferência de autoridade de taxa de transferência Token-2022”; as pós-condições de Initialize registram as novas autoridades de criação de mint.
  • products/launchlab/accounts — lista de funções de PDA de autoridade e a seção de mint base observam quais autoridades de taxa de transferência a PDA realmente mantém.
  • reference/token-2022-support — entrada de mint base LaunchLab declara quem mantém as autoridades de taxa de transferência e quando.