SolSEE is a user-friendly source-level symbolic execution engine for for analyzing source code of one or several interacting smart contracts written in Solidity. SolSEE provides a Web-based user interface and improves upon existing source-level analysis tools by supporting advanced Solidity language features and analysis flexibility.
The key features of SolSEE can be summarized as follows:
- Precise operational semantics. SolSEE symbolically represents the configuration of smart contracts and executes each program statement based on the exact operational semantics for Solidity version 0.5.
- User-defined harness function. SolSEE facilitates examination and debugging of smart contracts by allowing users to define the harness function to control the function call sequence for verification. SolSEE can detect/report unsigned integer underand overflow, and check the validity of assertions, which can be used to specify custom high-level properties about the analyzed smart contracts.
- Smart contract debugging. With the symbolic paths generated by SolSEE, users can debug smart contracts. Users are able to visualize the execution details corresponding to the symbolic paths step by step in a Web user interface.
This repository contains the experimental dataset used for the evaluation (/dataset) and raw experimental logs from running SolSEE and other source-level tools on this dataset (/logs).
More detailed information on SolSEE can be found on the companion website: https://sites.google.com/view/solsee/.