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 →
Fonte de verdade. As tabelas abaixo são regeneradas a partir do 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 reordenar — os códigos de erro Anchor são atribuídos pela ordem no código-fonte, não pelo nome, portanto reordenar 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 com falha expõe:
  • Código de erro numérico (ex.: 0x1771 = 6001) nos logs da transação.
  • Nome do erro (ex.: InvalidOwner) proveniente do IDL.
  • String #[msg(...)] emitida pelo Anchor em log_messages.
Integradores devem verificar o código numérico, não a string da mensagem (a string pode ser reformulada sem incrementar 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 tipográficos (Liquitity, enought, emissiones) foram removidos/corrigidos, e onze novas variantes foram acrescentadas. Como o Anchor numera os erros pela ordem no código-fonte, todos os códigos a partir de 6000 foram deslocados em relação às builds anteriores ao lançamento. Clientes que codificaram diretamente os códigos numéricos para 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 e LaunchLab

Esses programas estão documentados em seus respectivos capítulos (veja products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Como esses programas utilizam uma combinação de superfícies de erro Anchor e Solana puro, suas tabelas de erro ficam junto à referência de instruções, e não aqui. Os códigos abaixo são reservados por esses capítulos:

Mapeando erros do SDK para erros de programa

O SDK TypeScript oficial encapsula erros on-chain em SendTransactionError e, para programas Anchor, em 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 verificar.

Regenerando estas tabelas

Quando um programa é atualizado e adiciona um novo erro, reextraia a partir do código-fonte:
Sempre atualize reference/changelog quando uma nova variante for adicionada, para que os integradores que estão atualizando o SDK saibam que precisam atualizar seus tratadores de erro. Fontes: