added comments related to commitments

This commit is contained in:
jonesmarvin8 2025-09-05 16:21:46 -04:00
parent cab8153201
commit 5eeb925384
2 changed files with 9 additions and 0 deletions

View File

@ -8,6 +8,8 @@ use crate::{NullifierPublicKey, account::Account};
pub struct Commitment(pub(super) [u8; 32]);
impl Commitment {
//generate new commitment to a private account owned by user with npk.
//hash(npk || program_owner || balance || nonce || data)
pub fn new(npk: &NullifierPublicKey, account: &Account) -> Self {
let mut bytes = Vec::new();
bytes.extend_from_slice(&npk.to_byte_array());
@ -34,6 +36,8 @@ pub type CommitmentSetDigest = [u8; 32];
pub type MembershipProof = (usize, Vec<[u8; 32]>);
/// computes the resulting digest/root hash for a membership proof
/// and its corresponding commitment.
pub fn compute_digest_for_path(
commitment: &Commitment,
proof: &MembershipProof,

View File

@ -21,6 +21,7 @@ impl CommitmentSet {
self.merkle_tree.root()
}
/// queries the CommitmentSet for membership proof of commitment
pub fn get_proof_for(&self, commitment: &Commitment) -> Option<MembershipProof> {
let index = *self.commitments.get(commitment)?;
@ -29,6 +30,7 @@ impl CommitmentSet {
.map(|path| (index, path))
}
/// appends a list of commitments to the CommitmentSet.
pub(crate) fn extend(&mut self, commitments: &[Commitment]) {
for commitment in commitments.iter().cloned() {
let index = self.merkle_tree.insert(commitment.to_byte_array());
@ -41,6 +43,9 @@ impl CommitmentSet {
self.commitments.contains_key(commitment)
}
/// Initializes a CommitmentState with a given capacity.
/// if capacity is not a power_of_two, then capacity is taken
/// to be the next power_of_two.
pub(crate) fn with_capacity(capacity: usize) -> CommitmentSet {
Self {
merkle_tree: MerkleTree::with_capacity(capacity),