Compare commits

..

226 commits

Author SHA1 Message Date
d15031b1c7 move serialization above the iterators 2025-04-07 16:29:55 +02:00
5ab7980fbc smt: change SimpleSmt::open() to return a sparse path 2025-04-07 16:29:43 +02:00
5685f6d4b6 SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-07 16:29:43 +02:00
80bd9af671 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-07 16:29:43 +02:00
44ee5270eb SPARSE MERKLE PATH CONTAINERS -> SPARSE VALUE PATH 2025-04-07 16:29:14 +02:00
fadbc74bb4 smt: change SimpleSmt::open() to return a sparse path 2025-04-07 16:29:04 +02:00
0c436503e9 SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-07 16:29:04 +02:00
9ae2934de9 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-07 16:29:04 +02:00
5de2aecd3e update base 2025-04-07 16:22:41 +02:00
74fe4a2d07 SparseMerkleIter -> SparseMerklePathIter 2025-04-07 14:16:30 +02:00
92ddc2828d smt: change SimpleSmt::open() to return a sparse path 2025-04-07 14:16:19 +02:00
3c5ded9d55 SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-07 14:16:19 +02:00
049d42d2ce smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-07 14:16:19 +02:00
92d44d2f0b sparse_nodes -> sparse_nodes_mask 2025-04-07 14:15:33 +02:00
af54b2d398 smt: change SimpleSmt::open() to return a sparse path 2025-04-07 14:14:41 +02:00
5e5b34dd8a SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-07 14:14:41 +02:00
30959d64c1 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-07 14:14:41 +02:00
a803b2ec2e move test comments to correct commit 2025-04-07 14:13:59 +02:00
df8af38cbd smt: change SimpleSmt::open() to return a sparse path 2025-04-07 14:13:50 +02:00
96532c501c SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-07 14:13:50 +02:00
9d8aff79c1 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-07 14:13:50 +02:00
0ce8270ed8 document error stuffs 2025-04-07 14:07:57 +02:00
49bda697ef smt: change SimpleSmt::open() to return a sparse path 2025-04-07 14:05:29 +02:00
539b002ada SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-07 14:05:29 +02:00
33985d9e22 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-07 14:05:29 +02:00
0c7493e916 fix docstring part that says empty nodes have no effect on memory usage 2025-04-07 13:54:49 +02:00
21b2c08cf9 smt: change SimpleSmt::open() to return a sparse path 2025-04-07 13:54:32 +02:00
39397c707d SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-07 13:54:32 +02:00
9dada3a0d3 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-07 13:54:32 +02:00
52713f6895 add some comments to test_sparse_bits 2025-04-06 15:03:03 +02:00
25cfe91cc0 smt: change SimpleSmt::open() to return a sparse path 2025-04-06 15:02:45 +02:00
9fa2038ca8 add docstring to test_sparse_bits() 2025-04-04 15:49:45 +02:00
2feed75022 SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-04 15:49:32 +02:00
93a0ca0891 smt: change SimpleSmt::open() to return a sparse path 2025-04-04 15:49:32 +02:00
d3aedfa731 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-04 15:49:32 +02:00
d255b806cb cleanup tests 2025-04-04 15:41:58 +02:00
69db897e8a smt: change SimpleSmt::open() to return a sparse path 2025-04-04 15:41:52 +02:00
30a7ec112a SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-04 15:41:52 +02:00
7538681a13 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-04 15:41:52 +02:00
fd664a4264 remove test_sparse_indices() 2025-04-04 15:24:16 +02:00
20c490c46f smt: change SimpleSmt::open() to return a sparse path 2025-04-04 15:24:05 +02:00
842ef50428 SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-04 15:24:05 +02:00
a3b9f3dd21 smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-04 15:24:05 +02:00
10f3f61fd2 remove outdated comment reference to next_back() 2025-04-04 15:23:44 +02:00
66237007e5 smt: change SimpleSmt::open() to return a sparse path 2025-04-04 15:23:33 +02:00
d36243cc39 SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-04 15:23:33 +02:00
68b043cbaf smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-04 15:23:33 +02:00
3b4c2c36dc move commit 'PartialSmt: fix misleading variable names' to the earliest 2025-04-04 15:17:48 +02:00
22c19983ac MerklePath: add clarity getters for API parity with future SparseMerklePath
This adds `MerklePath::at_depth()` and `MerklePath::at_idx()`, both for
clarity and for API parity with `SparseMerklePath` in the next commit.
2025-04-04 15:17:21 +02:00
b43afcd2ce smt: change SimpleSmt::open() to return a sparse path 2025-04-04 15:17:21 +02:00
d524543899 MerklePath: document indexing order of nodes
I've left the iteration order of `MerklePath::inner_nodes()`
unspecified, but other methods of iteration and indexing are now
specified to be in order of deepest to shallowest.
2025-04-04 15:17:21 +02:00
b31a50de2a SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-04 15:17:21 +02:00
aa386c67a4 MerkleTree: use new NodeIndex::proof_indices() to resolve TODO 2025-04-04 15:17:21 +02:00
5febc5798f smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-04 15:17:21 +02:00
07bda60233 smt: refactor MerklePath logic
Computation of the correct node indices to get is moved to
`NodeIndex::proof_indices()`, and getting a node's index based on its
parent is generalized into `SparseMerkleTree::get_hash()`.
2025-04-04 15:17:21 +02:00
5eb9a14c40 PartialSmt: fix misleading variable names 2025-04-04 15:17:21 +02:00
a27be8db4f fix clippy lints 2025-04-04 15:17:18 +02:00
4d0b507e77 smt: change SimpleSmt::open() to return a sparse path 2025-04-04 15:17:06 +02:00
980e1615bf SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-04 15:17:06 +02:00
9ee094703c smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-04 15:17:06 +02:00
2fc25c028b re-add SimpleSmt::open() commit 2025-04-04 15:16:02 +02:00
1c39f38c9c smt: change SimpleSmt::open() to return a sparse path 2025-04-04 15:14:27 +02:00
c28a9d1c30 SimpleSmt: do not assume that Merkle paths Deref to Vec in tests
This is in preparation for the next commit, where we change
`SimpleSmt::open()` to return a `SparseMerklePath`, which cannot
dereference to a Vec.
2025-04-04 15:12:40 +02:00
f018fcb2aa smt: add SparseMerklePath, a compact representation of MerklePath 2025-04-04 15:12:40 +02:00
a09ce394ae SQUASH ALL THE THINGS 2025-04-04 14:54:34 +02:00
7f2fef41d0 smt: add SparseMerklePath
SparseMerklePath: implement random access


