Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
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 enumErrorCode 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 emlog_messages.
Erros do CPMM (AMM Padrão)
ID do programa: veja reference/program-addresses. Fonte:raydium-cp-swap/programs/cp-swap/src/error.rs.
| Código | Variante | String #[msg] | Causa típica | UX recomendada |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | O chamador não é a autoridade configurada para uma instrução de administrador. | ”Somente o administrador do pool pode executar esta ação.” |
| 6001 | InvalidOwner | Input account owner is not the program address | Uma conta passada pertence ao programa errado (geralmente um programa de token errado ou um PDA de programa incorreto). | ”Interno: incompatibilidade de proprietário da conta — atualize e tente novamente.” |
| 6002 | EmptySupply | Input token account empty | O saldo da conta LP ou de token é zero em uma etapa que requer um valor positivo. | ”Nada a retirar.” |
| 6003 | InvalidInput | InvalidInput | Argumento inválido genérico (valor fora do intervalo, flag incorreta). | ”Entrada inválida — verifique os valores e tente novamente.” |
| 6004 | IncorrectLpMint | Address of the provided lp token mint is incorrect | A conta LP mint passada não corresponde a pool_state.lp_mint. | ”Interno: LP mint incorreto — atualize os dados do pool.” |
| 6005 | ExceededSlippage | Exceeds desired slippage limit | O preço executado é pior do que o minAmountOut / maxAmountIn do usuário. | ”O preço ultrapassou sua tolerância de slippage. Aumente o slippage ou tente novamente.” |
| 6006 | ZeroTradingTokens | Given pool token amount results in zero trading tokens | A matemática de depósito/retirada arredondou um lado para zero (posição muito pequena). | ”O valor está abaixo do mínimo para este pool.” |
| 6007 | NotSupportMint | Not support token_2022 mint extension (gramática no código-fonte) | O pool encontrou uma extensão Token-2022 que não pode ser tratada com segurança (ex.: TransferHook, DefaultAccountState=Frozen). | ”Este token possui uma extensão não suportada pelo Raydium no CPMM.” |
| 6008 | InvalidVault | invaild vault (typo no código-fonte) | A conta vault passada não corresponde à registrada em pool_state. | ”Interno: vault incorreto — atualize e tente novamente.” |
| 6009 | InitLpAmountTooLess | Init lp amount is too less(Because 100 amount lp will be locked) (gramática no código-fonte) | Na inicialização do pool, o supply LP calculado está abaixo da quantidade de bloqueio permanente. | ”Liquidez inicial muito pequena. Aumente o depósito.” |
| 6010 | TransferFeeCalculateNotMatch | TransferFee calculate not match | O valor pós-transferência observado para um mint com taxa Token-2022 não correspondeu à expectativa pré-calculada. | ”A taxa de transferência do token mudou durante a transação. Tente novamente.” |
| 6011 | MathOverflow | Math overflow | Um cálculo intermediário de swap/depósito/taxa causou overflow. | ”O valor é grande demais para este pool.” |
| 6012 | InsufficientVault | Insufficient vault | O saldo do vault do pool é insuficiente para cobrir o valor de saída solicitado. | ”Liquidez insuficiente no pool para este tamanho.” |
| 6013 | InvalidFeeModel | Invalid fee model | O administrador definiu uma combinação de parâmetros AmmConfig rejeitada on-chain. | N/A — caminho exclusivo do administrador. |
| 6014 | NoFeeCollect | Fee is zero | collect_protocol_fee / collect_fund_fee chamado com taxas coletáveis zeradas. | N/A — caminho do administrador; ferramentas devem ignorar. |
Erros do CLMM
ID do programa: veja reference/program-addresses. Fonte:raydium-clmm/programs/amm/src/error.rs.
| Código | Variante | String #[msg] | Causa típica | UX recomendada |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | O chamador não é o administrador configurado para esta instrução. | ”Somente o administrador do pool pode executar esta ação.” |
| 6001 | InvalidUpdateConfigFlag | invalid update amm config flag | O administrador passou um valor param não reconhecido para update_amm_config. | N/A — caminho exclusivo do administrador. |
| 6002 | AccountLack | Account lack | Conta restante obrigatória ausente da tx (geralmente tick-array ou extensão oracle). | ”Interno: conta ausente — atualize os dados do pool.” |
| 6003 | ClosePositionErr | Remove liquidity, collect fees owed and reward then you can close position account | Tentativa de fechar uma posição que ainda possui liquidez, taxas não coletadas ou recompensas não coletadas. | ”Retire toda a liquidez e resgate taxas/recompensas antes de fechar a posição.” |
| 6004 | InvalidTickIndex | Tick out of range | tick_lower ou tick_upper está fora de [-443636, 443636]. | ”Intervalo de preço fora dos limites para este pool.” |
| 6005 | TickInvalidOrder | The lower tick must be below the upper tick | tick_lower >= tick_upper. | ”O preço inferior deve ser menor que o preço superior.” |
| 6006 | TickLowerOverflow | The tick must be greater, or equal to the minimum tick(-443636) | Underflow do tick inferior. | ”Preço inferior muito baixo.” |
| 6007 | TickUpperOverflow | The tick must be lesser than, or equal to the maximum tick(443636) | Overflow do tick superior. | ”Preço superior muito alto.” |
| 6008 | TickAndSpacingNotMatch | tick % tick_spacing must be zero | O tick enviado não é múltiplo do tick_spacing do pool. | ”Ajuste o preço ao incremento válido mais próximo.” |
| 6009 | InvalidTickArray | Invalid tick array account | PDA incorreto passado para um slot de tick-array. | ”Interno: tick array incorreto — atualize os dados do pool.” |
| 6010 | InvalidTickArrayBoundary | Invalid tick array boundary | Erro por um na indexação do tick-array. | ”Interno: erro de limite do tick-array.” |
| 6011 | SqrtPriceLimitOverflow | Square root price limit overflow | sqrt_price_limit fornecido pelo chamador está fora do intervalo válido. | ”Limite de preço fora do intervalo.” |
| 6012 | SqrtPriceX64 | sqrt_price_x64 out of range | O sqrt price atual do pool saiu do intervalo durante o swap. | ”Tente o swap novamente.” |
| 6013 | LiquiditySubValueErr | Liquidity sub delta L must be smaller than before | Violação de invariante interno ao diminuir liquidez. | ”Interno: erro de contabilidade de liquidez.” |
| 6014 | LiquidityAddValueErr | Liquidity add delta L must be greater, or equal to before | Violação de invariante interno ao aumentar liquidez. | ”Interno: erro de contabilidade de liquidez.” |
| 6015 | ForbidBothZeroForSupplyLiquidity | Both token amount must not be zero while supply liquidity | Chamada de aumento de liquidez com amount_0_max e amount_1_max ambos zerados. | ”Forneça ao menos um token.” |
| 6016 | LiquidityInsufficient | Liquidity insufficient | A posição não possui liquidez suficiente para a retirada solicitada. | ”O valor de retirada excede a liquidez da posição.” |
| 6017 | PriceSlippageCheck | Price slippage check | O preço de execução não passou pela proteção de slippage do chamador. | ”O preço ultrapassou sua tolerância de slippage. Aumente o slippage ou tente novamente.” |
| 6018 | TooLittleOutputReceived | Too little output received | SwapBaseInput: valor de saída abaixo de other_amount_threshold. | ”Slippage excedido — saída mínima não atingida.” |
| 6019 | TooMuchInputPaid | Too much input paid | SwapBaseOutput: valor de entrada acima de other_amount_threshold. | ”Slippage excedido — entrada máxima ultrapassada.” |
| 6020 | ZeroAmountSpecified | Swap special amount can not be zero | amount zero em uma instrução de swap. | ”Informe um valor maior que zero.” |
| 6021 | InvalidInputPoolVault | Input pool vault is invalid | A conta input-vault do swap não corresponde ao vault registrado no pool. | ”Interno: input vault incorreto — atualize os dados do pool.” |
| 6022 | TooSmallInputOrOutputAmount | Swap input or output amount is too small | A matemática do swap arredondou para zero, geralmente por valores muito pequenos. | ”Valor muito pequeno para fazer swap neste pool.” |
| 6023 | NotEnoughTickArrayAccount | Not enough tick array account | Contas de tick-array restantes insuficientes fornecidas para o intervalo do swap. | ”Interno: tick-arrays insuficientes — atualize os dados do pool.” |
| 6024 | InvalidFirstTickArrayAccount | Invalid first tick array account | A primeira conta tick-array passada não cobre o tick atual. | ”Interno: primeiro tick array incorreto — atualize os dados do pool.” |
| 6025 | InvalidRewardIndex | Invalid reward index | reward_index fora de [0, 2]. | N/A — caminho do administrador. |
| 6026 | FullRewardInfo | The init reward token reach to the max | O pool já possui o máximo (3) de reward mints configurados. | N/A — caminho do administrador. |
| 6027 | RewardTokenAlreadyInUse | The init reward token already in use | O reward mint duplica um já existente. | N/A — caminho do administrador. |
| 6028 | ExceptRewardMint | The reward tokens must contain one of pool vault mint except the last reward | Antes do slot 2, o reward mint deve ser igual a um dos vault mints do pool. | N/A — caminho do administrador. |
| 6029 | InvalidRewardInitParam | Invalid reward init param | Horário de início/fim de emissão ou taxa por segundo inválidos. | N/A — caminho do administrador. |
| 6030 | InvalidRewardInputAccountNumber | Invalid collect reward input account number | Número incorreto de contas restantes passadas para CollectReward. | ”Interno: número de contas incorreto — atualize e tente novamente.” |
| 6031 | InvalidRewardPeriod | Invalid reward period | Período de emissão de recompensa inválido (end <= start, duração zero). | N/A — caminho do administrador. |
| 6032 | NotApproveUpdateRewardEmissions | Modification of emissions is allowed within 72 hours from the end of the previous cycle | O administrador tentou modificar emissões fora da janela de 72 horas ao redor dos limites de ciclo. | N/A — caminho do administrador. |
| 6033 | UnInitializedRewardInfo | uninitialized reward info | Slot de recompensa não inicializado, mas referenciado. | N/A — caminho do administrador. |
| 6034 | NotSupportMint | Not support token_2022 mint extension | O CLMM encontrou uma extensão Token-2022 que não pode ser tratada. | ”Este token possui uma extensão não suportada pelo Raydium CLMM.” |
| 6035 | MissingTickArrayBitmapExtensionAccount | Missing tickarray bitmap extension account | O swap cruzou um intervalo de tick não coberto pelo bitmap base; é necessária a conta de bitmap de extensão. | ”Interno: extensão de tick-array ausente — atualize os dados do pool.” |
| 6036 | InsufficientLiquidityForDirection | Insufficient liquidity for this direction | Não há liquidez suficiente na direção do swap. | ”Liquidez insuficiente para este tamanho de swap.” |
| 6037 | MaxTokenOverflow | Max token overflow | O valor de entrada/saída excedeu u64. | ”Valor grande demais para este pool.” |
| 6038 | CalculateOverflow | Calculate overflow | Overflow aritmético em taxa/liquidez. | ”Valor grande demais para este pool.” |
| 6039 | TransferFeeCalculateNotMatch | TransferFee calculate not match | O valor observado da taxa de transferência Token-2022 não correspondeu ao esperado. | ”A taxa de transferência do token mudou durante a transação. Tente novamente.” |
| 6040 | OrderAlreadyFilled | Order already fully filled, cannot modify | IncreaseLimitOrder / DecreaseLimitOrder chamado em uma ordem cuja parte não preenchida é zero. | ”Esta ordem limitada já foi preenchida — liquide para receber o valor de saída.” |
| 6041 | InvalidOrderPhase | Invalid order phase | Modificação de uma ordem cujo ciclo FIFO não corresponde mais ao ciclo atual do tick. | ”Esta ação não pode ser realizada no estado atual da ordem.” |
| 6042 | InvalidLimitOrderAmount | Invalid limit order amount | Valor de entrada da ordem abaixo do mínimo do pool (ou zero) ao abrir/aumentar/diminuir. | ”O tamanho da ordem está abaixo do mínimo do pool.” |
| 6043 | OrderPhaseSaturated | Tick order phase saturated | O contador order_phase do ciclo no tick saturou; novas ordens não podem ser abertas naquele tick até que os ciclos existentes liquidem e renovem. | ”Ordens demais ativas neste preço; tente um tick próximo ou aguarde as ordens liquidarem.” |
| 6044 | InvalidDynamicFeeConfigParams | Invalid dynamic fee config params | CreateDynamicFeeConfig / UpdateDynamicFeeConfig rejeitado; ou CreateCustomizablePool habilitou taxa dinâmica sem uma configuração válida. | N/A no caminho do administrador; “Configuração de taxa dinâmica inválida” no caminho do usuário. |
| 6045 | InvalidFeeOn | Invalid fee on which token (must be 0, 1, or 2) | CreateCustomizablePool passou um valor collect_fee_on fora de {0, 1, 2}. | ”Interno: modo de taxa inválido.” |
| 6046 | ZeroSqrtPrice | sqrt_price_x64 must be greater than 0 | CreateCustomizablePool (ou outro caminho que aceita sqrt price inicial personalizável) foi chamado com sqrt_price_x64 == 0. | ”O preço inicial deve ser maior que zero.” |
| 6047 | ZeroLiquidity | liquidity must be greater than 0 | Um caminho de fornecimento de liquidez foi chamado com liquidity == 0 sem valor compensatório. | ”O valor de liquidez deve ser maior que zero.” |
| 6048 | MissingBaseFlag | base_flag is required when liquidity is zero | Um caminho de abertura de posição por valor calculou liquidity == 0 e o chamador não forneceu um base_flag para indicar qual lado é a base. | ”Forneça uma liquidez diferente de zero ou especifique qual token é a base.” |
| 6049 | MissingMintAccount | Mint account is required but not provided | Um caminho com suporte a Token-2022 foi chamado sem a conta mint de entrada/saída necessária para validar extensões e taxas de transferência. | ”Interno: conta mint ausente — atualize os dados do pool.” |
| 6050 | MissingTokenProgram2022 | Token-2022 program is required but not provided | Igual ao anterior, mas para a conta do programa SPL-Token-2022. | ”Interno: programa Token-2022 ausente — atualize e tente novamente.” |
Nota sobre renumeração. O enumFonte de regeneração: github.com/raydium-io/raydium-clmm — error.rs.ErrorCodedo 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 de6000foram 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.
Erros do AMM v4, Farm v3 / v5 / v6 e LaunchLab
Esses programas estão documentados em seus respectivos capítulos (vejaproducts/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:
| Programa | Intervalo de códigos (somente Anchor) | Referência |
|---|---|---|
| AMM v4 | Códigos u32 personalizados, não no estilo Anchor | products/amm-v4/instructions |
| Farm v3 / v5 | Códigos u32 personalizados | products/farm-staking/instructions |
| Farm v6 | 6000+ (Anchor) | products/farm-staking/instructions |
| LaunchLab | 6000+ (Anchor) | products/launchlab/instructions |
Mapeando erros do SDK para erros de programa
O SDK TypeScript oficial encapsula erros on-chain emSendTransactionError e, para programas Anchor, em AnchorError:
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: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:


