There is a mismatch between the interface definition and implementation of initialisePoolRuleIntermediateValues function. The interface and implementation use different parameter names and descriptions, which could lead to confusion and potential misuse in external integrations.
Even though all function parameters use same type in interface and in implementation (otherwise it wouldn't compile), there is a mismatch in the semantics of 2nd and 3rd parameter.
Function definition in IUpdateRule.sol interface:
In UpdateRule.sol implementation:
Name and description, thus the semantics, of 2nd and 3rd parameter are completely different. Looking at body of initialisePoolRuleIntermediateValues implementation it's clear that implemenation's semantics are correct and it is the interface that is out-of-date.
Low severity because:
Creates confusion about correct parameter usage
Could lead to incorrect values being passed by callers causing failures in integration
Makes code harder to maintain and audit
However, actual functionality still works correctly if used properly
Manual review
Update the interface to match the implementation and provide clearer documentation.
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.