The onlyRewardAdmin
modifier in FjordStaking::addReward
function implies that only an authorized actor should be able to add the Fjord token (FJO) to the contract. However, FJO can be freely transfer into the contract by anyone without calling the addReward
function.
Any contract or EOA that holds FJO can transfer the tokens into the FjordStaking contract which will then be redistributed among the stakers.
The main difference between transferring funds to the staking contract directly and calling addReward
is that:
No check for epoch rollover is performed, leading to potentially incorrect state.
The RewardAdded
event is not emitted.
If someone sends FJO to the contract without calling addReward
, the internal function _checkEpochRollover
will not be triggered. Because of that important state variables like totalRewards
, rewardPerToken
and currentEpoch
may become outdated.
Manual Review
Consider removing the onlyRewardAdmin
modifier from FjordStaking::addReward
to allow anyone to add rewards while ensuring that important state variables are automatically updated.
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.