SparseMerklePath: implement iterators


SparseMerklePath: implement Serializable and Deserializable


SparseMerklePath: impl From/Into conversions


SparseMerklePath: add SparseValuePath container


<git index>
2025-04-04 14:54:05 +02:00
0961cfb227 add MerkleTree proof_indices commit 2025-04-04 14:53:15 +02:00
d46aa998be PartialSmt: fix misleading variable names 2025-04-04 14:52:31 +02:00
fb5a865dfc Revert "smt: impl SimpleSmt::get_path() which returns a sparse path"
This reverts commit 3bcd8cfe82e1b09d974c8bd6b0b5b16bd6bcfbfe.
2025-04-04 14:52:31 +02:00
7bc5527d45 MerklePath: add clarity getters for API parity with future SparseMerklePath
This adds `MerklePath::at_depth()` and `MerklePath::at_idx()`, both for
clarity and for API parity with `SparseMerklePath` in the next commit.
2025-04-04 14:52:31 +02:00
7f4b2b326c smt: impl SimpleSmt::get_path() which returns a sparse path 2025-04-04 14:52:31 +02:00
52a653f492 MerklePath: document indexing order of nodes
I've left the iteration order of `MerklePath::inner_nodes()`
unspecified, but other methods of iteration and indexing are now
specified to be in order of deepest to shallowest.
2025-04-04 14:52:31 +02:00
cc6981de7f SparseMerklePath: add SparseValuePath container 2025-04-04 14:52:31 +02:00
055c95f32a MerkleTree: use new NodeIndex::proof_indices() to resolve TODO 2025-04-04 14:52:31 +02:00
c45d9682eb SparseMerklePath: impl From/Into conversions 2025-04-04 14:52:31 +02:00
067f5d1062 SparseMerklePath: implement Serializable and Deserializable 2025-04-04 14:52:31 +02:00
9122935685 SparseMerklePath: implement iterators 2025-04-04 14:52:31 +02:00
f8771549ea SparseMerklePath: implement random access 2025-04-04 14:52:31 +02:00
129f81eb4b smt: add SparseMerklePath 2025-04-04 14:52:31 +02:00
91aac69b8e smt: refactor MerklePath logic
Computation of the correct node indices to get is moved to
`NodeIndex::proof_indices()`, and getting a node's index based on its
parent is generalized into `SparseMerkleTree::get_hash()`.
2025-04-04 14:49:01 +02:00
3e4724d684 remove sparse_path changes from SimpleSmt commit 2025-04-04 14:43:48 +02:00
81ce40ce49 smt: impl SimpleSmt::get_path() which returns a sparse path 2025-04-04 14:43:34 +02:00
22b33ed8b6 SparseMerklePath: add SparseValuePath container 2025-04-04 14:38:54 +02:00
91983f7ced reorder commits 2025-04-04 14:36:01 +02:00
f1eb9a8f04 SparseMerklePath: impl From/Into conversions 2025-04-04 14:35:45 +02:00
5d6ef3eccf smt: impl SimpleSmt::get_path() which returns a sparse path 2025-04-04 14:35:45 +02:00
743c65979a SparseMerklePath: implement Serializable and Deserializable 2025-04-04 14:35:45 +02:00
87acaa5aad SparseMerklePath: implement iterators 2025-04-04 14:35:45 +02:00
6fe0ab3184 SparseMerklePath: implement random access 2025-04-04 14:35:45 +02:00
15a8d9cbd8 smt: add SparseMerklePath 2025-04-04 14:35:45 +02:00
002afad1d7 PartialSmt: fix misleading variable names 2025-04-04 14:35:45 +02:00
9ef9fad9a7 MerklePath: add clarity getters for API parity with future SparseMerklePath
This adds `MerklePath::at_depth()` and `MerklePath::at_idx()`, both for
clarity and for API parity with `SparseMerklePath` in the next commit.
2025-04-04 14:35:11 +02:00
c92882832c add at_idx and at_depth for MerklePath 2025-04-04 14:17:11 +02:00
bf5b0e3255 MerklePath: document indexing order of nodes
I've left the iteration order of `MerklePath::inner_nodes()`
unspecified, but other methods of iteration and indexing are now
specified to be in order of deepest to shallowest.
2025-04-04 14:16:04 +02:00
09f78036a4 MerklePath: add clarity getters for API parity with future SparseMerklePath
This adds `MerklePath::at_depth()` and `MerklePath::at_idx()`, both for
clarity and for API parity with `SparseMerklePath` in the next commit.
2025-04-04 14:16:04 +02:00
99a7988e9e PartialSmt: fix misleading variable names 2025-04-04 14:16:04 +02:00
41f72ecf2f smt: impl SimpleSmt::get_path() which returns a sparse path 2025-04-04 14:16:04 +02:00
38d2ca3505 SparseMerklePath: impl From/Into conversions 2025-04-04 14:16:04 +02:00
441e29378e SparseMerklePath: implement Serializable and Deserializable 2025-04-04 14:16:04 +02:00
8f833c77e6 SparseMerklePath: implement iterators 2025-04-04 14:16:04 +02:00
71967753c8 SparseMerklePath: implement random access 2025-04-04 14:16:04 +02:00
b116991b9d smt: add SparseMerklePath 2025-04-04 14:16:04 +02:00
6cafc422b4 fix section of proof_indices() 2025-03-25 18:07:44 +01:00
dcf66efb56 smt: refactor MerklePath logic
Computation of the correct node indices to get is moved to
`NodeIndex::proof_indices()`, and getting a node's index based on its
parent is generalized into `SparseMerkleTree::get_hash()`.
2025-03-25 18:07:33 +01:00
4a9252b65e PartialSmt: fix misleading variable names 2025-03-25 18:07:33 +01:00
adf552e1e2 smt: impl SimpleSmt::get_path() which returns a sparse path 2025-03-25 18:07:33 +01:00
74fb98578a SparseMerklePath: impl From/Into conversions 2025-03-25 18:07:33 +01:00
e6e2b1439f SparseMerklePath: implement Serializable and Deserializable 2025-03-25 18:07:33 +01:00
62b75ef686 SparseMerklePath: implement iterators 2025-03-25 18:07:33 +01:00
c645dd1ece SparseMerklePath: implement random access 2025-03-25 18:07:33 +01:00
33e414b32a smt: add SparseMerklePath 2025-03-25 18:07:33 +01:00
0af551a068 refactor for NodeIndex::proof_indices() 2025-03-25 18:06:49 +01:00
d66b001708 PartialSmt: fix misleading variable names 2025-03-25 18:06:31 +01:00
3a672c6e9d smt: impl SimpleSmt::get_path() which returns a sparse path 2025-03-25 18:06:31 +01:00
1bb1a45bd0 SparseMerklePath: impl From/Into conversions 2025-03-25 18:06:31 +01:00
9b65debf2c SparseMerklePath: implement Serializable and Deserializable 2025-03-25 18:06:31 +01:00
4252678e91 SparseMerklePath: implement iterators 2025-03-25 18:06:31 +01:00
10b2f389de SparseMerklePath: implement random access 2025-03-25 18:06:22 +01:00
b1847cab25 smt: add SparseMerklePath 2025-03-25 18:06:07 +01:00
619944aec8 smt: refactor MerklePath logic
Computation of the correct node indices to get is moved to
`NodeIndex::proof_indices()`, and getting a node's index based on its
parent is generalized into `SparseMerkleTree::get_hash()`.
2025-03-25 18:02:30 +01:00
57ceff3a72 fix iterators for get()/get_nonempty() change 2025-03-25 15:17:56 +01:00
9c84bcb2f6 PartialSmt: fix misleading variable names 2025-03-25 15:16:37 +01:00
90423ca622 smt: impl SimpleSmt::get_path() which returns a sparse path 2025-03-25 15:16:37 +01:00
297868c532 SparseMerklePath: impl From/Into conversions 2025-03-25 15:16:37 +01:00
c65e5de887 SparseMerklePath: implement Serializable and Deserializable 2025-03-25 15:16:37 +01:00
f4fb5533c7 SparseMerklePath: implement iterators 2025-03-25 15:16:37 +01:00
c808c42da7 SparseMerklePath: implement random access 2025-03-25 15:05:09 +01:00
a5aeec4d5a correctly make roundtrip() use make_smt() 2025-03-24 19:12:41 +01:00
d4909c2688 PartialSmt: fix misleading variable names 2025-03-24 19:12:31 +01:00
8e69a6b7e2 smt: impl SimpleSmt::get_path() which returns a sparse path 2025-03-24 19:12:31 +01:00
75eb258403 SparseMerklePath: impl From/Into conversions 2025-03-24 19:12:31 +01:00
5c9adf65a4 SparseMerklePath: implement Serializable and Deserializable 2025-03-24 19:12:31 +01:00
c138de8b01 SparseMerklePath: implement iterators 2025-03-24 19:12:31 +01:00
1ed99c8f0c SparseMerklePath: implement random access 2025-03-24 19:12:31 +01:00
c63501e554 add get_nonempty() and impl get() in terms of it 2025-03-24 19:02:48 +01:00
8d8fcf6615 PartialSmt: fix misleading variable names 2025-03-24 19:02:37 +01:00
feaf149e7c smt: impl SimpleSmt::get_path() which returns a sparse path 2025-03-24 19:02:37 +01:00
fde8076dfd SparseMerklePath: impl From/Into conversions 2025-03-24 19:02:37 +01:00
9e128f9ada SparseMerklePath: implement Serializable and Deserializable 2025-03-24 19:02:37 +01:00
990982ae30 SparseMerklePath: implement iterators 2025-03-24 19:02:37 +01:00
863a22c881 SparseMerklePath: implement random access 2025-03-24 19:02:37 +01:00
29ec193649 make get() return MerkleError::DepthTooBig instead of None 2025-03-24 18:51:53 +01:00
5d113771b1 PartialSmt: fix misleading variable names 2025-03-24 18:51:36 +01:00
bbf6aff947 smt: impl SimpleSmt::get_path() which returns a sparse path 2025-03-24 18:51:36 +01:00
e2acaf89e6 SparseMerklePath: impl From/Into conversions 2025-03-24 18:51:36 +01:00
20521e262c SparseMerklePath: implement Serializable and Deserializable 2025-03-24 18:51:36 +01:00
aac6c57ddd SparseMerklePath: implement iterators 2025-03-24 18:51:36 +01:00
52c40994a8 SparseMerklePath: implement random access 2025-03-24 18:51:36 +01:00
ff7522988d add SimpleSmt::get_path() 2025-03-22 20:42:46 +01:00
fa55e9b97e smt: impl SimpleSmt::get_path() which returns a sparse path 2025-03-22 20:42:07 +01:00
6a68046b62 implement from_path in terms of from_sized_iter 2025-03-22 19:58:26 +01:00
f62eb32f90 smt: add SparseMerklePath 2025-03-22 19:58:17 +01:00
ac6ebe5a45 SparseMerklePath: impl From/Into conversions 2025-03-22 19:58:17 +01:00
8523e71281 SparseMerklePath: implement Serializable and Deserializable 2025-03-22 19:58:17 +01:00
6fdf1c5452 SparseMerklePath: implement iterators 2025-03-22 19:58:17 +01:00
51649fcb10 SparseMerklePath: implement random access 2025-03-22 19:58:17 +01:00
b502c0e7df assume depth == tree_depth 2025-03-21 18:40:02 +01:00
cf30d36f72 SparseMerklePath: implement Serializable and Deserializable 2025-03-21 18:11:57 +01:00
10dd46dd59 SparseMerklePath: implement iterators 2025-03-21 18:11:57 +01:00
6a7592ae5e SparseMerklePath: implement random access 2025-03-21 18:11:34 +01:00
26f9a6928f smt: add SparseMerklePath 2025-03-21 18:10:50 +01:00
7290cef297 add docstring to depth() 2025-03-21 14:24:50 +01:00
63b990624f SparseMerklePath: implement Serializable and Deserializable 2025-03-21 14:24:43 +01:00
3ac41dfd2a SparseMerklePath: implement iterators 2025-03-21 14:24:43 +01:00
5c592f8763 SparseMerklePath: implement random access 2025-03-21 14:24:43 +01:00
f9dc108642 smt: add SparseMerklePath 2025-03-21 14:24:43 +01:00
8fff05b7f6 rebase onto next 2025-03-21 14:20:46 +01:00
e53b2cf23f SparseMerklePath: implement Serializable and Deserializable 2025-03-21 14:20:31 +01:00
8c5a33f203 SparseMerklePath: implement iterators 2025-03-21 14:20:31 +01:00
7cfd0700ce SparseMerklePath: implement random access 2025-03-21 14:20:31 +01:00
05ff3f034b smt: add SparseMerklePath 2025-03-21 14:20:28 +01:00
5a774b383e smt: factor out MerklePath logic 2025-03-21 14:19:07 +01:00
da04f1c460 add changelog entry 2025-03-21 14:17:35 +01:00
b000c70c38 SparseMerklePath: implement Serializable and Deserializable 2025-03-21 14:17:24 +01:00
a7581637df SparseMerklePath: implement iterators 2025-03-21 14:17:24 +01:00
42b8b31469 SparseMerklePath: implement random access 2025-03-21 14:17:24 +01:00
5990e5fb1b smt: add SparseMerklePath 2025-03-21 14:17:24 +01:00
f3117131be change assert to return None in from_path() 2025-03-21 14:15:11 +01:00
7c2d8468c9 SparseMerklePath: implement Serializable and Deserializable 2025-03-21 14:14:57 +01:00
71e6cce812 SparseMerklePath: implement iterators 2025-03-21 14:14:57 +01:00
c0d9aa590c SparseMerklePath: implement random access 2025-03-21 14:14:57 +01:00
07c1c68830 smt: add SparseMerklePath 2025-03-21 14:14:57 +01:00
53e419cc2c remove WIP from commit messages 2025-03-21 14:09:20 +01:00
5c233c6b62 smt: factor out MerklePath logic 2025-03-21 14:08:47 +01:00
5a806923ed SparseMerklePath: implement Serializable and Deserializable 2025-03-21 14:08:47 +01:00
df007ff701 SparseMerklePath: implement iterators 2025-03-21 14:08:47 +01:00
6fe96bad18 SparseMerklePath: implement random access 2025-03-21 14:08:47 +01:00
19a78892bd smt: add SparseMerklePath 2025-03-21 14:08:47 +01:00
126a134e5a implement {De,}Serializable 2025-03-21 14:07:37 +01:00
985723929c SparseMerklePath: implement Serializable and Deserializable 2025-03-21 14:07:09 +01:00
258315226e SparseMerklePath: implement iterators 2025-03-21 13:59:36 +01:00
c26053d2ab add iterators 2025-03-21 13:45:24 +01:00
bff0a4f443 SparseMerklePath: implement iterators 2025-03-21 13:45:19 +01:00
76c30a5c37 SparseMerklePath: implement random access 2025-03-21 13:45:01 +01:00
85940dd56f WIP: smt: add SparseMerklePath 2025-03-21 13:45:01 +01:00
0d116319d9 make get() correctly return None 2025-03-21 13:44:04 +01:00
b65452261a SparseMerklePath: implement random access 2025-03-21 13:43:43 +01:00
9e69fdc769 make random access return Option 2025-03-21 12:26:27 +01:00
5e38bf708d SparseMerklePath: implement random access 2025-03-21 12:26:16 +01:00
da51d300f2 drop (for now) iter commit 2025-03-21 12:21:30 +01:00
4395beaf47 SparseMerklePath: implement random access 2025-03-21 12:21:17 +01:00
be5246e2f3 implement random access 2025-03-21 12:18:57 +01:00
4939eb6720 SparseMerklePath: implement random access 2025-03-21 12:18:08 +01:00
427799c21c start SparseMerkleIter 2025-03-20 16:01:41 +01:00
05ed3af44c WIP: start SparseMerkleIter 2025-03-20 16:01:33 +01:00
fe58df7c35 fix SMT_MAX_DEPTH nit 2025-03-17 17:02:41 +01:00
7602ee8aea WIP: smt: add SparseMerklePath 2025-03-17 17:02:34 +01:00
721e71f579 fix docs nit 2025-03-17 17:00:45 +01:00
9a523967b0 WIP: smt: factor out MerklePath logic 2025-03-17 17:00:00 +01:00
ec048cb696 WIP: smt: add SparseMerklePath 2025-03-17 17:00:00 +01:00
b4ad2a1990 change DEPTH from a const generic to a runtime parameter 2025-03-17 16:58:56 +01:00
0173ef65f3 WIP: smt: add SparseMerklePath 2025-03-17 16:58:38 +01:00
0ccc339dcc init 2025-03-17 16:58:34 +01:00
Bobbin Threadbare
78672585f1
chore: update crate version to 0.15.0
Some checks failed
build / Build for no-std (push) Has been cancelled
lint / clippy nightly on ubuntu-latest (push) Has been cancelled
lint / rustfmt check nightly on ubuntu-latest (push) Has been cancelled
lint / doc stable on ubuntu-latest (push) Has been cancelled
lint / check rust version consistency (push) Has been cancelled
test / test nightly on ubuntu with default (push) Has been cancelled
test / test stable on ubuntu with default (push) Has been cancelled
test / test nightly on ubuntu with no-std (push) Has been cancelled
test / test stable on ubuntu with no-std (push) Has been cancelled
test / test nightly on ubuntu with smt-hashmaps (push) Has been cancelled
test / test stable on ubuntu with smt-hashmaps (push) Has been cancelled
test / test-smt-concurrent nightly (push) Has been cancelled
test / test-smt-concurrent stable (push) Has been cancelled
2025-03-15 18:30:53 -07:00
Bobbin Threadbare
51dbc61583
chore: fix lints 2025-03-15 17:49:02 -07:00
Bobbin Threadbare
78e32a3824
feat: added naive implementation of Smt::num_entries() 2025-03-15 17:41:08 -07:00
Bobbin Threadbare
660a667de1
chore: update changelog 2025-03-15 17:33:57 -07:00
Krushimir
8b1593f0ba
refactor: folder structure (#397) 2025-03-15 17:13:58 -07:00
Santiago Pittella
b5c568eb12
chore: update to Rust 2024 edition (#399) 2025-03-13 13:36:22 -07:00
Santiago Pittella
d5b38a8b35
chore: update rand dependency to v0.9.0 (#398) 2025-03-13 12:13:49 -07:00
Krushimir
222197d08f
feat: optimized duplicate key detection in concurrent SMT construction (#395) 2025-03-13 01:57:27 -07:00
Bobbin Threadbare
0df69679e9
Merge pull request #391 from 0xPolygonMiden/al-fix-falcon-sk-serialization
Add range checks when generating secret key
2025-03-11 00:46:26 -07:00
Bobbin Threadbare
337a57fa07
Merge branch 'next' into al-fix-falcon-sk-serialization 2025-03-10 17:48:26 -07:00
Krushimir
cd0821961d
test: adds property-based testing and fuzzing for SMT (#385)
* Adds concurrent proptests
* Adds fuzzing for SMT
* fix: concurrent mutations without mutated entries
* fix: key sorting
2025-03-10 11:51:16 -07:00
Al-Kindi-0
9acbf2f10c doc: changelog 2025-03-10 14:39:48 +01:00
Al-Kindi-0
49bf510ab0 fix: add bound checks on polynomials defining the secret key during generation 2025-03-10 14:28:35 +01:00
2 changed files with 2 additions and 1 deletions

1
base Submodule

@ -0,0 +1 @@
Subproject commit 78672585f1444cb9366071b5625b50bc20fe3b15

2
series

@ -1 +1 @@
Subproject commit fa0943fc4864a76c98516177e9f7d781d35a57e6
Subproject commit 5ab7980fbc248d92fdc10d0251a69058f09c5d6d