Oracle staleness check present
Pendle Finance's assessment for RD-F-059 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
getOracleState() provides oldestObservationSatisfied boolean but does not auto-reject stale reads. Callers must query and act on this flag themselves. PendlePYOracleLib has no timeout enforcement. Pendle docs recommend calling getOracleState() before consuming rates but this is caller responsibility. Chainlink feeds have standard heartbeat staleness (3600s) enforced by Chainlink's aggregator. Yellow because staleness check exists but is passive/advisory, not enforced at the oracle level.
Sources #
- GitHubPendlePYLpOracle.sol — getOracleStatePendlePYLpOracle.sol getOracleState functionretrieved 2026-04-29
- https://docs.pendle.finance/Developers/Oracles/HowToIntegratePtAndLpOracleretrieved 2026-05-06
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 →