| Crates.io | sn-merkle-trie |
| lib.rs | sn-merkle-trie |
| version | 0.1.0 |
| created_at | 2024-09-11 03:57:46.127001+00 |
| updated_at | 2024-09-11 03:57:46.127001+00 |
| description | Minimal starknet merkle patricia trie implementation |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1371569 |
| size | 45,588 |
Minimal implelementation of a StarkNet MPT.
Heavily rely on pathfinder's merkle tree implementation, but target to make it easy port as external dependency + sync primitives with type-rs.
fn main() {
// transaction tree either pedersen or poseidon
let mut tree = TransactionMerkleTree::Pedersen(MerkleTree::default());
let key1 = from_felt_to_bits(&Felt::from_hex_unchecked("0x0")); // 0b01
let value_1 = Felt::from_hex_unchecked("0x2");
// insert key and value
tree.set(key1.clone(), value_1).unwrap();
// commit tree to get root
let (root, root_idx) = tree.commit().unwrap();
// get proof of inclusion/non-inclusion
let proof = tree.get_proof(root_idx, key1.clone()).unwrap().unwrap();
// verify return membership proof
let mem = tree.verify_proof(root, &key1, value_1, &proof);
}