Philipp Gackstatter
a27f9ad828
refactor: use `thiserror` to derive errors and update error messages ( #344 )
4 months ago
Andrey Khmuro
e82baa35bb
feat: return error instead of panic during MMR verification ( #335 )
6 months ago
Paul-Henry Kajfasz
ad0f472708
Updated Makefile and Readme
8 months ago
Paul Schoenfelder
999a64fca6
chore: handle deprecations in winterfell 0.8.3 release
1 year ago
Augusto Hack
dbab0e9aa9
fix: clippy warnings ( #280 )
1 year ago
Philippe Laferrière
552d90429b
Remove `TieredSmt` ( #277 )
1 year ago
Philippe Laferrière
1cdd3dbbfa
Add methods to `Smt` necessary for VM tests ( #264 )
* Smt::inner_nodes
* Add conversion Smt -> MerkleStore
* add docstring to `Smt`
* add to docstring
* fmt
* add `leaves()` method to `Smt`
* add `kv_pairs` functions
* rewrite `into_elements()` in terms of `into_kv_pairs()`
* change docstring
1 year ago
Bobbin Threadbare
a933ff2fa0
refactor: remove obsolete traits
1 year ago
Philippe Laferrière
8ea37904e3
Introduce `SparseMerkleTree` trait ( #245 )
1 year ago
cristiantroy
260592f8e7
Fix: typos ( #249 )
* tests: fix typos
* full.rs: fix typo
* CONTRIBUTING: fix typo
1 year ago
Bobbin Threadbare
004a3bc7a8
docs: update changelog and readme
1 year ago
Al-Kindi-0
3125144445
feat: RPX (xHash12) hash function implementation
1 year ago
shuoer86
650508cbc9
chore: fix typos
1 year ago
Al-Kindi-0
8078021aff
feat: Falcon 512 signature
1 year ago
frisitano
1fa2895724
refactor: modify MerkleStore::non_empty_leaves to support TSMT
1 year ago
Andrey Khmuro
2f09410e87
refactor: replace with EMPTY_WORD, ZERO and ONE
1 year ago
Bobbin Threadbare
9f54c82d62
feat: implement additional leaf traversal methods on MerkleStore
1 year ago
Augusto F. Hack
8cf5e9fd2c
feature: add conditional support for serde
1 year ago
Andrey Khmuro
71b04d0734
refactor: replace MerklePathSet with PartialMerkleTree
1 year ago
frisitano
da2d08714d
feat: introduce TryApplyDiff and refactor RecordingMap finalizer
1 year ago
frisitano
44e60e7228
feat: introduce diff traits and objects
1 year ago
Andrey Khmuro
08aec4443c
Enhancement of the Partial Merkle Tree ( #163 )
feat: implement additional functionality for the PartialMerkleTree
1 year ago
Bobbin Threadbare
b2d6866d41
refactor: rename Merkle store Node into StoreNode
1 year ago
Bobbin Threadbare
f08644e4df
refactor: simplify recording MerkleStore structure
1 year ago
frisitano
679a30e02e
feat: introduce recorder objects
1 year ago
Bobbin Threadbare
049ae32cbf
chore: clean up test code
1 year ago
tohrnii
0e0a3fda4f
refactor: refactor to clean up and simplify things
1 year ago
tohrnii
fe9aa8c28c
refactor: refactor crypto APIs to use RpoDigest instead of Word
1 year ago
Andrey Khmuro
43f1a4cb64
refactor: MerkleStore clippy fix
1 year ago
Bobbin Threadbare
21e7a5c07d
feat: implement iterators over contents of TieredSmt
1 year ago
Bobbin Threadbare
629494b601
feat: add leaves() iterator to SimpleSmt
1 year ago
Bobbin Threadbare
13aeda5a27
feat: add subset() to MerkleStore
1 year ago
Bobbin Threadbare
fcf03478ba
refactor: update SimpleSmt interfaces
1 year ago
frisitano
4555fc918f
feat: add .inner_nodes() to [MerkleStore]
1 year ago
Bobbin Threadbare
130ae3d12a
feat: add inner node iterator to MerklePath
2 years ago
Bobbin Threadbare
22c9f382c4
fix: serialization test
2 years ago
Bobbin Threadbare
9be4253f19
feat: remove clone requirement for MerkleStore From constructors
2 years ago
Augusto F. Hack
59595a2e04
feat: added From convertions for the MerkleStore
2 years ago
Augusto F. Hack
eb316f51bc
store: remove SimpleSMT/MerkleTree/Mmr add/with methods
2 years ago
Augusto F. Hack
8161477d6a
store: support adding existing structures
2 years ago
Augusto F. Hack
3996374a8b
feat: allow merging of leaves
Consider the case of a MMR with one entry, and a new entry is being
added. Both of these values are quite unique, they are at the same time
the root and only leaf of their corresponding tree. Currently this
representation is not supported by the [MerkleStore], so the leaves are
not in it. Once the two values are merged, they both become leaves of a
new tree under the new parent, and the existing validation didn't permit
that promotion from happening.
This lifts the validation, and changes the method to clarify that not
only `root` are being merged, by arbitrary nodes of a tree (leafs,
internal, or roots), with arbitrary mixing of each.
2 years ago
Augusto F. Hack
bbb1e641a3
config: add rustfmt config
2 years ago
Victor Lopez
00ffc1568a
feat: add `MerkleStore::get_leaf_depth`
This commit introduces `get_leaf_depth`, a tiered SMT helpers that will
retrieve the depth of a leaf for a given root, capped by `64`.
closes #119
2 years ago
Bobbin Threadbare
bd557bc68c
fix: add validation to NodeIndex constructor and remove BitIterator
2 years ago
Augusto F. Hack
9275dd00ad
feat: add parent node iterator for SimpleSMT
2 years ago
Augusto F. Hack
429d3bab6f
feat: add support for MMR to the MerkleStore
2 years ago
Augusto F. Hack
1df4318399
feat: add node iterator to MerkleTree
2 years ago
Augusto F. Hack
f8a62dae76
chore: remove simple_smt::Store
2 years ago
Victor Lopez
d37f3f5e84
feat: Add `depth` as store SMT argument
Prior to this commit, MerkleStore allowed the creation of Sparse Merkle
tree only with the maximum depth of 63. However, this doesn't fit the
Tiered Sparse Merkle tree requirements, as it will contain trees of
depth 16.
This commit adds the `depth` argument to the MerkleStore methods that
will create Sparse Merkle trees.
2 years ago
Augusto F. Hack
9e6c8ff700
bugfix: fix internal nodes of for empty leafs of a SMT
The path returned by `EmptySubtreeRoots` starts at the root, and goes to
the leaf. The MerkleStore constructor assumed the other direction, so
the parent/child hashes were reversed.
This fixes the bug and adds a test.
2 years ago