https://github.com/semaphore-protocol/extensions
Semaphore tools and extensions.
https://github.com/semaphore-protocol/extensions
ethereum javascript monorepo proof-of-membership semaphore typescript zero-knowledge zero-knowledge-proofs zk-snarks
Last synced: about 2 months ago
JSON representation
Semaphore tools and extensions.
- Host: GitHub
- URL: https://github.com/semaphore-protocol/extensions
- Owner: semaphore-protocol
- License: mit
- Created: 2024-01-11T18:58:48.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-25T08:14:38.000Z (about 2 years ago)
- Last Synced: 2024-04-25T10:01:49.913Z (about 2 years ago)
- Topics: ethereum, javascript, monorepo, proof-of-membership, semaphore, typescript, zero-knowledge, zero-knowledge-proofs, zk-snarks
- Language: TypeScript
- Homepage:
- Size: 1.2 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: changelogithub.config.json
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Semaphore Extensions
Semaphore Tools and Extensions Monorepo.
| Semaphore Extensions is a set of applications, tools and libraries that can be used with the Semaphore protocol. |
| ---------------------------------------------------------------------------------------------------------------- |
♚ [Yarn workspaces](https://yarnpkg.com/features/workspaces): minimal monorepo package management (`yarn`, `yarn build`, `yarn docs`)\
♛ [Conventional Commits](https://www.conventionalcommits.org): human and machine readable meaning to commit messages (`yarn commit`)\
♜ [Jest](https://jestjs.io/): tests and test coverage for all libraries (`yarn test:libraries`)\
♞ [ESLint](https://eslint.org/), [Prettier](https://prettier.io/): code quality and formatting (`yarn prettier` & `yarn lint`)\
♝ [Typedocs](https://typedoc.org/): documentation generator for TypeScript (`yarn docs`)\
♟ [Github actions](https://github.com/features/actions): software workflows for automatic testing, documentation deploy and code quality checks
## 📦 Packages
Package
Version
Downloads
@semaphore-extensions/contracts
@semaphore-extensions/heyauthn
@semaphore-extensions/identity-proof
@semaphore-extensions/identity-proof.circom
## 🖥️ Apps
App
URL
Benchmarks
https://benchmarks.semaphore.pse.dev/
Explorer
https://explorer.semaphore.pse.dev/
## 🛠 Install
Clone this repository:
```bash
git clone https://github.com/semaphore-protocol/extensions.git
```
and install the dependencies:
```bash
cd extensions && yarn
```
## 📜 Usage
### Code quality and formatting
Run [ESLint](https://eslint.org/) to analyze the code and catch bugs:
```bash
yarn lint
```
Run [Prettier](https://prettier.io/) to check formatting rules:
```bash
yarn format
```
or to automatically format the code:
```bash
yarn format:write
```
### Conventional commits
Semaphore uses [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). A [command line utility](https://github.com/commitizen/cz-cli) to commit using the correct syntax can be used by running:
```bash
yarn commit
```
It will also automatically check that the modified files comply with ESLint and Prettier rules.
### Testing
Test the code:
```bash
yarn test
```
### Build
Build all the packages:
```bash
yarn build
```
A `dist` folder will be created inside each JavaScript package.
### Documentation
Generate a documentation website for each package:
```bash
yarn docs
```
The output will be placed on the `docs` folder.
### Releases
Bump a new version for your package with:
```bash
yarn version:bump
# e.g. yarn version:bump utils 2.0.0
```
It will create a commit and a git tag that you'll need to push on the main branch. A workflow will be triggered and will
publish your package on [npm](https://www.npmjs.com/) and release a new version on Github with its changelogs automatically.