enhancementhelp wanted
描述
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.function1pack together .. - To optimize the run of
contract.function2pack together ..
Having a tool would allow us additional fine tuning and flags.