Skip to content

A monorepo of reusable contracts for zero-knowledge technologies.

License

Notifications You must be signed in to change notification settings

privacy-scaling-explorations/zk-kit.solidity

Repository files navigation

ZK-Kit logo Solidity

Github license GitHub Main Workflow Coveralls Code style prettier Commitizen friendly

ZK-Kit is a set of libraries (algorithms or utility functions) that can be reused in different projects and zero-knowledge protocols, making it easier for developers to access user-friendly, tested, and documented code for common tasks. ZK-Kit provides different repositories for each language - this one contains Solidity code only.

🗂️ Repositories

📦 Packages

Package Version Downloads
@zk-kit/imt.sol NPM version Downloads
@zk-kit/lean-imt.sol NPM version Downloads
@zk-kit/lazy-imt.sol NPM version Downloads

👥 Ways to contribute

🛠 Install

Clone this repository:

git clone https://github.com/privacy-scaling-explorations/zk-kit.solidity.git

and install the dependencies:

cd zk-kit.solidity && yarn

📜 Usage

Code formatting

Run Prettier to check formatting rules:

yarn format

or to automatically format the code:

yarn format:write

Conventional commits

Semaphore uses conventional commits. A command line utility to commit using the correct syntax can be used by running:

yarn commit

It will also automatically check that the modified files comply with ESLint and Prettier rules.

Testing

Test the code:

yarn test

Build

Compile all contracts:

yarn compile

Releases

Bump a new version for your package with:

yarn version:bump <package-name> <version>
# 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 and release a new version on Github with its changelogs automatically.

About

A monorepo of reusable contracts for zero-knowledge technologies.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published