The gauge's rewards are distributed per 'period' (7 or 30 days depending on gauge type).
Because BaseGauge::periodFinish doesn't return the correct period's end time, rewards from the current period are accrued indefinitely.
lastUpdateTime is the last time when rewardPerTokenStored, the rewards per token accumulator was updated. Every time an user or controller interacts with the gauge it's updated via updateReward modifier.
The periodFinish() uses same lastUpdateTime to compute the end time of current period. As long as any user/controller interacted with the gauge in the last period time (in the last 7 or 30 days depending on gauge type), the periodFinish will be in the future.
periodFinish is used in lastTimeRewardApplicable -> getRewardPerToken to calculate the current reward per token.
The latest applicable reward time is prolonged indefinitely. When admin doesn't starts a new period and adds new rewards, the last rewards are spread over a longer time interval than the desired period.
Last users to claim rewards will be unable to do so due to insufficient reward balance.
The latest applicable reward time may be prolonged indefinitely. Rewards are not distributed as intended.
When a new period is started the periodState.periodStartTime is set. Use this variable to get the period end time.
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.