File tree Expand file tree Collapse file tree 2 files changed +14
-0
lines changed
operator/mina_account/lib/src Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,14 @@ fn inner_verify_account_inclusion_ffi(
5050 verify_account_inclusion ( proof_bytes, pub_input_bytes)
5151}
5252
53+ /// Verifies a Mina account inclusion.
54+ /// Verifies that exists a Merkle path composed of:
55+ ///
56+ /// - The hash of the Mina account as the leaf
57+ /// - The ledger hash as the root
58+ /// - Some intermediate nodes
59+ ///
60+ /// Returns `true` if the Mina account is included in the ledger hash. `false` otherwise.
5361pub fn verify_account_inclusion ( proof_bytes : & [ u8 ] , pub_input_bytes : & [ u8 ] ) -> bool {
5462 let MinaAccountProof {
5563 merkle_path,
Original file line number Diff line number Diff line change @@ -4,6 +4,12 @@ use mina_curves::pasta::Fp;
44use mina_p2p_messages:: v2:: hash_with_kimchi;
55use std:: fmt:: Write ;
66
7+ /// Verifies a Merkle Proof.
8+ /// This means that `merkle_leaf`, `merkle_path` and `merkle_root` conform one of the paths of a Merkle tree
9+ /// where `merkle_leaf` is the first node of the path, `merkle_root` is the last one and `merkle_path` is a
10+ /// vector of all the intermediate nodes.
11+ /// Returns `true` if the Merkle proof is valid. `false` otherwise.
12+ ///
713/// Based on OpenMina's implementation
814/// https://github.com/openmina/openmina/blob/d790af59a8bd815893f7773f659351b79ed87648/ledger/src/account/account.rs#L1444
915pub fn verify_merkle_proof ( merkle_leaf : Fp , merkle_path : Vec < MerkleNode > , merkle_root : Fp ) -> bool {
You can’t perform that action at this time.
0 commit comments