Market State Machine
States
| State | Meaning | Main allowed operations |
|---|---|---|
Uninitialized | Not initialized | CreateMarket |
Active | Trading period | NewOrder ; CancelOrder ; MintPair ; RedeemPair ; ClaimFunds ; SubmitMarketResult |
ResultSubmitted | Oracle result submitted | StartDispute ; SubmitFinalMarketResult |
Dispute | Under dispute | Vote ; SubmitFinalMarketResult |
FinalCooling | Final cooling period | RequestDaoReview ; ConfirmFinalResult |
DAOReview | DAO review | ApproveDaoProposal ; ConfirmFinalResult |
Settlement | Settlement | ClaimMarketReward ; ClaimDisputeReward ; ClaimVoteReward ; ClaimFunds ; CloseMarket |
Closed | Closed | — |
Transition Diagram
Uninitialized ──CreateMarket──► Active ──────────────────────► Closed (abnormal)
│ SubmitMarketResult (expiry + oracle read)
▼
ResultSubmitted ──────► Settlement (no dispute: SubmitFinal after cooling)
│ StartDispute (staked challenge)
▼
Dispute ──────────► FinalCooling (SubmitFinal after voting + cooling)
│
┌─────────────────────────────┴──────────────────┐
ConfirmFinalResult(false) RequestDaoReview
FinalCooling expires ▼
▼ DAOReview
Settlement ◄────────────────────────────────────┘
│ ConfirmFinalResult(true), approvals ≥ threshold
│ CloseMarket (all assets drained)
▼
Closed
Time Windows
| Window | mainnet | devnet | Purpose |
|---|---|---|---|
Dispute | 24h | 5min | Challenge window after the oracle result is submitted |
Vote | 48h | 5min | Voting window during dispute resolution |
Cooling | 24h | 5min | Cooling period (no-dispute confirmation / final cooling after a dispute) |
Result Enum
| Value | Meaning |
|---|---|
Pending | No result yet |
Yes | Event happened |
No | Event did not happen |
Invalid | Oracle value abnormal, retryable |
Two Typical Paths
Happy path (no dispute):
Create → trade → submit result at expiry → 24h cooling → SubmitFinal straight into Settlement → claims → close.
Disputed path:
Someone stakes a challenge within 24h of result submission → 48h voting → 24h cooling → SubmitFinal writes the voting result → 24h final cooling (DAO review possible, override at threshold) → Settlement.