Commit Graph

468 Commits

Author SHA1 Message Date
Kris Nuttycombe 422889cd5a Improve documentation of private `extend_to_level` method. 2025-02-19 08:42:29 -07:00
Kris Nuttycombe 1ad56addf7 Silence Clippy type complexity complaint. 2025-02-19 08:38:09 -07:00
Kris Nuttycombe 1d7cd427f0 shardtree: make construction of fully-empty Parent nodes an error
Ideally the errors here would all be panics, as construction of such a
node represents a programming error; however, it is preferable to return
extra contextual information about the circumstance that led to this
error where possible, so we model this as an error where possible
without altering the public API.
2025-02-17 16:46:06 -07:00
Kris Nuttycombe 561a6dc29b
Merge pull request #130 from nuttycom/permit_invalid_legacy_witnesses
Permit invalid legacy witnesses
2025-02-01 09:39:29 -07:00
Kris Nuttycombe 2e76b90d9a Release incrementalmerkletree version 0.8.2 2025-01-31 13:05:18 -07:00
Kris Nuttycombe 9edc305fa1 Fix clippy beta lints 2025-01-31 13:05:18 -07:00
Kris Nuttycombe e7ed4e00ea incrementalmerkletree: Allow test-dependencies construction of invalid legacy incremental witnesses. 2025-01-31 13:05:18 -07:00
Kris Nuttycombe 61c947bde3
Merge pull request #129 from zcash/release/shardtree-0.6.1
Release shardtree-v0.6.1
2025-01-31 10:31:31 -07:00
Kris Nuttycombe 8235a536fc Release shardtree-v0.6.1 2025-01-30 20:55:04 -07:00
Kris Nuttycombe e21b5b64c2
Merge pull request #128 from zcash/incrementalmerkletree_testing_3
Release incrementalmerkletree-testing 0.3
2025-01-30 20:50:35 -07:00
Kris Nuttycombe 44065917a3 Release incrementalmerkletree-testing 0.3 2025-01-30 16:52:27 -07:00
Kris Nuttycombe 7ceefdecf1
Merge pull request #127 from zcash/release/shardtree-0.6
Release shardtree version 0.6
2025-01-28 17:49:01 -07:00
Kris Nuttycombe 04280c42ab Release shardtree version 0.6 2025-01-28 12:29:13 -07:00
Kris Nuttycombe a3eb373c00 Merge remote-tracking branch 'upstream/hotfix/incrementalmerkletree-0.7' into main 2025-01-28 12:22:47 -07:00
Kris Nuttycombe b822170f2b
Merge pull request #126 from zcash/incrementalmerkletree_no_std
incrementalmerkletree: Enable use in `no_std` environments.
2025-01-28 09:57:42 -07:00
Kris Nuttycombe e9fe0de498 Release `incrementalmerkletree` version 0.8.1 2025-01-27 21:30:25 -07:00
Kris Nuttycombe 65db41c91d incrementalmerkletree: Remove `std` from default features.
`std` was actually only ever required for `test-dependencies`, which is
not in `default`.
2025-01-27 21:30:25 -07:00
Kris Nuttycombe 32fe37e11c incrementalmerkletree release v0.7.1
[0.7.1] - 2024-12-16
 ====================
 
 Added
 -----
 - `no-std` support, via a default-enabled `std` feature flag.
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - https://gpgtools.org
 
 iQIzBAABCgAdFiEEM8uh69MjC3Gih0YlOANKuf2lcGcFAmdgYzgACgkQOANKuf2l
 cGeciRAAsOC3u5vbbZIGbgXsqTuTMUpsHuy8Ef8hMpH/fOk9HAtwWRMvUn+rsHlv
 lghrxuaCBuYPPCWox9cpcn8jF/QOFnp5hj5ZzCc6RGZYJmBdJintlGNtA2IFa3rC
 ZhIFo5oBmT3d+1R7eEdLtVwLwLULxP+geK5GHLVbeu4zSpgNTy4enp9RhqOZUgoV
 V0aLdBhlZ+TxA7M7DUhVjtnyvie9O8raHWt3P7dPMeZEML9ab8LV6J/ESHDohKN8
 KmyNlYKXzypcydnV2fBx8D4j5UtXzqq1uG9vfMTe3ln8OaDZNbsXT/QUOZRZQLt8
 mr8FYUbJ2Zfb8LKUVFr/fuQuP4lb8XiL0sT4JMIPoPyyeV5qkzcJllbIszkYXNAR
 XP5eiRFIFtroG0Uw2SXHBmRaxn0i8wWY7F0NCVtXrlG60WS7EmhCFTp11uVu9kTb
 Ke2jy4JSWceQ0UD8g8al2+ndNTJMYApDkdww0VIydHnAr/EoKPynbfgSLZRam1xQ
 HVdZ73gkgdg1P4DSqNiX1QXPDEU9egMIe1yHRh7WcbhJjst0NJf5DxuxzPwEOy4q
 +aGei/QmWTrasjHDPcQVaD1TzdGA6OhauGpupv1X3lCJ1Rc1NodAv71ZebzAHCTa
 e1rksBVnkPl8yZj0rvO6wiROEGsRYFwSNvazs/GpWOHxTSOQxYg=
 =Sfdj
 -----END PGP SIGNATURE-----

