A flaw in the RAACToken::setFeeCollector function makes some restricted functions of the RAACToken contract unusable.
The RAACToken contract has several restricted functions. Only the owner can call the RAACToken::setFeeCollector function and only the minter can call the RAACToken::mint function. The minter (the RAACMinter contract) needs to be the able to call both of these functions to operates correctly.
If RAACMinter is both the minter and the owner, it needs to be able to call all the restricted functions of the RAACToken contract including manageWhitelist(), setTaxRateIncrementLimit() and setMinter(). However, there is no way in the RAACMinter contract to call these functions on the RAACToken contract, making them unusable. It is even impossible to change the owner of RAACToken in that case since there is no function in RAACMinter allowing to transfer the ownership of RAACToken.
If instead the minter is not the owner, then it is the RAACToken::mint function that is unusable making the protocol unuable to mint users' rewards.
Either the mint function or some other restricted function are unusable depeding on whether the minter is the owner or not.
Manual review.
Make the RAACToken::setFeeCollector function callable by the minter.
Consider the following changes.
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.