The RWAGauge.sol
contract calculates new period start times using absolute timestamp alignment, which can cause period misalignment with real-world asset payment cycles when L2 sequencer downtime occurs. This misalignment disrupts the synchronization between on-chain reward distributions and real-world rent collection cycles.
The RWAGauge contract handles 30-day periods for real-world asset yield distribution. The period transition mechanism in BaseGauge.sol calculates the next period start time using:
When sequencer downtime occurs near a period transition, the contract calculates the new period start by rounding to the next absolute 30-day boundary from timestamp 0. This creates a permanent misalignment between protocol periods and real-world payment cycles.
For example:
Period 1 starts January 1st
Period should transition on January 31st
Sequencer goes down on January 30th for 5 days
When sequencer resumes on February 4th, next period starts February 5th
All subsequent periods now start on the 5th instead of the 1st
The root cause is that the period calculation uses absolute timestamp alignment rather than maintaining relative 30-day increments from the previous period.
Medium - Protocol reward distributions become permanently misaligned with real-world rent collection cycles
Low - requires L2 sequencer to go down and timings to align,
Consider implementing these changes:
Calculate next period based on previous period rather than absolute alignment:
Add emergency realignment capability:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.