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 cobre uma atualização futura do programa LaunchLab. Foi verificada contra o branch de lançamento local antes da implantação. Confirme o programa implantado e o IDL publicado antes de ativar os novos caminhos em produção.
Este lançamento permite que um launch seja cotado em um mint Token-2022. Até agora o lado da quote estava fixado no programa SPL Token legado, então apenas o mint base podia ser Token-2022. Todos os lugares onde o mint da quote é tocado — criação de GlobalConfig, inicialização de pool, as quatro instruções de swap, todas as reivindicações de taxa e migração CPMM — agora aceitam qualquer token program, e as instruções de swap levam em conta a taxa de transferência do mint da quote.

TL;DR para integradores

  • Quote mints podem ser Token-2022. CreateConfig aceita um quote_token_mint Token-2022, e InitializeV2 / InitializeWithToken2022 aceitam qualquer token program no slot quote-program. A ordem das contas não muda — o valor que você passa naquele slot é que muda.
  • O Initialize descontinuado ainda é apenas legado. Sua conta quote-program ainda é tipada para SPL Token, então uma config cujo mint da quote é Token-2022 só pode ser lançada através de InitializeV2 ou InitializeWithToken2022.
  • Os limites de slippage se movem para o que o pagador realmente paga e recebe. minimum_amount_out e maximum_amount_in agora são comparados contra o valor líquido da taxa de transferência do mint da quote, não o valor que o vault moveu. A lógica de cotação existente subestima o custo e superestima o resultado em um mint da quote com taxa.
  • PoolState.token_program_flag bit1 torna-se significativo. Sempre foi 0 enquanto os mints da quote eram apenas legados. Clientes que comparam o byte inteiro contra 0 agora lerão um mint base legado como Token-2022 sempre que o mint da quote for Token-2022. Esta é a quebra silenciosa mais provável neste lançamento.
  • MigrateToCpswap renomeia suas duas contas de token-program. base_token_program / quote_token_program tornam-se token_program / token_program_2022. Ambas são sempre obrigatórias, e o programa escolhe a correta por mint.
  • Pares mint/program agora são validados. Ambos os mints de swap ganharam uma restrição mint::token_program, assim como o mint da quote de ClaimPlatformFee, então um par incompatível reverte em vez de ser ignorado.
  • Novo erro 6023 CalculateOverflow. Os códigos 60006022 não mudam. 6023 foi liberado pela versão anterior e agora é reutilizado.
  • Vaults de taxa seguem o mint da quote. Vaults de taxa do criador e plataforma, e a conta de token do receptor de taxa de compartilhamento, vivem em qualquer programa que possua o mint da quote.

Quais contas mudaram de tipo

Nenhuma delas muda de posição em sua lista de contas. Apenas o valor permitido muda. Initialize (o caminho V1 descontinuado) intencionalmente não está nesta tabela. Sua conta quote-program permanece tipada para SPL Token. Vários destes também aprimoraram suas restrições de mint, então um par mint/program incompatível agora reverte onde era previamente aceito ou não verificado:
  • As quatro instruções de swap restringem tanto base_token_mint quanto quote_token_mint ao programa passado no slot correspondente. Nenhum carregava essa restrição antes, então um programa base errado era silenciosamente aceito.
  • ClaimPlatformFee adiciona a mesma restrição em quote_mint.
  • ClaimPlatformFeeFromVault corrige sua restrição de uma forma de conta de token para a forma de mint no que é uma conta de mint.

Contabilidade de taxa de transferência do lado da quote

Esta é a parte que muda números em vez de listas de contas. Em um mint da quote sem TransferFeeConfig cada fórmula abaixo colapsa para o comportamento anterior, então pools legados e pools Token-2022 sem taxa são bit-por-bit inalterados. Duas consequências que valem a pena ser declaradas claramente:
  • Um limite computado de um pool equivalente sem taxa não é mais aceitável. BuyExactOut com o custo sem taxa como maximum_amount_in agora reverte com ExceededSlippage, e o mesmo acontece com SellExactIn com o resultado sem taxa como minimum_amount_out. Este é o comportamento pretendido — a comparação anterior permitia que o pagador fosse debitado da taxa de transferência além de um limite que já havia concordado.
  • O pool registra apenas o que chegou ao vault. Após um BuyExactIn de amount_in em um mint da quote de 5%, real_quote avança por amount_in × 0.95, não amount_in.
get_transfer_inverse_fee também removeu seu caso especial para um mint com taxa de 100%: em vez de voltar para maximum_fee, agora retorna o novo erro CalculateOverflow quando a taxa inversa não pode ser computada. Um mint da quote em 10000 basis points portanto falha nos caminhos exact-out em vez de transacionar silenciosamente no limite de taxa.

Bit1 de token_program_flag

PoolState.token_program_flag é um campo de bits, e sempre foi:
O campo, as posições de bit e o código que escreve ambos os bits todos antecedem este lançamento. O que muda é que bit1 agora pode realmente ser 1, porque um mint da quote agora pode ser um mint Token-2022. Os quatro valores são: Leia o programa de cada mint com (token_program_flag >> bit) & 1. Qualquer cliente que trate o byte como um booleano para o mint base — flag === 0 ? Token : Token-2022 — resolve o valor 2 para um mint base Token-2022 e construirá a conta de token do lado base e transferência contra o programa errado. Nenhuma mudança de tamanho de conta ou offset de campo, então indexadores não precisam de migração de armazenamento, apenas uma correção de decodificação.

