Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ch03-12 DeepBookV3 与 Margin、Predict 的依赖关系

返回本章

先抓住结构

先把“DeepBookV3 与 Margin、Predict 的依赖关系”放进 DeepBook 的对象图里。这里不是罗列模块,而是建立阅读顺序:入口在哪里,状态放在哪里,资金最终在哪里结算。

架构坐标

先把架构坐标钉在这些文件上。读这一节时不需要展开所有实现,只要看清对象分工、入口函数和后续会反复回来的状态边界。

这些入口是架构地图上的锚点。先标注每个模块负责的状态,再顺着一次下单或结算回到具体函数。

读架构

DeepBookV3 是现货 CLOB 和池级资产保管层。DeepBook Margin 与 Predict 是独立 package 范围内的上层协议或相邻协议,源码目录分别在 packages/deepbook_marginpackages/predict

本章讨论的 vault::FlashLoan 是 DeepBookV3 闪电贷 hot potato,不是 Margin 普通借贷债务。读 Indexer 或事件表时也要区分 DeepBookV3 的 FlashLoanBorrowed 与 Margin 的借贷事件。

阅读补充

DeepBookV3、Margin、Predict 可以共享生态和资产,但源码包和状态机需要分开阅读。spot 下单路径不应引入 Margin 借贷债务,Predict 的市场结算也不应被解释成订单簿撮合。

判断依赖关系时优先看 Move.toml、模块 import、对象类型和事件模块。只有源码中出现明确调用或共享对象关系,才把它写成依赖;否则写成相邻协议或后续章节入口。

工程判断

  • 文档中提到借贷时明确来自 Margin 还是 V3 flash loan。
  • 事件索引表要按 package/module 区分 spot、margin、predict。
  • 跨产品组合交易要分别列出每个包的对象和权限。

读完以后问自己

  • V3 flash loan 和 Margin loan 的状态生命周期有什么不同?
  • Predict 包为什么不能用 Pool/Book 流程解释?
  • 如何用源码判断两个产品是否存在真实依赖?