The QuantAMMWeightedPool::calculateBlockNormalisedWeight function will calculate the weights incorrectly during the first few calculations.
In the QuantAMMWeightedPool contract, the multipliers are explicitly set to 0 in the _setInitialWeights function. As a result, when the first calculation is carried out, the multiplier is 0, which will return weights with no change.
_setInitialWeights function ->
The first or first few calculations will be wrong due to assigning the multiplier as 0, which prevents proper weight calculation and leads to incorrect results.
Manual review
Do not explicitly assign 0 to the multiplier. Instead, assign a correct initial value to it.
If assigning 0 is necessary initially, perform test run swaps to update the multiplier value before performing any weight calculations.
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.