The AaveDIVAWrapper
contract does not directly inherit the IAaveDIVAWrapper
interface, relying on indirect inheritance through AaveDIVAWrapperCore
. While this approach is functional, direct inheritance of the interface in AaveDIVAWrapper
would make the contract’s relationship to the interface explicit. This enhances clarity, reduces ambiguity, and improves code maintainability.
The AaveDIVAWrapper
contract relies solely on AaveDIVAWrapperCore
for its interface implementation without directly declaring its dependency on IAaveDIVAWrapper
.
Readability: Developers reviewing the AaveDIVAWrapper
contract might need to trace through its inheritance tree to confirm that it adheres to the IAaveDIVAWrapper
interface.
Maintainability: Changes to AaveDIVAWrapperCore
that affect the implementation of IAaveDIVAWrapper
could introduce unintended side effects in AaveDIVAWrapper
.
Auditability: Indirect inheritance adds complexity for auditors verifying interface compliance.
Manuel Review
Refactor AaveDIVAWrapper
to directly inherit IAaveDIVAWrapper
. This ensures that the contract’s relationship with the interface is clear and explicitly stated in its declaration.
While this finding primarily affects developer experience, readability, and future maintenance, it does not create an immediate functional vulnerability. However, in complex systems like AaveDIVAWrapper, clarity and explicitness are valuable for long-term sustainability, especially in protocols with multiple contributors.
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.