Omniscia Tangible Audit
RealtyOracleV2 Code Style Findings
RealtyOracleV2 Code Style Findings
ROV-01C: Inefficient Fetching of First Entry
| Type | Severity | Location |
|---|---|---|
| Gas Optimization | ![]() | RealtyOracleV2.sol:L280, L283-L285 |
Description:
The RealtyOracleV2::marketPriceTotalNativeCurrency function will inefficiently fetch the first fingerprint's data twice.
Example:
280currency = chainlinkRWAOracle.fingerprintData(fingerprints[0]).currency;281
282for (uint256 i; i < length; ) {283 IChainlinkRWAOracle.Data memory data = chainlinkRWAOracle.fingerprintData(284 fingerprints[i]285 );286 require(currency == data.currency, "not same currency");287
288 nativePrice += data.weSellAt + data.lockedAmount;289
290 unchecked {291 ++i;292 }293}Recommendation:
We advise the code to properly utilize the first fetched instance outside the for loop and to adjust the for loop to begin at 1 instead of 0.
Alleviation (2ad448279d9e8e4b6edd94bcd2eb22129b6f7357):
The code was optimized per our recommendation, initializing nativePrice with the value of the first fingerprint data and iterating in the for loop with an initial index of 1.
ROV-02C: Redundant Ternary Operator
| Type | Severity | Location |
|---|---|---|
| Gas Optimization | ![]() | RealtyOracleV2.sol:L137 |
Description:
The evaluation of the referenced ternary operator is redundant as it will yield false in case its conditional is true and true if its conditional is false.
Example:
137bool useFingerprint = _fingerprints.length == 0 ? false : true;Recommendation:
We advise the ternary operator to be replaced by the conditional it evaluates in its negated form, optimizing its gas cost.
Alleviation (2ad448279d9e8e4b6edd94bcd2eb22129b6f7357):
The redundant ternary operator was replaced by a direct conversion of the conditional it used to evaluate. To note, the negation (!) can be assimilated in the comparison (==) to increase the legibility of the codebase (i.e. a != b is better than !(a == b)).
Despite of this, we consider the original recommendation applied and thus this exhibit as addressed.
