chore: fix example in Readme, update Cargo.lock, cleanup import (#374)

This commit is contained in:
Vinh Trịnh
2026-02-06 15:05:47 +07:00
committed by GitHub
parent 9b7abf517e
commit 0846087442
10 changed files with 171 additions and 23 deletions

42
Cargo.lock generated
View File

@@ -350,6 +350,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a"
dependencies = [
"find-msvc-tools",
"jobserver",
"libc",
"shlex",
]
@@ -785,6 +787,16 @@ version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jobserver"
version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
dependencies = [
"getrandom 0.3.4",
"libc",
]
[[package]]
name = "js-sys"
version = "0.3.83"
@@ -1427,6 +1439,7 @@ dependencies = [
"libc",
"log",
"parking_lot",
"zstd",
]
[[package]]
@@ -1891,3 +1904,32 @@ dependencies = [
"tiny-keccak",
"vacp2p_pmtree",
]
[[package]]
name = "zstd"
version = "0.9.2+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "4.1.3+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79"
dependencies = [
"libc",
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "1.6.2+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f"
dependencies = [
"cc",
"libc",
]

64
rln-cli/Cargo.lock generated
View File

@@ -351,6 +351,18 @@ version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
[[package]]
name = "cc"
version = "1.2.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
dependencies = [
"find-msvc-tools",
"jobserver",
"libc",
"shlex",
]
[[package]]
name = "cfg-if"
version = "1.0.4"
@@ -579,6 +591,12 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "find-msvc-tools"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
[[package]]
name = "fnv"
version = "1.0.7"
@@ -707,6 +725,16 @@ version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jobserver"
version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
dependencies = [
"getrandom 0.3.4",
"libc",
]
[[package]]
name = "keccak"
version = "0.1.5"
@@ -1245,6 +1273,12 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9"
[[package]]
name = "shlex"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "sled"
version = "0.34.7"
@@ -1259,6 +1293,7 @@ dependencies = [
"libc",
"log",
"parking_lot",
"zstd",
]
[[package]]
@@ -1645,3 +1680,32 @@ dependencies = [
"thiserror",
"vacp2p_pmtree",
]
[[package]]
name = "zstd"
version = "0.9.2+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "4.1.3+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79"
dependencies = [
"libc",
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "1.6.2+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f"
dependencies = [
"cc",
"libc",
]

42
rln-wasm/Cargo.lock generated
View File

@@ -331,6 +331,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a"
dependencies = [
"find-msvc-tools",
"jobserver",
"libc",
"shlex",
]
@@ -659,6 +661,16 @@ version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jobserver"
version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
dependencies = [
"getrandom 0.3.4",
"libc",
]
[[package]]
name = "js-sys"
version = "0.3.83"
@@ -1281,6 +1293,7 @@ dependencies = [
"libc",
"log",
"parking_lot",
"zstd",
]
[[package]]
@@ -1790,3 +1803,32 @@ dependencies = [
"sled",
"thiserror",
]
[[package]]
name = "zstd"
version = "0.9.2+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "4.1.3+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79"
dependencies = [
"libc",
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "1.6.2+zstd.1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f"
dependencies = [
"cc",
"libc",
]

View File

@@ -147,11 +147,11 @@ mod test {
}
let bytes_le = vec_wasmfr.to_bytes_le();
let expected_le = rln::utils::vec_fr_to_bytes_le(&vec_fr);
let expected_le = vec_fr_to_bytes_le(&vec_fr);
assert_eq!(bytes_le.to_vec(), expected_le);
let bytes_be = vec_wasmfr.to_bytes_be();
let expected_be = rln::utils::vec_fr_to_bytes_be(&vec_fr);
let expected_be = vec_fr_to_bytes_be(&vec_fr);
assert_eq!(bytes_be.to_vec(), expected_be);
let vec_wasmfr_from_le = match VecWasmFr::from_bytes_le(&bytes_le) {

View File

@@ -37,7 +37,7 @@ The RLN object constructor requires the following files:
Additionally, `rln.wasm` is used for testing in the rln-wasm module.
```rust
use rln::prelude::{keygen, poseidon_hash, hash_to_field_le, RLN, RLNWitnessInput, Fr, IdSecret};
use rln::prelude::{hash_to_field_le, keygen, poseidon_hash, Fr, RLNWitnessInput, RLN};
fn main() {
// 1. Initialize RLN with parameters:
@@ -47,12 +47,12 @@ fn main() {
let mut rln = RLN::new(tree_depth, "").unwrap();
// 2. Generate an identity keypair
let (identity_secret, id_commitment) = keygen();
let (identity_secret, id_commitment) = keygen().unwrap();
// 3. Add a rate commitment to the Merkle tree
let leaf_index = 10;
let user_message_limit = Fr::from(10);
let rate_commitment = poseidon_hash(&[id_commitment, user_message_limit]);
let rate_commitment = poseidon_hash(&[id_commitment, user_message_limit]).unwrap();
rln.set_leaf(leaf_index, rate_commitment).unwrap();
// 4. Get the Merkle proof for the added commitment
@@ -61,12 +61,12 @@ fn main() {
// 5. Set up external nullifier (epoch + app identifier)
// We generate epoch from a date seed and we ensure is
// mapped to a field element by hashing-to-field its content
let epoch = hash_to_field_le(b"Today at noon, this year");
let epoch = hash_to_field_le(b"Today at noon, this year").unwrap();
// We generate rln_identifier from an application identifier and
// we ensure is mapped to a field element by hashing-to-field its content
let rln_identifier = hash_to_field_le(b"test-rln-identifier");
let rln_identifier = hash_to_field_le(b"test-rln-identifier").unwrap();
// We generate a external nullifier
let external_nullifier = poseidon_hash(&[epoch, rln_identifier]);
let external_nullifier = poseidon_hash(&[epoch, rln_identifier]).unwrap();
// We choose a message_id satisfy 0 <= message_id < user_message_limit
let message_id = Fr::from(1);
@@ -74,7 +74,7 @@ fn main() {
let signal = b"RLN is awesome";
// 7. Compute x from the signal
let x = hash_to_field_le(signal);
let x = hash_to_field_le(signal).unwrap();
// 8. Create witness input for RLN proof generation
let witness = RLNWitnessInput::new(

View File

@@ -7,7 +7,7 @@ This example demonstrates how to use the RLN C FFI in both stateless and non-sta
### Compile lib non-stateless
```bash
cargo build -p rln
cargo build -p rln --release
cargo run --features headers --bin generate-headers
mv -v rln.h rln/ffi_c_examples/
```
@@ -25,7 +25,7 @@ gcc -Wall main.c -o main -lrln -L../../target/debug
### Compile lib stateless
```bash
cargo build -p rln --no-default-features --features stateless
cargo build -p rln --release --no-default-features --features stateless
cargo run --no-default-features --features stateless,headers --bin generate-headers
mv -v rln.h rln/ffi_c_examples/
```

View File

@@ -2,7 +2,6 @@ use std::{array::TryFromSliceError, num::TryFromIntError};
use ark_relations::r1cs::SynthesisError;
use num_bigint::{BigInt, ParseBigIntError};
use thiserror::Error;
use zerokit_utils::error::{FromConfigError, HashError, ZerokitMerkleTreeError};
use crate::circuit::{
@@ -57,7 +56,7 @@ pub enum ProtocolError {
}
/// Errors that can occur during proof verification
#[derive(Error, Debug)]
#[derive(Debug, thiserror::Error)]
pub enum VerifyError {
#[error("Invalid proof provided")]
InvalidProof,

View File

@@ -91,15 +91,15 @@ mod test {
// Test CFr FFI functions
fn test_cfr_ffi() {
let cfr_zero = ffi_cfr_zero();
let fr_zero = rln::circuit::Fr::from(0u8);
let fr_zero = Fr::from(0u8);
assert_eq!(*cfr_zero, fr_zero);
let cfr_one = ffi_cfr_one();
let fr_one = rln::circuit::Fr::from(1u8);
let fr_one = Fr::from(1u8);
assert_eq!(*cfr_one, fr_one);
let cfr_int = ffi_uint_to_cfr(42);
let fr_int = rln::circuit::Fr::from(42u8);
let fr_int = Fr::from(42u8);
assert_eq!(*cfr_int, fr_int);
let cfr_debug_str = ffi_cfr_debug(Some(&cfr_int));

View File

@@ -5,13 +5,15 @@ mod test {
use std::path::PathBuf;
use num_traits::identities::Zero;
use rln::pm_tree_adapter::{PmTree, PmTreeProof, PmtreeConfig};
use rln::prelude::*;
use tempfile::TempDir;
use zerokit_utils::merkle_tree::{
ZerokitMerkleProof, ZerokitMerkleTree, ZerokitMerkleTreeError,
use rln::{
pm_tree_adapter::{PmTree, PmTreeProof, PmtreeConfig},
prelude::*,
};
use tempfile::TempDir;
use zerokit_utils::{
merkle_tree::{ZerokitMerkleProof, ZerokitMerkleTree, ZerokitMerkleTreeError},
pm_tree::Mode,
};
use zerokit_utils::pm_tree::Mode;
const TEST_DEPTH: usize = 10;

View File

@@ -4,7 +4,6 @@ mod test {
use rand::{thread_rng, Rng};
use rln::prelude::*;
use serde_json::{json, Value};
fn fq_from_str(s: &str) -> Fq {