HardhatDeFi
15,000 USDC
View results
Submission Details
Severity: low
Invalid

IDIVA interface is missing events and structs definition. Oversights cause confusion among devs and auditors andd may integration failures with associated contract(s).

Summary

In the IDIVA interface, there's so many structs, events, and functions which are important for readability and integration. However, the interface is missing some events and structs and has some unnecessary structs.

Vulnerability Details

IDIVA:

// @info: missing event
event StatusChanged(
Status indexed statusFinalReferenceValue,
address indexed by,
bytes32 indexed poolId,
uint256 proposedFinalReferenceValue
);
// @info: missing event
event FeeClaimTransferred(
address indexed from, address indexed to, address indexed collateralToken, uint256 amount
);
// @info: missing event
event FeeClaimAllocated(bytes32 indexed poolId, address indexed recipient, uint256 amount);
// @info: missing event
event LiquidityRemoved(
bytes32 indexed poolId,
address indexed longTokenHolder,
address indexed shortTokenHolder,
uint256 collateralAmount
);
// @info: missing event
event PositionTokenRedeemed(
bytes32 indexed poolId,
address indexed positionToken,
uint256 amountPositionToken,
uint256 collateralAmountReturned,
address indexed returnedTo
);
// @info: missing this struct in this interface
struct SettlementPeriods {
uint256 startTime;
uint256 submissionPeriod;
uint256 challengePeriod;
uint256 reviewPeriod;
uint256 fallbackSubmissionPeriod;
}

In the above snippet it's shown that events: StatusChanged, FeeClaimTransferred, FeeClaimAllocated, LiquidityRemoved, PositionTokenRedeemed and structs: SettlementPeriods are not present in the actual IDIVA interface.

These events and structs are necessary for interface compatibility.

Impact

  • Creates confusion among developers and auditors

  • May cause Integration Failures with Other Contracts:

    Incompatible Interfaces:

    AaveDIVAWrapperCore is interacting with DIVA smart contract using IDIVA interface, missing events & structs could break that interaction. For example, a function that expects some events and structs from DIVA external smart contract would fail because theose events & structs is missing in interface.

    Hard-to-Debug Issues:

    Missing events & structs can also lead to runtime errors if events & structs are conditionally required. The absence of the events & structs could result in failed transactions or exceptions that are difficult to trace, especially if only manifested under specific conditions.

Tools Used

  • Manual Review

Recommendations

Solution is simple, Please add those events & structs in the IDIVA interface.

Updates

Lead Judging Commences

bube Lead Judge 6 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.