@@ -37,7 +37,7 @@ pub fn do_with_trace(
3737 & MultiStarkProvingKey < BabyBearSC > ,
3838 ProvingContext < <BabyBearPoseidon2Engine as StarkEngine >:: PB > ,
3939 ) ,
40- ) {
40+ ) -> Result < ( ) , Box < dyn std :: error :: Error > > {
4141 let exe = & program. exe ;
4242 let vm_config = program. vm_config . clone ( ) ;
4343
@@ -47,23 +47,17 @@ pub fn do_with_trace(
4747 let app_config = AppConfig :: new ( app_fri_params, vm_config. clone ( ) ) ;
4848
4949 // Create the SDK
50- let sdk = PowdrSdk :: new ( app_config) . unwrap ( ) ;
50+ let sdk = PowdrSdk :: new ( app_config) ? ;
5151 // Build owned vm instance, so we can mutate it later
5252 let vm_builder = sdk. app_vm_builder ( ) . clone ( ) ;
5353 let vm_pk = sdk. app_pk ( ) . app_vm_pk . clone ( ) ;
54- let exe = sdk. convert_to_exe ( exe. clone ( ) ) . unwrap ( ) ;
55- let mut vm_instance: VmInstance < _ , _ > =
56- new_local_prover ( vm_builder, & vm_pk, exe. clone ( ) ) . unwrap ( ) ;
54+ let exe = sdk. convert_to_exe ( exe. clone ( ) ) ?;
55+ let mut vm_instance: VmInstance < _ , _ > = new_local_prover ( vm_builder, & vm_pk, exe. clone ( ) ) ?;
5756
5857 vm_instance. reset_state ( inputs. clone ( ) ) ;
5958 let metered_ctx = vm_instance. vm . build_metered_ctx ( & exe) ;
60- let metered_interpreter = vm_instance
61- . vm
62- . metered_interpreter ( vm_instance. exe ( ) )
63- . unwrap ( ) ;
64- let ( segments, _) = metered_interpreter
65- . execute_metered ( inputs. clone ( ) , metered_ctx)
66- . unwrap ( ) ;
59+ let metered_interpreter = vm_instance. vm . metered_interpreter ( vm_instance. exe ( ) ) ?;
60+ let ( segments, _) = metered_interpreter. execute_metered ( inputs. clone ( ) , metered_ctx) ?;
6761 let mut state = vm_instance. state_mut ( ) . take ( ) ;
6862
6963 // Move `vm` and `interpreter` out of `vm_instance`
@@ -72,7 +66,7 @@ pub fn do_with_trace(
7266 let mut interpreter = vm_instance. interpreter ;
7367
7468 // Get reusable inputs for `debug_proving_ctx`, the mock prover API from OVM.
75- let air_inv = vm. config ( ) . create_airs ( ) . unwrap ( ) ;
69+ let air_inv = vm. config ( ) . create_airs ( ) ? ;
7670 let pk = air_inv. keygen :: < BabyBearPoseidon2Engine > ( & vm. engine ) ;
7771
7872 for ( seg_idx, segment) in segments. into_iter ( ) . enumerate ( ) {
@@ -91,21 +85,17 @@ pub fn do_with_trace(
9185 system_records,
9286 record_arenas,
9387 to_state,
94- } = vm
95- . execute_preflight (
96- & mut interpreter,
97- from_state,
98- Some ( num_insns) ,
99- & trace_heights,
100- )
101- . unwrap ( ) ;
88+ } = vm. execute_preflight (
89+ & mut interpreter,
90+ from_state,
91+ Some ( num_insns) ,
92+ & trace_heights,
93+ ) ?;
10294 state = Some ( to_state) ;
10395
104- // Generate proving context for each segment
105- let ctx = vm
106- . generate_proving_ctx ( system_records, record_arenas)
107- . unwrap ( ) ;
96+ let ctx = vm. generate_proving_ctx ( system_records, record_arenas) ?;
10897
10998 callback ( & vm, & pk, ctx) ;
11099 }
100+ Ok ( ( ) )
111101}
0 commit comments