crytic/slither

Improve 1346 to make it more efficient

Open

#1 570 ouverte le 9 janv. 2023

Voir sur GitHub
 (5 commentaires) (0 réactions) (0 assignés)Python (886 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (4 769 stars)
Métriques de merge PR
 (Merge moyen 54j 9h) (2 PRs mergées en 30 j)

Description

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.

Guide contributeur