Skip to main content

Rejection rules

A rate passes three sets of checks on chain before a contract settles on it. This page lists every one, and what happens when a check fails.

1. When the oracle contract receives a submission​

RuleIf it fails
The operator is registeredRejected
The contract has reached its expiryRejected as too early
The rate is above zeroRejected
At least 5 minutes since this operator's last submission for this contractRejected (cooldown)
The contract has no agreed rate yetRejected: an agreed rate is final

2. When the oracle looks for agreement​

RuleIf it fails
Only submissions under 15 minutes old countOlder ones are ignored
Only submissions from operators still registered countRemoved operators' submissions are ignored
At least 2 (the quorum) submissions within 1% of each otherNo rate is agreed yet; see Agreement and averaging

3. When the pool settles​

RuleIf it fails
The rate was agreed for this contract's exact expirySettlement is refused
The rate is between 0.5 and 2 times the rate at purchaseSettlement is refused and the contract waits for a valid rate
The oracle requires at least 2 operators, at most 1% spread, submissions under 15 minutes old and at least 5 minutes between an operator's submissionsThe pool will not use that oracle at all

A refused rate never pays anyone. The contract stays active, its reserve stays locked, and it settles once a valid rate is agreed. See Data failures.