Omniscia Tren Finance Audit
PriceFeed Code Style Findings
PriceFeed Code Style Findings
PFD-01C: Inefficient Enum Handling
| Type | Severity | Location |
|---|---|---|
| Gas Optimization | ![]() | PriceFeed.sol:L131-L133, L134, L153 |
Description:
The Solidity compiler ensures that input arguments designated as enum declarations always contain a valid enum value, rendering the return 0 statement of the PriceFeed::_fetchDecimals function unreachable and the function itself slightly inefficient.
Example:
contracts/PriceFeed.sol
126function _fetchDecimals(address _oracle, ProviderType _type) internal view returns (uint8) {127 if (ProviderType.Chainlink == _type) {128 return ChainlinkAggregatorV3Interface(_oracle).decimals();129 } else if (ProviderType.API3 == _type) {130 return 18;131 } else if (ProviderType.Pyth == _type) {132 return 18;133 }134 return 0;135}Recommendation:
We advise the code to instead omit the return statement and replace the last else-if clause with a simple else clause, optimizing its gas cost.
Additionally, we advise other if-else-if structures in the contract to be optimized in the same regard.
Alleviation (f6f1ad0b8f24a96ade345db1dd05a1878eb0f761):
The last condition of the if-else-if block has been updated per our recommendation to an else clause, optimizing the code's gas cost.
