Main contracts and tests implement different pragma versions.
Main contracts in the repo implement the following pragma:
Whereas 16 tests in pkg/pool-quantamm/test implement a newer pragma:
The tests include:
pkg/pool-quantamm/test/foundry/MultiHopOracle.t.sol:
pkg/pool-quantamm/test/foundry/OracleWrapper.t.sol:
pkg/pool-quantamm/test/foundry/QuantAMMStorage.t.sol:
pkg/pool-quantamm/test/foundry/UpdateWeightRunner.t.sol:
pkg/pool-quantamm/test/foundry/utils.t.sol:
pkg/pool-quantamm/test/foundry/rules/QuantAMMAntiMomentum.t.sol:
pkg/pool-quantamm/test/foundry/rules/QuantAMMChannelFollowing.t.sol:
pkg/pool-quantamm/test/foundry/rules/QuantAMMDifferenceMomentum.t.sol:
pkg/pool-quantamm/test/foundry/rules/QuantAMMMinVariance.t.sol:
pkg/pool-quantamm/test/foundry/rules/QuantAMMMomentum.t.sol:
pkg/pool-quantamm/test/foundry/rules/QuantAMMPowerChannel.t.sol:
pkg/pool-quantamm/test/foundry/rules/UpdateRule.t.sol:
pkg/pool-quantamm/test/foundry/rules/base/Covariance.t.sol:
pkg/pool-quantamm/test/foundry/rules/base/Gradient.t.sol:
pkg/pool-quantamm/test/foundry/rules/base/MathGuard.t.sol:
pkg/pool-quantamm/test/foundry/rules/base/Variance.t.sol:
Different pragmas in main contracts and tests can lead to the following issues:
Discrepancies in how the contract behaves when tested versus deployed.
The tests might fail or pass incorrectly due to differences in behavior between the compiled versions of the contracts and the tests.
Deployment inconsistencies.
Cursor and manual inspection.
Change all the test pragmas to pragma solidity ^0.8.24 to match the pragmas in the main contracts.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.