Omniscia Euler Audit
EulStakes Code Style Findings
EulStakes Code Style Findings
ESS-01C: Potential Lookup Optimizations
Type | Severity | Location |
---|---|---|
Gas Optimization | EulStakes.sol:L38, L43, L64, L66 |
Description:
The linked mapping
lookup operations incur an extraneous keccak256
instruction gas cost as they are performed each time.
Example:
contracts/mining/EulStakes.sol
64uint newAmount = staked[beneficiary][underlying] + amount;65
66staked[beneficiary][underlying] = newAmount;
Recommendation:
We advise the staked[msg.sender]
& staked[beneficiary]
lookups to be stored to a local mapping(address => uint) storage stakedPerUnderlying
variable that is consequently utilized for both reading the value and writing to it in the linked statements, significantly optimizing the gas cost of the code blocks.
Alleviation:
The Euler team has noted the gas optimization achievable but they wish to avoid complicating the code at this stage.