In contracts::core::collectors::FeeCollector.sol
, the FeeCollector
contract incorrectly assigns fee share values in feeTypes[6]
(Swap Tax) and feeTypes[7]
(NFT Royalty Fees). The fee shares in basis points are initialized 10 times higher than the protocol rules, causing the protocol to distribute significantly more funds than intended.
The FeeCollector
contract's constructor uses _initializeFeeTypes
internal function to initialize fee types with protocol rules. In _initializeFeeTypes
, fee shares are set using a basis points system (BASIS_POINTS = 10000). However, the values in feeTypes[6]
and feeTypes[7]
appear to be mistakenly set at 500 for 0.5% instead of 50, and 1000 for 1.0% instead of 100.
In contracts/core/collectors/FeeCollector.sol#L379-L393
:
Each affected category will receive 10x the intended share of funds, causing the protocol to distribute significantly more funds than intended.
More specifically, in contracts/core/collectors/FeeCollector.sol#L455-L456
:
Here, the fee remainder is added to shares[3]
(the treasury share). Since the other shares are inflated, the treasury share will be significantly decreased.
Manual Review
Correct the fee share values in feeTypes[6]
and feeTypes[7]
:
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.