QuantAMMWeightedPool is an initializable contract, suggesting it is designed to be used via proxies. However, it is assigning non-immutable variables in its constructor, which would leave those values empty when accessed through the proxy.
https://github.com/Cyfrin/2024-12-quantamm/blob/main/pkg/pool-quantamm/contracts/QuantAMMWeightedPool.sol#L96
https://github.com/Cyfrin/2024-12-quantamm/blob/main/pkg/pool-quantamm/contracts/QuantAMMWeightedPool.sol#L88
https://github.com/Cyfrin/2024-12-quantamm/blob/main/pkg/pool-quantamm/contracts/QuantAMMWeightedPool.sol#L74
https://github.com/Cyfrin/2024-12-quantamm/blob/main/pkg/pool-quantamm/contracts/QuantAMMWeightedPool.sol#L175-L190
Non-immutable variables should be assigned during the initialize() function to ensure the proxy can access these values.
Some critical function calls could fail when executed through a proxy.
Manual Review
Assign these variables during the initialize() function.
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.