Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/interep-project/contracts

🧾 InterRep Solidity smart contracts.
https://github.com/interep-project/contracts

erc721 ethereum hardhat nft smart-contracts solidity

Last synced: 9 days ago
JSON representation

🧾 InterRep Solidity smart contracts.

Awesome Lists containing this project

README

        



Interep contracts


Interep Solidity smart contracts.






Github license


GitHub Workflow test


Coveralls


Linter eslint


Code style prettier

Repository top language




👥 Contributing

  |  

🤝 Code of conduct

  |  

🗣️ Chat & Support


---

Please, visit our [web app](https://kovan.interep.link) or our [documentation website](https://docs.interep.link) for more details.

### Deployed contracts

| | Kovan | Goerli | Arbitrum One |
| ------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ------------ |
| Interep | [0xF58D...53De](https://kovan.etherscan.io/address/0xF58D3b710cDD337df432e20a806Ad04f6CfE53De) | [0x9f44...eafb](https://goerli.etherscan.io/address/0x9f44be9F69aF1e049dCeCDb2d9296f36C49Ceafb) | |

---

## Install

Clone this repository and install the dependencies:

```bash
git clone https://github.com/interep-project/contracts.git
cd contracts
yarn # or `npm i`
```

## Usage

Copy the `.env.example` file and rename it `.env`.

### Compile

Compile the smart contracts with Hardhat:

```bash
yarn compile
```

### Lint

Lint the Solidity or the TypeScript code:

```bash
yarn lint:sol
yarn lint:ts
# or yarn lint to lint both.
```

And check if the code is well formatted:

```bash
yarn prettier
```

### Test

Run the Mocha tests:

```bash
yarn test
```

### Coverage

Generate the code coverage report:

```bash
yarn test:coverage
```

### Report Gas

See the gas usage per unit test and average gas per method call:

```bash
yarn test:report-gas
```

### Deploy

Deploy a Semaphore verifier contract with depth = 20:

```bash
yarn deploy:verifier # The resulting address will have to be used in the next step.
```

Deploy the Interep contract with one Semaphore verifier:

```bash
yarn deploy:interep --verifiers '[{"merkleTreeDepth": 20, "contractAddress": "0x06bcD633988c1CE7Bd134DbE2C12119b6f3E4bD1"}]'
```

If you want to deploy contracts in a specific network you can set up the `DEFAULT_NETWORK` variable in your `.env` file with the name of one of our supported networks (hardhat, localhost, goerli, kovan, arbitrum). Or you can specify it as option:

```bash
yarn deploy:interep --verifiers '[{"merkleTreeDepth": 20, "contractAddress": "0x5FbDB2315678afecb367f032d93F642f64180aa3"}]' --network kovan
yarn deploy:interep --verifiers '[{"merkleTreeDepth": 20, "contractAddress": "0x06bcD633988c1CE7Bd134DbE2C12119b6f3E4bD1"}]' --network localhost
```

If you want to deploy the contracts on Goerli, Kovan or Arbitrum remember to provide a valid private key and an Infura API in your `.env` file.

### Preparing a local network

Run a Hardhat Network in a stand-alone fashion:

```bash
yarn start
```

Deploy Semaphore verifier and Interep contract:

```bash
yarn deploy --network localhost
```

You can omit `--network localhost` if your `DEFAULT_NETWORK` env variable is equal to `localhost`.