updatePeriod() and setInitialWeight() calculate the next period start time as:
This logic would create gaps between periods which could be as large as twice of periodDuration. For example, in case of RWA Gauge Period, assume current period starts with day 30 and ends on day 60. Let's say currentTime
is equal to endTime of current period i.e. day 60. Period duration for RWA gauge is 30 days. So next period start would be (60/30 + 2) * 30 = 120
i.e. 60 days after current time.
This gap is problematic because any change in weights during this interim gap duration are not considered for calculating time-weighted weights' average and hence totally ignored. Users can increase/decrease their vote position but with no effect.
The primary purpose of calculateAverage()
is to determine time-weighted vote weights, which affect:
How rewards are distributed between different gauges based on their relative weights
Users who increase & decrease their position during the interim gap duration will see it have no effect on the above. This is because calculateAverage()
only considers weights inside period durations and not outside them:
Change to something like:
_updateWeights() has a similar problematic calculation:
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.