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.