Omniscia Euler Finance Audit

EVCClient Static Analysis Findings

EVCClient Static Analysis Findings

EVC-01S: Inexistent Sanitization of Input Address

Description:

The linked function accepts an address argument yet does not properly sanitize it.

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:

src/EVault/shared/EVCClient.sol
28constructor(address _evc) {
29 evc = IEVC(_evc);
30}

Recommendation:

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

Alleviation (fb2dd77a6ff9b7f710edb48e7eb5437e0db4fc1a):

The code was updated to utilize a newly introduced AddressUtils contract that will verify the address contains code instead, acting as a superset of the non-zero check and providing better sanitization of the referenced argument.

EVC-02S: Inexistent Visibility Specifier

TypeSeverityLocation
Code StyleEVCClient.sol:L18

Description:

The linked variable has no visibility specifier explicitly set.

Example:

src/EVault/shared/EVCClient.sol
18IEVC immutable evc;

Recommendation:

We advise one to be set so to avoid potential compilation discrepancies in the future as the current behaviour is for the compiler to assign one automatically which may deviate between pragma versions.

Alleviation (fb2dd77a6ff9b7f710edb48e7eb5437e0db4fc1a):

The internal visibility specifier has been introduced to the referenced variable, preventing potential compilation discrepancies and addressing this exhibit.