The collectFee
function in the FeeCollector
contract calls raacToken.safeTransferFrom(msg.sender, address(this), amount)
to transfer tokens from the sender to the contract. However, due to the tax mechanism implemented in the RAACToken
contract, the actual amount of tokens received by the FeeCollector
may be less than the specified amount
. This discrepancy arises because the RAACToken
contract applies swap and burn taxes on transfers, reducing the amount received by the FeeCollector
.
The collectFee
function in the FeeCollector
contract calls raacToken.safeTransferFrom(msg.sender, address(this), amount)
to transfer tokens from the sender to the contract.
The RAACToken
contract applies swap and burn taxes on token transfers via the _update
function:
When collectFee
calls raacToken.safeTransferFrom(msg.sender, address(this), amount)
, the RAACToken
contract deducts swap and burn taxes from the amount
.
The actual amount received by the FeeCollector
is:
However, the FeeCollector
updates its internal state (collectedFees
) using the original amount
, leading to an inconsistency between the recorded and actual fees.
The FeeCollector
contract overstates the amount of fees collected, which can lead to incorrect calculations in reward distribution and other fee-related operations.
This discrepancy undermines the accuracy and reliability of the protocol's fee tracking mechanism.
The impact is Medium, the likelihood is Low, so the severity is Low.
Manual Review
Consider following fix:
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.