From 8e90d3eb8e0b38efd2f3e07f807c7130afba5573 Mon Sep 17 00:00:00 2001 From: Omar Desogus Date: Tue, 1 Feb 2022 16:33:03 +0100 Subject: [PATCH] docs: update usage section Former-commit-id: 7362fe2a74628fa962e7df5439649d0f927df8f7 [formerly 70a9b8ceccfca6f20f1f84389abbc07ed862278a] [formerly c829822284bff219a3c8b5e8a53b0c3de03e1a28 [formerly 1f678ba12f7ef820b0bf9f3e5f4fba63de3951b6]] [formerly 24521b49a0c08d357ff5bac4a1aedebe9941616f [formerly dbfb4fc2a579c1bdcf7dfa9afa1a32a279a75bab] [formerly 27d02d534d217e816b49841096ecfb133ad4eff5 [formerly dfd4b1ce0187ec84b3cdb25cfb1373cfcf3b68ab]]] Former-commit-id: d292d605f4c21c7f20eb6a5570367e65f201a2a6 [formerly b2fce3682648c27386aa5a51ba64e2da8a3f8074] [formerly 51416c45beed20e46bab4735993996219bbf927f [formerly e4bb077a036d6b5fd2a86b3c3ed90e09fafe4df0]] Former-commit-id: a1da6d414f75f4d2ad0473d9ee7baf7f47ef4c53 [formerly 271d7c6ccd532d1772218a5b152ebc63f9ce0950] Former-commit-id: bceb2d8e5987c4a18427a13e841d01f5fbfcc99b --- packages/protocols/README.md | 53 ++++++++++++------------------------ 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/packages/protocols/README.md b/packages/protocols/README.md index be5053b..a72e647 100644 --- a/packages/protocols/README.md +++ b/packages/protocols/README.md @@ -61,47 +61,30 @@ yarn add @zk-kit/protocols ## 📜 Usage -**Import** +### Generating Merkle proofs ```typescript -import { ZkIdentity, Identity } from "@zk-kit/identity" -import { - Semaphore, - MerkleProof, - IProof, - generateMerkleProof, - genExternalNullifier, - genSignalHash -} from "@zk-kit/protocols" +import { ZkIdentity } from "@zk-kit/identity" +import { generateMerkleProof } from "@zk-kit/protocols" + +const depth = 20 +const zeroValue= BigInt(0) +const arity = 5 +const identityCommitments = [...]; +const identity = new ZkIdentity(); +const identityCommitment = identity.genIdentityCommitment(); + +const merkleProof = generateMerkleProof(depth, zeroValue, arity, identityCommitments, identityCommitment); ``` -```javascript -const { ZkIdentity } = require("@zk-kit/identity") -const { Semaphore, Rln, NRln, generateMerkleProof, genExternalNullifier, genSignalHash } = require("@zk-kit/protocols") -``` - -**Merkle Proofs** -Generate merkle proof for your identity given the array of registered identity commitments +### Creating Semaphore proofs ```typescript -const identityCommitments: Array = [...]; -const identity: ZkIdentity = new ZkIdentity(); -const identityCommitment: bigint = identity.genIdentityCommitment(); +import { Semaphore, genExternalNullifier } from "@zk-kit/protocols" -const merkleProof: MerkleProof = generateMerkleProof(TREE_DEPTH, ZERO_VALUE, NUMBER_OF_LEAVES_PER_NODE, identityCommitments, identityCommitment); -``` - -**Semaphore** - -In order to create semaphore proof, make sure to - -```typescript +const signal = "0x111" +const externalNullifier = genExternalNullifier("voting_1") const witness = Semaphore.genWitness(identity, merkleProof, externalNullifier, signal) -const fullProof = await Semaphore.genProof(witness, wasmFilePath, finalZkeyPath) + +const fullProof = await Semaphore.genProof(witness, "./semaphore.wasm", "./semaphore.zkey") ``` - -## 📜 Final Note - -For full examples of how to integrate with contracts check https://github.com/appliedzkp/semaphore repository. - -For additional info check tests directory.