-pub(crate) fn read_channel_peer_data(path: &Path) -> Result<HashMap<PublicKey, SocketAddr>, std::io::Error> {
- let mut peer_data = HashMap::new();
- if !Path::new(&path).exists() {
- return Ok(HashMap::new())
- }
- let file = File::open(path)?;
- let reader = BufReader::new(file);
- for line in reader.lines() {
- match cli::parse_peer_info(line.unwrap()) {
- Ok((pubkey, socket_addr)) => {
- peer_data.insert(pubkey, socket_addr);
- },
- Err(e) => return Err(e)
- }
- }
- Ok(peer_data)
-}
-
-
-pub(crate) fn read_channelmonitors(path: String, keys_manager: Arc<KeysManager>) ->
- Result<HashMap<OutPoint, (BlockHash, ChannelMonitor<InMemorySigner>)>, std::io::Error>
-{
- if !Path::new(&path).exists() {
- return Ok(HashMap::new())
- }
- let mut outpoint_to_channelmonitor = HashMap::new();
- for file_option in fs::read_dir(path).unwrap() {
- let file = file_option.unwrap();
- let owned_file_name = file.file_name();
- let filename = owned_file_name.to_str();
- if !filename.is_some() || !filename.unwrap().is_ascii() || filename.unwrap().len() < 65 {
- return Err(std::io::Error::new(std::io::ErrorKind::Other, "Invalid ChannelMonitor file name"));
- }
-
- let txid = Txid::from_hex(filename.unwrap().split_at(64).0);
- if txid.is_err() {
- return Err(std::io::Error::new(std::io::ErrorKind::Other, "Invalid tx ID in filename"));
- }
-
- let index = filename.unwrap().split_at(65).1.split('.').next().unwrap().parse();
- if index.is_err() {
- return Err(std::io::Error::new(std::io::ErrorKind::Other, "Invalid tx index in filename"));
- }
-
- let contents = fs::read(&file.path())?;
-
- if let Ok((blockhash, channel_monitor)) =
- <(BlockHash, ChannelMonitor<InMemorySigner>)>::read(&mut Cursor::new(&contents),
- &*keys_manager)
- {
- outpoint_to_channelmonitor.insert(OutPoint { txid: txid.unwrap(), index: index.unwrap() },
- (blockhash, channel_monitor));
- } else {
- return Err(std::io::Error::new(std::io::ErrorKind::Other,
- "Failed to deserialize ChannelMonitor"));
- }
- }
- Ok(outpoint_to_channelmonitor)
+pub(crate) fn read_channel_peer_data(
+ path: &Path,
+) -> Result<HashMap<PublicKey, SocketAddr>, std::io::Error> {
+ let mut peer_data = HashMap::new();
+ if !Path::new(&path).exists() {
+ return Ok(HashMap::new());
+ }
+ let file = File::open(path)?;
+ let reader = BufReader::new(file);
+ for line in reader.lines() {
+ match cli::parse_peer_info(line.unwrap()) {
+ Ok((pubkey, socket_addr)) => {
+ peer_data.insert(pubkey, socket_addr);
+ }
+ Err(e) => return Err(e),
+ }
+ }
+ Ok(peer_data)