Shared utils for ZKP
Currently it exports following functions:
1. mimc_hash(bigint left, bigint right) => Commitment
1. prove_set_membership(Vec<Commitment> set, bigint secret, bigint salt) => MembershipProof
1. verify_set_membership(Vec<Commitment> set, MembershipProof p) => bool
to give an example:
import * as wasm from "shared-utils";
const pc1 = wasm.mimc_hash(BigInt(0), BigInt(1));
const pc2 = wasm.mimc_hash(BigInt(0), BigInt(2));
About template
This template is designed for compiling Rust libraries into WebAssembly and publishing the resulting package to NPM.
Be sure to check out other wasm-pack
tutorials online for other
templates and usages of wasm-pack
.
🚴 Usage
🐑 Use cargo generate
to Clone this Template
Learn more about cargo generate
here.
cargo generate --git https://github.com/rustwasm/wasm-pack-template.git --name my-project
cd my-project
🛠️ Build with wasm-pack build
wasm-pack build
🔬 Test in Headless Browsers with wasm-pack test
wasm-pack test --headless --firefox
🎁 Publish to NPM with wasm-pack publish
wasm-pack publish
🔋 Batteries Included
-
wasm-bindgen
for communicating between WebAssembly and JavaScript. -
console_error_panic_hook
for logging panic messages to the developer console. -
wee_alloc
, an allocator optimized for small code size. -
LICENSE-APACHE
andLICENSE-MIT
: most Rust projects are licensed this way, so these are included for you
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.