メインコンテンツへスキップ

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 による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
AMM v4命令は、プール側(AMM v4プログラムアカウント)とマーケット側(バインドされたマーケット用のOpenBookアカウント)の両方を均一に想定しています。いずれかのセットを省略またはミスマッチするとリバートします。以下のアカウントリストは、Raydium SDKのフィールド名を使用して明確にしています。基盤となるIDLでは、serum_*プレフィックスを使用する場合があります。

命令インベントリ

グループ命令注記
プールのライフサイクルInitialize2現在のプール作成命令(まだ機能していますが、UIは新しいプールをCPMMにデフォルト設定)。
リクイディティDepositリクイディティを追加し、LPを受け取ります。
リクイディティWithdrawLPをバーン、両方のサイドを比例配分で受け取ります。
スワップSwapBaseIn正確な入力スワップ(フルパス:ボールト + OpenBook)。
スワップSwapBaseOut正確な出力スワップ(フルパス)。
スワップSwapBaseInV2OpenBookをバイパスする正確な入力スワップ — ボールトのみ、アカウント数が少なくなります。
スワップSwapBaseOutV2OpenBookをバイパスする正確な出力スワップ。
メンテナンスSetParams管理者:プールのパラメータを変更。
メンテナンスWithdrawPnl発生したプロトコルPnLを所有者アカウントに転送。
メンテナンスCreateConfigAccount管理者:プログラムレベルのAmmConfig PDAを初期化。
メンテナンスUpdateConfigAccount管理者:プログラムレベルの設定パラメータを変更。
SDKはユーザーが使用する命令のビルダーのみを公開します。メンテナンス命令は通常、Raydiumキーパーが呼び出します。

Initialize2

既存のOpenBookマーケットにバインドされた新しいAMM v4プールをブートストラップします。 引数
nonce:        u8
open_time:    u64
init_pc_amount:   u64
init_coin_amount: u64
アカウント(書き込み可能 W、署名者 S
#名前WS注記
1token_programSPL Token。
2system_program
3rent
4ammWAmmInfoアカウント(シード化されたキー)。
5amm_authorityプログラムPDA。
6amm_open_ordersWOpenBook OpenOrders(シード化)。
7lp_mintW
8coin_mint
9pc_mint
10pool_coin_token_accountW
11pool_pc_token_accountW
12pool_withdraw_queueW
13pool_target_orders_accountW
14pool_lp_token_accountW作成者のLP ATA。
15pool_temp_lp_token_accountWスクラッチアカウント。
16market_programOpenBookプログラム。
17marketOpenBookマーケット。
18user_walletWS作成者。レント代を支払い、初期デポジットを提供。
19user_token_coinW
20user_token_pcW
後続条件
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN。ここでINIT_BURN ≈ 100 LP単位が流通から除外されます。
  • OpenBookオーダーはまだ掲示されていません。最初のMonitorStepが初期グリッドを掲示します。
一般的なエラーInvalidInput(小数点不一致、ソート未実施)、NotApproved、OpenBook側のInvalidMarketState

Deposit

リクイディティを追加します。 引数
max_coin_amount: u64
max_pc_amount:   u64
base_side:       u64    // 0 = coinにベース, 1 = pcにベース
// (SDK のいくつかのバリアントは other_amount_min も受け入れます)
アカウント(省略版)
#名前WS
1token_program
2ammW
3amm_authority
4amm_open_orders
5amm_target_ordersW
6lp_mintW
7pool_coin_token_accountW
8pool_pc_token_accountW
9market
10user_coin_token_accountW
11user_pc_token_accountW
12user_lp_token_accountW
13user_ownerS
数学 — 標準的な比例配分。プールの有効リザーブ(ボールト+オンボック)を使用して、SDKは指定されたLP量をもたらすcoin/pcペアを計算し、max_*に照らして検証します。いずれかのサイドが上限を超える場合はExceededSlippageでリバート。

Withdraw

LP をバーン、両方のサイドを受け取ります。 引数
amount: u64    // バーンするLP
アカウントDepositと同じですが、方向が逆です。lp_mintはバーン用に書き込み可能で、ユーザーATAは受信者です。MonitorStepに似たOpenBookからのセットルステップが内部で発生するため、返済は新しいリザーブを使用します。

SwapBaseIn

正確な入力スワップ。常にAMMパススワップ(OpenBookマッチングを通じてルーティングされません)。
新しいコードにはV2バリアントを使用してください。 AMM v4は不要になったため、OpenBookと流動性を共有しなくなり、V1エントリーポイント(SwapBaseInSwapBaseOut)— マーケット側の検証のためにOpenBookアカウントの完全なセットを必要とするもの — は機能的に冗長です。新しい統合はSwapBaseInV2 / SwapBaseOutV2を使用すべきです。これらは大幅に小さいアカウントリストを取り、今日の標準的な実行パスを表します。V1形式は、完全性のため、および既存のオンチェーン取引を読むためにここに記載されています。
引数
amount_in:            u64
minimum_amount_out:   u64
アカウント(省略版)
#名前WS
1token_program
2ammW
3amm_authority
4amm_open_ordersW
5amm_target_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8market_program
9marketW
10market_bidsW
11market_asksW
12market_event_queueW
13market_coin_vaultW
14market_pc_vaultW
15market_vault_signer
16user_source_token_accountW
17user_dest_token_accountW
18user_ownerS
数学products/amm-v4/mathを参照してください。 前提条件
  • amm.statusがスワップを許可(ステータスビットマスクのビット0が設定されていない)。
  • amm.state_data.pool_open_time <= now
  • amount_in > 0
  • user_source_token_accountは少なくともamount_inを保有。
後続条件
  • ユーザーはソーストークンからamount_inを失い、デストトークンからamount_out ≥ minimum_amount_outを獲得します。
  • state_data.swap_*_in_amountswap_*_out_amountがインクリメント(分析用)。
  • need_take_pnl_*がプロトコル手数料シェアでインクリメント。
一般的なエラーExceededSlippageInvalidInputInvalidStatusInvalidMarket

SwapBaseOut

正確な出力。SwapBaseInの逆数。アカウントは同じ。 引数
max_amount_in: u64
amount_out:    u64

SwapBaseInV2 / SwapBaseOutV2

OpenBookアカウント全体をスキップするバリアントスワップエントリーポイント。数学はV1パスと同じですが、アカウントリストはAMM側のみに縮小します。
#名前WS
1token_program
2ammW
3amm_authority
4amm_open_orders
5pool_coin_token_accountW
6pool_pc_token_accountW
7user_source_token_accountW
8user_dest_token_accountW
9user_ownerS
プールの有効リザーブは依然としてOpenBookに掲示されたトークンを考慮しているため、クォート数学は変わりません。計算を節約し、同じトランザクション内でOpenBookクランクが必要ない場合にマーケットアカウントを渡すのを避けるためにV2を使用します。Raydiumルーターは常にAMM v4を通じてルーティングする際にV2形式を使用します。 引数はV1形式と同じです(SwapBaseInV2の場合amount_in / minimum_amount_outSwapBaseOutV2の場合max_amount_in / amount_out)。

MonitorStep(レガシー / 無効)

クランクされなくなりました。 AMM v4は不要になったため、OpenBookと流動性を共有しなくなり、MonitorStepは何もすることがありません — プールにはOpenBookに掲示されたオーダーがありません。命令は下位互換性のためにオンチェーンプログラムに残っていますが、Raydiumキーパーはもはや呼び出しません。手動で呼び出すことは実質的にノーオプ(ゼロ化されたステート更新以外)であり、統合者には必要ありません。
元々、この命令はプールのOpenBook相互作用をクランクしていました。 引数
plan_order_limit:   u16
place_order_limit:  u16
cancel_order_limit: u16
アカウント — スワップ上記のすべて、プラス管理OpenBookアカウント。 元の効果(実践ではもはや関連性がありません):
  • 満たされたすべてのオーダーを決済(その収益はOpenBook CPIを通じてmarket_coin_vault/market_pc_vaultからプールのボールトに移動)。
  • 価格またはサイズがtarget_ordersに一致しなくなった古いオーダーをキャンセル。
  • target_ordersamm_open_ordersの間のギャップを埋めるための新しいオーダーを掲示。
パーミッションレス。任意のアカウントが呼び出すことができました。歴史的にはRaydiumキーパーがそれを定期的に行っていました。

WithdrawPnl / TakePnl

発生したプロトコル手数料の管理者スイープ。 引数
  • WithdrawPnlは引数を取りません。need_take_pnl_*を読み、その正確な額を移動します。
アカウント(省略版)
#名前WS
1token_program
2ammW
3amm_authority
4amm_config
5amm_open_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8pnl_coin_token_accountW受取人。AmmConfigに保存。
9pnl_pc_token_accountW
10pnl_ownerS管理マルチシグ。
11market_program
12marketW
13market_event_queueW
14market_coin_vaultW
15market_pc_vaultW
16market_vault_signer
効果
  • need_take_pnl_coinpool_coin_token_accountからpnl_coin_token_accountに転送します。
  • pcの場合も同様。
  • need_take_pnl_coinneed_take_pnl_pcをゼロ化。
発生したPnLがすでに不変量から除外されているため、リザーブに変更はありません。

SetParams

管理者パラメータ変更:ステータスビットマスク、オーダーグリッドの深さ、量の波、手数料(稀)など。Raydiumマルチシグによって呼び出されます。引数はCPMMのUpdateAmmConfigに類似した、param: u8タグ+ペイロード。

状態変化マトリックス

命令lp_mint供給ボールトPnLカウンタOpenBook
Initialize2初期供給は作成者にミント+ init_coin_amount+ init_pc_amount0OpenOrders作成
Deposit+両方とも+満たされたオーダーの決済
Withdraw両方とも−満たされたオーダーの決済
SwapBaseIn+ 入力、− 出力+ pnl シェアグリッド再掲示の可能性
SwapBaseOut+ 入力、− 出力+ pnl シェアグリッド再掲示の可能性
MonitorStep満たされたオーダーの決済キャンセル / 掲示
WithdrawPnl−(pnl スイープ)0
SetParams

次のステップ

ソース: