Core Contracts

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

Incorrect Fee Type Configuration in FeeCollector Contract

Summary

Fee types 6 (Swap Tax) and 7 (NFT Royalties) are misconfigured, with basis points not summing to 10000 (100%), leading to incorrect fee distribution.

Vulnerability Details

// FeeCollector.sol
function _initializeFeeTypes() internal {
// Buy/Sell Swap Tax (2% total)
feeTypes[6] = FeeType({
veRAACShare: 500, // 0.5%
burnShare: 500, // 0.5%
repairShare: 1000, // 1.0%
treasuryShare: 0 // 0%
}); // Total: 2% (2000 basis points)
// NFT Royalty Fees (2% total)
feeTypes[7] = FeeType({
veRAACShare: 500, // 0.5%
burnShare: 0, // 0%
repairShare: 1000, // 1.0%
treasuryShare: 500 // 0.5%
}); // Total: 2% (2000 basis points)
}

The functions updateFeeType() requires:

if (newFee.veRAACShare + newFee.burnShare + newFee.repairShare + newFee.treasuryShare != BASIS_POINTS) {
revert InvalidDistributionParams();
}

Where BASIS_POINTS = 10000 but both fee types sum to 2000.

Impact

80% of fees unaccounted for these types when calculating distributions, they will be redirected to Treasury, per _calculateDistribution

Tools Used

Manual

Recommendations

Adapt those fees so that they equal to 10000 to have a proper repartition.

Updates

Lead Judging Commences

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