code-423n4 / 2022-06-putty-findings

5 stars 0 forks source link

Gas Optimizations #337

Open code423n4 opened 2 years ago

code423n4 commented 2 years ago

GAS1 : gas savings in loops:

  1. use prefix ++i instead of suffix
  2. also use unchecked{}
  3. <array>.length should not be looked up in every loop of a for-loop, instead cache it before.

https://github.com/code-423n4/2022-06-putty/blob/3b6b844bc39e897bd0bbb69897f2deff12dc3893/contracts/src/PuttyV2.sol#L594-L595

https://github.com/code-423n4/2022-06-putty/blob/3b6b844bc39e897bd0bbb69897f2deff12dc3893/contracts/src/PuttyV2.sol#L556-L557

https://github.com/code-423n4/2022-06-putty/blob/3b6b844bc39e897bd0bbb69897f2deff12dc3893/contracts/src/PuttyV2.sol#L611-L612

GAS2 : use calldata instead of memory to save gas

https://github.com/code-423n4/2022-06-putty/blob/3b6b844bc39e897bd0bbb69897f2deff12dc3893/contracts/src/PuttyV2.sol#L271-L272

GAS3 : Use custom errors rather than revert()/require() strings to save deployment gas