PythResolver.sol
Last updated
使用 Pyth 价格更新结算订单簿市场。
市场到期后,任何人都可以调用 resolveMarket(...) 提交 Pyth update data。
Resolver 从 msg.value 支付 Pyth update fee;多余 ETH/BNB 会退回。
Pyth 验证 update data,并返回市场配置 feed 在有效结算窗口内的价格。
如果这是首次有效提交,市场进入 Resolving,并启动 90 秒 finality window。
在 finality window 内,任何人都可以提交更早且会改变结果的有效 update。
finality 后,任何人都可以调用 finalizeResolution(...);结果规则为 price >= strike → YES 胜出,price < strike → NO 胜出。
function resolveMarket(uint256 factoryMarketId, bytes[] calldata priceUpdateData)
external
payable
function finalizeResolution(uint256 factoryMarketId) externalresolveMarket 要求 msg.value 至少覆盖 pyth.getUpdateFee(priceUpdateData)。当前核心 CLOB 合约不支付 resolver bounty。
Price ID 以 bytes32 存在 MarketFactory.marketMeta 中。
结算是 permissionless 的,但通常由托管 keeper 执行。
Confidence check 会拒绝价格不确定性过高的 update。
如果市场无法使用有效 Pyth data 结算,factory 可以进入配置的 fallback / cancellation 流程。
Last updated

