@@ -164,8 +164,7 @@ impl Index for RemoveOracle {
164164 }
165165 fn invalidate ( & self , services : & Arc < Services > , context : & Context ) -> Result < ( ) > {
166166 let oracle_id = context. tx . txid ;
167- let previous_oracle_history_result =
168- get_previous_oracle_history_list ( services, oracle_id. clone ( ) ) ;
167+ let previous_oracle_history_result = get_previous_oracle_history_list ( services, oracle_id) ;
169168
170169 match previous_oracle_history_result {
171170 Ok ( previous_oracle_history) => {
@@ -236,8 +235,7 @@ impl Index for UpdateOracle {
236235
237236 //save oracle
238237 services. oracle . by_id . put ( & oracle. id , & oracle) ?;
239- let previous_oracle_history_result =
240- get_previous_oracle_history_list ( services, oracle_id. clone ( ) ) ;
238+ let previous_oracle_history_result = get_previous_oracle_history_list ( services, oracle_id) ;
241239 match previous_oracle_history_result {
242240 Ok ( previous_oracle) => {
243241 for oracle in previous_oracle {
@@ -246,7 +244,7 @@ impl Index for UpdateOracle {
246244 let deletion_key = (
247245 price_feed_item. token . clone ( ) ,
248246 price_feed_item. currency . clone ( ) ,
249- oracle_id. clone ( ) ,
247+ oracle_id,
250248 ) ;
251249 match services. oracle_token_currency . by_id . delete ( & deletion_key) {
252250 Ok ( _) => {
@@ -283,7 +281,7 @@ impl Index for UpdateOracle {
283281 ) ,
284282 token : token_currency. token . clone ( ) ,
285283 currency : token_currency. currency . clone ( ) ,
286- oracle_id : oracle_id . clone ( ) ,
284+ oracle_id,
287285 weightage : self . weightage ,
288286 block : ctx. block . clone ( ) ,
289287 } ;
@@ -341,16 +339,15 @@ impl Index for UpdateOracle {
341339 self . oracle_id ,
342340 ) ) ?;
343341 }
344- let previous_oracle_history_result =
345- get_previous_oracle_history_list ( services, oracle_id. clone ( ) ) ;
342+ let previous_oracle_history_result = get_previous_oracle_history_list ( services, oracle_id) ;
346343 match previous_oracle_history_result {
347344 Ok ( previous_oracle_result) => {
348345 for previous_oracle in previous_oracle_result {
349346 for price_feed_item in & previous_oracle. price_feeds {
350347 let deletion_key = (
351348 price_feed_item. token . clone ( ) ,
352349 price_feed_item. currency . clone ( ) ,
353- previous_oracle. oracle_id . clone ( ) ,
350+ previous_oracle. oracle_id ,
354351 ) ;
355352
356353 match services. oracle_token_currency . by_id . delete ( & deletion_key) {
@@ -402,7 +399,7 @@ impl Index for SetOracleData {
402399 let aggreated_id = (
403400 value. token . clone ( ) ,
404401 value. currency . clone ( ) ,
405- value. block . height . clone ( ) ,
402+ value. block . height ,
406403 ) ;
407404 let aggreated_key = ( value. token . clone ( ) , value. currency . clone ( ) ) ;
408405 services
@@ -639,10 +636,9 @@ pub fn index_interval_mapper(
639636 Ok ( price_agrregated_interval)
640637 } )
641638 . collect :: < Result < Vec < _ > > > ( ) ;
642-
643- for previous_oracle_price_aggreated in previous_aggrigated_interval {
644- let clone_interval = interval. clone ( ) ;
645- if previous_oracle_price_aggreated. len ( ) != 0
639+ let clone_interval = interval. clone ( ) ;
640+ if let Ok ( previous_oracle_price_aggreated) = previous_aggrigated_interval {
641+ if !previous_oracle_price_aggreated. is_empty ( )
646642 || ( block. median_time - previous_oracle_price_aggreated[ 0 ] . block . median_time )
647643 > clone_interval as i64
648644 {
@@ -671,6 +667,19 @@ pub fn index_interval_mapper(
671667 } else {
672668 process_inner_values ( services, & previous_oracle_price_aggreated[ 0 ] , aggregated) ;
673669 }
670+ } else {
671+ let err = previous_aggrigated_interval. err ( ) ;
672+ match err {
673+ Some ( e) => {
674+ let error_message = format ! ( "Error updating oracle index interval mapper: {:?}" , e) ;
675+ eprintln ! ( "{}" , error_message) ;
676+ return Err ( Error :: NotFound ( NotFoundKind :: Oracle ) ) ;
677+ }
678+ None => {
679+ eprintln ! ( "Unknown index interval mapper error " ) ;
680+ return Err ( Error :: NotFound ( NotFoundKind :: Oracle ) ) ;
681+ }
682+ }
674683 }
675684
676685 Ok ( ( ) )
@@ -703,7 +712,7 @@ pub fn invalidate_oracle_interval(
703712 } )
704713 . collect :: < Result < Vec < _ > > > ( ) ;
705714
706- for oracle_price_aggreated in previous_aggrigated_interval {
715+ if let Ok ( oracle_price_aggreated) = previous_aggrigated_interval {
707716 if oracle_price_aggreated[ 0 ] . aggregated . count != 1 {
708717 let _err = services
709718 . oracle_price_aggregated_interval
@@ -755,6 +764,19 @@ pub fn invalidate_oracle_interval(
755764 & previous_aggregated_interval. id ,
756765 ) ;
757766 }
767+ } else {
768+ let err = previous_aggrigated_interval. err ( ) ;
769+ match err {
770+ Some ( e) => {
771+ let error_message = format ! ( "Error updating oracle interval: {:?}" , e) ;
772+ eprintln ! ( "{}" , error_message) ;
773+ return Err ( Error :: NotFound ( NotFoundKind :: Oracle ) ) ;
774+ }
775+ None => {
776+ eprintln ! ( "Unknown previous_aggrigated_interval error " ) ;
777+ return Err ( Error :: NotFound ( NotFoundKind :: Oracle ) ) ;
778+ }
779+ }
758780 }
759781 Ok ( ( ) )
760782}
0 commit comments