From aa83ee4cf11f2be265a4525f105eb4c8f2df7917 Mon Sep 17 00:00:00 2001 From: Ilya Lesokhin Date: Wed, 22 Jul 2026 10:37:04 +0300 Subject: [PATCH] feat(leaf_prover): pad leaf circuit to DEFAULT_CONFIG_COMPONENT_SIZES. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/leaf_prover/src/consts.rs | 11 +++++++++++ crates/leaf_prover/src/prove_leaf.rs | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/crates/leaf_prover/src/consts.rs b/crates/leaf_prover/src/consts.rs index 564e5b18..3b19ea8e 100644 --- a/crates/leaf_prover/src/consts.rs +++ b/crates/leaf_prover/src/consts.rs @@ -1,3 +1,5 @@ +use circuit_common::finalize::ComponentSizes; + // We expect a Cairo program that uses the "canonical" preprocessed trace to // use all components except the following pub const DISABLED_COMPONENTS_CANONICAL_PREPROCESSED: [&str; 4] = [ @@ -15,3 +17,12 @@ pub const DISABLED_COMPONENTS_SMALL_PREPROCESSED: [&str; 4] = [ "partial_ec_mul_window_bits_18", "pedersen_points_table_window_bits_18", ]; + +// TODO(ilya): Load from file. +pub const DEFAULT_CONFIG_COMPONENT_SIZES: ComponentSizes = ComponentSizes { + eq: 1 << 20, + qm31_ops: 1 << 23, + m31_to_u32: 1 << 20, + triple_xor: 1 << 19, + blake_g_gate: 1 << 23, +}; diff --git a/crates/leaf_prover/src/prove_leaf.rs b/crates/leaf_prover/src/prove_leaf.rs index 45e6691b..3d7b210c 100644 --- a/crates/leaf_prover/src/prove_leaf.rs +++ b/crates/leaf_prover/src/prove_leaf.rs @@ -10,6 +10,7 @@ use circuit_cairo_verifier::statement::MEMORY_VALUES_LIMBS; use circuit_cairo_verifier::verify::{ CairoVerifierConfig, build_fixed_cairo_circuit, prepare_cairo_proof_for_circuit_verifier, }; +use circuit_common::finalize::pad_to_targets; use circuit_common::preprocessed::PreprocessedCircuit; use circuit_prover::prover::{ BaseColumnPool, prepare_circuit_proof_for_circuit_verifier, prove_circuit_assignment, @@ -32,7 +33,8 @@ use stwo_cairo_prover::witness::prelude::{Felt252, QM31}; use tracing::info; use crate::consts::{ - DISABLED_COMPONENTS_CANONICAL_PREPROCESSED, DISABLED_COMPONENTS_SMALL_PREPROCESSED, + DEFAULT_CONFIG_COMPONENT_SIZES, DISABLED_COMPONENTS_CANONICAL_PREPROCESSED, + DISABLED_COMPONENTS_SMALL_PREPROCESSED, }; pub fn prove_leaf( @@ -146,7 +148,7 @@ pub fn prove_leaf( outputs_as_m31_slices, ); - // TODO: Pad to multiverifier size. + pad_to_targets(&mut context, DEFAULT_CONFIG_COMPONENT_SIZES); info!( "Verifier config: