Omniscia Astrolab DAO Audit
StrategyV5Chainlink Code Style Findings
StrategyV5Chainlink Code Style Findings
SVC-01C: Generic Typographic Mistake
| Type | Severity | Location |
|---|---|---|
| Code Style | ![]() | StrategyV5Chainlink.sol:L24 |
Description:
The referenced line contains a typographical mistake (i.e. private variable without an underscore prefix) or generic documentational error (i.e. copy-paste) that should be corrected.
Example:
24mapping (IChainlinkAggregatorV3 => uint8) internal decimalsByFeed;Recommendation:
We advise this to be done so to enhance the legibility of the codebase.
Alleviation (59b75fbee1d8f3dee807c928f18be41c58b904e1):
The relevant declaration, now located under PriceProvider, has been properly prefixed with an underscore rendering this exhibit addressed.
SVC-02C: Loop Iterator Optimization
| Type | Severity | Location |
|---|---|---|
| Gas Optimization | ![]() | StrategyV5Chainlink.sol:L69 |
Description:
The linked for loop increments / decrements the iterator "safely" due to Solidity's built-in safe arithmetics (post-0.8.X).
Example:
69for (uint256 i = 0; i < _chainlinkParams.inputFeeds.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 (59b75fbee1d8f3dee807c928f18be41c58b904e1):
The relevant loop has been relocated under the PriceProvider::_setFeeds function and its iterator has been optimized rendering this exhibit addressed.
SVC-03C: Repetitive Value Literal
| Type | Severity | Location |
|---|---|---|
| Code Style | ![]() | StrategyV5Chainlink.sol:L91, L93 |
Description:
The linked value literal is repeated across the codebase multiple times.
Example:
91uint256 retiredPrice = ChainlinkUtils.getPriceUsd(retiredFeed, validityByFeed[retiredFeed], 18);Recommendation:
We advise it to be set to a constant variable instead optimizing the legibility of the codebase.
Alleviation (59b75fbee1d8f3dee807c928f18be41c58b904e1):
The relevant literal has been declared as a constant labelled USD_DECIMALS under the PriceProvider implementation, addressing this exhibit.
