code-423n4 / 2022-05-opensea-seaport-findings

1 stars 0 forks source link

Gas Optimizations #88

Closed code423n4 closed 2 years ago

code423n4 commented 2 years ago

Variables: No need to explicitly initialize variables with default values

If a variable is not set/initialized, it is assumed to have the default value (0 for uint, false for bool, address(0) for address…). Explicitly initializing it with its default value is an anti-pattern and wastes gas.

Instance Includes:

UINT256:

reference/lib/ReferenceFulfillmentApplier.sol:167: uint256 nextComponentIndex = 0; reference/lib/ReferenceAmountDeriver.sol:46: uint256 extraCeiling = 0; reference/lib/ReferenceOrderCombiner.sol:464: uint256 totalFilteredExecutions = 0; reference/lib/ReferenceOrderCombiner.sol:746: uint256 totalFilteredExecutions = 0; reference/lib/ReferenceGettersAndDerivers.sol:111: uint256 i = 0; reference/lib/ReferenceBasicOrderFulfiller.sol:642: uint256 recipientCount = 0; contracts/lib/AmountDeriver.sol:44: uint256 extraCeiling = 0; contracts/lib/OrderCombiner.sol:470: uint256 totalFilteredExecutions = 0; contracts/lib/OrderCombiner.sol:751: uint256 totalFilteredExecutions = 0; test/foundry/utils/BaseOrderTest.sol:141: uint256 sum = 0; test/foundry/utils/BaseOrderTest.sol:152: uint256 sum = 0; test/foundry/utils/BaseOrderTest.sol:554: uint256 value = 0; test/foundry/FulfillAdvancedOrder.t.sol:362: uint256 value = 30;

Suggestions:

Instead of writing

uint256 _balance =0;

One can write

uint256 _balance;

I suggest removing explicit initializations for default values.

HardlyDifficult commented 2 years ago

Grouping with https://github.com/code-423n4/2022-05-opensea-seaport-findings/issues/59

HardlyDifficult commented 2 years ago

Warden submitted multiple Gas Optimizations. Will not be judged.