Omniscia vfat Audit

VelodromeGaugeRegistry Static Analysis Findings

VelodromeGaugeRegistry Static Analysis Findings

VGR-01S: Inexistent Sanitization of Input Addresses

Description:

The linked function(s) accept address arguments yet do not properly sanitize them.

Impact:

The presence of zero-value addresses, especially in constructor implementations, can cause the contract to be permanently inoperable. These checks are advised as zero-value inputs are a common side-effect of off-chain software related bugs.

Example:

contracts/connectors/velodrome/VelodromeGaugeRegistry.sol
25constructor(
26 IGaugeRegistryVoter voter_,
27 IPairFactory v2PairFactory_,
28 IPairFactory deprecatedSlipstreamPairFactory_,
29 IPairFactory slipstreamPairFactory_,
30 VelodromeGaugeConnector v2GaugeConnector_,
31 SlipstreamGaugeConnector slipstreamGaugeConnector_
32) {
33 voter = voter_;
34 v2PairFactory = v2PairFactory_;
35 deprecatedSlipstreamPairFactory = deprecatedSlipstreamPairFactory_;
36 slipstreamPairFactory = slipstreamPairFactory_;
37 v2GaugeConnector = v2GaugeConnector_;
38 slipstreamGaugeConnector = slipstreamGaugeConnector_;
39}

Recommendation:

We advise some basic sanitization to be put in place by ensuring that each address specified is non-zero.

Alleviation (6ab7af3bb495b817ffec469255ea679b1813eecb):

The vfat team evaluated this exhibit but opted to acknowledge it in the current iteration of the codebase.

VGR-02S: Multiple Top-Level Declarations

Description:

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

Example:

contracts/connectors/velodrome/VelodromeGaugeRegistry.sol
11interface IPairFactory {
12 function isPair(
13 address pair
14 ) external view returns (bool);
15}
16
17contract VelodromeGaugeRegistry is ICustomConnectorRegistry {

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 (6ab7af3bb495b817ffec469255ea679b1813eecb):

The vfat team evaluated this exhibit but opted to acknowledge it in the current iteration of the codebase.