Fall 2022 - SE6387.001 Advanced Software Engineering Project
- Given two smart contracts, automatically calculate their similarity (using cosine similarity)
- Generate probability density function graphs to determine the threshold of the similarity score
- Detect the co-cloned pairs and the non-co-cloned pairs of contracts along with their similarity values using the computed threshold in step 2
Figure 1: Flowchart Diagram of the Project Goal
This diagram represents the different components of our project and its structure. It shows the relationship between the directories in a hierarchical way for a much simpler visualization.
Figure 2: Diagram of the Overall Project Structure
This class diagram represents the internal classes that are defined and used in the program. It shows all of the main classes along with their attributes and defined methods.
Figure 3: Class Diagram of the Internal Project Structure
- Create a
/contracts
directory under/src/
- Go to this github repository https://github.com/PrCatch/etherscan-0815-0914
- Download project as a ZIP file in another folder NOT in
/src/
- Extract the project from the ZIP file
- From the etherscan folder, select the contracts you want to compare from the
contracts
folder - Place those contracts into
/src/contracts
directory
- Devices:
- Mac or Linux
- Windows
- Python 3.8 or higher
- Python Packages:
- os
- pathlib
- typing
- shutil
- csv
- subprocess
- random
- math
- json
- torch
- tqdm
- numpy
- matplotlib
- r2pipe
- gensim
- solcx Note: Packages that need to be installed will be shown when the repository is open on your preferred external editor
- Solicity Compiler: https://github.com/ethereum/solidity
- Radare2 Compiler: https://github.com/radareorg/radare2
- ASM_2_VEC model: https://github.com/oalieno/asm2vec-pytorch.git
Name | |
---|---|
Junaid Hashmi | jsh171030@utdallas.edu |
Miao Miao | mxm190091@utdallas.edu |
Jeongwon Seo | jxs170012@utdallas.edu |
- FinalCodeSubmission
- Final Version of the Code
- Dr. Wei Yang - Professor of SE6387.001
- Simin Chen - Staff Advisor