Omniscia Euler Finance Audit

IRMSynth Static Analysis Findings

IRMSynth Static Analysis Findings

IRM-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:

src/Synths/IRMSynth.sol
28constructor(address synth_, address referenceAsset_, address oracle_) {
29 synth = synth_;
30 referenceAsset = referenceAsset_;
31 oracle = IPriceOracle(oracle_);
32
33 irmStorage = IRMData({lastUpdated: uint40(block.timestamp), lastRate: BASE_RATE});
34}

Recommendation:

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

Alleviation (fb2dd77a6ff9b7f710edb48e7eb5437e0db4fc1a):

All input arguments of the IRMSynth::constructor function are adequately sanitized as non-zero in the latest in-scope revision of the codebase, addressing this exhibit.