The notifyRewardAmount
function in BaseGauge contract updates reward accounting and distribution state without requiring actual token transfer into the contract.
The function:
Updates periodState.distributed
Updates rewardRate
But never transfers tokens to the contract
I should note that this function have an onlyController
modifier but in the GaugeController
we don't send tokens when we use this function.
Contract state becomes desynchronized from actual token balance and Users may be unable to claim rewards due to insufficient contract balance
Manual Review
Add token transfer
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.