/semaphore-boilerplate

Primary LanguageTypeScriptMIT LicenseMIT

Semaphore icon. Semaphore Boilerplate

Github license GitHub Workflow style Linter eslint Code style prettier

The repository is divided into two components: web app and contracts. The app allows users to create their own Semaphore identity, join a group and then send their feedback anonymously (currently on Arbitrum Goerli).

🛠 Install

Use this repository as a Github template.

Clone your repository:

git clone https://github.com/<your-username>/<your-repo>.git

and install the dependencies:

cd <your-repo> && yarn

📜 Usage

Copy the .env.example file as .env:

cp .env.example .env

and add your environment variables or run the app in a local network.

Local server

You can start your app locally with:

yarn dev

Deploy the contract

  1. Go to the apps/contracts directory and deploy your contract:
yarn deploy --semaphore <semaphore-address> --group <group-id> --network arbitrum-goerli
  1. Update your .env file with your new contract address, the group id and the semaphore contract address.

  2. Copy your contract artifacts from apps/contracts/build/contracts/contracts folder to apps/web-app/contract-artifacts folders manually. Or run yarn copy:contract-artifacts in the project root to do it automatically.

Note
Check the Semaphore contract addresses here.

Warning
The group id is a number!

Code quality and formatting

Run ESLint to analyze the code and catch bugs:

yarn lint

Run Prettier to check formatting rules:

yarn prettier

or to automatically format the code:

yarn prettier:write