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

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.

Awesome Lists containing this project

README

          



Semaphore Extensions


Semaphore Tools and Extensions Monorepo.






Github license


GitHub Workflow test


Coveralls


Linter eslint


Code style prettier


Commitizen friendly




👥 Contributing

  |  

🤝 Code of conduct

  |  

🔎 Issues

  |  

🗣️ Chat & Support


| 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





NPM Version





NPM Downloads






@semaphore-extensions/heyauthn





NPM Version





NPM Downloads






@semaphore-extensions/identity-proof





NPM Version





NPM Downloads






@semaphore-extensions/identity-proof.circom





NPM Version





NPM Downloads



## 🖥️ 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.