MCPcopy Index your code
hub / github.com/BitVM/BitVM / fetch_latest_valid_file

Method fetch_latest_valid_file

bridge/src/client/client.rs:444–476  ·  view source on GitHub ↗
(
        &self,
        file_names: &mut Vec<String>,
    )

Source from the content-addressed store, hash-verified

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

Callers 1

read_from_data_storeMethod · 0.80

Calls 2

is_emptyMethod · 0.80
validate_data_by_keyMethod · 0.80

Tested by

no test coverage detected