Skip to content
Snippets Groups Projects
README.md 1.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • garfatta's avatar
    garfatta committed
    # solidity2cpn
    
    Jaime Arias's avatar
    Jaime Arias committed
    
    This repository is dedicated to our on-going work on the formal verification of
    Solidity smart contracts using Coloured Petri Nets.
    
    ## Folder structure
    
    
    ```bash
    .
    ├── app            # folder containing the CLI's source code of the tool
    ├── case_studies
    │   ├── models     # folder containing the CPN models of the use cases, designed using CPN Tools
    
    │   └── logs       # folder containing the state space analysis carried out by CPN Tools for the use cases
    ├── docs           # folder containing the documentation of the tool
    │   └── reports    # folder containing extended versions of the published papers
    
    Jaime Arias's avatar
    Jaime Arias committed
    ├── include        # folder containing the headers of the code
    ├── src            # folder containing the source code of the proposed Solidity-to-CPN transformation
    ├── tests          # folder containing unit tests of the tool
    └── third-party    # folder containing the external libraries used in the tool
    
    ```
    
    ## Build
    
    The dependencies for this tool are:
    
    - `cmake >= 3.12`
    - `doxygen`
    - `g++`
    - `graphviz`
    
    The tool can be compiled as follows:
    
    ```
    mkdir build && cd build
    cmake -DBUILD_DOCS=ON ..
    cmake --build . --target install
    
    Jaime Arias's avatar
    Jaime Arias committed
    ```