Omniscia Pareto Audit

VeVotesAdapter Static Analysis Findings

VeVotesAdapter Static Analysis Findings

VVA-01S: Multiple Top-Level Declarations

Description:

The referenced file contains multiple top-level declarations that decrease the legibility of the codebase.

Example:

src/governance/VeVotesAdapter.sol
9interface IVeLocker {
10 function balanceOf(address account, uint256 timestamp) external view returns (uint256);
11 function totalSupply(uint256 timestamp) external view returns (uint256);
12}
13
14error VeVotesAdapterLockerZero();
15error VeVotesAdapterDelegationDisabled();
16
17/// @title VeVotesAdapter
18/// @notice Wraps the ve8020 voting escrow to expose an {IVotes}-compatible API
19/// @dev The adapter projects voting power on timestamps (EIP-6372 timestamp clock)
20contract VeVotesAdapter is IERC5805 {

Recommendation:

We advise all highlighted top-level declarations to be split into their respective code files, avoiding unnecessary imports as well as increasing the legibility of the codebase.

Alleviation:

The IVeLocker interface was relocated to its dedicated IVeLocker file, addressing this exhibit.