Unused Interface Leads to ABI Drift Risk
Description:
The repository defines an IStratax interface that specifies the expected external API, events, and structs of the protocol, but the main implementation:
does not inherit from nor explicitly implement IStratax.
As a result:
The compiler does not enforce that Stratax matches the declared interface.
Function signatures, return values, or visibility may unintentionally diverge.
Events defined in the interface may be missing or inconsistently emitted.
Future upgrades can silently break integrations without compilation errors.
Interfaces in Solidity serve as a compile-time contract. Not using them removes this safety layer and creates a risk of ABI drift between the documented API (IStratax) and the actual deployed implementation.
Impact:
This is primarily a maintainability and integration risk:
Integrators relying on IStratax may interact with a contract that does not fully conform to it.
Refactors can introduce breaking changes without being detected during compilation.
Audits and tooling cannot rely on the interface as the source of truth.
Event mismatches may break off-chain indexers or monitoring systems.
No immediate loss of funds is caused, but the pattern increases the likelihood of future integration or upgrade errors.
Recommended Mitigation:
Explicitly bind the implementation to the interface:
This ensures the compiler enforces:
Full implementation of all required functions
Correct signatures and visibility
ABI consistency with the documented specification
If certain functions are intentionally excluded, the interface should be updated to reflect the true external surface instead of remaining unused.
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.
The contest is complete and the rewards are being distributed.