The RToken uses a fixed 18 decimals (inherited from ERC20) regardless of the underlying asset's decimals (e.g., USDC uses 6 decimals). This causes mismatches in value representation.
The RToken is based with underlying token. However it doesn't taken into account if the underlying token is having howmany decimals as described in the decimals() :
And this is what super.decimals() function looks like :
As in the case of burn() function :
The amount of burn and underlying asset transferred is same. However this thing will cause discrepancy (high leve)
Users will see incorrect balances, and interactions with the underlying asset will have scaling errors (e.g., 1 RToken might represent 1e12 underlying units instead of 1:1).
Manual Review
Change the decimals() code in the RToken.sol
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.