User can delegateBoost() to multiple addresses with the same veToken balance
BoostController.delegateBoost() allows caller to delegate their voting power to another addresses, however the function does not take into account how much boost the caller (msg.sender) has delegated so far, opening the possibility of multiple addresses being delegated with the same voting power.
User can delegate boost (equivalent to 100% of their voting power) to multiple addresses, making the overall boost of the contract much higher than what it should be.
Manual review
Add a new state variable `mapping (address => uint256) alreadyDelegated` which shows how much a user has delegated so far. This variable must be increased for msg.sender when boost is delegated and decreases when delegated boost is removed.
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.