@@ -891,13 +891,14 @@ impl CairoRunner {
891891 disable_trace_padding : bool ,
892892 disable_finalize_all : bool ,
893893 hint_processor : & mut dyn HintProcessor ,
894+ proof_mode : bool ,
894895 ) -> Result < ( ) , VirtualMachineError > {
895896 if self . run_ended {
896897 return Err ( RunnerError :: EndRunCalledTwice . into ( ) ) ;
897898 }
898899
899900 self . vm . segments . memory . relocate_memory ( ) ?;
900- self . vm . end_run ( & self . exec_scopes ) ?;
901+ self . vm . end_run ( & self . exec_scopes , proof_mode ) ?;
901902
902903 if disable_finalize_all {
903904 return Ok ( ( ) ) ;
@@ -1155,7 +1156,7 @@ impl CairoRunner {
11551156
11561157 self . run_until_pc ( end, hint_processor)
11571158 . map_err ( |err| VmException :: from_vm_error ( self , err) ) ?;
1158- self . end_run ( true , false , hint_processor) ?;
1159+ self . end_run ( true , false , hint_processor, self . is_proof_mode ( ) ) ?;
11591160
11601161 if verify_secure {
11611162 verify_secure_runner ( self , false , program_segment_size) ?;
@@ -3875,7 +3876,7 @@ mod tests {
38753876
38763877 cairo_runner. run_ended = true ;
38773878 assert_matches ! (
3878- cairo_runner. end_run( true , false , & mut hint_processor) ,
3879+ cairo_runner. end_run( true , false , & mut hint_processor, false ) ,
38793880 Err ( VirtualMachineError :: RunnerError (
38803881 RunnerError :: EndRunCalledTwice
38813882 ) )
@@ -3891,14 +3892,14 @@ mod tests {
38913892 let mut cairo_runner = cairo_runner ! ( program) ;
38923893
38933894 assert_matches ! (
3894- cairo_runner. end_run( true , false , & mut hint_processor) ,
3895+ cairo_runner. end_run( true , false , & mut hint_processor, false ) ,
38953896 Ok ( ( ) )
38963897 ) ;
38973898
38983899 cairo_runner. run_ended = false ;
38993900 cairo_runner. relocated_memory . clear ( ) ;
39003901 assert_matches ! (
3901- cairo_runner. end_run( true , true , & mut hint_processor) ,
3902+ cairo_runner. end_run( true , true , & mut hint_processor, false ) ,
39023903 Ok ( ( ) )
39033904 ) ;
39043905 assert ! ( !cairo_runner. run_ended) ;
@@ -3912,16 +3913,16 @@ mod tests {
39123913 Some ( "main" ) ,
39133914 )
39143915 . unwrap ( ) ;
3915-
3916+ let proof_mode = true ;
39163917 let mut hint_processor = BuiltinHintProcessor :: new_empty ( ) ;
3917- let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, true , true ) ;
3918+ let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, proof_mode , true ) ;
39183919
39193920 let end = cairo_runner. initialize ( false ) . unwrap ( ) ;
39203921 cairo_runner
39213922 . run_until_pc ( end, & mut hint_processor)
39223923 . expect ( "Call to `CairoRunner::run_until_pc()` failed." ) ;
39233924 assert_matches ! (
3924- cairo_runner. end_run( false , false , & mut hint_processor) ,
3925+ cairo_runner. end_run( false , false , & mut hint_processor, proof_mode ) ,
39253926 Ok ( ( ) )
39263927 ) ;
39273928 }
@@ -5665,7 +5666,8 @@ mod tests {
56655666 . unwrap ( ) ;
56665667
56675668 let mut hint_processor = BuiltinHintProcessor :: new_empty ( ) ;
5668- let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, true , true ) ;
5669+ let proof_mode = true ;
5670+ let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, proof_mode, true ) ;
56695671
56705672 let end = cairo_runner. initialize ( false ) . unwrap ( ) ;
56715673 cairo_runner
@@ -5676,7 +5678,7 @@ mod tests {
56765678 assert ! ( cairo_runner. vm. segments. memory. data[ 6 ] . len( ) as u32 % CELLS_PER_BITWISE != 0 ) ;
56775679 assert ! ( cairo_runner. vm. segments. memory. data[ 8 ] . len( ) as u32 % CELLS_PER_KECCAK != 0 ) ;
56785680 assert_matches ! (
5679- cairo_runner. end_run( false , false , & mut hint_processor) ,
5681+ cairo_runner. end_run( false , false , & mut hint_processor, proof_mode ) ,
56805682 Ok ( ( ) )
56815683 ) ;
56825684
0 commit comments