Omniscia Steer Protocol Audit

IntegralBaseLiquidityManager Code Style Findings

IntegralBaseLiquidityManager Code Style Findings

IBL-01C: Incorrect Specification of Gap

Description:

The gap variable declared by the IntegralBaseLiquidityManager is set as 37 in length when the contract consumes 10 storage slots per its structure.

Example:

contracts/vault-types/Algebrav4LiquidityManagers/IntegralBaseLiquidityManager.sol
90/// @dev Address of vault registry
91/// Address strategist can collect strategist fees, but is not stored here.
92address internal vaultRegistry;
93
94/// @notice Addresses of Token0 and Token1
95IERC20 public token0;
96IERC20 public token1;
97
98/// @notice Address of Algebra pool
99IAlgebraPool public pool;
100
101///@notice address of Algebra pool's plugin
102IVolatilityOracle public plugin;
103
104/// @dev For depositing
105/// Roughly corresponds to a 5% diff between current price and twap price
106int24 public maxTickChange;
107
108/// @dev Number of seconds to get the time-weighted average over
109uint32 public twapInterval;
110
111//For mint Callback Protection
112bool internal mintCallBackProtection;
113
114//For swap Callback Protection
115bool internal swapCallBackProtection;
116mapping(string => uint256) public accruedFees0;
117mapping(string => uint256) public accruedFees1;
118
119address internal feeManager;
120uint256 public totalFees0;
121uint256 public totalFees1;

Recommendation:

We advise the gap to be corrected to 40, properly summing up to 50 slots in total per contract.

Alleviation (e31556397b9d321737ff47809b572383dda4a2aa):

The gap variable's length has been updated to 41 as the local plugin member has been removed from the contract, addressing this exhibit.

IBL-02C: Redundant Usage of SafeMath

Description:

The linked contract utilizes SafeMath when it is compiled with a pragma version of 0.8.X.

Example:

contracts/vault-types/Algebrav4LiquidityManagers/IntegralBaseLiquidityManager.sol
45using SafeMath for uint256;

Recommendation:

Given that safe arithmetics are toggled on by default in these versions, we advise the usage of SafeMath to be omitted from the codebase as it incurs an additional gas cost at verbosal benefit.

Alleviation (e31556397b9d321737ff47809b572383dda4a2aa):

The redundant usage of SafeMath has been safely removed as advised.