このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
このスクリプトの動作。 RPC から CPMM プールを読み込み、0.5% のスリッページで見積もりを取得し、トランザクションを構築して、キーペアで署名し、送信します。全体で約 30 行です。
セットアップ
クイックスタートの前提条件を確認し、RPC_URL、KEYPAIR、および依存関係がインストールされていることを確認してください。
スクリプト
swap.mjs として保存します:
swap.mjs
実行
流動性を持つ任意の CPMM プールを選択します。標準的な SOL/USDC CPMM プールの例:何が起きたのか
Raydium.loadは SDK を初期化し、グローバル設定を取得し、ウォレットコンテキストをセットアップしました。getPoolInfoFromRpcは RPC から直接ライブプール状態を取得しました(API キャッシュからではなく)。高額なスワップの場合は常に最新の状態が必要です。CurveCalculator.swapはプールの手数料を差し引いた定積商品出力を計算しました。これはプログラムがオンチェーンで実行する数学と同じなので、オフチェーンとオンチェーンの見積もりを比較できます。raydium.cpmm.swapは V0 形式(アドレスルックアップテーブル有効)でトランザクションを構築し、明示的なコンピュート予算設定を追加しました。コンピュート予算チップは、ビジーな時間帯でトランザクションが確認されるのに役立ちます。execute({ sendAndConfirm: true })は署名、送信、確認を待ちました。
よくあるエラー
Pool not found—POOL_IDが間違っているか、クラスタが間違っています(mainnet プール ID を devnet RPC に対して使用するなど)。Insufficient funds for transaction— ウォレットにスワップ入力 + 手数料 + ATA レント用の SOL が不足しています。Slippage tolerance exceeded— 見積もりと実行の間にプールの価格が変動しました。再実行するか、slippageパラメータを上げるか、SDK のcomputeAmountOutを使用してください(常にリザーブを再取得します)。Token account not initialized— 出力トークンの ATA が存在せず、暗黙的な作成命令は着地しましたが何らかの理由で失敗しました。ウォレットの SOL 残高を確認して再試行してください。
次のステップ
sdk-api/typescript-sdk— 完全な SDK リファレンス。products/cpmm/instructions— オンチェーンのスワップ命令の詳細。integration-guides/priority-fee-tuning— 本番環境用のcomputeBudgetConfigのサイジング。

