tree.rs 680 B

123456789101112131415161718192021222324252627
  1. use incrementalmerkletree::{bridgetree::BridgeTree, Frontier, Tree};
  2. use pasta_curves::pallas;
  3. use rand::rngs::OsRng;
  4. use group::ff::Field;
  5. use darkfi::{crypto::merkle_node::MerkleNode, Result};
  6. fn main() -> Result<()> {
  7. let mut tree = BridgeTree::<MerkleNode, 32>::new(100);
  8. for i in 0..10 {
  9. tree.append(&MerkleNode(pallas::Base::random(&mut OsRng)));
  10. if i % 3 == 0 {
  11. tree.witness();
  12. }
  13. }
  14. let bytes = bincode::serialize(&tree).unwrap();
  15. let tree2: BridgeTree<MerkleNode, 32> = bincode::deserialize(&bytes).unwrap();
  16. let root1 = tree.root();
  17. let root2 = tree2.root();
  18. assert_eq!(root1, root2);
  19. Ok(())
  20. }