Skip to main content
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Источник истины. Таблицы ниже регенерируются из файла error.rs каждой программы в публичных репозиториях Raydium. Когда программа обновляется и добавляется новый вариант, повторно запустите извлечение (ссылка внизу каждой таблицы) и добавьте строку в таблицу вместо перестановки — коды ошибок Anchor назначаются по порядку в исходном коде, а не по имени, поэтому переупорядочивание нарушает обработку ошибок интеграторов.

Как работают коды ошибок Anchor

Anchor назначает каждому варианту enum 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. Источник регенерации: github.com/raydium-io/raydium-cp-swap — error.rs.

Ошибки CLMM

Program ID: см. reference/program-addresses. Источник: raydium-clmm/programs/amm/src/error.rs.
Примечание о перенумерации. Enum ErrorCode CLMM был перенумерован в этом выпуске: пять устаревших вариантов (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) и несколько опечаток (Liquitity, enought, emissiones) были удалены/исправлены, и одиннадцать новых вариантов были добавлены. Поскольку Anchor нумерует ошибки по порядку в исходном коде, каждый код на 6000 или после него сместился относительно сборок до выпуска. Клиенты, которые жестко кодировали числовые коды для более ранней версии, должны переотобразить.
Источник регенерации: github.com/raydium-io/raydium-clmm — error.rs.

Ошибки AMM v4, Farm v3 / v5 / v6, LaunchLab

Эти программы документированы в их соответствующих главах (см. products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Поскольку эти программы используют смесь поверхностей ошибок Anchor и простого Solana, их таблицы ошибок находятся рядом со справочником инструкций, а не здесь. Коды ниже зарезервированы этими главами: Недавние выпуски LaunchLab сохраняют коды 60006021 без изменений. Выпуск 2026-08-17 удалил бывшие ошибки глобального доступа платформы и назначил 6022 ошибке валидации allow-account; выпуск 2026-08-24 добавляет 6023; выпуск 2026-08-31 добавляет 60246030: Старые варианты PlatformGlobalAccessDenied (6022) и InvalidPlatformGlobalAccess (6023) удалены. Не декодируйте 6022 с использованием предыдущего IDL, и обратите внимание, что 6023 — освобожденный выпуском 2026-08-17 — переиспользуется выпуском 2026-08-24 для несвязанной ошибки, поэтому его не следует декодировать с IDL из любой более ранней версии. 6020 сохранен намеренно. Anchor нумерует варианты по позиции, поэтому удаление его сместит каждый код после него и нарушит каждого клиента, который декодирует 60216030.

Сопоставление ошибок SDK с ошибками программы

Официальный TypeScript SDK оборачивает ошибки на цепи в SendTransactionError и, для программ Anchor, AnchorError:
Если вы не используете Anchor на стороне клиента, разберите логи транзакции:
Паттерн Error Number: (\d+) стабилен во всех версиях Anchor и безопасен для сопоставления.

Регенерация этих таблиц

Когда программа обновляется и добавляется новая ошибка, повторно извлеките из исходного кода:
Всегда обновляйте reference/changelog при добавлении нового варианта, чтобы интеграторы, обновляющие SDK, знали, что нужно обновить обработчики ошибок. Источники: