LNP-BP / client_side_validation

Standard implementation of client-side-validation APIs
https://docs.rs/client_side_validation
Apache License 2.0
22 stars 19 forks source link

Make MerkleBuoy generic utility #138

Closed dr-orlovsky closed 11 months ago

dr-orlovsky commented 11 months ago

MerkleBuoy is a helper that ensures that unbalanced Merkle trees iterated over their leaves run iteration in full.

Previously MerkleBuoy was used only internally for merging two MPC Merkle blocks. While implementing taproot support in new bp-std and psbt crates I stumbled upon the need for a similar structure with different max depth. So instead of creating a new one, I export this structure putting it into merkle module (where it belongs to, since it is not just MPC-specific anymore) and making it generic over the depth. None of the existing business logic or validation code must be affected.