Added macros to do the following:
read the input passed to the FFI API;
cast it to a byte sequence;
pass the byte sequence to the corresponding public function;
cast the output of the public function to Buffer(if any) and write it into the FFI caller ´output_buffer` variable;
erase memory from any temporarily allocated data structure;
return true if everything went fine, false otherwise.
* feat(rln): add API to recover id_secret when a user is slashed
* feat(rln): add RLN API for recovering id_secret
* feat(rln): add recover_id_secret FFI API; update public API docs
* fix(rln): address reviewers' comments
* fix(rln): removing ; for clippy
* feat(rln): expand documentation with minimal public API usage example
* refactor(rln): ease RLN interaction with new APIs
* feat(rln): expand API docs
* fix(rln): disable doctest for rln
* refactor(zerokit): split test workflows per module
* refactor(ci): separate clippy per module
* fix(ci): continue with next module lint check, even if previous fails
* refactor: enable tests on linux/macos
* fix(rln-wasm): make cargo make build work on macOS and linux (#77)
* fix(ci): fix workflow
* fix(ci): add name to workflows
* refactor(zerokit): split test workflows per module
* refactor(ci): separate clippy per module
* fix(ci): continue with next module lint check, even if previous fails
* refactor: enable tests on linux/macos
* fix(ci): fix workflow
* fix(ci): add name to workflows
* fix(ci): enable lint tests only for ubuntu
* fix(ci): exclude rln-wasm since it has its own step now
* fix(ci): use stable toolchain
* fix(ci): paths for release notes
* fix(ci): release path
* test(ci): check the tree for filepaths
* test(ci): check the tree for filepaths
* test(ci): tighten name and release assets
* test(ci): auto generated release notes
* fix(ci): remove commit hash from asset name for determinism
* test(ci): start tag should be last release
* feat(rln): publish rln artifacts on push to master
* test(ci): check if artifacts are built on push to temp branch
* fix(ci): run tests only on changes to src
* fix(ci): add paths-ignore to prs
* fix(ci): make paths more explicit
* fix(ci): make publish workflow run
* fix(ci): revert back to master ref
* fix(ci): add os and sha to artifact name
* test(ci): trigger publish
* feat(ci): tar the artifacts
* test(ci): split ci and publish
* test(ci): only on master runs
* feat(ci): replace with nightly releaser
* chore(ci): extra newlines
* fix(ci): Spelling
Co-authored-by: G. <28568419+s1fr0@users.noreply.github.com>
* feat(ci): build and publish rln wasm
Co-authored-by: G. <28568419+s1fr0@users.noreply.github.com>
* fix(rln): throw if attempting to insert out of bounds
* chore(rln): better error msg
* fix(merkle-tree): make it mimic OptimalMerkleTree impl
* chore(rln): return result as is
* feat(rln): ability to set leaves from a given index
* style(rln): fmt
* fix(rln): bubble the error
* revert: "fix(rln): bubble the error"
This reverts commit 40265082ba.
* fix(rln): replace ark::std::Zero with default
* fix(rln): ordering of ffi api
* fix(rln): use PoseidonHash::default_leaf
* chore(rln): add ffi test for batching
* docs(rln): add entry to changelog
* fix(rln): address reviews
* fix(changelog): fmt
* fix(rln): safe conversion
* fix(rln): reset tree with init func, add comments
* chore(rln): add comment about init_tree_with_leaves
* fix(rln): comment
* refactor(rln): removing unused crates/dependencies
* cargo fmt
* refactor(rln): removed more dependencies; curve/fields as parameters
* refactor(rln): use poseidon-rs hash instead of semaphore-rs poseidon
* chore(rln): remove deps
* refactor(rln): use exclusively arkworks Fr
* refactor(rln): integrate poseidon-rs implementation to work with arkworks arithmetic
* fix(rln): remove previous poseidon-rs wrapper
* feat(rln): add features to select MT; remove prints if not in debug mode
* fix(rln): collect test parameters in a vector
* feat(RLN): add `new_with_params` (#36)
Allows passing the wasm, zkey and verification key data as buffers, instead of using a path to a folder
* chore(rln): simplify read wasm
* fix(rln): remove unused dependencies
* cargo fmt
* fix(rln): update dependencies, fix commit
* refactor(rln): restore ark-circom original dep
Co-authored-by: Richard Ramos <info@richardramos.me>
* refactor(rln): replace merkle tree implementation
refactor(rln): before switch
refactor(rln): replace merkle tree implementation
fix(rln): cargo fmt, cargo clippy
cargo fmt
* chore(rln): add comments
* chore(rln): cargo fmt; cargo clippy
* refactor(rln): improve Merkle tree crate
- Integrate previous Full storage MT with Optimal (storage) MT implementation
- Align the two implementation to same API/traits implementations
- Align implementations as much as possible to same language and variable names/meaning
- Comment code
- Add descriptions to each module's crate
- address reviewer's comments
* refactor(rln): fmt, clippy, remove pub from next index, update output type for some proc