Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Der Router führt keine Berechnungen durch
Das Routing-Programm implementiert keine Preislogik. Es ist ein reiner Orchestrator: Es akzeptiert eine Route, übergibt Konten an untergeordnete Programme und verkettelt Token-Flüsse. Jeder Hop berechnet Preise anhand seiner eigenen Pool-Programmkurve:- 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 konzentrierte Liquiditäts-Tick-Mathematik. Siehe
algorithms/clmm-math. - Stable Hops: verwenden die Stable-Swap-Kurve für ähnliche Assets. Siehe
products/stable/math.
- Aufrufen der Swap-Anweisung jedes Pools über CPI.
- Erfassung des Ausgabebetrags.
- Übergabe als Eingabebetrag an den nächsten Hop.
- Überprüfung der endgültigen Ausgabe gegen das Slippage-Limit des Aufrufers.
Slippage-Kumulierung
Bei einer Multi-Hop-Route ist der Slippage bei jedem Hop kumulativ. Ein kleiner Slippage bei Hop 1 wird zu einem größeren Slippage bei Hop 2, da das Volumen in Hop 2 bereits reduziert ist. Beispiel:minimum_amount_out angeben, überprüft der Router Ihre endgültige Ausgabe gegen dieses globale Limit. Jeder Hop überprüft auch seinen eigenen Swap gegen seine lokale Gebührenstruktur, aber der Router führt keine Neuberechnung während der Route durch – Sie müssen die Route vorberechnen und ausreichende Slippage-Toleranz einplanen.
CLMM Hops und limit_prices
Für jeden Hop in einen CLMM-Pool überprüft der Router, dass der aktuellesqrt_price_x64 des Pools innerhalb einer angegebenen 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:
Anweisungsvarianten und limit_prices
-
SwapBaseInWithUserAccount,SwapBaseOutWithUserAccount(Legacy, Tags 0 und 1): dielimit_pricesVecDeque ist erforderlich. Eine leere Deque wird mit einem Fehler abgelehnt, wenn 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; keine Preisüberprüfung wird durchgeführt. Neuer Code sollte diese verwenden.
Erstellen von limit_prices
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üft werden
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 der Blockchain abrufen.
- Akzeptable Grenzen berechnen (z. B. ±0,5% des aktuellen Preises).
- Diese Grenzen in
limit_priceskodieren. - Die Grenzen in Ihre Router-Anweisung einbeziehen.
Gebührenbehandlung
Jeder Pool erhebt seine eigene Gebühr gemäß seiner Konfiguration:- AMM v4: 0,25% (fest) aufgeteilt zwischen LP, Protokoll und Fonds.
- CPMM: konfigurierbar pro
AmmConfig(Standard 0,25%, Aufteilung variiert je nach Tier). - CLMM: konfigurierbar pro Pool, vom Eingabebetrag abgezogen.
- Stable: 0,02% (fest), aufgeteilt 88% LP / 12% Protokoll.
products/amm-v4/feesproducts/cpmm/feesproducts/clmm/fees(falls verfügbar)products/stable/fees(falls verfügbar)
Multi-Hop-Abrechnungsbeispiel
Angenommen, Sie routen USDC → SOL → STEP über zwei Constant-Product-Pools, jeweils mit einer Gebühr von 0,25%:Genauigkeitsüberlegungen
Wie alle Solana-Programme verwendet der Router Integer-Arithmetik:- Alle Beträge sind
u64(Lamports oder kleinste Token-Einheiten). - Kurvenberechnungen verwenden
u128Zwischenwerte, wo nötig, um Überläufe zu vermeiden. - Rundungskonventionen hängen vom untergeordneten Programm ab. Der Router führt keine Neuberechnung durch.
Nächste Schritte
products/amm-v4/math— Constant-Product-Mathematik.products/cpmm/math— CPMM Constant-Product mit Token-2022.algorithms/clmm-math— konzentrierte Liquiditätspreisgestaltung.products/stable/math— Stable-Swap-Kurve.products/routing/code-demos— Beispiele für Quoting vor dem Routing.

