use std::str::FromStr;
use std::vec;
use rustreexo::node_hash::BitcoinNodeHash;
use rustreexo::proof::Proof;
use rustreexo::stump::Stump;
fn main() {
let utxos = vec![
BitcoinNodeHash::from_str(
"b151a956139bb821d4effa34ea95c17560e0135d1e4661fc23cedc3af49dac42",
)
.unwrap(),
BitcoinNodeHash::from_str(
"d3bd63d53c5a70050a28612a2f4b2019f40951a653ae70736d93745efb1124fa",
)
.unwrap(),
];
let s = Stump::new()
.modify(&utxos, &[], &Proof::default())
.unwrap()
.0;
let proof = Proof::new(vec![0], vec![utxos[1]]);
assert_eq!(s.verify(&proof, &[utxos[0]]), Ok(true));
let new_utxo = BitcoinNodeHash::from_str(
"d3bd63d53c5a70050a28612a2f4b2019f40951a653ae70736d93745efb1124fa",
)
.unwrap();
let s = s.modify(&[new_utxo], &[utxos[0]], &proof).unwrap().0;
let new_proof = Proof::new(vec![2], vec![new_utxo]);
assert_eq!(s.verify(&new_proof, &[new_utxo]), Ok(true));
assert_eq!(s.verify(&proof, &[utxos[0]]), Ok(false));
}