Merge tag 'incrementalmerkletree-v0.7.1' into incrementalmerkletree_no_std-tmp
2025-01-27 16:13:40 -07:00
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
Daira-Emma Hopwood 26e8b47291
Merge pull request #124 from zcash/merge_shardtree_hotfix
Merge `shardtree` hotfixes back to `main` & update `shardtree` to `incrementalmerkletree 0.8.0`
2024-12-12 23:27:13 +00:00
Kris Nuttycombe 353cf3e9ff Update `shardtree` to depend upon `incrementalmerkletree 0.8.0` 2024-12-11 21:30:32 -07:00
Kris Nuttycombe fb62fb6175 Merge remote-tracking branch 'upstream/hotfix/shardtree-v0.3.x' into merge_shardtree_hotfix 2024-12-11 14:59:44 -07:00
Kris Nuttycombe 382d915c06
Merge pull request #123 from zcash/release/incrementalmerkletree-0.8.0
Release `incrementalmerkletree` version 0.8.0
2024-12-11 13:09:50 -07:00
Kris Nuttycombe 8a14eaa743 Release `incrementalmerkletree` version 0.8.0 2024-12-11 10:40:56 -07:00
Kris Nuttycombe 9ea34661fc
Merge pull request #122 from zcash/release/shardtree-v0.3.2
Release `shardtree v0.3.2`
2024-12-09 22:18:55 -07:00
Kris Nuttycombe 63cbc0a223 Release `shardtree v0.3.2` 2024-12-09 14:31:55 -07:00
Kris Nuttycombe c8ce5ef0a6
Merge pull request #121 from zcash/shardtree-justify-unwraps-v0.3.x-backport
Backport #119 to shardtree v0.3.x
2024-12-09 14:23:25 -07:00
Jack Grigg 766a00eb66 shardtree: Justify `unwraps` due to upheld pre-conditions 2024-12-09 13:44:38 -07:00
Kris Nuttycombe db4ad58965
Merge pull request #119 from zcash/shardtree-justify-unwraps
Replace justified `unwraps` in `shardtree` with `expect`s
2024-12-02 10:22:37 -07:00
Jack Grigg 150f5544ba shardtree: Justify `unwrap`s due to an `Infallible` error type
Rust 1.82 adds support for omitting empty types in pattern matching,
which would make these much clearer.
2024-12-02 09:46:50 -07:00
Kris Nuttycombe b05d9863db
Merge pull request #120 from zcash/imt-witness-non-empty-tree
incrementalmerkletree: Check `IncrementalWitness` at construction
2024-11-24 08:53:26 -07:00
Jack Grigg c05f2fac00 shardtree: Make `BatchInsertionResult.max_insert_position` non-optional 2024-11-23 04:03:50 +00:00
Jack Grigg 166872e49b shardtree: Ensure `LocatedTree` is correct by construction
This ensures that the various existing `unwrap`s are correctly
justified.
2024-11-23 03:47:35 +00:00
Jack Grigg 1e81f3ca45 shardtree: Justify `unwraps` due to upheld pre-conditions 2024-11-23 03:21:47 +00:00
Jack Grigg 2edacb0191 incrementalmerkletree: Check `IncrementalWitness` at construction
A witness cannot exist for an empty tree.

