Skip to main content
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Maßgebliche Quelle. Die Tabellen unten werden aus der error.rs jedes Programms in den öffentlichen Raydium-Repositories regeneriert. Wenn ein Programm aktualisiert wird und eine neue Variante hinzugefügt wird, führen Sie die Extraktion erneut aus (Link am Ende jeder Tabelle) und hängen Sie die Tabelle an, anstatt sie umzuordnen – Anchor-Fehlercodes werden nach Quellreihenfolge zugewiesen, nicht nach Name, daher bricht eine Umordnung die Fehlerbehandlung von Integratoren.

Wie Anchor-Fehlercodes funktionieren

Anchor weist jeder Variante eines Programms ErrorCode-Enums einen numerischen Code ab 6000 zu. Eine fehlgeschlagene Transaktion zeigt:
  • Numerischer Fehlercode (z. B. 0x1771 = 6001) in den Transaktionsprotokollen.
  • Fehlername (z. B. InvalidOwner) aus der IDL.
  • #[msg(...)]-String, den Anchor in log_messages ausgegeben hat.
Integratoren sollten auf dem numerischen Code abgleichen, nicht auf der Nachrichtenzeichenkette (die Zeichenkette kann umformuliert werden, ohne eine Version zu erhöhen).

CPMM (Standard AMM) Fehler

Programm-ID: siehe reference/program-addresses. Quelle: raydium-cp-swap/programs/cp-swap/src/error.rs. Regenerierungsquelle: github.com/raydium-io/raydium-cp-swap — error.rs.

CLMM Fehler

Programm-ID: siehe reference/program-addresses. Quelle: raydium-clmm/programs/amm/src/error.rs.
Hinweis zur Umnummerierung. Das CLMM ErrorCode-Enum wurde in dieser Version umnummeriert: fünf Legacy-Varianten (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) und mehrere Tippfehler (Liquitity, enought, emissiones) wurden entfernt/behoben, und elf neue Varianten wurden angehängt. Da Anchor Fehler nach Quellreihenfolge nummeriert, hat sich jeder Code bei oder nach 6000 relativ zu Pre-Release-Builds verschoben. Clients, die numerische Codes gegen eine frühere Version hartcodiert haben, müssen neu zuordnen.
Regenerierungsquelle: github.com/raydium-io/raydium-clmm — error.rs.

AMM v4, Farm v3 / v5 / v6, LaunchLab Fehler

Diese Programme sind in ihren jeweiligen Kapiteln dokumentiert (siehe products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Da diese Programme eine Mischung aus Anchor- und Plain-Solana-Fehleroberflächen verwenden, befinden sich ihre Fehlertabellen neben der Anweisungsreferenz statt hier. Die folgenden Codes sind von diesen Kapiteln reserviert: Die LaunchLab-Version behält die Codes 60006021 unverändert. Sie entfernt die früheren Fehler für den globalen Plattformzugriff und weist 6022 dem neuen Validierungsfehler für das Allow-Konto zu: Die alten Varianten PlatformGlobalAccessDenied (6022) und InvalidPlatformGlobalAccess (6023) werden entfernt. Dekodieren Sie 6022 nicht mit der vorherigen IDL.

Zuordnung von SDK-Fehlern zu Programmfehlern

Das offizielle TypeScript SDK umhüllt On-Chain-Fehler in SendTransactionError und für Anchor-Programme in AnchorError:
Wenn Sie Anchor nicht auf der Client-Seite verwenden, analysieren Sie die Transaktionsprotokolle:
Das Muster Error Number: (\d+) ist über Anchor-Versionen stabil und sicher zum Abgleichen.

Regenerieren dieser Tabellen

Wenn ein Programm aktualisiert wird und einen neuen Fehler hinzufügt, extrahieren Sie erneut aus der Quelle:
Aktualisieren Sie immer reference/changelog, wenn eine neue Variante hinzugefügt wird, damit Integratoren, die das SDK aktualisieren, ihre Fehlerbehandler aktualisieren. Quellen: