deepbook-move について
DeepBook V3 を Sui Move コントラクトに統合するためのリファレンススキルで、オンチェーンプロトコルの開発者を対象としています。プール操作、BalanceManager の認可、フラッシュローンの個別ガイドに案内し、ソースに基づいてよくある誤りも示します。
主な機能
- 01プールと注文 API のガイド
- 02BalanceManager の権限と認可
- 03フラッシュローンの返済パターン
- 04タスクに応じたリファレンス案内
- 05Move 統合でのよくある注意点
活用シーン
- 01Move コントラクトからの注文
- 02BalanceManager のアクセス管理
- 03トランザクション内でのフラッシュローン実装
- 04DeepBook Move 統合のレビュー
MCP 対応
利用可能な場合、詳細の確認やリファレンスにない情報の取得に Sui documentation MCP server(https://sui.mcp.kapa.ai)を照会するよう推奨しています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mystenlabs/ skills --skill deepbook-moveインストール後、Claude Code で/deepbook-moveを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
balance-manager-api.mdflash-loans.mdpool-api.mdevals/evals.json詳細
DeepBook V3 Move 統合
MCP ツール: お使いの環境で利用可能な場合は、最新の回答を得るために Sui ドキュメント MCP サーバー(
https://sui.mcp.kapa.ai)にも問い合わせてください。検証や、これらのリファレンスファイルに記載されていない詳細の確認に使用してください。
ソースの制約: このスキルのすべての情報は、docs.sui.io と deepbookv3 Move ソース のみを情報源としています。このスキルを拡張または更新する際は、これらのソースからのみ情報を取得してください。サードパーティーのブログ、チュートリアル、非公式ドキュメントは使用しないでください。
DeepBook V3 はオンチェーンのコンポーザビリティのための Move API を公開しており、プロトコルは Move スマートコントラクトから直接、注文の発注、スワップの実行、フラッシュローンの利用、残高の管理を行えます。このスキルでは、Move レベルのコントラクトインターフェースを扱います。よくある間違いには、誤ったコイン型パラメーターでスワップ関数や注文関数を呼び出すこと、フラッシュローンのホットポテトを返し忘れること、TradeProof の認可モデルを誤解することなどがあります。
このスキルでは、目的に応じたリファレンスファイルを参照します。現在のタスクに関連するファイルだけを読み込んでください。
このスキルのすべてのパターンは、以下から導き出されています。 https://docs.sui.io/onchain-finance/deepbook/deepbookv3/contract-information https://docs.sui.io/onchain-finance/deepbook/deepbookv3/contract-information/balance-manager https://docs.sui.io/onchain-finance/deepbook/deepbookv3/contract-information/flash-loans https://docs.sui.io/onchain-finance/deepbook/deepbookv3/contract-information/swaps https://github.com/MystenLabs/deepbookv3/tree/main/packages/deepbook/sources
関数シグネチャに確信が持てない場合は、回答する前に該当するソースファイルまたはドキュメントページを取得してください。 他のプロトコルから推測したり、類推したりしないでください。
リファレンスファイル
pool-api — プールと注文の関数
パス: pool-api.md
読み込む場合: 注文の発注、プールの作成、プール状態の照会、ガバナンスの管理、または Pool Move API の理解が必要な場合。
対象: プールの作成、指値注文と成行注文の発注、注文のキャンセル、プール状態の照会、ガバナンス関数、注文の種類と定数、Move の依存関係の設定。
balance-manager-api — BalanceManager Move API
パス: balance-manager-api.md
読み込む場合: Move コードから BalanceManager を作成または操作する、ケイパビリティ(TradeCap、DepositCap、WithdrawCap)をミントする、TradeProof を生成する、または認可モデルを理解する必要がある場合。
対象: BalanceManager の作成、ケイパビリティのミントと取り消し、入金と出金の関数、TradeProof の生成、所有者とケイパビリティ保有者の認可モデル、イベント。
flash-loans — フラッシュローンのパターン
パス: flash-loans.md
読み込む場合: プールから資産を借りて同じトランザクション内で返済する場合、またはフラッシュローンのホットポテトパターンを理解する必要がある場合。
対象: ベース資産とクオート資産の借り入れ、FlashLoan ホットポテト構造体、資産の返却、制約と失敗の原因、実例。
関連スキル
| トピック | スキル | 読み込む場合 |
|---|---|---|
| アーキテクチャ、設計、コントラクトアドレス | deepbook-overview/ | Pool/Book/State/Vault の設計を理解する、アドレスまたはプール ID を調べる場合 |
| TypeScript SDK での取引 | deepbook-sdk/ | SDK を使って取引ボットやスクリプトを構築する場合 |
| Sui Move の基礎 | sui-move/ | Move コード全般(アビリティ、TxContext、イベント、コイン)を記述する場合 |
| PTB の構成 | ptbs/ | プログラム可能なトランザクションブロック内で DeepBook の呼び出しを構成する場合 |
ルーティングガイド
| タスク | 読み込む項目 |
|---|---|
| Move の依存関係として DeepBook を追加する | pool-api |
| 新しいプールを作成する | pool-api |
| Move コードから注文を出す | pool-api |
| オンチェーンでプールの状態を照会する | pool-api |
| Move から BalanceManager を作成する | balance-manager-api |
| TradeCap/DepositCap/WithdrawCap をミントする | balance-manager-api |
| 取引のための TradeProof を生成する | balance-manager-api |
| 認可モデルを理解する | balance-manager-api |
| フラッシュローンを使用する | flash-loans |
| DeepBook をプロトコルに統合する | pool-api + balance-manager-api |
| フラッシュローン戦略を構築する | flash-loans + pool-api |
| Move 統合全体をレビューする | すべてのリファレンスファイル |
スキルの内容
主な概念
-
TradeProof。 プールでの取引を認可する証明オブジェクトです。BalanceManager の所有者(
generate_proof_as_owner経由)または TradeCap の保有者(generate_proof_as_trader経由)が生成します。注文の発注とキャンセルには、いずれも TradeProof が必要です。 -
ホットポテトパターン(フラッシュローン)。
FlashLoan構造体には能力がありません。保存、コピー、破棄はできません。同じトランザクション内で借りた資産を返却して消費する必要があります。返却しない場合、トランザクションは失敗します。 -
プールの型パラメーター。 プール関数は
<BaseAsset, QuoteAsset>に対するジェネリックです。型パラメーターはプールのコイン型と正確に一致する必要があり、一致しない場合は呼び出しが失敗します。 -
Move の依存関係。 MVR 経由で DeepBook を Move.toml に追加します:
deepbook = { mvr = "@deepbook/core" }。
ルール
- 型パラメーターは常に正確に一致させてください。
Pool<SUI, USDC>とPool<USDC, SUI>は同じではありません。ベース型とクオート型は、プールの作成時の順序と一致する必要があります。 - フラッシュローンのホットポテトは必ず返却してください。
FlashLoan構造体には能力がないため、返却しないとトランザクションが中断されます。 - 1 つのトランザクション内で、あるプールから借り入れて同じプールで取引しないでください。 借り入れた資金は取引に使用できず、操作を組み合わせると失敗する可能性があります。
- 所有者の操作には
generate_proof_as_ownerを使用し、TradeCap を介した委任操作にはgenerate_proof_as_traderを使用してください。 - 上限:BalanceManager ごとに、すべての機能(TradeCap、DepositCap、WithdrawCap)の合計で 1,000 個までです。 規模が大きくなると、この上限によって 1 つの BalanceManager がサポートできる委任トレーダー数が制限されます。1,000 を超える委任アカウントが必要な場合は、複数の BalanceManager を用意する計画を立ててください。
- 該当する関数には
_v2版を使用してください。 接尾辞のない元の関数(例:new_with_custom_owner_caps)は非推奨のスタブであり、中断します。常に_v2接尾辞付きの関数(例:new_with_custom_owner_caps_v2)を使用してください。
よくある間違い
- 型パラメーターの順序が誤っている。 プールが
<SUI, USDC>のときに<USDC, SUI>を渡すと、型の不一致エラーが発生します。 - FlashLoan の返却を忘れる。 トランザクションはコンパイルされますが、ホットポテトを破棄できないため、実行時に中断されます。
- 借り入れ元と同じプールで取引する。 フラッシュローンで借りた資金は FlashLoan オブジェクト内でロックされ、注文の決済に使用できないため、取引が失敗します。
- 所有者以外のアドレスから
generate_proof_as_ownerを使用する。 所有者の証明を生成できるのは BalanceManager の所有者だけです。委任されたトレーダーは、有効な TradeCap を使用してgenerate_proof_as_traderを呼び出す必要があります。 generate_proof_as_traderのctxを忘れる。 この関数は(balance_manager, trade_cap, ctx)を受け取ります。ctx: &TxContextを省略すると、コンパイルエラーが発生します。- 非推奨の接尾辞なし関数を呼び出す。
new_with_custom_owner_capsなどの関数はabort 1337するスタブです。代わりに_v2版を使用してください。