defirisk.co
rubric v1.7.0

Oracle staleness check present

Dolomite's assessment for RD-F-059 — scored red on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.

Evidence summary #

ChainlinkPriceOracleV1.sol calls latestAnswer() (deprecated) rather than latestRoundData(). The latestAnswer() function does not return a timestamp — consequently no updatedAt staleness check is performed. Stale prices pass through silently. For Arbitrum the L2 sequencer flag partially compensates (detects sequencer downtime but not feed-specific staleness within a live sequencer). For Ethereum mainnet (68.5% of $189M TVL = ~$130M) and Berachain (20% = ~$38M), there is NO sequencer flag — no staleness protection exists. This is a confirmed structural gap in the oracle implementation across the two largest deployments by TVL.

Sources #

  • Docs
    Chainlink Data Feeds API Referencedocs.chain.link/data-feeds/api-reference — latestAnswer() is deprecated; latestRoundData() is the recommended function that returns updatedAt timestampretrieved 2026-05-16
  • GitHub
    ChainlinkPriceOracleV1.sol — source inspectiondolomite-exchange/dolomite-margin/blob/master/contracts/external/oracles/ChainlinkPriceOracleV1.sol — latestAnswer() call confirmed; no updatedAt check; L2 flag only for Arbitrumretrieved 2026-05-16

Methodology #

Determine whether the protocol rejects oracle reads older than a declared maximum age (i.e., checks `updatedAt > block.timestamp - maxStaleness`).

See the full factor methodology and distribution across all protocols →

rubric_version v1.7.0 protocol dolomite factor RD-F-059 score red collected_at 2026-05-16 11:12:56