Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/interep-project/contracts
- Owner: interep-project
- License: mit
- Created: 2021-06-04T14:17:20.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-27T10:37:10.000Z (over 1 year ago)
- Last Synced: 2024-10-31T19:23:45.618Z (16 days ago)
- Topics: erc721, ethereum, hardhat, nft, smart-contracts, solidity
- Language: TypeScript
- Homepage:
- Size: 6.41 MB
- Stars: 30
- Watchers: 3
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Interep contracts
Interep Solidity smart contracts.
---
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`.