Updating the fee will cause the already generated rewards for receivers to be lowered/increased based on the fee change.
Unlike removeSplitter which splits rewards before making any changes to the splitters:
updateFee, doesn't.
Changing the receives or their amounts will cause some of them to lose a part of their already generated rewards. This shouldn't be the case, as future changes to the basisPoints should not effect past generated rewards.
Example:
3 users are splitting the fees the following manner Alice (owner) - 40%, Bob - 30%, Eve- 30%
Some time passes and 100 are generated as rewards, that will be split with these fee percentages - 30 for Alice, 30 for Bob and 30 for Eve.
For one reason or another Alice lowers the _feeBasisPoints for Bob to 10% and increases hers to 50% and Eve to 40%.
Now when fees are split Bob will receive 10 tokens instead of 30, even thought his assets contributed to the rewards and if _splitRewards was called before the change made by Alice he would have received 30.
User losses funds.
Manual review
Call _splitRewards before changing the fee percentages or removing fee receivers. Note that this is already implemented inside removeSplitter, just not inside updateFee.
It should be called with try and catch to avoid DOS by receiver.
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.