when locking raac the code in the lock function checks if amount is more than max lock amount
the validation is on the assumption that veerac is minted 1:1 to raac however this is false and results in the max amount cap being harsh on users
here in calculatandupdatepower function we can see the formula used to determine how many veeracs user gets is based on his amount and lock time
https://github.com/Cyfrin/2025-02-raac/blob/89ccb062e2b175374d40d824263a4c0b601bcb7f/contracts/libraries/governance/VotingPowerLib.sol#L89-L90
example scenario
amount = 11,000,000
duration = 2 years = 2 * 365 * 24 * 60 * 60 = 63,072,000 seconds
MAX_LOCK_DURATION = 4 years = 4 * 365 * 24 * 60 * 60 = 126,144,000 seconds
uint256 amount = 11_000_000;
uint256 duration = 2 * 365 * 24 * 60 * 60; // 63,072,000 seconds
uint256 MAX_LOCK_DURATION = 4 * 365 * 24 * 60 * 60; // 126,144,000 seconds
uint256 initialPower = 5_500_000;
which means the final veeRAAC amount minted is 5.5 million for 11 million lock amount which is well within the max veerac amount
harsh cap limit on users applied
the cap should be on the final mint amount
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.