Skip to content

Commit

Permalink
Implement debug and clone for merkle decommitment as needed for the f…
Browse files Browse the repository at this point in the history
…ri verifier (#106)
  • Loading branch information
atgrosso authored Oct 11, 2024
1 parent b9e00d1 commit 54d24ba
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions stwo_cairo_verifier/src/vcs/verifier.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use core::dict::Felt252Dict;
use core::dict::Felt252DictEntryTrait;
use core::nullable::NullableTrait;
use core::cmp::min;

use core::fmt::{Debug, Formatter, Error};
use stwo_cairo_verifier::BaseField;
use stwo_cairo_verifier::fields::m31::m31;
use stwo_cairo_verifier::utils::{ArrayExTrait, DictTrait, OptBoxTrait};
Expand All @@ -27,13 +27,31 @@ pub struct MerkleDecommitment<impl H: MerkleHasher> {
}
impl MerkleDecommitmentDrop<impl H: MerkleHasher, +Drop<H::Hash>> of Drop<MerkleDecommitment<H>>;

impl MerkleDecommitmentDebug<
impl H: MerkleHasher, +Debug<H::Hash>
> of Debug<MerkleDecommitment<H>> {
fn fmt(self: @MerkleDecommitment<H>, ref f: Formatter) -> Result<(), Error> {
Result::Ok(())
}
}

impl MerkleDecommitmentClone<
impl H: MerkleHasher, +Clone<Array<H::Hash>>, +Drop<Array<H::Hash>>
> of Clone<MerkleDecommitment<H>> {
fn clone(self: @MerkleDecommitment<H>) -> MerkleDecommitment<H> {
MerkleDecommitment::<
H
> { hash_witness: self.hash_witness.clone(), column_witness: self.column_witness.clone() }
}
}

pub struct MerkleVerifier<impl H: MerkleHasher> {
pub root: H::Hash,
pub column_log_sizes: Array<u32>,
}
impl MerkleVerifierDrop<impl H: MerkleHasher, +Drop<H::Hash>> of Drop<MerkleVerifier<H>>;

trait MerkleVerifierTrait<impl H: MerkleHasher> {
pub trait MerkleVerifierTrait<impl H: MerkleHasher> {
/// Verifies the decommitment of the columns.
///
/// # Arguments
Expand Down Expand Up @@ -166,7 +184,6 @@ impl MerkleVerifierImpl<
layer_total_queries
.append((current_query, H::hash_node(node_hashes, column_values)));
};

if let Result::Err(err) = res {
break Result::Err(err);
}
Expand Down

0 comments on commit 54d24ba

Please sign in to comment.