- 把 ch08 的协议结构落到 TypeScript SDK、PTB 构造、交易前检查和 UI 风控展示。
- 能创建或加载
MarginManager,完成抵押、供应、借款、交易、TPSL、还款和平仓流程。
- 能设计清算扫描器和 Margin 风控面板,正确展示健康度、风险率、利息和可借额度。
- L1 先从用户动作理解 Margin 应用:抵押、借款、交易、还款、清算。
- L2 用 SDK/PTB 封装 manager 创建、抵押、借款和杠杆交易。
- L3 把 UI 风险提示映射回 Move assert、oracle 和风险参数。
- L4 做出清算机器人或 Margin 风控面板。
code/s01-create-margin-manager/:创建或加载 MarginManager 的 CLI 骨架。
code/s02-deposit-collateral/:存入抵押品并做 dry run。
code/s03-borrow-and-trade/:借款并通过 pool_proxy 下单。
code/s04-repay-and-close/:还款、取消订单、结算和平仓流程。
code/s05-liquidation-bot/:清算扫描器骨架,连接 risk ratio、vault 余额和清算入口。
- Margin 应用开发要把用户动作拆成链上对象变化,而不是只按页面按钮设计流程。
- 每个风险提示都应该能追溯到 Move 里的某个 assert、配置字段或 oracle 条件。
- 清算机器人要同时懂 Move 入口、Indexer 延迟、oracle 新鲜度和 vault 资产可用性。
- 在用户前端暴露 admin cap 或 maintainer cap。普通用户不需要这些 cap。
- 把
supplyToMarginPool 当成保证金充值。它是借贷池供应,不是 manager collateral。
- 只查 manager 余额,不查 open order 和 settled amounts。风险率可能与 UI 显示余额不一致。
- 不做 dry run,直接提交复杂 PTB。Margin 交易依赖多个 shared object、oracle 和风险参数,失败面很多。
- 忽略
Option<u64> 语义。还款和平仓中 none 与 some 的行为不同。
- 清算机器人只看风险率,不看 vault 是否有对应 debt asset。
- 给
s03-borrow-and-trade 增加 --dry-run-only 参数,输出风险率变化但不提交交易。
- 给
s04-repay-and-close 增加 --reduce-only 模式,在 Pool 被禁用时仍允许用户降风险。
- 给
s05-liquidation-bot 增加 vault 资产再平衡提示:当 USDC 不足但 SUI 充足时,生成 swap_base_to_quote 交易建议。
- 为 UI 错误提示写一张 abort code 映射表,并把每个错误绑定到用户可执行的下一步。