Omniscia Moby Audit

FeeDistributor Code Style Findings

FeeDistributor Code Style Findings

FDR-01C: Loop Iterator Optimization

Description:

The linked for loop increments / decrements the iterator "safely" due to Solidity's built-in safe arithmetics (post-0.8.X).

Example:

contracts/peripherals/FeeDistributor.sol
84for (uint256 i = 0; i < _tokens.length; i++) {

Recommendation:

We advise the increment / decrement operation to be performed in an unchecked code block as the last statement within the for loop to optimize its execution cost.

Alleviation (a8720219a6a97e10b8d9c6a70c6345747f0fdcb3):

The referenced loop iterator's increment statement has been relocated at the end of the for loop's body and has been unwrapped in an unchecked code block, optimizing its gas cost.

FDR-02C: Repetitive Value Literal

Description:

The linked value literal is repeated across the codebase multiple times.

Example:

contracts/peripherals/FeeDistributor.sol
110uint256 treasuryAmount = rewardTotal * treasuryRate / 100;

Recommendation:

We advise it to be set to a constant variable instead optimizing the legibility of the codebase.

Alleviation (a8720219a6a97e10b8d9c6a70c6345747f0fdcb3):

The Moby team stated that it is not possible to define the rewardTotal and treasuryRate evaluation as a constant, however, the exhibit was referencing the 100 value literal to achieve this.

As such, we consider the exhibit to remain acknowledged.