The simple and easy implementation of Rust Merkle Tree
This library provides a clean and easy to use implementation of the Merkle Tree with the following features:
Create a Merkle Tree
```rust use merkletreers::merkletree::tree::MerkleTree;
let tree = MerkleTree::new(vec!["a","b","c","d"]);
assert_eq!(tree.leafs(), [ "3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb", "b5553de315e0edf504d9150af82dafa5c4667fa618ed0a6f19c69b41166c5510", "0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2", "f1918e8562236eb17adc8502332f4c9c82bc14e19bfc0aa10ab674ff75b3d2f3", ]) ```
Create a Root
```rust use merkletreers::merkletree::tree::MerkleTree;
let tree = MerkleTree::new(vec!["a","b","c","d"]);
assert_eq!( tree.root(), vec!["115cbb4775ed495f3d954dfa47164359a97762b40059d9502895def16eed609c"], ); ```
Create Proof of a leaf ```rust use merkletreers::merkletree::{tree::MerkleTree, node::Node};
let mtree = MerkleTree::new(vec!["a", "b", "c", "d"]); assert_eq!( mtree.proof("a"), vec![ Node::left("3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb"), Node::right("b5553de315e0edf504d9150af82dafa5c4667fa618ed0a6f19c69b41166c5510"), Node::right("64673cf40035df6d3a0d0143cc8426de49b9a93b9ad2d330cb4f0bc390a86d20") ] ); ```
Verify Proof of a leaf
rust
| Feature | Status | Priority | |-|-|-| | Create Root | ✅ | 🔥 | | Create Proof | ✅ | 🔥 | | Verify Proof | ⏰ | 🔥 | | Support OpenZeppelin | ⏰ | 🔥 | | Compatible with MerkleTreeJs | ⏰ | 🔥 | | Use any Hash function | ⏰ | 🧐 | | Leafs of any size | ⏰ | 🧐 |