The protocol allows updating of various fee types via the FeeCollector::updateFeeType
function. However, there is an issue with the initial configuration of certain fee types (Buy/Sell Swap Tax and NFT Royalty Fees)
where their shares sum to less than 100%, which may prevent those fee types from being updated properly. When attempting to update these fee types with values that sum to less than 100%, the validation in the FeeCollector::updateFeeType
function triggers a revert, potentially blocking necessary updates.
The FeeCollector::_initializeFeeTypes
function initializes specific fee types with share totals that sum to less than 100% (e.g., Buy/Sell Swap Tax and NFT Royalty Fees
).
FeeCollector::_initializeFeeTypes
:
2.The FeeCollector::updateFeeType
function checks that the sum of the shares (veRAACShare
, burnShare
, repairShare
, treasuryShare
) for a fee type must equal 100% (BASIS_POINTS
).
FeeCollector::updateFeeType
:
3.If the sum of shares does not equal 100%, the function reverts with the InvalidDistributionParams()
error.
4. This validation prevents updating the fee types (Buy/Sell Swap Tax and NFT Royalty Fees
) because their initial sums are less than 100%, creating a scenario where legitimate updates are blocked.
Fee types like Buy/Sell Swap Tax and NFT Royalty Fees may become immutable or stuck in a state where they cannot be updated to proper values.
The inability to update fee types could limit flexibility in adjusting protocol fees and prevent necessary updates or corrections.
Manual
Modify the validation in updateFeeType() to allow fee types initialized with less than 100% to be updated appropriately, without blocking legitimate changes.
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.