Price markets (auto via resolver keeper)
The resolver’s auto-settle keeper runs every 60s. On expiry of any Predict oracle with opted-in redeemers (or any indexedPositionMinted event), it builds one PTB per redeemer:
redemptions table; /profile realized-P&L tile + chart update on next refresh.
Log excerpt:
Binary event markets (manual via ResolverCap)
After the real-world outcome is known, the holder of the market’sResolverCap signs:
.binary-markets/registry.json. Outcome: 1 = YES, 2 = NO.
The script calls settlement::mark_resolved(settlement, resolver_cap, outcome, clock, ctx) which:
- Asserts
clock.timestamp_ms >= settlement.expiry_ms. - Sets
final_outcome. - Emits
MarketResolved.
Verify
EventMarketDetail. The hero gets a green/red RESOLVED YES/NO badge and the Redeem panel appears.
User redeem
UI: click Redeem X YES. PTB:/positions for resolved markets to remove a misleading “redeem” CTA.
Settlement → dark pool vault
Afterbinary-market:resolve fires, the next keeper tick that runs against a vault on that market flips to settlement mode and sweeps the V3 BM → vault → state == SETTLED. See Vault Deposit Flow step 4.