nevillegrech / gigahorse-toolchain

A binary lifter and analysis framework for Ethereum smart contracts
Other
296 stars 61 forks source link

Input and Guard Macros to Support Multi-Contract Analysis #27

Closed trv-cs closed 2 years ago

trv-cs commented 2 years ago

In order to support analysis across multiple smart contracts we need to place the individual analysis inside of souffle components. When using the components however we must remove the filename from the input statement as otherwise all instantiations would have the same facts.

Along with this changes were made to the decompiler outputs so that the output file matches the input relation name for the import. This is because components without a filename in the import will access the relations as: ..facts