crytic/slither

Improve 1346 to make it more efficient

Open

#1.570 geöffnet am 9. Jan. 2023

Auf GitHub ansehen
 (5 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Python (886 Forks)batch import
enhancementhelp wanted

Repository-Metriken

Stars
 (4.769 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 54T 9h) (2 gemergte PRs in 30 T)

Beschreibung

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.

Contributor Guide