Description:
The require statement in the SmartVaultV3::mint function is incorrect due to an error in the parameter passed to the fullyCollateralised() function. In the code require(fullyCollateralised(_amount + fee), UNDER_COLL);, it should check whether the Smart Vault remains adequately collateralized after minting the _amount of EUROs. Therefore, the fee (fee) should not be added to the quantity checked.
The code minted = minted + _amount + fee; also has a problem. Since minted is updating the quantity, the fee parameter should not be added.
Impact:
Incorrect parameter passed to the fullyCollateralised() function and incorrect updating of minted result in unexpected behavior when the owner calls the mint function. This significantly impairs the functionality of the protocol.
Recommended Mitigation:
The correct code should be:
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.