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 →
Der Router führt keine Berechnung durch
Das Routing-Programm implementiert keinerlei Preislogik. Es ist ein reiner Orchestrator: Es akzeptiert eine Route, übergiebt Konten an untergeordnete Programme und verkauft Tokenflüsse aneinander. Jeder Hop berechnet Preise anhand seines eigenen Pool-Programm-Kurvenmodells:- AMM v4 Hops: verwenden die Constant-Product-Formel (
x · y = k) mit OpenBook-Hybrid-Preisgestaltung. Sieheproducts/amm-v4/math. - CPMM Hops: verwenden die Constant-Product-Formel mit konfigurierbaren Gebührentafeln. Siehe
products/cpmm/math. - CLMM Hops: verwenden Tick-Mathematik für konzentrierte Liquidität. Siehe
algorithms/clmm-math. - Stable Hops: verwenden die Stable-Swap-Kurve für ähnliche Assets. Siehe
products/stable/math.
- Den Swap-Befehl jedes Pools über CPI aufrufen.
- Den Ausgabebetrag erfassen.
- Ihn als Eingabebetrag an den nächsten Hop weitergeben.
- Die endgültige Ausgabe gegen das Slippage-Limit des Aufrufers prüfen.
Slippage-Kumulierung
Bei einer Multi-Hop-Route kumuliert sich die Slippage bei jedem Hop. Eine kleine Slippage beim Hop 1 wird zu einer größeren Slippage beim Hop 2, da das Volumen für Hop 2 bereits reduziert ist. Beispiel:minimum_amount_out angeben, prüft der Router Ihre endgültige Ausgabe gegen dieses globale Limit. Jeder Hop prüft auch seinen eigenen Swap gegen seine lokale Gebührenstruktur, aber der Router führt keine Neubewertung während der Route durch – Sie müssen die Route vorab berechnen und genug Slippage-Toleranz einkalkulieren.
CLMM Hops und limit_prices
Für jeden Hop in einen CLMM-Pool prüft der Router, dass diesqrt_price_x64 des Pools innerhalb einer festgelegten Grenze liegt. Die Grenzen werden als VecDeque<u128> namens limit_prices übergeben:
- Ein
sqrt_price_x64pro CLMM-Hop in der Route. sqrt_price_x64ist die Tick-basierte Preisdarstellung, die von CLMM verwendet wird. Siehealgorithms/clmm-mathfür die Definition.- Der Router erzwingt:
Befehlsvarianten und limit_prices
-
SwapBaseInWithUserAccount,SwapBaseOutWithUserAccount(Legacy, Tags 0 und 1): dielimit_pricesVecDeque ist erforderlich. Eine leere Deque wird mit einem Fehler abgelehnt, falls ein Hop ein CLMM-Pool ist. Sie müssen einen Preis pro CLMM-Hop in der richtigen Reihenfolge angeben. -
SwapBaseIn,SwapBaseOut(Aktuell, Tags 8 und 9): dielimit_pricesVecDeque ist optional. Eine leere Deque wird stillschweigend ignoriert; es wird keine Preisüberprüfung durchgeführt. Neuer Code sollte diese verwenden.
limit_prices erstellen
Für eine Route mit M CLMM-Hops sollte die Deque genau M Einträge enthalten. Ordnen Sie sie nach Hop:Wann limit_prices überprüfen
Dersqrt_price_x64 ist ein Snapshot des aktuellen Preises des Pools. Er ändert sich kontinuierlich während Swaps ausgeführt werden. Sie sollten:
- Den aktuellen Zustand des Pools von On-Chain abrufen.
- Akzeptable Grenzen berechnen (z. B. ±0,5% des aktuellen Preises).
- Diese Grenzen in
limit_priceskodieren. - Die Grenzen in Ihren Router-Befehl einbeziehen.
Gebührenbehandlung
Jeder Pool erhebt seine eigene Gebühr nach seiner Konfiguration:- AMM v4: 0,25% (festgelegt), aufgeteilt zwischen LP, Protokoll und Fonds.
- CPMM: konfigurierbar pro
AmmConfig(Standard 0,25%, Aufteilung variiert je nach Stufe). - CLMM: konfigurierbar pro Pool, vom Eingabebetrag abgezogen.
- Stable: wie AMM v4, 0,25% aufgeteilt.
products/amm-v4/feesproducts/cpmm/feesproducts/clmm/fees(falls verfügbar)products/stable/fees(falls verfügbar)
Beispiel für Multi-Hop-Buchhaltung
Angenommen, Sie führen USDC → SOL → STEP über zwei Constant-Product-Pools durch, die jeweils eine Gebühr von 0,25% erheben:Überlegungen zur Präzision
Wie alle Solana-Programme verwendet der Router Integer-Arithmetik:- Alle Beträge sind
u64(Lamports oder kleinste Token-Einheiten). - Kurvenberechnungen verwenden ggf.
u128-Zwischenwerte, um Überläufe zu vermeiden. - Rundungskonventionen hängen vom untergeordneten Programm ab. Der Router führt kein Neu-Rounding durch.
Nächste Schritte
products/amm-v4/math— Constant-Product-Mathematik.products/cpmm/math— CPMM Constant-Product mit Token-2022.algorithms/clmm-math— Preisgestaltung mit konzentrierter Liquidität.products/stable/math— Stable-Swap-Kurve.products/routing/code-demos— Beispiele für Angebotserstellung vor Routing.


