crytic/slither

Improve 1346 to make it more efficient

Open

#1,570 创建于 2023年1月9日

在 GitHub 查看
 (5 评论) (0 反应) (0 负责人)Python (4,769 star) (886 fork)batch import
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.function1 pack together ..
  • To optimize the run of contract.function2 pack together ..

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

贡献者指南