8 Commits

Author SHA1 Message Date
Ekaterina Broslavskaya
5d5e42059e chore: bump version for utils and update lock files (#402) 2026-04-10 12:10:06 +07:00
Ekaterina Broslavskaya
7f5b1be166 release: prepare code base for the coming release v2.0.0 (#392) 2026-03-19 17:22:09 +07:00
Vinh Trịnh
be4a600e92 chore: updated circom-rln repo link, add partial proof to rln-cli example and FFI examples (#390) 2026-03-17 14:53:11 +07:00
Vinh Trịnh
25d398be19 feat: implement multi-message-id feature (#375)
## Description

- Refactored `RLNWitnessInput` and `RLNProofValues` into struct/enum
(`SingleV1` / `MultiV1`) to cleanly support both standard and
multi-message-id modes.
- Added version byte retrieval methods for `RLNProof` and
`RLNWitnessInput`.
- Enhanced `ProtocolError` with new variants: `EmptyMessageIds`,
`DuplicateMessageIds`, `MissingSelectorUsed`, `NoActiveSelectorUsed`,
and `FieldLengthMismatch`.
- Read `MAX_OUT` value directly from the graph file instead of
hardcoding.
- Added checks for `message_ids`, `selector_used`, `path_elements`,
`identity_path_index` in proof gen api.
- Extended FFI (C/Nim/Rust) and WASM bindings with multi-message-id
support.
- Added multi-message-id CLI example and updated existing examples.
- Added multi-message-id circuit resources (`max_out_4`) for tree depth
10 and 20; removed tree depth 16 and 24.
- Updated CI with clippy checks and nightly release for the
`multi-message-id` feature flag.
- Version bump for dependencies in all modules.
- Exposed compute_id_secret as a public API and updated README on how to
use the slashing cross feature.
## Testing

- Added multi-message-id test cases for FFI, protocol, and public API.
- Added compatibility tests to verify new witness/proof types against
old serialized data.

## Checklist

- [x] I have run the CI coverage report. Add the `run-coverage` label to
this PR to enable it.
2026-03-16 17:49:51 +07:00
Vinh Trịnh
0846087442 chore: fix example in Readme, update Cargo.lock, cleanup import (#374) 2026-02-06 15:05:47 +07:00
Vinh Trịnh
832bdfe8d9 chore: update Cargo.lock for rln and use stable version of circom-witnesscalc wtns.graph.001 (#364)
Changes:
- Updated the rln version in the Cargo.lock file for the rln-cli and
rln-wasm modules to 1.0.0.
- Update the command to be compatible with the latest stable version of
circom-witnesscalc, and new graph.bin file.
2026-01-15 16:08:48 +07:00
Vinh Trịnh
77a8d28965 feat: unify RLN types, refactor public APIs, add full (de)serialization, align FFI/WASM/APIs, simplify errors, update docs/examples, and clean up zerokit (#355)
# Changes

- Unified the `RLN` struct and core protocol types across public, FFI,
and WASM so everything works consistently.
- Fully refactored `protocol.rs` and `public.rs` to clean up the API
surface and make the flow easier to work with.
- Added (de)serialization for `RLN_Proof` and `RLN_ProofValues`, and
matched all C, Nim, WASM, and Node.js examples.
- Aligned FFI and WASM behavior, added missing APIs, and standardized
how witness are created and passed around.
- Reworked the error types, added clearer verification messages, and
simplified the overall error structure.
- Updated variable names, README, Rust docs, and examples across the
repo, updated outdated RLN RFC link.
- Refactored `rln-cli` to use the new public API, removed
serialize-based cli example, and dropped the `eyre` crate.
- Bumped dependencies, fixed CI, fixed `+atomic` flags for latest
nightly Rust and added `Clippy.toml` for better fmt.
- Added a `prelude.rs` file for easier use, cleaned up public access for
types and types import across zerokit modules.
- Separated keygen, proof handling, slashing logic, and witness into
protocol folder.
2025-12-09 19:03:04 +07:00
Vinh Trịnh
5c73af1130 feat(wasm): rework rln-wasm and rln-wasm-utils modules, remove buffer-based serialization, and update public.rs and protocol.rs accordingly (#352) 2025-12-01 17:33:46 +07:00