Skip to main content
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Das macht dieses Skript. Lädt einen CPMM-Pool vom RPC, quotiert einen Swap mit 0,5% Slippage, baut die Transaktion, signiert mit Ihrem Keypair und sendet sie ein. End-to-End in etwa 30 Zeilen.

Vorbereitung

Stellen Sie sicher, dass Sie die Quick-Start-Voraussetzungen gelesen haben und RPC_URL, KEYPAIR sowie die erforderlichen Abhängigkeiten installiert sind.

Das Skript

Speichern Sie es als swap.mjs:

Ausführung

Wählen Sie einen CPMM-Pool aus, für den Sie Liquidität haben. Beispiel mit dem kanonischen SOL/USDC CPMM-Pool:
Erwartete Ausgabe:

Was ist gerade passiert

  1. Raydium.load initialisiert das SDK — lädt die globale Konfiguration und richtet Ihren Wallet-Kontext ein.
  2. getPoolInfoFromRpc ruft den aktuellen Pool-Status direkt vom RPC ab (nicht aus dem API-Cache). Bei hochpreisigen Swaps möchten Sie immer den aktuellen Status.
  3. CurveCalculator.swap berechnet die Constant-Product-Ausgabe abzüglich der Poolgebühr. Dies ist die gleiche Mathematik, die das Programm On-Chain durchführt, sodass Sie Quotes Off- und On-Chain vergleichen können.
  4. raydium.cpmm.swap erstellt die Transaktion im V0-Format (Address Lookup Tables aktiviert) und fügt eine explizite Compute-Budget-Konfiguration hinzu. Das Compute-Budget-Trinkgeld hilft der Transaktion, in vollen Blöcken bestätigt zu werden.
  5. execute({ sendAndConfirm: true }) signiert, sendet und wartet auf Bestätigung.

Häufige Fehler

  • Pool not found — Falscher POOL_ID, oder Sie sind auf dem falschen Cluster verbunden (Mainnet-Pool-ID gegen einen Devnet-RPC usw.).
  • Insufficient funds for transaction — Ihr Wallet hat nicht genug SOL für die Swap-Eingabe + Gebühren + ATA-Miete.
  • Slippage tolerance exceeded — Der Preis des Pools hat sich zwischen Quote und Ausführung verschoben. Führen Sie das Skript erneut aus, erhöhen Sie den slippage-Parameter, oder verwenden Sie die SDK-Methode computeAmountOut, die immer die Reserven neu abruft.
  • Token account not initialized — Das Output-Token-Konto existierte nicht und die implizite Erstellungsinstruktion wurde ausgeführt, ist aber fehlgeschlagen. Überprüfen Sie Ihren SOL-Saldo und versuchen Sie es erneut.

Nächste Schritte