Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/tintinweb/smart-contract-sanctuary

🐦🌴🌴🌴🦕 A home for ethereum smart contracts. 🏠
https://github.com/tintinweb/smart-contract-sanctuary

arbitrum avalanche-c-chain binance-smart-chain blockchain ethereum ethereum-contract maticnetwork polygon smart-contracts solidity tron-protocol

Last synced: 3 months ago
JSON representation

🐦🌴🌴🌴🦕 A home for ethereum smart contracts. 🏠

Lists

README

        


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:

```console
⇒ git clone --recursive --depth=1 [email protected]: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:

```console
⇒ git submodule update --init --remote --depth=1 --progress
```

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

```console
⇒ git submodule update --remote --progress
```

## Layout

| Folder | Description |
| ------------ | ------------- |
| _docs | autogenerated stats; static github page |
| <chain>/contracts | Chain specific smart contracts |
| ↳ [ethereum](https://github.com/tintinweb/smart-contract-sanctuary-ethereum)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-ethereum |
| ↳ [arbitrum](https://github.com/tintinweb/smart-contract-sanctuary-arbitrum)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-arbitrum|
| ↳ [avalanche](https://github.com/tintinweb/smart-contract-sanctuary-avalanche)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-avalanche|
| ↳ [bsc](https://github.com/tintinweb/smart-contract-sanctuary-bsc)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-bsc|
| ↳ [fantom](https://github.com/tintinweb/smart-contract-sanctuary-fantom)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-fantom|
| ↳ [polygon](https://github.com/tintinweb/smart-contract-sanctuary-polygon)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-polygon|
| ↳ [tron](https://github.com/tintinweb/smart-contract-sanctuary-tron)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-tron|
| ↳ [optimism](https://github.com/tintinweb/smart-contract-sanctuary-optimism)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-optimism|
| ↳ [celo](https://github.com/tintinweb/smart-contract-sanctuary-celo)/contracts | Git SubModule 👉 https://github.com/tintinweb/smart-contract-sanctuary-celo|
| <chain>/utils | Chain 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 `

_`, 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](https://www.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](https://etherscan.io/exportData?type=open-source-contract-codes), 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](https://github.com/tintinweb/solgrep) - A scriptable semantic grep utility for solidity (crunch numbers, find specific contracts, extract data)
* [🐞 semgrep](https://semgrep.dev/) - 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](https://github.com/JoranHonig) for contributing the [semgrep solidity parser](https://github.com/JoranHonig/tree-sitter-solidity).
* [🌟 Sourcegraph](https://sourcegraph.com/search?q=context:global+repo:tintinweb/smart-contract-sanctuary*+file:/mainnet/&patternType=literal) - 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}}
```