@@ -348,7 +348,7 @@ impl MainPodBuilder {
348348 self . public_statements . push ( st. clone ( ) ) ;
349349 }
350350
351- pub fn prove < P : PodProver > ( & self , prover : & mut P ) -> Result < MainPod > {
351+ pub fn prove < P : PodProver > ( & self , prover : & mut P , params : & Params ) -> Result < MainPod > {
352352 let compiler = MainPodCompiler :: new ( & self . params ) ;
353353 let inputs = MainPodCompilerInputs {
354354 // signed_pods: &self.input_signed_pods,
@@ -357,7 +357,7 @@ impl MainPodBuilder {
357357 operations : & self . operations ,
358358 public_statements : & self . public_statements ,
359359 } ;
360- let ( statements, operations, public_statements) = compiler. compile ( inputs) ?;
360+ let ( statements, operations, public_statements) = compiler. compile ( inputs, params ) ?;
361361
362362 let inputs = MainPodInputs {
363363 signed_pods : & self . input_signed_pods . iter ( ) . map ( |p| & p. pod ) . collect_vec ( ) ,
@@ -462,10 +462,10 @@ impl MainPodCompiler {
462462 middleware:: Operation :: op ( mop_code, & mop_args) . unwrap ( )
463463 }
464464
465- fn compile_st_op ( & mut self , st : & Statement , op : & Operation ) -> Result < ( ) > {
465+ fn compile_st_op ( & mut self , st : & Statement , op : & Operation , params : & Params ) -> Result < ( ) > {
466466 let middle_st = self . compile_st ( st) ;
467467 let middle_op = self . compile_op ( op) ;
468- let is_correct = middle_op. check ( & middle_st) ?;
468+ let is_correct = middle_op. check ( params , & middle_st) ?;
469469 if !is_correct {
470470 // todo: improve error handling
471471 Err ( anyhow ! (
@@ -482,6 +482,7 @@ impl MainPodCompiler {
482482 pub fn compile < ' a > (
483483 mut self ,
484484 inputs : MainPodCompilerInputs < ' a > ,
485+ params : & Params ,
485486 ) -> Result < (
486487 Vec < middleware:: Statement > , // input statements
487488 Vec < middleware:: Operation > ,
@@ -495,7 +496,7 @@ impl MainPodCompiler {
495496 public_statements,
496497 } = inputs;
497498 for ( st, op) in statements. iter ( ) . zip_eq ( operations. iter ( ) ) {
498- self . compile_st_op ( st, op) ?;
499+ self . compile_st_op ( st, op, params ) ?;
499500 if self . statements . len ( ) > self . params . max_statements {
500501 panic ! ( "too many statements" ) ;
501502 }
@@ -581,7 +582,7 @@ pub mod tests {
581582 println ! ( "{}" , kyc) ;
582583
583584 let mut prover = MockProver { } ;
584- let kyc = kyc. prove ( & mut prover) ?;
585+ let kyc = kyc. prove ( & mut prover, & params ) ?;
585586
586587 // TODO: prove kyc with MockProver and print it
587588 println ! ( "{}" , kyc) ;
@@ -627,7 +628,7 @@ pub mod tests {
627628 builder. pub_op ( op ! ( gt, ( & pod, "num" ) , 5 ) ) ;
628629
629630 let mut prover = MockProver { } ;
630- let false_pod = builder. prove ( & mut prover) . unwrap ( ) ;
631+ let false_pod = builder. prove ( & mut prover, & params ) . unwrap ( ) ;
631632
632633 println ! ( "{}" , builder) ;
633634 println ! ( "{}" , false_pod) ;
0 commit comments