Compare commits

..

2 commits

Author SHA1 Message Date
2415173510 change mutationset commit to use impl IntoIterator 2024-09-09 17:11:17 -06:00
d182138844 feat(smt): implement generic prospective insertions
This commit adds two methods to SparseMerkleTree: compute_mutations()
and apply_mutations(), which respectively create and consume a new
MutationSet type. This type represents as set of changes to a
SparseMerkleTree that haven't happened yet, and can be queried on to
ensure a set of insertions result in the correct tree root before
finalizing and committing the mutation.

This is a direct step towards issue 222, and will directly enable
removing Merkle tree clones in miden-node InnerState::apply_block().

As part of this change, SparseMerkleTree now requires its Key to be Ord
and its Leaf to be Clone (both bounds which were already met by existing
implementations). The Ord bound could instead be changed to Eq + Hash,
if MutationSet were changed to use a HashMap instead of a BTreeMap.
2024-09-09 17:08:56 -06:00

2
series

@ -1 +1 @@
Subproject commit f0eaf046e20e7721dad3a75dc54b5df1b9595fab
Subproject commit d182138844a7bc61ed67545def929da1c6b87ad2