tree.rs 680 B

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