Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Voraussetzungen
raydium-sdk-V2-demo/src/cpmm; der GitHub-Link befindet sich neben jedem Abschnitt. Die Bootstrap-Initialisierung folgt der Datei config.ts.template des Demo-Repositories (Quelle):
Raydium-Instanz ist die Fassade des SDK — jedes Beispiel unten verwendet sie. Sie lädt Token-Listen und Gebührenkonfigurationen lazy von api-v3.raydium.io ab; Sie können sie in Offline-Umgebungen mit eigenen Daten vorinitialisieren.
Erstellen eines CPMM-Pools
Quelle:src/cpmm/createCpmmPool.ts
- Mints in Token0/Token1-Reihenfolge sortieren, bevor das PDA abgeleitet wird.
- Die einmalige
create_pool_feeanpoolFeeAccountzahlen. - Die zugehörigen Token-Konten des Aufrufers erstellen, falls fehlend.
- Das richtige Token-Programm (SPL Token vs. Token-2022) pro Seite auswählen.
Swap (Basis-Input)
Quelle:src/cpmm/swap.ts
getPoolInfoFromRpc von einem RPC ab. Quotieren Sie nicht über api-v3.raydium.io für eine Transaktion, die Sie gerade signieren — ein Quote, der einen Block alt ist, kann bei der Landung in ExceededSlippage verfallen.
Swap (Basis-Output)
Quelle:src/cpmm/swapBaseOut.ts
Liquidität einzahlen
Quelle:src/cpmm/deposit.ts
lpAmount in needed_token_0 und needed_token_1 anhand der aktuellen Pool-Reserven, bläst jeden um 1 + slippage für die maximum_*-Argumente der Anweisung auf und erstellt die ATA-Kreationen bei Bedarf.
Liquidität abheben
Quelle:src/cpmm/withdraw.ts
Protokoll-/Fonds-/Creator-Gebühren einziehen
Quelle:src/cpmm/collectCreatorFee.ts, src/cpmm/collectAllCreatorFee.ts
Diese Anweisungen sind Admin- oder Creator-gated und werden typischerweise von einem Signer aufgerufen, der vom Raydium-Multisig oder dem Pool-Creator gehalten wird. Das SDK stellt sie als rohe Builder bereit:
PoolState lesen:
Rust-CPI-Grundgerüst
Wenn Sie CPMM aus Ihrem eigenen Anchor-Programm aufrufen möchten — beispielsweise ein Vault, das im Namen seiner Depositors swapped — sieht der CPI-Kontext wie folgt aus. Die Kontenreihenfolge folgtproducts/cpmm/instructions.
CpiContext::new gegen CpiContext::new_with_signer und übergeben Sie Ihre Seeds.
Häufige Fallstricke
Eine kurze Checkliste, bevor Sie ein Support-Ticket öffnen:- Sortierte Mints. Wenn Ihr abgeleitetes
poolState-PDA nicht mit dem On-Chain-Pool übereinstimmt, haben Sie die Mints wahrscheinlich nicht sortiert. - Veraltetes API-Quote. Übergeben Sie niemals einen Reservewert von
api-v3.raydium.ioanCurveCalculator.swap. Rufen Sie den RPC auf. - Falsches Token-Programm. Der Vault eines Token-2022-Mints wird von dem Token-2022-Programm besessen, nicht von SPL Token. Verwenden Sie immer die Felder
token_0_program/token_1_programdes Pools. - Slippage unter-denominiert für Transfer-Fee-Mints. Wenn eine Seite des Pools ein Token-2022-Transfer-Fee-Mint ist, muss Ihr
minimum_amount_outin dem ausgedrückt sein, was der Benutzer tatsächlich erhält, nicht in dem, was der Vault sendet. NotApprovedbei einem Swap. Überprüfen SiePoolState.status— der Admin kann die Swaps auf diesem Pool pausiert haben. Sieheproducts/cpmm/instructionsfür die Status-Bitmaske.
Wo geht es als Nächstes hin?
sdk-api/typescript-sdk— vollständige SDK-Referenz.sdk-api/rest-api— Quote- und Pool-Metadaten-Endpunkte.user-flows/create-cpmm-pool— die Nicht-Code-Anleitung für denselben Flow.integration-guides/aggregator— wenn Sie CPMM als Teil eines Multi-Hop-Pfads routieren.

