From e6530c18ca75a8741387f7c1b1f6b5b099f48f8a Mon Sep 17 00:00:00 2001 From: erhant Date: Tue, 6 Jun 2023 23:29:33 +0300 Subject: [PATCH 1/4] readme edits --- README.md | 297 ++++++++++++-------------------------- src/bin/index.ts | 2 +- src/circomkit.ts | 15 +- src/testers/wasmTester.ts | 5 +- 4 files changed, 105 insertions(+), 214 deletions(-) diff --git a/README.md b/README.md index 2092f32..56a7eff 100644 --- a/README.md +++ b/README.md @@ -26,246 +26,129 @@

-- [x] **Programmable Circuits**: The `main` component is created & compiled programmatically. -- [x] **Simple CLI**: A straightforward CLI is provided as a wrapper around SnarkJS commands, exposed via NPM scripts! -- [x] **Easily Configurable**: A single `circomkit.env` file stores the general configuration settings. -- [x] **Constraint Testing**: You can test computations & assertions for every template in a circuit, with minimal code-repetition. -- [x] **Proof Testing**: With prover & verification keys and the WASM circuit, you can test proof generation & verification. -- [x] **Witness Manipulation**: You can parse the output from a witness, and furthermore create fake witnesses to try and fool the verifier. -- [x] **Type-safe**: Witness & proof testers, as well as circuit signal inputs & outputs are all type-safe via generics. -- [x] **Solidity Exports**: Export a verifier contract in Solidity, or export a calldata for your proofs & public signals. +## Installation + +Circomkit is an NPM package, which you can install via: + +```sh +yarn add circomkit # yarn +npm install circomkit # NPM +``` + +You will also need Circom, which can be installed following the instructions [here](https://docs.circom.io/getting-started/installation/). ## Usage -Using Circomkit is easy: +Create an empty project, and install Circomkit. Then, you can setup the environment by simply executing: -1. Install [Circom](https://docs.circom.io/getting-started/installation/). -2. Clone this repo (or use it as a template) and install packages (`yarn` or `npm install`). -3. Write your circuit templates under the [circuits](./circuits/) folder. Your circuit code itself should be templates only; Circomkit programmatically generates the `main` component -4. Write your tests under the [tests](./tests/) folder. -5. Once you are ready, write the circuit configurations at [circuits.json](./circuits.json). -6. Use NPM scripts (`yarn