Omniscia vfat Audit

MigrationStrategy Static Analysis Findings

MigrationStrategy Static Analysis Findings

MSY-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/strategies/MigrationStrategy.sol
39constructor(
40 SickleFactory oldFactory_,
41 SickleFactory newFactory_,
42 ConnectorRegistry oldConnectorRegistry_,
43 ConnectorRegistry connectorRegistry_
44) {
45 oldFactory = oldFactory_;
46 newFactory = newFactory_;
47 connectorRegistry = connectorRegistry_;
48 oldConnectorRegistry = oldConnectorRegistry_;
49}

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.

MSY-02S: Multiple Top-Level Declarations

Description:

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

Example:

contracts/strategies/MigrationStrategy.sol
11interface IOldSickle {
12 function multicall(
13 address[] calldata targets,
14 bytes[] calldata data,
15 bool[] calldata isDelegateCall,
16 uint256[] calldata values
17 ) external payable;
18}
19
20interface IOldFarmConnector {

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.