The BoostController contract implements a delegation mechanism, to allow users to delegate their voting power to pools/users as stated in the BoostController.md#features:
Features:
Boost delegation system
However, the boost delegation mechanism is both flawed and incomplete. While the BoostController::delegateBoost() function allows users to delegate their veRAAC balance, these delegations are never considered in boost calculations or any other contract functionality. Also, the existing code for the delegation mechanism allows for users to delegate veRAAC to themselves as well as to other users/pools infinitely. Which is not the intended behavior as stated in the BoostController.md#usage-notes:
Features:
Delegations require sufficient veRAAC balance
High. The delegation mechanism's incomplete implementation and lack of usage misleads users about a core advertised feature of the protocol.
High. The issue will occur every time the delegation mechanism is used in the current implementation and will affect any user attempting to utilize it, by simply not having any affect on the users and pools voting power.
To execute this proof of concept integrate foundry by running the following commands in your terminal, in the project's root directory:
Next, configure foundry by adding the following settings to foundry.toml:
After that, create a foundry/ directory inside the test/ directory. Inside foundry/, create the following file:
BoostModule.t.sol
And then paste the following code to BoostModule.t.sol:
And finally, run the proof of concept with the following command:
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.