Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: low
Valid

feeTypes[6] and feeTypes[7] not having 10000 basis point in total

Summary

feeTypes[6] and feeTypes[7] total basis points is 2000. But in the fee distribution calculation it divided by 10000 instead of 2000. So it caused fee distribution is not work as mentioned ratio.

Vulnerability Details

feeTypes[6] , total basis point is = 500+500+1000 = 2000. same as feeTypes[7].

feeTypes[6] = FeeType({
veRAACShare: 500, // 0.5%
burnShare: 500, // 0.5%
repairShare: 1000, // 1.0%
treasuryShare: 0
});
// NFT Royalty Fees (2% total)
feeTypes[7] = FeeType({
veRAACShare: 500, // 0.5%
burnShare: 0,
repairShare: 1000, // 1.0%
treasuryShare: 500 // 0.5%
});

In case of feeTypes[6] and feeTypes[7] , when calculating shares , it is divided by BASIS_POINTS , instead of dividing by 2000. So this makes shares[0], shares[1],shares[2] become less value compared to actual one it should be. Eventually remaining funds(round off error and this 2000 division) is added to shares[3] which makes higher than expected .

Impact

This caused some funds should go to veRAACShare is send to treasuryShare. veRAAC holders loss some portion of fees generating from Buy/Sell Swap Tax and NFT Royalty Fees.

Tools Used

Manual Review

Recommendations

feeTypes[6] and feeTypes[7] change basis point as total becomes 10000.

Updates

Lead Judging Commences

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Fee shares for fee type 6 and 7 inside FeeCollector do not total up to the expected 10000 basis points, this leads to update problems, moreover they are 10x the specifications

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.