@@ -12,6 +12,7 @@ use ethers::signers::{LocalWallet, Signer};
1212use tokio:: time:: sleep;
1313use tokio:: time:: Duration ;
1414
15+ use anyhow:: { bail, Result } ;
1516use async_trait:: async_trait;
1617
1718#[ derive( Clone ) ]
@@ -24,7 +25,7 @@ pub mod stage_service {
2425 tonic:: include_proto!( "stage.v1" ) ;
2526}
2627
27- use crate :: network:: prover:: stage_service:: Status ;
28+ use crate :: network:: prover:: stage_service:: { Status , Step } ;
2829
2930pub struct NetworkProver {
3031 pub stage_client : StageServiceClient < Channel > ,
@@ -83,7 +84,7 @@ impl NetworkProver {
8384 request. signature = signature. to_string ( ) ;
8485 }
8586
86- pub async fn download_file ( url : & str ) -> anyhow :: Result < Vec < u8 > > {
87+ pub async fn download_file ( url : & str ) -> Result < Vec < u8 > > {
8788 let response = reqwest:: get ( url) . await ?;
8889 let content = response. bytes ( ) . await ?;
8990 Ok ( content. to_vec ( ) )
@@ -92,7 +93,7 @@ impl NetworkProver {
9293
9394#[ async_trait]
9495impl Prover for NetworkProver {
95- async fn request_proof < ' a > ( & self , input : & ' a ProverInput ) -> anyhow :: Result < String > {
96+ async fn request_proof < ' a > ( & self , input : & ' a ProverInput ) -> Result < String > {
9697 let proof_id = uuid:: Uuid :: new_v4 ( ) . to_string ( ) ;
9798 let mut request = GenerateProofRequest {
9899 proof_id : proof_id. clone ( ) ,
@@ -120,7 +121,7 @@ impl Prover for NetworkProver {
120121 & self ,
121122 proof_id : & ' a str ,
122123 timeout : Option < Duration > ,
123- ) -> anyhow :: Result < Option < ProverResult > > {
124+ ) -> Result < Option < ProverResult > > {
124125 let start_time = Instant :: now ( ) ;
125126 let mut split_start_time = Instant :: now ( ) ;
126127 let mut split_end_time = Instant :: now ( ) ;
@@ -129,7 +130,7 @@ impl Prover for NetworkProver {
129130 loop {
130131 if let Some ( timeout) = timeout {
131132 if start_time. elapsed ( ) > timeout {
132- return Err ( anyhow :: anyhow !( "Proof generation timed out." ) ) ;
133+ bail ! ( "Proof generation timed out." ) ;
133134 }
134135 }
135136
@@ -139,25 +140,27 @@ impl Prover for NetworkProver {
139140 match Status :: from_i32 ( get_status_response. status as i32 ) {
140141 Some ( Status :: Computing ) => {
141142 //log::info!("generate_proof step: {}", get_status_response.step);
142- match get_status_response. step {
143- 0 => log:: info!( "generate_proof : queuing the task." ) ,
144- 1 => {
143+ match Step :: from_i32 ( get_status_response. step ) {
144+ Some ( Step :: Init ) => log:: info!( "generate_proof : queuing the task." ) ,
145+ Some ( Step :: InSplit ) => {
145146 if last_step == 0 {
146147 split_start_time = Instant :: now ( ) ;
147148 }
148149 log:: info!( "generate_proof : splitting the task." ) ;
149150 }
150- 2 => {
151+ Some ( Step :: InProve ) => {
151152 if last_step == 1 {
152153 split_end_time = Instant :: now ( ) ;
153154 }
154155 log:: info!( "generate_proof : proving the task." ) ;
155156 }
156- 3 => log:: info!( "generate_proof : aggregating the proof." ) ,
157- 4 => log:: info!( "generate_proof : aggregating the proof." ) ,
158- 5 => log:: info!( "generate_proof : finalizing the proof." ) ,
159- 6 => log:: info!( "generate_proof : completing the proof." ) ,
160- i32:: MIN ..=-1_i32 | 7_i32 ..=i32:: MAX => todo ! ( ) ,
157+ Some ( Step :: InAgg ) => log:: info!( "generate_proof : aggregating the proof." ) ,
158+ Some ( Step :: InAggAll ) => {
159+ log:: info!( "generate_proof : aggregating the proof." )
160+ }
161+ Some ( Step :: InFinal ) => log:: info!( "generate_proof : finalizing the proof." ) ,
162+ Some ( Step :: End ) => log:: info!( "generate_proof : completing the proof." ) ,
163+ None => todo ! ( ) ,
161164 }
162165 last_step = get_status_response. step ;
163166 sleep ( Duration :: from_secs ( 30 ) ) . await ;
@@ -195,11 +198,7 @@ impl Prover for NetworkProver {
195198 }
196199 _ => {
197200 log:: error!( "generate_proof failed status: {}" , get_status_response. status) ;
198- //return Ok(None);
199- return Err ( anyhow:: anyhow!(
200- "generate_proof failed status: {}" ,
201- get_status_response. status
202- ) ) ;
201+ bail ! ( "generate_proof failed status: {}" , get_status_response. status) ;
203202 }
204203 }
205204 }
@@ -210,17 +209,15 @@ impl Prover for NetworkProver {
210209 _vk_path : & ' a str ,
211210 _input : & ' a ProverInput ,
212211 _timeout : Option < Duration > ,
213- ) -> anyhow:: Result < ( ) > {
214- log:: info!( "The proof network does not support the method." ) ;
215-
212+ ) -> Result < ( ) > {
216213 panic ! ( "The proof network does not support the method!" ) ;
217214 }
218215
219216 async fn prove < ' a > (
220217 & self ,
221218 input : & ' a ProverInput ,
222219 timeout : Option < Duration > ,
223- ) -> anyhow :: Result < Option < ProverResult > > {
220+ ) -> Result < Option < ProverResult > > {
224221 log:: info!( "calling request_proof." ) ;
225222 let proof_id = self . request_proof ( input) . await ?;
226223 log:: info!( "calling wait_proof, proof_id={}" , proof_id) ;
0 commit comments