Renomeação de conta de migração CPMM

MigrateToCpswap anteriormente levava um token program por mint, e o chamador decidia qual era qual. Agora leva ambos os programas incondicionalmente e deriva o mapeamento dos próprios mints: As duas posições não mudam, então esta é uma mudança de valor, não uma mudança de layout — mas os valores estão próximos de serem invertidos, e um construtor que continua passando seu par antigo passará Token-2022 onde o programa legado é obrigatório assim que qualquer mint for um mint Token-2022. O programa legado ainda é obrigatório incondicionalmente independentemente de qualquer mint, porque o mint LP CPMM e o NFT Fee Key de liquidez bloqueada sempre vivem nele. O layout remaining_accounts do lançamento de 2026-08-17 não muda.

Quote mints são admitidos apenas por discrição do admin

Diferentemente de CPMM e CLMM, LaunchLab executa nenhuma lista de permissão de extensão contra um mint da quote. CreateConfig aceita a conta de mint como está, então o único portão é quais mints um admin vincula a um GlobalConfig. A verificação NoSupportExtension do programa se aplica apenas aos mints base Token-2022 que o LaunchLab cria a si mesmo, onde apenas MetadataPointer e TransferFeeConfig são permitidos. Trate a vinculação de um mint da quote Token-2022 como uma ação de alta confiança, pela mesma razão que registrar um mint no registro de mint de suporte CPMM/CLMM é — veja reference/token-2022-support. Um mint da quote TransferHook ou PermanentDelegate seria admitido no momento da criação de config e então executaria em, ou seria capaz de varrer, cada pool cotado nele.

Portão de timestamp amm_creator_fee_on

InitializeV2 remove o portão de timestamp que rejeitava qualquer amm_creator_fee_on diferente de BothToken antes do timestamp de atualização. O portão equivalente ainda está presente em InitializeWithToken2022. Na prática ambos os caminhos aceitam qualquer valor em mainnet-beta hoje, porque esse timestamp (1755522000, 2025-08-18 13:00 UTC) está muito no passado — isto é limpeza, não uma mudança de comportamento para chamadores atuais.

Impacto de erro e IDL

Os códigos 60006022 não mudam, incluindo 6022 InvalidPlatformAllowConfig. O lançamento anterior aposentou o antigo 6023 e o deixou vago; este lançamento reutiliza o número. Não decodifique 6023 com um IDL de qualquer versão anterior. Atualize o IDL do LaunchLab antes de passar um programa de quote Token-2022, decodificar bit1 de token_program_flag, ou construir a lista de contas MigrateToCpswap renomeada.

Impacto do SDK

O lado da quote do módulo launchpad do SDK era hard-coded para TOKEN_PROGRAM_ID nos mesmos lugares que o programa era. O branch que acompanha este lançamento resolve o proprietário do mint da quote em vez disso, o passa através da criação de conta de token, a ATA do receptor de taxa de compartilhamento e o slot quote-program da instrução, e adiciona um transferFeeConfigB opcional aos quatro métodos Curve para que as quotes reflitam as fórmulas acima. Os resultados de Curve ganham um campo transferFeeB; amountB mantém seu significado — o que o pagador gasta ou o vendedor recebe — então um mint da quote sem taxa produz números idênticos a antes. Estas mudanças do SDK não foram lançadas. O pin canônico nas páginas de demonstração de código neste conjunto de documentação não muda; verifique a versão publicada antes de confiar nos novos parâmetros.

Implementação de referência

Código de demonstração para buscar instantaneamente configurações de quote recém-criadas: raydium-sdk-V2-demo/src/grpc/launchpadPoolInfo.ts É uma referência compacta para duas coisas que este lançamento torna necessárias. Pools são classificados diretamente de token_program_flag, decodificando ambos os bits sem nenhuma busca de mint — essa é a correção para a quebra de bit1 descrita acima. Configs não podem ser classificadas dessa forma, porque um GlobalConfig armazena apenas o endereço do mint da quote e nenhum sinalizador de programa, então a demonstração lê a conta de mint do proprietário uma vez e a armazena em cache por mint. Ver ambos os caminhos lado a lado é a forma mais rápida de verificar seu próprio decodificador. Veja products/launchlab/code-demos para o passo a passo.

Páginas atualizadas

  • products/launchlab/accounts — token program do mint da quote, layout de bit de token_program_flag e propriedade do vault.
  • products/launchlab/instructions — contas quote-program, semântica de slippage de swap e contas de migração renomeadas.
  • products/launchlab/global-configquote_mint pode ser um mint Token-2022, e o que faz e não faz portão nele.
  • products/launchlab/code-demos — o observador de config/pool gRPC.
  • reference/token-2022-support — linha LaunchLab e seção de mint da quote.
  • reference/error-codes6023 CalculateOverflow.