code-423n4 / 2023-07-pooltogether-findings

12 stars 7 forks source link

Gas Optimizations #432

Open code423n4 opened 12 months ago

code423n4 commented 12 months ago

See the markdown file with the details of this report here.

c4-judge commented 11 months ago

Picodes marked the issue as grade-a

c4-sponsor commented 11 months ago

asselstine marked the issue as sponsor confirmed

PierrickGT commented 10 months ago

G-01: we are using Solidity 0.8.19, looks like contract existence is not checked anymore, so no need to use a low level call. G-02: constants can't be private. G-03: no need to mark functions payables if they are not. G-04, 08, 12, 14, 19, 20, 21, 22, 23, 24, 25, 26: we would lose in code clarity. G-05: checked by safeTransfer G-06: we would need to pass ringBufferInfo to a require function, which will increase gas consumption since it won't be inline anymore. G-07, 18: does not save any gas G-09: we assign in the second case, so no multiple accesses here G-10: has been fixed for the Vault. For the PrizePool, we need to pass values. G-11: we can't use abi.encodePacked G-13: we don't calculate anything here. G-15, 16, 17: has been fixed