code-423n4 / 2022-01-insure-findings

2 stars 0 forks source link

Gas: Cache `lockedAmount` in `PoolTemplate.sol:utilizationRate()` #360

Closed code423n4 closed 2 years ago

code423n4 commented 2 years ago

Handle

Dravee

Vulnerability details

Impact

SLOADs are expensive

Proof of Concept

Here, lockedAmount can be loaded twice from storage:

File: PoolTemplate.sol
846:     function utilizationRate() public view override returns (uint256 _rate) {
847:         if (lockedAmount > 0) {
848:             return (lockedAmount * MAGIC_SCALE_1E6) / totalLiquidity();
849:         } else {
850:             return 0;
851:         }
852:     }

Tools Used

VS Code

Recommended Mitigation Steps

Cache lockedAmount in a variable

0xean commented 2 years ago

dupe of #343 - warden is asked to group similar optimizations (cacheing) in the same findings.