Перейти к основному содержанию
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Источник истины. Таблицы ниже перегенерированы из файла 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. Источник для перегенерации: github.com/raydium-io/raydium-cp-swap — error.rs.

Ошибки CLMM

Program ID: см. reference/program-addresses. Источник: raydium-clmm/programs/amm/src/error.rs.
Замечание о перенумерации. Перечисление ErrorCode CLMM было перенумеровано в этом релизе: пять устаревших вариантов (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) и несколько опечаток (Liquitity, enought, emissiones) удалены/исправлены, а одиннадцать новых вариантов добавлены в конец. Поскольку Anchor нумерует ошибки по порядку в исходном коде, все коды начиная с 6000 сместились относительно pre-release сборок. Клиентам, использовавшим жёстко закодированные числовые коды для более ранней версии, необходимо обновить маппинг.
Источник для перегенерации: 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, их таблицы ошибок находятся рядом со справочником инструкций, а не здесь. Коды ниже зарезервированы соответствующими разделами:

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

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

Перегенерация таблиц

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