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

4 stars 0 forks source link

Gas Optimizations #284

Open code423n4 opened 2 years ago

code423n4 commented 2 years ago

G-1 Don't Initialize Variables with Default Value Explicitly initializing a variable with it's default value costs unnecesary gas.

Default variables like bool is defaulted as false when initialize. InfinityOrderBookComplication.sol L#42 [InfinityOrderBookComplication.sol L#108]https://github.com/code-423n4/2022-06-infinity/blob/main/contracts/core/InfinityOrderBookComplication.sol#:~:text=_sumCurrentPrices(manyMakerOrders)%3B-,bool%20_isPriceValid%20%3D%20false%3B,-if%20(makerOrder.isSellOrder

Default unsigned integers is defaulted as 0. InfinityOrderBookComplication.sol L#197&199 InfinityOrderBookComplication.sol L#214&216 [InfinityOrderBookComplication.sol L#244,246,247]https://github.com/code-423n4/2022-06-infinity/blob/main/contracts/core/InfinityOrderBookComplication.sol#:~:text=uint256%20numCollsMatched%20%3D,j%20%3C%20order1NftsLength%3B%20)

[InfinityOrderBookComplication.sol L#289-291]https://github.com/code-423n4/2022-06-infinity/blob/main/contracts/core/InfinityOrderBookComplication.sol#:~:text=uint256%20numTokenIdsPerCollMatched%20%3D,l%20%3C%20item1TokensLength%3B%20)

[InfinityOrderBookComplication.sol L#318-320]https://github.com/code-423n4/2022-06-infinity/blob/main/contracts/core/InfinityOrderBookComplication.sol#:~:text=uint256%20sum%20%3D,i%20%3C%20ordersLength%3B%20)%20%7B

G-2 Use != 0 instead of > 0 for Unsigned Integer Comparison When dealing with unsigned integer types, comparisons with != 0 are cheaper then with > 0.

InfinityExchange.sol L#392