use std::str::FromStr;
use rustreexo::mem_forest::MemForest;
use rustreexo::node_hash::BitcoinNodeHash;
use rustreexo::proof::Proof;
use rustreexo::stump::Stump;
fn main() {
let elements = vec![
BitcoinNodeHash::from_str(
"b151a956139bb821d4effa34ea95c17560e0135d1e4661fc23cedc3af49dac42",
)
.unwrap(),
BitcoinNodeHash::from_str(
"d3bd63d53c5a70050a28612a2f4b2019f40951a653ae70736d93745efb1124fa",
)
.unwrap(),
];
let mut p = MemForest::new();
p.modify(&elements, &[]).unwrap();
let proof = p.prove(&[elements[0]]).unwrap();
let s = Stump::new()
.modify(&elements, &[], &Proof::default())
.unwrap()
.0;
assert_eq!(s.verify(&proof, &[elements[0]]), Ok(true));
let new_utxo = BitcoinNodeHash::from_str(
"cac74661f4944e6e1fed35df40da951c6e151e7b0c8d65c3ee37d6dfd3bc3ef7",
)
.unwrap();
p.modify(&[new_utxo], &[elements[0]]).unwrap();
let _ = p.prove(&[new_utxo]).unwrap();
}