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

0 stars 0 forks source link

Cache array length in for loops can save gas #231

Open code423n4 opened 2 years ago

code423n4 commented 2 years ago

Handle

defsec

Vulnerability details

Impact

Reading array length at each iteration of the loop takes 6 gas (3 for mload and 3 to place memory_offset) in the stack.

Caching the array length in the stack saves around 3 gas per iteration.

Proof of Concept

  1. Navigate to the following smart contract line.
https://github.com/code-423n4/2022-01-sherlock/blob/main/contracts/SherBuy.sol#L186

Tools Used

None

Recommended Mitigation Steps

Consider to cache array length.