PredictStreetOracle is the only contract authorised to call
ConditionalTokens.reportPayouts for PredictStreet markets.
Key constants (testnet defaults)
| Parameter | Default | SOP reference |
|---|---|---|
bondAmount | 10 USDC | §8.1 |
challengeWindow | 7200s (2 hours) | §8.1 |
rewardAmount | 0 USDC | §8.3 |
revenueWallet | Set at deploy | §8.3 |
emergencyClearTimelock | 604800s (7 days) | §8.4 |
Write surface (oracle-service is the sole caller)
| Function | Purpose |
|---|---|
proposeOutcome(questionId, payouts[]) | Start challenge window |
finalizeOutcome(questionId) | After window, call reportPayouts |
resolveChallengeConfirm(questionId) | On dispute: confirm original |
resolveChallengeOverride(questionId, newPayouts[]) | On dispute: corrected |
voidMarket(questionId) | CO+CTO joint: all collateral refunded |
voidUnproposedMarket(questionId, outcomeSlotCount) | Void before proposeOutcome |
markDelayed(questionId) / undelay(questionId) | Pause-while-waiting |
initiateProposalClear(questionId) | Start 7d timelock for emergency clear |
executeProposalClear(questionId) | Execute after 7d |
Read surface (anyone)
| Function | Returns |
|---|---|
getProposal(questionId) | (questionId, payouts, proposedAt, bondSnapshot) |
getChallenge(questionId) | (challenger, bondSnapshot, note) |
getState(questionId) | uint8 state enum |
isInChallengeWindow(questionId) | bool |
Events
Challenging from a partner integration
API helper (recommended)
Direct on-chain
Source
0x24731ADFe7FB28E037c04D71f89f52974Ae76ee1 on
Blockscout
(testnet).