Smart Contract Sanctuary

August 19, 2022 ยท View on GitHub

Smart Contract Sanctuary - MultiRepo / Index
โš ๏ธUPDATE: Repo layout changed! see #13 (v1-layout)

Smart Contract Sanctuary

๐Ÿฆ๐ŸŒด๐ŸŒด๐ŸŒด๐Ÿฆ• A home for ethereum smart contracts verified on Etherscan. ๐Ÿ 

โ‡ This is the index repository for the smart-contract-sanctuary. ๐Ÿ”– Bookmark this repo.
โ‡ Chain-specific sub-repos and the index are updated twice a day.
โ‡ Expect a full, recursive check-out to take 2GB+ disk space.

Usage

The repo is configured for use with git+ssh (much more stable and faster).

First time - clone the index and checkout all chain-specific sub repositories from scratch:

โ‡’  git clone --recursive --depth=1 git@github.com:tintinweb/smart-contract-sanctuary.git

also see https://git-scm.com/docs/git-submodule for more options

Existing repository but submodules never initialized - checkout submodules and update all chain-specific sub repositories:

โ‡’  git submodule update --init --remote --depth=1 --progress

Existing repository with submodules - update all chain-specific sub repositories:

โ‡’  git submodule update --remote --progress

Layout

FolderDescription
_docsautogenerated stats; static github page
<chain>/contractsChain specific smart contracts
โ†ณ ethereum/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-ethereum
โ†ณ arbitrum/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-arbitrum
โ†ณ avalanche/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-avalanche
โ†ณ bsc/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-bsc
โ†ณ fantom/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-fantom
โ†ณ polygon/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-polygon
โ†ณ tron/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-tron
โ†ณ optimism/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-optimism
โ†ณ celo/contractsGit SubModule ๐Ÿ‘‰ https://github.com/tintinweb/smart-contract-sanctuary-celo
<chain>/utilsChain specific support scripts
๐Ÿ“‚ <chain>/contracts

Contains smart contract sources for various networks, grouped by the first two chars of the contract address. Files are named in the format <address>_<source_unit_name>, e.g. 0f0c3fedb6226cd5a18826ce23bec92d18336a98_URToken.sol

Some contracts are listed in contracts.json, but the file-system may contain more files than what is listed in this summary. Rely on the folder/file structure for a full list. This repo used to auto submit contracts to 4byte.directory.

๐Ÿ“‚ <chain>/utils

Support scripts for various activies like dumping smart contracts from public sources (etherscan.io, etherchain.com)

requires: pip install -r requirements.txt

Dev Notes

To use List of Verified Contract addresses with an OpenSource license, you can download the csv file, add it to the util folder, and run parse_download_contracts_etherscan_io.py (with your etherscan API). This will add the new contracts to the appropriate folder

๐Ÿ‘ฉโ€๐Ÿ”ฌ Data Science Tools

  • ๐Ÿง  SolGrep - A scriptable semantic grep utility for solidity (crunch numbers, find specific contracts, extract data)
  • ๐Ÿž semgrep - Semgrep is a fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor, commit, and CI time, and now supports Solidity! โค๏ธ Thanks @JoranHonig for contributing the semgrep solidity parser.
  • ๐ŸŒŸ Sourcegraph - A powerful online code search service that can be used to search the sanctuary without cloning.

๐ŸŽ“ Citation

If you are using this dataset in your research and paper, here's how you can cite this dataset:

  • APA6
Ortner, M., Eskandari, S. (n.d.). Smart Contract Sanctuary. Retrieved from https://github.com/tintinweb/smart-contract-sanctuary.
  • LateX (Bib)
 @article{smart_contract_sanctuary, 
          title={Smart Contract Sanctuary}, 
          url={https://github.com/tintinweb/smart-contract-sanctuary}, 
          author={Ortner, Martin and Eskandari, Shayan}}