Commit Graph

421 Commits

Author SHA1 Message Date
Kris Nuttycombe 60e7e18365
Merge pull request #125 from zcash/incrementalmerkletree-no-std
Allow `no_std` use of `incrementalmerkletree`
2024-12-16 11:15:39 -07:00
Kris Nuttycombe 507f6775ac Release incrementalmerkletree version 0.7.1 2024-12-16 10:13:55 -07:00
Kris Nuttycombe 0eecd6dae7 Allow `no_std` use of `incrementalmerkletree` 2024-12-16 10:13:55 -07:00
Kris Nuttycombe d663a8f64f Release incrementalmerkletree version 0.7.0, incrementalmerkletree-testing 0.1 2024-09-25 13:49:55 -06:00
Kris Nuttycombe cfc4fcbac8 Extract incrementalmerkletree::testing module to a separate `incrementalmerkletree-testing` crate. 2024-09-25 13:37:03 -06:00
Kris Nuttycombe 6f6699da21 Use common workspace package stanza & workspace dependencies.
This requires us to upgrade our MSRV to 1.64
2024-09-25 13:37:03 -06:00
Kris Nuttycombe 8aa12e4fe3
Merge pull request #112 from ec2/ec2/for_each_checkpoint 2024-09-12 12:15:46 -06:00
Eric Tu 8ccb40d088 CHANGELOG 2024-09-12 11:48:22 -04:00
Eric Tu 16eff253ad FnMut instead of Fn 2024-09-10 15:57:50 -04:00
Eric Tu eb3843e0cf for_each_checkpoint 2024-09-10 10:12:30 -04:00
Kris Nuttycombe 0f76ad8009
Merge pull request #111 from ec2/ec2/expose_max_checkpoint
Add max_checkpoints getter on ShardTree
2024-09-08 09:33:26 -06:00
Eric Tu 0e9d4d635a Add max_checkpoints getter 2024-09-06 12:14:28 -04:00
Kris Nuttycombe f3919df8f6
Merge pull request #110 from nuttycom/release/bridgetree-v0.5.0
release `bridgetree` version 0.5.0
2024-08-12 12:34:51 -06:00
Kris Nuttycombe c28fcb98ef
Merge pull request #109 from nuttycom/release/shardtree-v0.4.0
Release `shardtree` version 0.4.0
2024-08-12 12:24:21 -06:00
Kris Nuttycombe f312ffc118 release `bridgetree` version 0.5.0` 2024-08-12 12:03:37 -06:00
Kris Nuttycombe ef7fcde5fa Release shardtree version 0.4.0 2024-08-12 11:33:36 -06:00
Kris Nuttycombe 6b7143bf38
Merge pull request #108 from nuttycom/release/incrementalmerkletree-v0.6.0
Release incrementalmerkletree version 0.6.0
2024-08-12 10:56:58 -06:00
Kris Nuttycombe 1f86f1259a Release incrementalmerkletree version 0.6.0 2024-08-12 10:18:42 -06:00
Kris Nuttycombe 337f59179e
Merge pull request #107 from nuttycom/shardtree/fix_inserted_parents
shardtree: Use annotated parent nodes with empty children for inserted frontier ommers.
2024-06-28 13:30:00 -06:00
Kris Nuttycombe 192cb3ffda shardtree: Remove `Node::Pruned`
In 7e48886fd3, `Node::Pruned` was
introduced in order to fix problems with `LocatedTree::max_position`
resulting from reinsertion of subtree information as children of
a previously pruned subtree represented by a `Node::Leaf` at its
root. This fix introduced a large amount of complexity that is
better resolved by fixing the `max_position` function in a different
way and generally minimizing its usage.
2024-06-27 16:30:57 -06:00
Kris Nuttycombe 88681ae335 shardtree: Reduce dependence upon `LocatedTree::max_position` 2024-06-27 16:30:57 -06:00
Kris Nuttycombe b38b9d5d62 shardtree: Minor cleanups & documentation improvements. 2024-06-27 16:30:52 -06:00
Kris Nuttycombe f5adcd5a2c shardtree: Fix pruning of annotated `Parent` nodes with `Nil` children.
The current behavior of `unite` incorrectly discards annotation data.
2024-06-27 14:39:48 -06:00
Kris Nuttycombe 08d3e23977
Merge pull request #106 from zcash/shardtree-node-creation
shardtree: Use `Tree` constructors instead of struct creation
2024-06-26 09:23:36 -06:00
Jack Grigg 020a7d76d7 shardtree: Use `Tree` constructors instead of struct creation
This makes it easier for us to track where new tree nodes are created,
and how the node kinds are used within the `ShardTree` data model.
2024-06-26 14:08:25 +00:00
Kris Nuttycombe 8b4b1315d6
Merge pull request #105 from nuttycom/limitable_pruning
shardtree: Add `Reference` retention to make it possible to limit pruning.
2024-05-30 08:57:43 -06:00
Kris Nuttycombe 93512976dd
incrementalmerkletree: Documentation fix for `Checkpoint` retention.
Co-authored-by: str4d <thestr4d@gmail.com>
2024-05-30 08:04:23 -06:00
Kris Nuttycombe d40e178f8d shardtree: Do not unify pruned nodes with empty nodes. 2024-05-28 19:22:45 -06:00
Kris Nuttycombe 7e48886fd3 shardtree: Add `Pruned` node type
In circumstances where insertion into a subtree results in pruning, and
then a subsequent insertion within the same range contains leaves that
must be retained, it is necessary to be able to distinguish the maximum
position among notes that have been observed but later pruned. This
fixes a bug wherein an insertion into an already-pruned tree could cause
the maximum position reported for the subtree to regress.
2024-05-28 19:22:45 -06:00
Kris Nuttycombe ffc087424d shardtree: Discard `REFERENCE` retention in leaf overwrites.
Also, disallow value-conflicted overwrites at the leaf level.
2024-05-28 17:13:31 -06:00
Kris Nuttycombe e55ff2d7f2 incrementalmerkletree: add `Reference` retention type.
This new retention type is intended to be used when inserting frontiers
that should not automatically be pruned.

Also, improve documentation for the `Retention` type.
2024-05-28 17:10:38 -06:00
Kris Nuttycombe 57b6e8999f shardtree: `Nil` nodes cannot replace any other sort of node in the tree. 2024-05-28 15:54:18 -06:00
Kris Nuttycombe 811d384bd4 shardtree: Improve tracing 2024-05-28 15:50:07 -06:00
Kris Nuttycombe 33fc3f6013
Merge pull request #104 from zcash/release-shardtree-v0.3.1
Release shardtree version 0.3.1
2024-04-03 16:07:56 -06:00
Kris Nuttycombe 7c862c16b3 Release shardtree version 0.3.1 2024-04-03 13:49:13 -06:00
Kris Nuttycombe a5f5d71991
Merge pull request #103 from nuttycom/doc-fix
shardtree: Ensure `test-dependencies` feature enables `incrementalmerkletree/test-dependencies`
2024-04-03 13:40:46 -06:00
Kris Nuttycombe 52e956b8ec shardtree: Ensure `test-dependencies` feature enables `incrementalmerkletree/test-dependencies`
This is intended to fix an issue with the `docs.rs` build.
2024-04-03 11:58:37 -06:00
Kris Nuttycombe 13a3c997a3
Merge pull request #102 from zcash/release-shardtree-v0.3.0
Release shardtree v0.3.0
2024-03-24 20:24:22 -06:00
Kris Nuttycombe 65b1537a8b
Merge pull request #101 from zcash/release-incrementalmerkletree-v0.5.1
Release incrementalmerkletree version 0.5.1
2024-03-24 20:11:33 -06:00
Kris Nuttycombe 17429d08ad Release incrementalmerkletree version 0.5.1 2024-03-24 18:39:29 -06:00
Kris Nuttycombe 22ee3d8f4e Release shardtree version 0.3.0 2024-03-24 18:29:25 -06:00
Kris Nuttycombe ac9ecaca12 shardtree: Add `InsertionError::MarkedRetentionInvalid` 2024-03-24 18:26:00 -06:00
Kris Nuttycombe e1a7a80212
Merge pull request #100 from nuttycom/random_frontier
incrementalmerkletree: Implement random frontier generation with consistent prior roots.
2024-03-19 14:34:10 -06:00
Kris Nuttycombe 111d843584 incrementalmerkletree: Implement random frontier generation with consistent prior roots. 2024-03-19 13:09:15 -06:00
Kris Nuttycombe 2411de7cec
Merge pull request #99 from nuttycom/random_frontier
Add `Frontier::random_of_size` to facilitate testing.
2024-03-18 08:54:32 -06:00
Kris Nuttycombe af162429cc Add `Frontier::random_of_size` to facilitate testing. 2024-03-16 09:09:07 -06:00
Kris Nuttycombe 4ea60ea18b
Merge pull request #98 from nuttycom/shardtree/insert_frontier
shardtree: Add `ShardTree::insert_frontier`
2024-03-11 16:51:19 -06:00
Kris Nuttycombe 17f2bcd037
Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
2024-03-11 16:51:06 -06:00
Kris Nuttycombe fa147c89c6 shardtree: Add `ShardTree::store_mut` 2024-03-11 13:03:03 -06:00
Kris Nuttycombe 25cb18973e shardtree: Add `ShardTree::insert_frontier` 2024-03-11 13:02:34 -06:00