Part of zcash/incrementalmerkletree#118.
2024-11-23 01:42:04 +00:00
Jack Grigg 74410d059f shardtree: Justify `unwrap`s due to an `Infallible` error type
Rust 1.82 adds support for omitting empty types in pattern matching,
which would make these much clearer.
2024-11-23 00:51:30 +00:00
Kris Nuttycombe c06b836e3f
Merge pull request #117 from zcash/release/shardtree-0.5.0
Release shardtree version 0.5.0
2024-10-04 08:33:51 -06:00
Kris Nuttycombe 771a933d88 Release shardtree version 0.5.0 2024-10-04 08:14:43 -06:00
Kris Nuttycombe ae7178553e Release incrementalmerkletree-testing version 0.2.0 2024-10-04 08:14:43 -06:00
Jack Grigg 3364521525
Merge pull request #116 from zcash/stable_incrementalmerkletree_dep
Use the stable incrementalmerkletree 0.7 dependency in `incrementalmerkletree-testing` and `shardtree`
2024-10-02 20:06:03 +01:00
Kris Nuttycombe 518fa387d7 Use the stable incrementalmerkletree 0.7 dependency in `incrementalmerkletree-testing` and `shardtree` 2024-10-02 12:51:05 -06:00
Kris Nuttycombe ffe4234788
Merge pull request #115 from nuttycom/shardtree_rewind_to
shardtree: Significantly rework handling of checkpoint depths and truncation operations.
2024-09-27 11:09:22 -06:00
Kris Nuttycombe 3f59900acf Apply documentation suggestions from code review
Co-authored-by: Jack Grigg <thestr4d@gmail.com>
2024-09-27 10:55:01 -06:00
Kris Nuttycombe 9a77e51cc4 shardtree: Rework rewind & checkpoint depth handling. 2024-09-27 08:44:14 -06:00
Kris Nuttycombe 05f23d9763 incrementalmerkletree-testing: Always rewind to a checkpoint.
The previous semantics of the `rewind` operation would remove the last
checkpoint, if any, but would not further modify the tree. However,
these semantics are error prone - if you rewind to a checkpoint, you are
not able to rewind to the same checkpoint again; also, in practice, it
doesn't make sense to shift the location of a checkpoint in the note
commitment tree. This change alters `rewind` to (a) take an explicit
checkpoint depth, with depth `0` meaning that any state added since the
last checkpoint should be discarded, and (b) only allow a rewind
operation to succeed if a checkpoint actually exists at the specified
depth.
2024-09-26 22:34:21 -06:00
Kris Nuttycombe 5bbd832930
Merge pull request #114 from nuttycom/bridgetree-0.6.0
Release `bridgetree` version 0.6.0.
2024-09-25 16:51:29 -06:00
Kris Nuttycombe 13a52fcea4 Release `bridgetree` version 0.6.0.
This change removes `bridgetree` from the workspace, so that it will no
longer be maintained in lockstep with changes to the
`incrementalmerkletree` crate. `bridgetree` will only receive bug-fix
changes in the future.
2024-09-25 14:25:40 -06:00
Kris Nuttycombe 771c0858a2
Merge pull request #113 from nuttycom/incrementalmerketree-testing
Extract `incrementalmerkletree::testing` module to a separate `incrementalmerkletree-testing` crate.
2024-09-25 14:14:13 -06:00