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.
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Источник истины. Таблицы ниже перегенерированы из файла
error.rs каждой программы в публичных репозиториях Raydium. При обновлении программы и добавлении нового варианта — перезапустите извлечение (ссылка внизу каждой таблицы) и добавьте строку в конец таблицы, не переставляя существующие — коды ошибок Anchor назначаются по порядку в исходном коде, а не по имени, поэтому перестановка нарушит обработку ошибок у интеграторов.Как работают коды ошибок Anchor
Anchor присваивает каждому варианту перечисленияErrorCode программы числовой код, начиная с 6000. В случае неудачной транзакции возникают:
- Числовой код ошибки (например,
0x1771= 6001) в логах транзакции. - Имя ошибки (например,
InvalidOwner) из IDL. - Строка
#[msg(...)], которую Anchor записывает вlog_messages.
Ошибки CPMM (Standard AMM)
Program ID: см. reference/program-addresses. Источник:raydium-cp-swap/programs/cp-swap/src/error.rs.
| Код | Вариант | Строка #[msg] | Типичная причина | Рекомендуемое сообщение |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | Вызывающий не является настроенным authority для административной инструкции. | ”Только администратор пула может выполнить это действие.” |
| 6001 | InvalidOwner | Input account owner is not the program address | Переданный аккаунт принадлежит не той программе (чаще всего неверная token-программа или PDA чужой программы). | ”Внутренняя ошибка: несоответствие владельца аккаунта — обновите данные и повторите попытку.” |
| 6002 | EmptySupply | Input token account empty | Баланс LP- или токен-аккаунта равен нулю на шаге, требующем положительного значения. | ”Нечего выводить.” |
| 6003 | InvalidInput | InvalidInput | Общая ошибка аргумента (значение вне допустимого диапазона, неверный флаг). | ”Некорректный ввод — проверьте суммы и повторите попытку.” |
| 6004 | IncorrectLpMint | Address of the provided lp token mint is incorrect | Переданный аккаунт LP mint не совпадает с pool_state.lp_mint. | ”Внутренняя ошибка: неверный LP mint — обновите данные пула.” |
| 6005 | ExceededSlippage | Exceeds desired slippage limit | Исполненная цена хуже указанного пользователем minAmountOut / maxAmountIn. | ”Цена вышла за пределы допустимого slippage. Увеличьте slippage или повторите попытку.” |
| 6006 | ZeroTradingTokens | Given pool token amount results in zero trading tokens | При вычислениях депозита/вывода одна из сторон округлилась до нуля (слишком маленькая позиция). | ”Сумма ниже минимальной для этого пула.” |
| 6007 | NotSupportMint | Not support token_2022 mint extension (грамматика в источнике) | Пул столкнулся с расширением Token-2022, которое не может обработать безопасно (например, TransferHook, DefaultAccountState=Frozen). | ”Этот токен имеет расширение, которое CPMM Raydium не поддерживает.” |
| 6008 | InvalidVault | invaild vault (опечатка в источнике) | Переданный vault-аккаунт не совпадает с записанным в pool_state. | ”Внутренняя ошибка: неверный vault — обновите данные и повторите попытку.” |
| 6009 | InitLpAmountTooLess | Init lp amount is too less(Because 100 amount lp will be locked) (грамматика в источнике) | При инициализации пула вычисленное предложение LP ниже суммы постоянной блокировки. | ”Начальная ликвидность слишком мала. Увеличьте депозит.” |
| 6010 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Фактическая сумма после перевода для mint с комиссией Token-2022 не совпала с предварительно рассчитанным значением. | ”Комиссия за перевод токена изменилась в ходе транзакции. Повторите попытку.” |
| 6011 | MathOverflow | Math overflow | Переполнение при промежуточном вычислении swap / депозита / комиссии. | ”Сумма слишком велика для этого пула.” |
| 6012 | InsufficientVault | Insufficient vault | Баланс vault пула недостаточен для покрытия запрошенного вывода. | ”В пуле недостаточно ликвидности для данного объёма.” |
| 6013 | InvalidFeeModel | Invalid fee model | Администратор задал комбинацию параметров AmmConfig, которую on-chain программа отклоняет. | Н/Д — путь только для администратора. |
| 6014 | NoFeeCollect | Fee is zero | collect_protocol_fee / collect_fund_fee вызван при нулевых накопленных комиссиях. | Н/Д — путь администратора; инструментарий должен игнорировать. |
Ошибки CLMM
Program ID: см. reference/program-addresses. Источник:raydium-clmm/programs/amm/src/error.rs.
| Код | Вариант | Строка #[msg] | Типичная причина | Рекомендуемое сообщение |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | Вызывающий не является настроенным администратором для этой инструкции. | ”Только администратор пула может выполнить это действие.” |
| 6001 | InvalidUpdateConfigFlag | invalid update amm config flag | Администратор передал нераспознанное значение param в update_amm_config. | Н/Д — путь только для администратора. |
| 6002 | AccountLack | Account lack | В транзакции отсутствует необходимый remaining-аккаунт (как правило, tick-array или расширение oracle). | ”Внутренняя ошибка: отсутствует аккаунт — обновите данные пула.” |
| 6003 | ClosePositionErr | Remove liquidity, collect fees owed and reward then you can close position account | Попытка закрыть позицию, в которой ещё есть ликвидность, не собранные комиссии или вознаграждения. | ”Выведите всю ликвидность и заберите комиссии/вознаграждения перед закрытием позиции.” |
| 6004 | InvalidTickIndex | Tick out of range | tick_lower или tick_upper выходит за пределы [-443636, 443636]. | ”Ценовой диапазон выходит за границы этого пула.” |
| 6005 | TickInvalidOrder | The lower tick must be below the upper tick | tick_lower >= tick_upper. | ”Нижняя цена должна быть меньше верхней.” |
| 6006 | TickLowerOverflow | The tick must be greater, or equal to the minimum tick(-443636) | Нижний тик вышел за нижнюю границу. | ”Нижняя цена слишком мала.” |
| 6007 | TickUpperOverflow | The tick must be lesser than, or equal to the maximum tick(443636) | Верхний тик вышел за верхнюю границу. | ”Верхняя цена слишком велика.” |
| 6008 | TickAndSpacingNotMatch | tick % tick_spacing must be zero | Указанный тик не кратен tick_spacing пула. | ”Выровняйте цену по ближайшему допустимому шагу.” |
| 6009 | InvalidTickArray | Invalid tick array account | Для слота tick-array передан неверный PDA. | ”Внутренняя ошибка: неверный tick array — обновите данные пула.” |
| 6010 | InvalidTickArrayBoundary | Invalid tick array boundary | Ошибка на единицу при индексации tick-array. | ”Внутренняя ошибка: граница tick-array.” |
| 6011 | SqrtPriceLimitOverflow | Square root price limit overflow | Переданный вызывающим sqrt_price_limit вне допустимого диапазона. | ”Ценовой лимит вне допустимого диапазона.” |
| 6012 | SqrtPriceX64 | sqrt_price_x64 out of range | Текущая sqrt-цена пула вышла за допустимые пределы в ходе swap. | ”Повторите swap.” |
| 6013 | LiquiditySubValueErr | Liquidity sub delta L must be smaller than before | Нарушение внутреннего инварианта при уменьшении ликвидности. | ”Внутренняя ошибка: учёт ликвидности.” |
| 6014 | LiquidityAddValueErr | Liquidity add delta L must be greater, or equal to before | Нарушение внутреннего инварианта при увеличении ликвидности. | ”Внутренняя ошибка: учёт ликвидности.” |
| 6015 | ForbidBothZeroForSupplyLiquidity | Both token amount must not be zero while supply liquidity | Вызов increase-liquidity с amount_0_max и amount_1_max, равными нулю одновременно. | ”Укажите ненулевое количество хотя бы одного токена.” |
| 6016 | LiquidityInsufficient | Liquidity insufficient | В позиции недостаточно ликвидности для выполнения вывода. | ”Сумма вывода превышает ликвидность позиции.” |
| 6017 | PriceSlippageCheck | Price slippage check | Цена исполнения не прошла проверку slippage вызывающего. | ”Цена вышла за пределы допустимого slippage. Увеличьте slippage или повторите попытку.” |
| 6018 | TooLittleOutputReceived | Too little output received | SwapBaseInput: полученная сумма ниже other_amount_threshold. | ”Slippage превышен — минимальный вывод не достигнут.” |
| 6019 | TooMuchInputPaid | Too much input paid | SwapBaseOutput: уплаченная сумма выше other_amount_threshold. | ”Slippage превышен — максимальный ввод превышен.” |
| 6020 | ZeroAmountSpecified | Swap special amount can not be zero | Нулевое значение amount в инструкции swap. | ”Укажите сумму больше нуля.” |
| 6021 | InvalidInputPoolVault | Input pool vault is invalid | Входной vault swap-а не совпадает с vault, записанным в пуле. | ”Внутренняя ошибка: неверный входной vault — обновите данные пула.” |
| 6022 | TooSmallInputOrOutputAmount | Swap input or output amount is too small | Математика swap округлила до нуля — как правило, слишком маленькая «пыль». | ”Сумма слишком мала для swap в этом пуле.” |
| 6023 | NotEnoughTickArrayAccount | Not enough tick array account | Для диапазона swap передано недостаточно remaining-аккаунтов tick-array. | ”Внутренняя ошибка: недостаточно tick-array — обновите данные пула.” |
| 6024 | InvalidFirstTickArrayAccount | Invalid first tick array account | Первый переданный tick-array аккаунт не охватывает текущий тик. | ”Внутренняя ошибка: неверный первый tick array — обновите данные пула.” |
| 6025 | InvalidRewardIndex | Invalid reward index | reward_index вне диапазона [0, 2]. | Н/Д — путь администратора. |
| 6026 | FullRewardInfo | The init reward token reach to the max | В пуле уже настроено максимальное количество (3) reward mint-ов. | Н/Д — путь администратора. |
| 6027 | RewardTokenAlreadyInUse | The init reward token already in use | Reward mint дублирует уже существующий. | Н/Д — путь администратора. |
| 6028 | ExceptRewardMint | The reward tokens must contain one of pool vault mint except the last reward | До слота 2 reward mint должен совпадать с одним из vault mint пула. | Н/Д — путь администратора. |
| 6029 | InvalidRewardInitParam | Invalid reward init param | Некорректное время начала/окончания или ставка эмиссии в секунду. | Н/Д — путь администратора. |
| 6030 | InvalidRewardInputAccountNumber | Invalid collect reward input account number | В CollectReward передано неверное количество remaining-аккаунтов. | ”Внутренняя ошибка: неверное количество аккаунтов — обновите данные и повторите попытку.” |
| 6031 | InvalidRewardPeriod | Invalid reward period | Некорректный период эмиссии вознаграждения (end <= start, нулевая длительность). | Н/Д — путь администратора. |
| 6032 | NotApproveUpdateRewardEmissions | Modification of emissions is allowed within 72 hours from the end of the previous cycle | Администратор попытался изменить эмиссию вне 72-часового окна вокруг границ цикла. | Н/Д — путь администратора. |
| 6033 | UnInitializedRewardInfo | uninitialized reward info | Обращение к неинициализированному слоту вознаграждения. | Н/Д — путь администратора. |
| 6034 | NotSupportMint | Not support token_2022 mint extension | CLMM столкнулся с расширением Token-2022, которое не может обработать. | ”Этот токен имеет расширение, которое CLMM Raydium не поддерживает.” |
| 6035 | MissingTickArrayBitmapExtensionAccount | Missing tickarray bitmap extension account | Swap пересёк диапазон тиков, не охваченный базовой битмапой; необходим аккаунт расширенной битмапы. | ”Внутренняя ошибка: отсутствует расширение tick-array — обновите данные пула.” |
| 6036 | InsufficientLiquidityForDirection | Insufficient liquidity for this direction | В направлении swap недостаточно ликвидности. | ”Недостаточно ликвидности для данного swap.” |
| 6037 | MaxTokenOverflow | Max token overflow | Сумма ввода/вывода превысила u64. | ”Сумма слишком велика для этого пула.” |
| 6038 | CalculateOverflow | Calculate overflow | Переполнение при вычислении комиссии или ликвидности. | ”Сумма слишком велика для этого пула.” |
| 6039 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Фактическая сумма при переводе токена Token-2022 с комиссией не совпала с ожидаемой. | ”Комиссия за перевод токена изменилась в ходе транзакции. Повторите попытку.” |
| 6040 | OrderAlreadyFilled | Order already fully filled, cannot modify | IncreaseLimitOrder / DecreaseLimitOrder вызван для ордера, у которого незаполненная часть равна нулю. | ”Этот лимитный ордер уже исполнен — проведите расчёт, чтобы получить средства.” |
| 6041 | InvalidOrderPhase | Invalid order phase | Изменение ордера, чья фаза FIFO-когорты больше не совпадает с текущей когортой тика. | ”Это действие недоступно в текущем состоянии ордера.” |
| 6042 | InvalidLimitOrderAmount | Invalid limit order amount | Размер ордера ниже минимального для пула (или нулевой) при открытии / увеличении / уменьшении. | ”Размер ордера ниже минимального для пула.” |
| 6043 | OrderPhaseSaturated | Tick order phase saturated | Счётчик order_phase когорты на тике насыщен; новые ордера по этой цене недоступны до расчёта и ротации существующих когорт. | ”Слишком много активных ордеров по этой цене; попробуйте соседний тик или дождитесь расчёта ордеров.” |
| 6044 | InvalidDynamicFeeConfigParams | Invalid dynamic fee config params | CreateDynamicFeeConfig / UpdateDynamicFeeConfig отклонён; или CreateCustomizablePool включил динамическую комиссию без корректной конфигурации. | Н/Д на пути администратора; «Некорректная конфигурация динамической комиссии» на пользовательском пути. |
| 6045 | InvalidFeeOn | Invalid fee on which token (must be 0, 1, or 2) | CreateCustomizablePool передал значение collect_fee_on вне множества {0, 1, 2}. | ”Внутренняя ошибка: недопустимый режим комиссии.” |
| 6046 | ZeroSqrtPrice | sqrt_price_x64 must be greater than 0 | CreateCustomizablePool (или другой путь, принимающий пользовательскую начальную sqrt-цену) вызван с sqrt_price_x64 == 0. | ”Начальная цена должна быть больше нуля.” |
| 6047 | ZeroLiquidity | liquidity must be greater than 0 | Путь предоставления ликвидности вызван с liquidity == 0 без компенсирующей суммы. | ”Количество ликвидности должно быть больше нуля.” |
| 6048 | MissingBaseFlag | base_flag is required when liquidity is zero | Путь открытия позиции по сумме вычислил liquidity == 0, а вызывающий не указал base_flag для определения базовой стороны. | ”Укажите ненулевую ликвидность или задайте, какой токен является базовым.” |
| 6049 | MissingMintAccount | Mint account is required but not provided | Путь с поддержкой Token-2022 вызван без аккаунта mint входного/выходного токена, необходимого для проверки расширений и комиссий за перевод. | ”Внутренняя ошибка: отсутствует аккаунт mint — обновите данные пула.” |
| 6050 | MissingTokenProgram2022 | Token-2022 program is required but not provided | То же, что выше, но для аккаунта программы SPL-Token-2022. | ”Внутренняя ошибка: отсутствует программа Token-2022 — обновите данные и повторите попытку.” |
Замечание о перенумерации. ПеречислениеИсточник для перегенерации: github.com/raydium-io/raydium-clmm — error.rs.ErrorCodeCLMM было перенумеровано в этом релизе: пять устаревших вариантов (LOK,ZeroMintAmount,InvalidLiquidity,TransactionTooOld,InvalidRewardDesiredAmount) и несколько опечаток (Liquitity,enought,emissiones) удалены/исправлены, а одиннадцать новых вариантов добавлены в конец. Поскольку Anchor нумерует ошибки по порядку в исходном коде, все коды начиная с6000сместились относительно pre-release сборок. Клиентам, использовавшим жёстко закодированные числовые коды для более ранней версии, необходимо обновить маппинг.
Ошибки AMM v4, Farm v3 / v5 / v6, LaunchLab
Эти программы документированы в соответствующих разделах (см.products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Поскольку эти программы используют сочетание Anchor и стандартных механизмов ошибок Solana, их таблицы ошибок находятся рядом со справочником инструкций, а не здесь. Коды ниже зарезервированы соответствующими разделами:
| Программа | Диапазон кодов (только Anchor) | Справочник |
|---|---|---|
| AMM v4 | Пользовательские коды u32, не в стиле Anchor | products/amm-v4/instructions |
| Farm v3 / v5 | Пользовательские коды u32 | products/farm-staking/instructions |
| Farm v6 | 6000+ (Anchor) | products/farm-staking/instructions |
| LaunchLab | 6000+ (Anchor) | products/launchlab/instructions |
Сопоставление ошибок SDK с ошибками программ
Официальный TypeScript SDK оборачивает on-chain ошибки вSendTransactionError, а для Anchor-программ — в AnchorError:
Error Number: (\d+) стабилен во всех версиях Anchor и безопасен для сопоставления.
Перегенерация таблиц
При обновлении программы и добавлении новой ошибки выполните повторное извлечение из источника:reference/changelog при добавлении нового варианта, чтобы интеграторы, обновляющие SDK, знали о необходимости обновить обработчики ошибок.
Источники:


