Omniscia vfat Audit

RamsesGaugeRegistry Static Analysis Findings

RamsesGaugeRegistry Static Analysis Findings

RGR-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/ramses/RamsesGaugeRegistry.sol
23constructor(
24 IGaugeRegistryVoter voter_,
25 RamsesGaugeConnector ramsesGaugeConnector_,
26 IRamsesPairFactory ramsesPairFactory_,
27 RamsesV3Connector ramsesV3Connector_,
28 address ramsesCLGaugeFactory_
29) {
30 voter = voter_;
31 ramsesGaugeConnector = ramsesGaugeConnector_;
32 ramsesPairFactory = ramsesPairFactory_;
33 ramsesV3Connector = ramsesV3Connector_;
34 ramsesCLGaugeFactory = ramsesCLGaugeFactory_;
35}

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.

RGR-02S: Multiple Top-Level Declarations

Description:

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

Example:

contracts/connectors/ramses/RamsesGaugeRegistry.sol
12interface IRamsesPairFactory {
13 function isPair(address pair) external view returns (bool);
14}
15
16contract RamsesGaugeRegistry 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.