In RaacToken.sol burn() User calls with amount he wants to burn and then he burns this amount of token and pays the taxAmount if its x > 0.
However this is an improper design chocie since if User wants to burn 50 tokens the current logic will lead to user burning less than he actually wants and then pay for tax.
Example: burnRate is 500 which is 5%
User calls burn with 50 tokens
(50 * 500) / 10 000
25 000 / 10 000 = 2 (2.5).
This leads to user burning less than what he wanted (48 tokens).
Impact
User not burning the amount he desires.
Manual Review
Burn the original input amount that user gave and then transfer the burnFeeAmount. User must be sure that he can cover the burnFeeAmount when he is calling the burn() function
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.