FeeData.blockTimestampDeposit is meant to store the block.timestamp of the last time a deposit was made or updated. This variable is updated incorrectly in UpliftOnlyExample::afterUpdate.
feeDataArray[tokenIdIndex].blockTimestampDeposit = uint32(block.number);
In UpliftOnlyExample: https://github.com/Cyfrin/2024-12-quantamm/blob/main/pkg/pool-hooks/contracts/hooks-quantamm/UpliftOnlyExample.sol#L610
blockTimestampDeposit is set to block.number, however according to the variable name, blockTimestampDeposit should store the block.timestamp of the last time when a deposit was made / updated.
Incorrect state may cause issues in the code if future updates use the blockTimestampDeposit variable for key logic.
Manual
Set blockTimestampDeposit to be block.timestamp, not block.number in afterUpdate.
Likelihood: Medium/High, any NFT transfer will change this variable. Impact: Informational/Very Low. This variable is unused and won’t impact anything, but the array is public and its getter will return a variable with inconsistencies.
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.