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 →
Diese Seite ist die autoritative Anweisungsreferenz für das AMM-Routing-Programm. Für Code-Beispiele siehe
products/routing/code-demos. Für Fehlererklärungen siehe reference/error-codes.Übersicht der Anweisungen
| Tag | Diskriminator | Genau | Variante |
|---|---|---|---|
| 0 | SwapBaseInWithUserAccount | Input | Legacy |
| 1 | SwapBaseOutWithUserAccount | Output | Legacy |
| 5 | CreateSyncNative | — | Utility |
| 6 | CloseTokenAccount | — | Utility |
| 8 | SwapBaseIn | Input | Aktuell |
| 9 | SwapBaseOut | Output | Aktuell |
- Genau: Welcher Betrag vom Aufrufer festgelegt wird (Input = Exact-Input
amount_in; Output = Exact-Outputamount_out). - Variante: Legacy-Anweisungen erfordern eine nicht-leere
limit_prices-Deque, auch wenn kein CLMM-Hop in der Route enthalten ist. Aktuelle Anweisungen (8 / 9) behandeln eine leerelimit_pricesals „keine Überprüfung”, was der empfohlene Weg für neuen Code ist.
SwapBaseIn) oder Tag 9 (SwapBaseOut), es sei denn, Sie haben einen bestimmten Grund, eine Legacy-Variante aufzurufen.
Aktuelle Swap-Anweisungen (empfohlen)
Dies sind die Einstiegspunkte, die neuer Code verwenden sollte. Die Argumentstruktur ist identisch mit den Legacy-Varianten, aberlimit_prices kann leer sein.
SwapBaseIn (Tag 8)
Exact-Input Multi-Hop-Swap. Der Aufrufer legt amount_in fest; der Router führt Hop für Hop aus und prüft, dass der endgültige Betrag bei oder über minimum_amount_out liegt.
Argumente
- Der Aufrufer signiert mit
user_input_ata. user_input_ata.amount >= amount_in.- Jede Zwischen-Benutzer-ATA existiert und gehört dem Aufrufer.
- Wenn ein Hop CLMM ist und Sie Preisgrenze-Erzwingung möchten, geben Sie einen
limit_prices-Eintrag pro CLMM-Hop an.
user_input_ata-Guthaben umamount_inverringert.user_output_ata-Guthaben um ≥minimum_amount_outerhöht.- Jede Zwischen-ATA verbleibt mit Null-Netto-Änderung (die Route verbraucht, was sie einen Hop früher produziert hat).
ExceededSlippage— endgültiger Output <minimum_amount_out.InvalidInput— leere Route, fehlgeformte Konten oder nicht unterstütztespool_program.SqrtPriceX64— der Preis eines CLMM-Hops hat sich außerhalb der angegebenenlimit_prices-Grenze bewegt (nur wennlimit_pricesnicht leer ist).
SwapBaseOut (Tag 9)
Exact-Output Multi-Hop-Swap. Der Aufrufer legt amount_out fest; der Router prüft, dass der tatsächliche Input maximum_amount_in nicht überschreitet.
Argumente
- Der Aufrufer signiert mit
user_input_ata; Guthaben>= maximum_amount_in(schlimmster Fall). - Jede Zwischen- und die Ausgangs-ATA existieren.
user_input_ataum den benötigten tatsächlichen Betrag verringert (≤maximum_amount_in).user_output_ataum genauamount_outerhöht.
ExceededSlippage— erforderlicher Input überschreitetmaximum_amount_in.InvalidInput,SqrtPriceX64— wie für Tag 8.
Legacy-Swap-Anweisungen
Diese älteren Varianten sind im Live-Programm noch aufrufbar und werden hier der Vollständigkeit halber dokumentiert. Bevorzugen Sie Tag 8 / Tag 9 für neuen Code; beide Legacy-Varianten unten erfordern eine nicht-leerelimit_prices-Deque, auch wenn kein CLMM-Hop beteiligt ist, was sie umständlich zu verwenden macht.
SwapBaseInWithUserAccount (Tag 0)
Exact-Input Multi-Hop-Swap, identisch mit Tag 8 in Form, aber mit der strengeren limit_prices-Anforderung.
Argumente
SwapBaseIn (Tag 8). Alle Zwischen-Slots müssen ATAs sein, die dem Aufrufer gehören.
Vorbedingungen
- Der Aufrufer signiert mit
user_input_ata. user_input_ata.amount >= amount_in.- Alle Zwischen-Benutzer-ATAs existieren und gehören dem Aufrufer.
limit_pricesist nicht leer (ein Eintrag pro CLMM-Hop; füllen Sie mit Platzhalterwerten auf, wenn kein CLMM-Hop beteiligt ist).
user_input_ata-Guthaben umamount_inverringert.user_output_ata-Guthaben um ≥minimum_amount_outerhöht.
ExceededSlippage.InvalidInput— leerelimit_priceswird bei dieser Legacy-Variante abgelehnt.SqrtPriceX64.
SwapBaseOutWithUserAccount (Tag 1)
Exact-Output-Swap, das Legacy-Gegenstück zu SwapBaseOut (Tag 9).
Argumente
- Der Aufrufer signiert mit
user_input_ata. user_input_ata.amount >= maximum_amount_in.- Alle Zwischen-Benutzer-ATAs existieren und gehören dem Aufrufer.
limit_pricesist nicht leer.
user_input_ataum den benötigten tatsächlichen Betrag verringert (≤maximum_amount_in).user_output_ataum genauamount_outerhöht.
ExceededSlippage.InvalidInput.SqrtPriceX64.
Utility-Anweisungen
CreateSyncNative (Tag 5)
Erstellen Sie (falls fehlend) und synchronisieren Sie eine wSOL-ATA in einem Schritt. Praktisch beim Wrappen von SOL inline neben einem Swap.
Argumente
- Erstellt
user_wsol_ata, falls nicht vorhanden. - Überweist
amountLamports vom nativen SOL-Guthaben des Unterzeichners zur ATA. - Ruft
SyncNativeauf der ATA auf, damit sein Token-Guthaben die neuen Lamports widerspiegelt.
InvalidOwner— der Besitzer vonuser_wsol_ataist nicht der Unterzeichner.
CloseTokenAccount (Tag 6)
Schließen Sie ein Token-Konto und geben Sie seine Miete an die Zielgeldbörse zurück. Paart mit CreateSyncNative: Nach einem wSOL-Leg-Swap rufen Sie CloseTokenAccount auf, um die Miete wiederherzustellen, die die wSOL-ATA unterstützt hat.
Argumente — keine.
Konten
- Schließt
token_account_to_close. - Überweist den mietfreien Lamport-Saldo (~0,00203928 SOL im Mainnet für ein Vanilla-SPL-Token-Konto) zu
destination_for_rent. - Das Token-Konto muss einen Token-Saldo von Null haben.
InvalidOwner— der Aufrufer ist nicht der ATA-Besitzer.- Token-Kontosaldo ist nicht Null.
Weiterführende Ressourcen
products/routing/code-demos— Erstellung jeder dieser Anweisungen in TypeScript.products/routing/accounts— Per-AMM-Dispatch-Keys und Per-Hop-Kontenlayout.reference/error-codes— vollständigeRouteError-Liste.


