(
&self,
file_names: &mut Vec<String>,
)
| 442 | } |
| 443 | |
| 444 | async fn fetch_latest_valid_file( |
| 445 | &self, |
| 446 | file_names: &mut Vec<String>, |
| 447 | ) -> (Option<BitVMClientPublicData>, Option<String>) { |
| 448 | let mut latest_valid_file: Option<BitVMClientPublicData> = None; |
| 449 | let mut latest_valid_file_name: Option<String> = None; |
| 450 | |
| 451 | while !file_names.is_empty() { |
| 452 | let file_name_result = file_names.pop(); |
| 453 | if file_name_result.is_some() { |
| 454 | let file_name = file_name_result.unwrap(); |
| 455 | let (latest_data, latest_data_len, encoded_size) = |
| 456 | self.validate_data_by_key(&file_name).await; |
| 457 | if latest_data.is_some() { |
| 458 | // data is valid |
| 459 | println!( |
| 460 | "Fetched valid file: {} (size: {}, compressed: {})", |
| 461 | file_name, |
| 462 | human_bytes(latest_data_len as f64), |
| 463 | human_bytes(encoded_size as f64) |
| 464 | ); |
| 465 | latest_valid_file = latest_data; |
| 466 | latest_valid_file_name = Some(file_name); |
| 467 | break; |
| 468 | } else { |
| 469 | println!("Invalid file: {}", file_name); // TODO: can be removed |
| 470 | } |
| 471 | // for invalid data try another file |
| 472 | } |
| 473 | } |
| 474 | |
| 475 | (latest_valid_file, latest_valid_file_name) |
| 476 | } |
| 477 | |
| 478 | async fn save_to_data_store(&mut self) { |
| 479 | // read newly created data before pushing |
no test coverage detected