From 54d24bad0283b5e1621a0b96e4bce746e5aace00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Grosso?= <81065257+atgrosso@users.noreply.github.com> Date: Fri, 11 Oct 2024 16:24:44 -0300 Subject: [PATCH] Implement debug and clone for merkle decommitment as needed for the fri verifier (#106) --- stwo_cairo_verifier/src/vcs/verifier.cairo | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/stwo_cairo_verifier/src/vcs/verifier.cairo b/stwo_cairo_verifier/src/vcs/verifier.cairo index c35a25f1..d252e793 100644 --- a/stwo_cairo_verifier/src/vcs/verifier.cairo +++ b/stwo_cairo_verifier/src/vcs/verifier.cairo @@ -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}; @@ -27,13 +27,31 @@ pub struct MerkleDecommitment { } impl MerkleDecommitmentDrop> of Drop>; +impl MerkleDecommitmentDebug< + impl H: MerkleHasher, +Debug +> of Debug> { + fn fmt(self: @MerkleDecommitment, ref f: Formatter) -> Result<(), Error> { + Result::Ok(()) + } +} + +impl MerkleDecommitmentClone< + impl H: MerkleHasher, +Clone>, +Drop> +> of Clone> { + fn clone(self: @MerkleDecommitment) -> MerkleDecommitment { + MerkleDecommitment::< + H + > { hash_witness: self.hash_witness.clone(), column_witness: self.column_witness.clone() } + } +} + pub struct MerkleVerifier { pub root: H::Hash, pub column_log_sizes: Array, } impl MerkleVerifierDrop> of Drop>; -trait MerkleVerifierTrait { +pub trait MerkleVerifierTrait { /// Verifies the decommitment of the columns. /// /// # Arguments @@ -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); }