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 →
Fonte de verdade. As tabelas abaixo são regeneradas a partir do arquivo error.rs de cada programa nos repositórios públicos do Raydium. Quando um programa é atualizado e uma nova variante é adicionada, execute novamente a extração (link no final de cada tabela) e acrescente à tabela em vez de reorganizar — os códigos de erro Anchor são atribuídos pela ordem de origem, não pelo nome, então reorganizar quebra o tratamento de erros dos integradores.

Como funcionam os códigos de erro Anchor

O Anchor atribui a cada variante do enum ErrorCode de um programa um código numérico começando em 6000. Uma transação que falha expõe:
  • Código de erro numérico (ex: 0x1771 = 6001) nos logs da transação.
  • Nome do erro (ex: InvalidOwner) a partir do IDL.
  • String #[msg(...)] que o Anchor emitiu em log_messages.
Os integradores devem fazer correspondência com o código numérico, não com a string de mensagem (a string pode ser reformulada sem aumentar uma versão).

Erros do CPMM (AMM padrão)

ID do programa: veja reference/program-addresses. Fonte: raydium-cp-swap/programs/cp-swap/src/error.rs. Fonte de regeneração: github.com/raydium-io/raydium-cp-swap — error.rs.

Erros do CLMM

ID do programa: veja reference/program-addresses. Fonte: raydium-clmm/programs/amm/src/error.rs.
Nota sobre renumeração. O enum ErrorCode do CLMM foi renumerado nesta versão: cinco variantes legadas (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) e vários erros de digitação (Liquitity, enought, emissiones) foram removidos/corrigidos, e onze novas variantes foram acrescentadas. Como o Anchor numera erros pela ordem de origem, cada código em ou após 6000 mudou em relação a compilações pré-lançamento. Clientes que codificaram códigos numéricos contra uma versão anterior precisam remapear.
Fonte de regeneração: github.com/raydium-io/raydium-clmm — error.rs.

Erros do AMM v4, Farm v3 / v5 / v6, LaunchLab

Esses programas são documentados em seus respectivos capítulos (veja products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Como esses programas usam uma mistura de superfícies de erro Anchor e Solana simples, suas tabelas de erro vivem ao lado da referência de instrução em vez de aqui. Os códigos abaixo são reservados por esses capítulos: O lançamento do LaunchLab mantém os códigos 60006021 inalterados. Remove os antigos erros de acesso global da plataforma e atribui 6022 ao novo erro de validação de conta de permissão: As antigas variantes PlatformGlobalAccessDenied (6022) e InvalidPlatformGlobalAccess (6023) são removidas. Não decodifique 6022 usando o IDL anterior.

Mapeando erros do SDK para erros do programa

O SDK TypeScript oficial envolve erros on-chain em SendTransactionError e, para programas Anchor, AnchorError:
Se você não estiver usando o cliente Anchor, analise os logs da transação:
O padrão Error Number: (\d+) é estável entre versões do Anchor e seguro para corresponder.

Regenerando essas tabelas

Quando um programa é atualizado e adiciona um novo erro, re-extraia da fonte:
Sempre atualize reference/changelog quando uma nova variante é adicionada, para que os integradores que atualizam o SDK saibam atualizar seus manipuladores de erro. Fontes: