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
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