Core Contracts

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

Incorrect Fee Allocations in feeTypes Structure

Summary

The fee allocations in feeTypes[7] and feeTypes[6] for NFT Royalty Fees (2% total) do not correctly match the commented percentage values. The calculations are done in a 10,000 basis points (100%) system, meaning each percentage value should be multiplied by 100 to get its correct representation.

The expected breakdown for a 2% total fee is:

2% * 10000=200
Thus, all component shares should sum to 200 instead of 2000 (which is actually 20%).

Thus, all component shares should sum to 200 instead of 2000 (which is actually 20%).

Incorrect values found:

feeTypes[6] = FeeType({
veRAACShare: 500, // 0.5% (should be 50)
burnShare: 500, // 0.5%(should be 50)
repairShare: 1000, // 1.0%(should be 100)
treasuryShare: 0
});
feeTypes[7] = FeeType({
veRAACShare: 500, // 0.5% (should be 50)
burnShare: 0,
repairShare: 1000, // 1.0% (should be 100)
treasuryShare: 500 // 0.5% (should be 50)
});

Impact

The incorrect allocations result in an actual deduction of 20% instead of the intended 2%, leading to excessive fees.

Users are overcharged: Since the values represent 20% instead of 2%, users will be paying 10 times more in fees than expected.

Tools Used

Manual Review

Recommendations

Correct values should be:

feeTypes[7] = FeeType({
veRAACShare: 50,
burnShare: 0,
repairShare: 100,
treasuryShare: 50
});
feeTypes[6] = FeeType({
veRAACShare: 50,
burnShare: 50,
repairShare: 100,
treasuryShare: 0
});
Updates

Lead Judging Commences

inallhonesty Lead Judge about 2 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.