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.
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Was eine IDL ist
Anchor-Programme auf Solana veröffentlichen eine IDL-Datei (Interface Definition Language), die ihre Anweisungen, Account-Layouts, Error-Enums und Struct-Schemas beschreibt. Die IDL ist die Quelle der Wahrheit für die Client-Code-Generierung — das TS SDK, die Rust-CPI-Crate und Clients von Drittanbietern werden alle aus ihr generiert (oder von Hand geschrieben). Raydium veröffentlicht IDLs für CPMM, CLMM und LaunchLab. AMM v4, Stable AMM und Farm entstanden vor Anchor oder werden anderweitig nicht über Anchor verteilt — ihre Account-Strukturen werden manuell im SDK gepflegt.Wo Sie sie finden
IDLs befinden sich in einem dedizierten Repository:| Programm | IDL-Datei |
|---|---|
| CPMM | raydium_cpmm/raydium_cp_swap.json |
| CLMM | raydium_clmm/raydium_clmm.json |
| LaunchLab | raydium_launchpad/raydium_launchpad.json |
| AMM v4 | keine offizielle IDL — siehe raydium-sdk-V2/src/raydium/liquidity/layout.ts für manuell gepflegte Layouts |
| Stable AMM | keine offizielle IDL — Layouts sind im SDK |
| Farm | keine offizielle IDL — Layouts sind im SDK |
TypeScript-Client regenerieren
Anchors Codegen erstellt einen typisierten Client aus der IDL:raydium.cpmm.swap(...)-Helfer, der die Anchor-Methoden plus alle administrativen Aufgaben (ATA-Erstellung, Transfergebührenanpassung, Compute-Budget, Token-2022-Programm-Routing) kapselt. Regenerieren Sie nur, wenn Sie eine Schicht unterhalb des SDK benötigen.
Rust-Client regenerieren (CPI-Crate)
Raydium veröffentlicht Anchor-Crates für die Programme, die IDLs haben:cpi-Feature stellt cpi::accounts::<Ix>-Account-Structs und cpi::<ix>()-Aufrufer bereit — einsatzbereite CPI-Wrapper. Siehe sdk-api/rust-cpi für Verwendungsmuster.
Wenn Sie lieber neue Bindungen generieren möchten:
Python-Client regenerieren
Es gibt kein offizielles Raydium Python SDK. Generatoren von Drittanbietern sind:anchorpy— Python-Port von@coral-xyz/anchor. Generiert typisierte Methodenbauer aus IDLs.solders— Low-Level-Solana-Primitive (Transaktionen, Keypairs, Pubkeys) in Rust-Bindungen; wird unteranchorpyverwendet.
sdk-api/python-integration für eine ausführlichere Anleitung.
IDL-Änderungsrichtlinie
Raydium befolgt diese Regeln für IDL-Stabilität:- Anweisungs-Diskriminatoren ändern sich nie. Das Hinzufügen neuer Anweisungen erweitert das Enum am Ende; bestehende Diskriminatoren bleiben stabil.
- Account-Struct-Layouts entwickeln sich nur additiv. Neue Felder kommen am Ende hin, vorher kommt eine Größenerhöhung im On-Chain-Schema. Bestehende Felder behalten ihre Offsets.
- Error-Enum-Codes sind nur anhängbar. Ein bestehender Error-Code bedeutet immer dasselbe.
- Breaking Changes werden in neuen Programmen ausgerollt. Wenn ein Redesign erforderlich ist, setzt das Team eine neue Programm-ID ein (z. B. CPMM als frisches Programm statt AMM v4 zu aktualisieren). Alte Pools laufen weiterhin auf dem alten Programm; neue Pools gehen zum neuen.
Was zu tun ist, wenn sich die IDL ändert
- Das SDK aktualisieren.
npm update @raydium-io/raydium-sdk-v2. - Ihren Client-Code regenerieren, wenn Sie Anchor Codegen direkt verwenden.
- Das Account-Layout vergleichen. Die nachfolgenden Felder des neuen Layouts sind das Einzige, das Ihr Code nicht gesehen hat; überprüfen Sie, ob Sie sie benötigen.
- Gehen Sie nicht davon aus, dass alte Anweisungs-Diskriminatoren ungültig sind. Gemäß Regel 1 funktionieren sie immer noch.
- Führen Sie Integrationstests erneut durch auf Devnet, bevor Sie zu Mainnet wechseln.
IDL-Fehlerbehebung
„Invalid discriminator”-Fehler
Dies bedeutet normalerweise, dass ein Client, der gegen Version N der IDL erstellt wurde, versucht, eine Anweisung aufzurufen, die es nur in einer Version des Programms vor der Bereitstellung gab. Ziehen Sie die IDL erneut vom Live-Programm:Account-Dekodierungsfehler
Wennprogram.account.<Name>.fetch(pubkey) mit „Invalid account discriminator” fehlschlägt, wurde das Account von einer vorherigen Programmversion erstellt und Anchor lehnt seinen 8-Byte-Diskriminator ab. Die Lösung besteht darin, den Raw-Layout-Parser aus dem SDK (PoolInfoLayout.decode(accountData)) zu verwenden, der keine Anchor-Diskriminatoren durchsetzt.
Fehlende Anweisungen im generierten Client
Anchors TS Codegen generiert nur Methoden für Anweisungen, deren IDL-Eintrag einenname hat, der als gültiger Identifier analysiert wird. Raydiums Anweisungen erfüllen alle diese Anforderung, aber wenn Sie einen Unterschied feststellen, überprüfen Sie, ob die IDL-Datei aus der aktuellen SDK-Version stammt.
Zeiger
sdk-api/rust-cpi— Verwendung der Rust-CPI-Crates.sdk-api/python-integration— Python viaanchorpy.sdk-api/typescript-sdk— der höherstufige TS-Client.


