Skip to main content
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →

Versionsinformationen

  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Netzwerk: mainnet-beta
  • Router-Programm-ID: routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS
  • Verifiziert: April 2026

Beispiel 1: SDK-basiertes Routing

Quelle: src/trade/routeSwap.ts Das Raydium-SDK abstrahiert die Route-Erstellung. Verwenden Sie die Trade-Funktionen des SDKs, um eine Multi-Hop-Route zu erstellen und diese automatisch über den Router auszuführen.

Einrichtung

Multi-Hop-Swap erstellen

Das Routing in @raydium-io/raydium-sdk-v2 wird über raydium.tradeV2 bereitgestellt. Der End-to-End-Ablauf – Pool-Daten abrufen, Routen berechnen, nach Output sortieren und die Swap-Transaktion erstellen – ist nachfolgend dargestellt; dies entspricht dem kanonischen Beispiel in raydium-sdk-V2-demo/src/trade/routeSwap.ts.

Erwartetes Verhalten

Das SDK kümmert sich um:
  • Route-Erkennung über AMM v4, CPMM, CLMM und Stable AMM.
  • Kontoherleitungen (Pool-States, Vaults, Observation-Konten, ATA-Vorerstellung).
  • Instruction-Packing für das Router-Programm (Router) bei Multi-Hop-Routen oder Direct-Pool-Swaps, wenn ein einzelner Pool bereits den besten Preis bietet.
  • Slippage-Durchsetzung über den Parameter slippage in getAllRouteComputeAmountOut.
raydium.tradeV2.swap kann mehr als eine transaction zurückgeben – die erste initialisiert häufig zwischengeschaltete ATAs und die zweite führt den Swap durch. Übergeben Sie sequentially: true an execute(), um sicherzustellen, dass sie in der richtigen Reihenfolge bestätigt werden.

Beispiel 2: Manuelle Instruction-Erstellung (Rust-ähnliches Pseudocode)

Falls Sie feinere Kontrolle benötigen oder ein Programm erstellen, das sich in den Router einklinkt, konstruieren Sie Instructions manuell. Das Beispiel unten verwendet Tag 8 (SwapBaseIn) – die empfohlene aktuelle Variante – und leitet über benutzergesteuerte ATAs von Anfang bis Ende weiter.

Szenario: USDC → SOL (CPMM) → mSOL (CPMM)

Schritt 1: ATAs des Benutzers herleiten

Schritt 2: Konten für jeden Hop sammeln

Hop 1 ist USDC/SOL auf CPMM. Hop 2 ist SOL/mSOL auf CPMM.

Schritt 3: Instruction erstellen

Schritt 4: Transaktion senden


Beispiel 3: Fehlerbehandlung

Häufige Fehler und wie Sie diese beheben:

ExceededSlippage

Der Output war geringer als minimum_amount_out. Versuchen Sie es mit höherer Slippage-Toleranz oder erstellen Sie die Route neu.

SqrtPriceX64 (CLMM)

Ein CLMM-Hop ist außerhalb der limit_prices-Grenzen abgewichen. Aktualisieren Sie die Grenzen und versuchen Sie es erneut.

InvalidOwner

Ein zwischengeschaltetes oder ausgehendes ATA gehört dem Aufrufer nicht. Der Router validiert die Inhaberschaft bei jedem Slot; stellen Sie sicher, dass jedes ATA, das Sie übergeben, von der Wallet des Benutzers abgeleitet wurde (nicht von irgendeiner anderen Autorität).

Tipps und Best Practices

ATAs vorab erstellen

Bevor Sie zum ersten Mal über ein neues zwischengeschaltetes Token leiten, erstellen Sie das ATA des Benutzers, damit die Route die Validierung nicht fehlschlägt:
Für wSOL verwenden Sie vorzugsweise CreateSyncNative (Tag 5) – es erstellt das ATA, überweist das SOL und synchronisiert alles in einer Instruction.

Vor der Ausführung abfragen

Fragen Sie die Pools immer ab und berechnen Sie den erwarteten Output, bevor Sie die Instruction erstellen:

Verwenden Sie neuere Instruction-Varianten (8–9)

Die Tags 8 und 9 (SwapBaseIn und SwapBaseOut) sind nachsichtiger mit limit_prices. Nutzen Sie diese vorzugsweise vor den älteren Varianten, wenn Sie keine CLMM-Preisvalidation benötigen.

Nächste Schritte

Quellen: