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.
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
帳戶配置:使用者 ATA 貫穿始終
每個啟用的交換變體都會透過使用者控制的 ATA 路由中繼代幣。使用者擁有輸入 ATA、每個中繼 ATA 以及最終輸出 ATA。在活躍表面上沒有共享的/路由器擁有的中繼代幣帳戶。 特性:- 使用者對每個中繼代幣擁有一個 ATA。
- 使用者在帳戶列表中提供每個 ATA。
- 每個中繼 ATA 必須已存在(對於 wSOL 使用
CreateSyncNative初始化,或在路由之前使用 SPL 關聯代幣帳戶程式為任何其他 mint 初始化)。 - 路由器在每個跳點時從一個 ATA 轉出並轉入下一個池的金庫。
- 每個中繼 ATA 在每條路由結束時的餘額與開始時相同 — 路由消耗上一個跳點產生的内容。
USDC → SOL → STEP 的範例流程:
各跳點帳戶配置
每個跳點的帳戶連續傳遞。路由器透過讀取每個跳點塊中的第一個帳戶(程式 ID)來識別子程式,然後分配到正確的處理程式。 對於每個跳點,路由器期望帳戶分組為:AMM v4 跳點
約 18 個帳戶:池、授權、金庫、mint、OpenBook 市場帳戶(保留在帳戶列表中以向後相容,儘管 AMM v4 的 OpenBook 整合不再有效)、代幣程式。請參閱products/amm-v4/accounts 以獲取完整列表。
CPMM 跳點
約 11–13 個帳戶:池狀態、授權、金庫 (2)、mint (2)、代幣程式、系統程式、關聯代幣程式。請參閱products/cpmm/accounts。
CLMM 跳點
約 15+ 個帳戶:池、刻度陣列、金庫、mint、觀察狀態、簽署者、代幣程式。請參閱products/clmm/accounts。
Stable 跳點
類似於 AMM v4。請參閱products/stable/accounts。
代幣流動與 ATA 所有權
- 呼叫者使用
user_input_ata簽署。 - 呼叫者必須擁有所有輸入、中繼和輸出 ATA。如果任何中繼 ATA 的擁有者不是簽署者,路由器將拒絕交易。
- 呼叫者的
user_input_ata餘額必須足以供第一個跳點的輸入(標籤 0 / 8 的amount_in,或標籤 1 / 9 的maximum_amount_in)。 - 每個中繼 ATA 必須已在鏈上存在。如果不存在,請提前建立 — 通常透過 SPL 關聯代幣帳戶程式,或使用
CreateSyncNative(標籤 5)建立 wSOL ATA。
CreateSyncNative 指令
如果你需要透過包裝的 SOL 進行路由,且不想手動建立並同步 wSOL ATA,請使用CreateSyncNative(標籤 5):
amount SOL 轉入其中,並在一個指令中同步它。對於在路由前初始化新的 wSOL ATA 很有用。
CloseTokenAccount 指令
路由完成後,你可能想要關閉任何中繼 ATA — 最常見的是 wSOL ATA — 以回收租金。使用CloseTokenAccount(標籤 6):
後續內容
products/routing/instructions— 每個指令的引數形狀和帳戶列表順序。products/routing/code-demos— 以 TypeScript 建立路由。reference/program-addresses— 子程式 ID。


