When deploying the FeeCollector
contract, it initializes fee types with hardcoded parameters. By analyzing the _initializeFeeTypes
function, it appears that each fee type is evenly distributed among four stakeholders based on BASIS_POINT
. However, the Buy/Sell Swap Tax
and NFT Royalty Fees
are only allocated 2000 BASIS_POINT, which deviates from the expected distribution.
At first glance, this may not seem like an issue, but problems arise when the protocol attempts to update the distribution using updateFeeType()
. This function ensures that all four parameters for a given fee type must sum up to exactly BASIS_POINTS
.
Due to this distribution would never be updated as intended, and if updated then it would be much higher then currently it is.
The impact would be decides based on intention of the sponsor:
High Impact: If the parameters of _initializeFeeTypes()
were correctly set initially, then the inability to update them would prevent necessary adjustments and if updated it could lead to an excessive (5x) distribution to certain stakeholders
Medium/Low Impact: If the primary allocation was a mistake during initialization, then it can still be fixed using updateFeeType()
Review and correct the BASIS_POINT
allocation in _initializeFeeTypes()
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.