crytic/slither

Improve 1346 to make it more efficient

Open

#1570 aperta il 9 gen 2023

Vedi su GitHub
 (5 commenti) (0 reazioni) (0 assegnatari)Python (886 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (4769 star)
Metriche merge PR
 (Merge medio 54g 9h) (2 PR mergiate in 30 g)

Descrizione

https://github.com/crytic/slither/pull/1346 is a nice addition, which gives us fundamental features to do structure packing optimisations.

However it has a couple of drawback. For example packing storage variables might lead to more costly execution because of the additional opcode cost.

We could improve the detector to add a couple of heuristics. One example that comes to mind is to use https://eips.ethereum.org/EIPS/eip-2929#sstore-changes, and to pack together variables that are read within the same transaction.

We could make it a tool instead of a detector, and propose different scenario as a result, ie:

  • To optimize the run of contract.function1 pack together ..
  • To optimize the run of contract.function2 pack together ..

Having a tool would allow us additional fine tuning and flags.

Guida contributor