The burn function in RAACToken contract is defined as follows:
A taxAmount is calculated, and then a burn of amount - taxAmount is executed. If conditions are met (taxAmount > 0 and feeCollector != address(0), then the part of the tax for the fee collector is sent.
The problem arises because in the case where taxAmount > 0 but feeCollector == address(0), the taxAmount amount of tokens is neither burn nor sent to the fee collector. This means any user that wants to burn amount of token won't be able to burn this whole amount.
The impact of this issue is medium as it leads to wrong burning amount computation when taxAmount > 0 but feeCollector == 0.
Manuel review.
Make sure to correctly handle the specific case we described to make sure the full amount is burned:
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.