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

ch10-12 Predict 事件和未来 Indexer 需求

返回本章

先看市场问题

这里先从市场定义往下看。“Predict 事件和未来 Indexer 需求”服务的是 Predict 市场如何被定义、定价、mint、settle 或索引;不要把它读成普通现货订单簿的变体。

源码入口

  • packages/predict/sources/predict.move:mint、redeem、supply、withdraw、配置相关事件。
  • packages/predict/sources/oracle.move:spot/SVI/settlement 更新事件。
  • PREDICT_MIGRATION.md:Indexer/Server 仍处计划或阻塞状态的版本依据。

读市场参数

当前合约事件覆盖交易、LP、配置和 oracle 变化:PositionMintedPositionRedeemedSuppliedWithdrawnTradingPauseUpdatedPricingConfigUpdatedRiskConfigUpdatedOracleAskBoundsSetOracleAskBoundsClearedQuoteAssetEnabledQuoteAssetDisabledOracleFeedIdSetOracleBasisBoundsUpdatedOracleCreatedOracleActivatedOraclePricesUpdatedOracleSVIUpdatedOracleSettledFeeAccrued 等。

PREDICT_MIGRATION.md 把 Predict schema、indexer 和 server 放在 Phase 2,尚未完成。因此本章只能说事件具备未来 Indexer 的数据基础,不能说已有稳定 Predict API。应用如果现在基于源码快照开发,需要直接读对象和交易事件,或自建临时索引。

事件可以支持两类读模型:用户账本和市场风险。用户账本关注 manager、owner、range key、quantity、cost、payout、fee;市场风险关注 oracle、expiry、vault balance、MTM、max payout、PLP supply 和 limiter 状态。

在 Indexer 未完成前,应用不能依赖公共 Predict API 返回完整 PnL。可行的过渡方案是保存用户签名交易的 digest 与 dry run 摘要,再用 RPC 查询交易详情重建局部历史。

Predict 边界判断

  • 所有 Indexer 描述都用“未来需求”“可设计为”,不写成已上线能力。
  • 事件 schema 必须包含 package/network/oracle/expiry/lower/higher。
  • 前端缓存要能在 RPC 交易查询失败时显示“历史待同步”,不能覆盖链上余额。

动手检查

  • Position 事件和 Vault/PLP 事件分别服务哪类页面?
  • 没有稳定 Indexer 时,用户 PnL 可以从哪些数据源临时恢复?
  • 未来 Server API 和链上对象状态发生冲突时,应以哪个为准?