Zum Hauptinhalt springen
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Maßgebliche Quelle. Die folgenden Tabellen werden aus der jeweiligen error.rs jedes Programms in den öffentlichen Raydium-Repositories neu generiert. Wenn ein Programm aktualisiert wird und eine neue Variante hinzukommt, führen Sie die Extraktion erneut aus (Link am Ende jeder Tabelle) und fügen Sie die neue Zeile an — anstatt die Tabelle umzusortieren. Anchor-Fehlercodes werden nach Quellreihenfolge vergeben, nicht nach Name; ein Umsortieren bricht das Fehler-Handling von Integratoren.

Wie Anchor-Fehlercodes funktionieren

Anchor weist jeder Variante des ErrorCode-Enums eines Programms einen numerischen Code ab 6000 zu. Bei einer fehlgeschlagenen Transaktion werden folgende Informationen ausgegeben:
  • Numerischer Fehlercode (z. B. 0x1771 = 6001) in den Transaktions-Logs.
  • Fehlername (z. B. InvalidOwner) aus dem IDL.
  • #[msg(...)]-String, den Anchor in log_messages ausgegeben hat.
Integratoren sollten auf den numerischen Code matchen, nicht auf den Meldungstext — der Text kann ohne Versionsänderung umformuliert werden.

CPMM (Standard AMM) — Fehlercodes

Programm-ID: siehe Programmadressen. Quelle: raydium-cp-swap/programs/cp-swap/src/error.rs. Extraktionsquelle: github.com/raydium-io/raydium-cp-swap — error.rs.

CLMM — Fehlercodes

Programm-ID: siehe Programmadressen. Quelle: raydium-clmm/programs/amm/src/error.rs.
Hinweis zur Neunummerierung. Das ErrorCode-Enum des CLMM wurde in dieser Version neu nummeriert: Fünf veraltete Varianten (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) sowie mehrere Tippfehler (Liquitity, enought, emissiones) wurden entfernt oder korrigiert, und elf neue Varianten wurden angehängt. Da Anchor Fehler nach Quellreihenfolge nummeriert, hat sich jeder Code ab 6000 gegenüber Pre-Release-Builds verschoben. Clients, die numerische Codes gegen eine frühere Version fest kodiert haben, müssen ihre Zuordnungen aktualisieren.
Extraktionsquelle: github.com/raydium-io/raydium-clmm — error.rs.

AMM v4, Farm v3 / v5 / v6, LaunchLab — Fehlercodes

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 einfachen Solana-Fehlerausgaben verwenden, befinden sich ihre Fehlertabellen neben der jeweiligen Anweisungsreferenz und nicht hier. Die folgenden Codes sind für diese Kapitel reserviert:

SDK-Fehler auf Programmfehler abbilden

Das offizielle TypeScript-SDK kapselt On-Chain-Fehler in SendTransactionError und für Anchor-Programme in AnchorError:
Wenn Sie keinen Anchor-Client verwenden, parsen Sie die Transaktions-Logs:
Das Muster Error Number: (\d+) ist über alle Anchor-Versionen stabil und kann sicher gematcht werden.

Tabellen neu generieren

Wenn ein Programm aktualisiert wird und einen neuen Fehler hinzufügt, extrahieren Sie ihn aus dem Quellcode neu:
Aktualisieren Sie immer reference/changelog, wenn eine neue Variante hinzukommt, damit Integratoren beim SDK-Upgrade wissen, dass sie ihre Fehler-Handler aktualisieren müssen. Quellen: