the emergencyWithdraw
function in FeeCollector
contract, transfers raac tokens to the Treasury
contract if token address is raac token. the issue is these tokens will be stuck in Treasury
contract forever.
The Treasury
contract have deposit()
and withdraw()
functions, and the logic is allows only funds that comes from deposit()
function can be withdrawn:
the issue is emergencyWithdraw()
function in FeeCollector
contract sends raac tokens by using safeTransfer()
not deposit()
function of Treasury
contract:
therefor all of the raac tokens that directly sends to Treasury
contract will be stuck because there is no way to withdraw it because the _balances
mapping doesnt updated so withdraw()
will be revert by underflow.
Some raac tokens will be stuck in Treasury
contract for ever.
Manual Review
Consider using deposit()
function of Treasury
contract when transfering funds.
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.