@@ -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 ( ( ) ) ;
@@ -1156,7 +1157,7 @@ impl CairoRunner {
11561157
11571158 self . run_until_pc ( end, hint_processor)
11581159 . map_err ( |err| VmException :: from_vm_error ( self , err) ) ?;
1159- self . end_run ( true , false , hint_processor) ?;
1160+ self . end_run ( true , false , hint_processor, self . is_proof_mode ( ) ) ?;
11601161
11611162 if verify_secure {
11621163 verify_secure_runner ( self , false , program_segment_size) ?;
@@ -3876,7 +3877,7 @@ mod tests {
38763877
38773878 cairo_runner. run_ended = true ;
38783879 assert_matches ! (
3879- cairo_runner. end_run( true , false , & mut hint_processor) ,
3880+ cairo_runner. end_run( true , false , & mut hint_processor, false ) ,
38803881 Err ( VirtualMachineError :: RunnerError (
38813882 RunnerError :: EndRunCalledTwice
38823883 ) )
@@ -3892,14 +3893,14 @@ mod tests {
38923893 let mut cairo_runner = cairo_runner ! ( program) ;
38933894
38943895 assert_matches ! (
3895- cairo_runner. end_run( true , false , & mut hint_processor) ,
3896+ cairo_runner. end_run( true , false , & mut hint_processor, false ) ,
38963897 Ok ( ( ) )
38973898 ) ;
38983899
38993900 cairo_runner. run_ended = false ;
39003901 cairo_runner. relocated_memory . clear ( ) ;
39013902 assert_matches ! (
3902- cairo_runner. end_run( true , true , & mut hint_processor) ,
3903+ cairo_runner. end_run( true , true , & mut hint_processor, false ) ,
39033904 Ok ( ( ) )
39043905 ) ;
39053906 assert ! ( !cairo_runner. run_ended) ;
@@ -3913,16 +3914,16 @@ mod tests {
39133914 Some ( "main" ) ,
39143915 )
39153916 . unwrap ( ) ;
3916-
3917+ let proof_mode = true ;
39173918 let mut hint_processor = BuiltinHintProcessor :: new_empty ( ) ;
3918- let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, true , true ) ;
3919+ let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, proof_mode , true ) ;
39193920
39203921 let end = cairo_runner. initialize ( false ) . unwrap ( ) ;
39213922 cairo_runner
39223923 . run_until_pc ( end, & mut hint_processor)
39233924 . expect ( "Call to `CairoRunner::run_until_pc()` failed." ) ;
39243925 assert_matches ! (
3925- cairo_runner. end_run( false , false , & mut hint_processor) ,
3926+ cairo_runner. end_run( false , false , & mut hint_processor, proof_mode ) ,
39263927 Ok ( ( ) )
39273928 ) ;
39283929 }
@@ -5669,7 +5670,8 @@ mod tests {
56695670 . unwrap ( ) ;
56705671
56715672 let mut hint_processor = BuiltinHintProcessor :: new_empty ( ) ;
5672- let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, true , true ) ;
5673+ let proof_mode = true ;
5674+ let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, proof_mode, true ) ;
56735675
56745676 let end = cairo_runner. initialize ( false ) . unwrap ( ) ;
56755677 cairo_runner
@@ -5680,7 +5682,7 @@ mod tests {
56805682 assert ! ( cairo_runner. vm. segments. memory. data[ 6 ] . len( ) as u32 % CELLS_PER_BITWISE != 0 ) ;
56815683 assert ! ( cairo_runner. vm. segments. memory. data[ 8 ] . len( ) as u32 % CELLS_PER_KECCAK != 0 ) ;
56825684 assert_matches ! (
5683- cairo_runner. end_run( false , false , & mut hint_processor) ,
5685+ cairo_runner. end_run( false , false , & mut hint_processor, proof_mode ) ,
56845686 Ok ( ( ) )
56855687 ) ;
56865688
0 commit comments