Omniscia Alliance Block Audit

LiquidityMiningCampaign Code Style Findings

LiquidityMiningCampaign Code Style Findings

LMC-01C: Array Lookup Optimization

Description:

The _lockSchemes[i] entry is redundantly looked up thrice when the inner if block's condition is satisfied.

Example:

contracts/LiquidityMiningCampaign.sol
198if(!lockSchemesExist[_lockSchemes[i]]) {
199 lockSchemes.push(_lockSchemes[i]);
200 lockSchemesExist[_lockSchemes[i]] = true;
201}

Recommendation:

We advise the result of _lockSchemes[i] to be cached to an in-memory address variable that is consequently utilized, reducing the gas cost of the function.

Alleviation:

The address of the array lookup is now properly cached in memory and consequently utilized thrice.