QuantAMM

QuantAMM
49,600 OP
View results
Submission Details
Severity: low
Valid

There is no function to change `upliftFeeBps`

Summary

The upliftFeeBps variable in UpliftOnlyExample lacks a setter function, making it immutable after contract deployment despite the implementation suggesting it should be mutable (Storing data in poolsFeeData so that future upliftFeeBps doesn't retroactively affect them)

Vulnerability Details

The contract stores upliftFeeBps in poolsFeeData for each position, indicating an intention to allow fee changes while preserving historical rates for existing positions. However, there is no function to modify the upliftFeeBps state variable after deployment.

Impact

  • Contract owner cannot adjust uplift fees to respond to market conditions

  • Contradicts design intention to allow fee modifications

Tools Used

Manual Review

Recommendations

Add an owner-controlled setter function similar to setHookSwapFeePercentage():

function setUpliftFeeBps(uint64 newUpliftFeeBps) external onlyOwner {
upliftFeeBps = newUpliftFeeBps;
emit UpliftFeeBpsChanged(address(this), newUpliftFeeBps);
}
Updates

Lead Judging Commences

n0kto Lead Judge 11 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

invalid_immutable_oracles/variables

Appeal created

huntoor Submitter
11 months ago
honour Auditor
11 months ago
huntoor Submitter
11 months ago
n0kto Lead Judge
11 months ago
n0kto Lead Judge 10 months ago
Submission Judgement Published
Validated
Assigned finding tags:

finding_upliftFeeBps_is_immutable_but_should_be_changeable_according_to_the_sponsor

Likelihood: Low, it cannot be changed but should not need to be changed often. Impact: Low, the code still works with fees.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!