gitextract_fd7z0c7m/ ├── .cargo/ │ └── config ├── .eslintignore ├── .eslintrc.js ├── .github/ │ └── workflows/ │ └── publish.yaml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── .vscode/ │ └── settings.json ├── Cargo.toml ├── README.md ├── lerna.json ├── package.json ├── packages/ │ ├── Spartan-secq/ │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── benches/ │ │ │ ├── nizk.rs │ │ │ └── snark.rs │ │ ├── examples/ │ │ │ └── cubic.rs │ │ ├── profiler/ │ │ │ ├── nizk.rs │ │ │ └── snark.rs │ │ ├── rustfmt.toml │ │ └── src/ │ │ ├── bin/ │ │ │ └── mont_params.rs │ │ ├── commitments.rs │ │ ├── dense_mlpoly.rs │ │ ├── errors.rs │ │ ├── group.rs │ │ ├── lib.rs │ │ ├── math.rs │ │ ├── nizk/ │ │ │ ├── bullet.rs │ │ │ └── mod.rs │ │ ├── product_tree.rs │ │ ├── r1csinstance.rs │ │ ├── r1csproof.rs │ │ ├── random.rs │ │ ├── scalar/ │ │ │ ├── mod.rs │ │ │ └── scalar.rs │ │ ├── sparse_mlpoly.rs │ │ ├── sumcheck.rs │ │ ├── timer.rs │ │ ├── transcript.rs │ │ └── unipoly.rs │ ├── benchmark/ │ │ ├── node/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── node.bench.ts │ │ │ │ ├── node.bench_addr_membership.ts │ │ │ │ └── node.bench_pubkey_membership.ts │ │ │ └── tsconfig.json │ │ └── web/ │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── next.config.js │ │ ├── package.json │ │ ├── pages/ │ │ │ ├── _app.tsx │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── circuit_reader/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── bin/ │ │ │ └── gen_spartan_inst.rs │ │ ├── circom_reader.rs │ │ └── lib.rs │ ├── circuits/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── eff_ecdsa_membership/ │ │ │ ├── addr_membership.circom │ │ │ ├── eff_ecdsa.circom │ │ │ ├── eff_ecdsa_to_addr.circom │ │ │ ├── pubkey_membership.circom │ │ │ ├── secp256k1/ │ │ │ │ ├── add.circom │ │ │ │ ├── double.circom │ │ │ │ └── mul.circom │ │ │ ├── to_address/ │ │ │ │ ├── vocdoni-keccak/ │ │ │ │ │ ├── keccak.circom │ │ │ │ │ ├── permutations.circom │ │ │ │ │ └── utils.circom │ │ │ │ └── zk-identity/ │ │ │ │ └── eth.circom │ │ │ └── tree.circom │ │ ├── instances/ │ │ │ ├── addr_membership.circom │ │ │ └── pubkey_membership.circom │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── poseidon/ │ │ │ ├── poseidon.circom │ │ │ └── poseidon_constants.circom │ │ └── tests/ │ │ ├── addr_membership.test.ts │ │ ├── circuits/ │ │ │ ├── add_complete_test.circom │ │ │ ├── add_incomplete_test.circom │ │ │ ├── addr_membership_test.circom │ │ │ ├── double_test.circom │ │ │ ├── eff_ecdsa_test.circom │ │ │ ├── eff_ecdsa_to_addr_test.circom │ │ │ ├── k_test.circom │ │ │ ├── mul_test.circom │ │ │ ├── poseidon_test.circom │ │ │ └── pubkey_membership_test.circom │ │ ├── eff_ecdsa.test.ts │ │ ├── eff_ecdsa_to_addr.test.ts │ │ ├── poseidon.test.ts │ │ ├── pubkey_membership.test.ts │ │ ├── secp256k1.test.ts │ │ └── test_utils.ts │ ├── lib/ │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── embedWasmBytes.ts │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── config/ │ │ │ │ └── index.ts │ │ │ ├── core/ │ │ │ │ ├── prover.ts │ │ │ │ └── verifier.ts │ │ │ ├── helpers/ │ │ │ │ ├── poseidon.ts │ │ │ │ ├── profiler.ts │ │ │ │ ├── publicInputs.ts │ │ │ │ ├── tree.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ ├── types/ │ │ │ │ └── index.ts │ │ │ └── wasm/ │ │ │ ├── index.ts │ │ │ ├── wasm.d.ts │ │ │ └── wasm.js │ │ ├── tests/ │ │ │ ├── efficientEcdsa.test.ts │ │ │ ├── membershipNizk.test.ts │ │ │ └── tree.test.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── poseidon/ │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── k256_params.sh │ │ ├── sage/ │ │ │ ├── generate_params_poseidon.sage │ │ │ └── security_inequalities.sage │ │ └── src/ │ │ ├── k256_consts.rs │ │ ├── lib.rs │ │ └── poseidon_k256.rs │ ├── secq256k1/ │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── sage/ │ │ │ ├── hashtocurve_params.sage │ │ │ ├── sqrt_ratio_params.sage │ │ │ └── sswu_generic.sage │ │ └── src/ │ │ ├── affine.rs │ │ ├── field/ │ │ │ ├── field_secp.rs │ │ │ ├── field_secq.rs │ │ │ └── mod.rs │ │ ├── hashtocurve.rs │ │ ├── lib.rs │ │ └── scalar.rs │ └── spartan_wasm/ │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── src/ │ │ ├── lib.rs │ │ └── wasm.rs │ └── test_circuit/ │ ├── test_circuit.circom │ ├── test_circuit.circuit │ ├── test_circuit.r1cs │ ├── test_circuit_js/ │ │ ├── generate_witness.js │ │ ├── test_circuit.wasm │ │ └── witness_calculator.js │ └── witness.wtns ├── rust-toolchain └── scripts/ ├── addr_membership_circuit.sh ├── build.sh ├── build_wasm.sh ├── compile_circuit.sh ├── pubkey_membership_circuit.sh └── test.sh