Saltar para o conteúdo principal
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 do programa CPMM agendada para 2026-10-30. Foi verificada contra o branch feat/initialize-v2 do raydium-cp-swap (head 40cbd81) antes da implantação. Confirme o programa implantado antes de confiar na nova instrução.
Todo pool CPMM tem uma flag enable_creator_fee e um lado creator_fee_on, ambos fixados na criação. Até agora, um criador só podia defini-los via InitializeWithPermission, que precisa de um PDA Permission emitido pelo admin. O Initialize público sempre armazenava a taxa como desabilitada. Na prática, apenas graduações do LaunchLab e outros fluxos controlados podiam criar um pool que cobrasse uma taxa de criador. Esta release adiciona InitializeV2. É Initialize com um argumento extra, creator_fee_on: Option<CreatorFeeOn>, e qualquer um pode chamá-la. A matemática do pool, swap, liquidez, coleta de taxas e a parcela do protocolo da taxa de criador não foram tocados.

TL;DR para integradores

  • Nova instrução: InitializeV2. Sem permissão. Os argumentos são init_amount_0, init_amount_1, open_time e creator_fee_on: Option<CreatorFeeOn>. Discriminador [67, 153, 175, 39, 218, 16, 38, 32].
  • Some(side) habilita a taxa de criador nesse lado; None a deixa desligada. None armazena exatamente o que Initialize armazena.
  • Mesmas contas que Initialize, menos rent. As primeiras 19 contas são idênticas e estão na mesma ordem. Veja a lista de contas.
  • O criador é o assinante. pool_state.pool_creator é o creator assinante. Ao contrário de InitializeWithPermission, o beneficiário não pode ser definido para outro endereço.
  • O criador escolhe ligar/desligar e o lado, não a alíquota. O pool cobra o AmmConfig.creator_fee_rate do seu nível de taxa. Essa alíquota tem padrão 0, então um pool habilitado em um nível assim não acumula nada.
  • Nada existente mudou. Initialize e InitializeWithPermission mantêm seus discriminadores, contas, argumentos e comportamento. Nenhum layout de conta ou código de erro foi alterado.
  • Atualize seu IDL para obter a nova instrução. Clientes que nunca a chamam não precisam de mudança.

O que mudou no programa

Nova instrução: InitializeV2

InitializeV2 executa o mesmo código de criação que Initialize. Ela:
  • aceita como pool_state o PDA canônico do pool ou uma keypair aleatória assinada;
  • aplica as mesmas verificações da lista de permissões Token-2022 e de SupportMintAssociated, via remaining_accounts;
  • rejeita a criação quando amm_config.disable_create_pool está definido;
  • aumenta open_time para block_timestamp + 1 quando ele não está no futuro;
  • bloqueia 100 unidades base de LP e cunha o restante para o criador;
  • cobra amm_config.create_pool_fee.
A única diferença é o que ela grava no novo PoolState: Um byte de tag ou de variante inválido falha na desserialização de argumentos do Anchor. Nenhum código de erro novo está envolvido.

Como os três caminhos de criação se comparam

Refatoração interna

Os três handlers agora compartilham uma única rotina initialize_pool. A refatoração não altera as contas, argumentos, verificações ou valores armazenados de Initialize ou InitializeWithPermission. Os novos testes também verificam que um Initialize simples na mesma configuração ainda armazena a taxa de criador como desabilitada.

O que os criadores devem saber

  • Verifique o nível de taxa primeiro. A alíquota da taxa de criador pertence à AmmConfig, não ao pool. Escolha um nível cujo creator_fee_rate seja o que você quer cobrar. As alíquotas estão listadas em products/cpmm/fees.
  • A escolha é permanente. Nenhuma instrução altera enable_creator_fee ou creator_fee_on após a criação. Para mudá-la, você precisa criar um novo pool.
  • Os traders a pagam além da taxa de negociação. A taxa de criador é uma alíquota separada adicionada ao swap. Ela não reduz as parcelas de LP, protocolo ou fundo, mas torna o pool mais caro para negociar do que um pool no mesmo nível com a taxa desligada.
  • A coleta não mudou. Use CollectCreatorFee ou CollectCreatorFeePermissionless. A parcela do protocolo da release de 2026-09-19 se aplica, e você não pode optar por sair dela na criação.

Notas de migração

  • Criadores de pool. Mude de Initialize para InitializeV2 apenas se quiser a taxa de criador ligada. Passe Some(side) e remova a conta rent. Initialize continua funcionando.
  • Usuários do SDK. raydium.cpmm.createPool em @raydium-io/raydium-sdk-v2@0.2.64-alpha constrói Initialize. Até que uma release traga um builder de InitializeV2, codifique-a a partir do IDL atualizado.
  • Indexadores e roteadores. Espere mais pools com enable_creator_fee = true, criados por carteiras comuns em vez do LaunchLab. Cote a partir dos próprios enable_creator_fee e creator_fee_on de cada pool, nunca apenas a partir do caminho de criação ou do nível. Decodifique a nova instrução se você rastreia a criação de pools a partir de instruções. O rastreamento a partir de contas PoolState não precisa de mudança.
  • UIs. Mostre se um pool cobra uma taxa de criador e com qual alíquota, já que dois pools no mesmo nível agora podem diferir.
  • LaunchLab e outros fluxos com permissão. Sem mudança. InitializeWithPermission continua sendo o caminho quando o pagador e o criador registrado precisam ser diferentes.

O que não mudou

  • Todos os layouts de conta, incluindo PoolState e AmmConfig.
  • Initialize e InitializeWithPermission: discriminadores, contas, argumentos e valores armazenados.
  • Permission, CreatePermissionPda e ClosePermissionPda.
  • Matemática de swap, depósito e saque, a cobrança da taxa de criador e a parcela do protocolo da taxa de criador.
  • Códigos de erro. 6000–6015 permanecem inalterados; nada foi anexado.
  • ID do programa.

Páginas atualizadas

  • products/cpmm/instructions: banner da atualização; linhas do resumo e da matriz de mudança de estado; nova seção InitializeV2 com argumentos, codificação e lista de contas; a pós-condição de Initialize agora aponta para InitializeV2.
  • products/cpmm/fees: a seção “Taxa de criador” lista os três caminhos de criação e observa que habilitar a taxa não define sua alíquota.
  • products/cpmm/accounts: notas de poolState e do ID do pool; notas dos campos creator_fee_on / enable_creator_fee; nota de Permission; linha do ciclo de vida das contas.
  • products/cpmm/overview: o destaque “Novidades” e o item “Taxas previsíveis”.
  • products/cpmm/code-demos: nota de que createPool constrói Initialize e de como chegar a InitializeV2.
  • protocol-overview/shared-infrastructure: as taxas de criador não estão mais limitadas a pools graduados do LaunchLab.
  • reference/token-2022-support: caminhos de criação de pool do CPMM.
Verificado contra: branch feat/initialize-v2 do raydium-cp-swap (40cbd81): programs/cp-swap/src/lib.rs, instructions/initialize_v2.rs, instructions/initialize.rs, instructions/initialize_with_permission.rs, instructions/mod.rs, states/pool.rs e tests/initialize_v2.test.ts.