Hi everyone!
As a follow-up to the Lido V3 mainnet deployment, a bug fix has been identified and addressed in LazyOracle (PR #1730).
The _handleSanityChecks function contained a validation check _maxLiabilityShares > record.maxLiabilityShares that caused false reverts during oracle report processing. The root cause is that record.maxLiabilityShares can increase between the oracle snapshot refSlot and the moment the report is submitted on-chain — for example, due to new minting activity or a previous report trigger that updates the on-chain record. This made a valid report appear stale, blocking oracle updates.
The fix removes the upper-bound check, keeping only the necessary _maxLiabilityShares < _liabilityShares guard. VaultHub already enforces the relevant constraints independently at the time the report is applied, making the removed check redundant.
The updated implementation has been deployed:
LazyOracle: 0x96c9a897D116ef660086d3aA67b3af653324aB37
Proposed items for the upcoming vote:
- Upgrade
LazyOracleproxy0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6cimplementation to0x96c9a897D116ef660086d3aA67b3af653324aB37.
Audit reports can be found here.