Skip to main content

Five-minute reference price

Every oracle-dependent action uses Orakl’s twap function with a 300-second interval and at least 5 observations. getOraclePrice() returns that average rather than the latest individual round. The latest observation must also be no older than maxOracleAge. If the five-minute average is unavailable, Rondo fails closed: new Fixed and Pegged orders are blocked, as are Pegged quotes and fills. Existing Fixed fills and every cancellation remain available because they do not need an oracle read.

Why maxOracleAge is 30 minutes

The current Orakl feeds normally update much faster than 30 minutes, while the wider window avoids halting PEG fills during a short feed delay. The configurable range is 5 minutes to 6 hours. The upper bound keeps freshness checks meaningful. Integrations must still use the stale result returned by getOraclePrice().

Why minOrderAmount has a floor

fillOrder enforces “while an order still has at least minOrderAmount remaining, a partial fill must itself release at least minOrderAmount”. At zero that test is vacuous, so a normal-sized order could be chipped through one-wei fills. One wei as a minimum is no better. The floor is therefore expressed in the token’s own units rather than in wei:
This is two orders of magnitude under the deployed defaults. A wei constant would necessarily be wrong across markets whose base tokens use 18, 2, and 6 decimals. The remainder after a valid fill is deliberately unconstrained. If an order is already below a newly raised minimum, the partial-fill threshold is waived; changing the configuration must not freeze an existing small remainder into an all-or-nothing fill.