★ Immutable oracle address
Dolomite's assessment for RD-F-180 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
[★ CRITICAL-CANDIDATE per PD-017 — evaluated; NOT counted in 19-star total; flagged for orchestrator/T-14 tracking] Oracle addresses are NOT immutable and ARE admin-replaceable. AdminImpl.sol exposes ownerSetPriceOracle(marketId, newOracle) allowing the PartiallyDelayedMultiSig admin (via 1-day timelock) to replace the oracle for any market. ChainlinkPriceOracleV1.insertOrUpdateOracleToken() allows owner to update individual Chainlink aggregator addresses per token. Oracle replacement is NOT in the timelock-bypass list per docs.dolomite.io/admin-privileges — subject to 1-day delay. Oracle addresses are mutable by admin. F180 green: not immutable, admin-replaceable wrapper exists.
Sources #
- DocsAdmin Privileges — Dolomitedocs.dolomite.io/admin-privileges — timelock bypass list (4 functions) does not include ownerSetPriceOracle; oracle replacement subject to 1-day delayretrieved 2026-05-16
- AdminImpl.sol — ownerSetPriceOracle functiondolomite-exchange/dolomite-margin/blob/master/contracts/protocol/impl/AdminImpl.sol — ownerSetPriceOracle(uint256 marketId, IPriceOracle priceOracle) confirmed, validates non-zero returnretrieved 2026-05-16
- ChainlinkPriceOracleV1.sol — insertOrUpdateOracleTokendolomite-exchange/dolomite-margin/blob/master/contracts/external/oracles/ChainlinkPriceOracleV1.sol — insertOrUpdateOracleToken() confirmed owner-restricted aggregator update functionretrieved 2026-05-16
Methodology #
Determine whether any collateral oracle address is marked `immutable` in protocol config with no admin-replaceable adapter wrapper, preventing the protocol from repricing when the upstream asset depegs.
See the full factor methodology and distribution across all protocols →