You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let logger = WithContext::from(&self.logger, Some(*counterparty_node_id), None, None);
7934
+
if msg.data.len() < 16 {
7935
+
log_debug!(logger, "Invalid YourPeerStorage received from {}", log_pubkey!(counterparty_node_id));
7936
+
return;
7937
+
}
7938
+
7939
+
let mut res = vec![0; msg.data.len() - 16];
7940
+
{
7941
+
let our_peer_storage = self.our_peer_storage.read().unwrap();
7942
+
match our_peer_storage.decrypt_our_peer_storage(&mut res, msg.data.as_slice(), self.our_peerstorage_encryption_key) {
7943
+
Ok(()) => {
7944
+
// Decryption successful, the plaintext is now stored in `res`
7945
+
log_debug!(logger, "Received a peer storage from peer {}", log_pubkey!(counterparty_node_id));
7946
+
}
7947
+
Err(_) => {
7948
+
log_debug!(logger, "Invalid YourPeerStorage received from {}", log_pubkey!(counterparty_node_id));
7949
+
return;
7950
+
}
7951
+
}
7952
+
}
7953
+
7954
+
let our_peer_storage = <OurPeerStorage as Readable>::read(&mut ::bitcoin::io::Cursor::new(res)).unwrap();
7955
+
let per_peer_state = self.per_peer_state.read().unwrap();
7956
+
7957
+
for ps_channel in our_peer_storage.get_channels() {
7958
+
let peer_state_mutex = match per_peer_state.get(&ps_channel.counterparty_node_id) {
7959
+
Some(mutex) => mutex,
7960
+
None => {
7961
+
log_debug!(logger, "Not able to find peer_state for the counterparty {}, channelId {}", log_pubkey!(ps_channel.counterparty_node_id), ps_channel.channel_id);
7962
+
panic!("Found a missing channel {} through peer storage", ps_channel.channel_id);
7963
+
}
7964
+
};
7965
+
7966
+
let peer_state_lock = peer_state_mutex.lock().unwrap();
7967
+
let peer_state = &*peer_state_lock;
7968
+
7969
+
match peer_state.channel_by_id.get(&ps_channel.channel_id) {
7970
+
Some(ChannelPhase::Funded(chan)) => {
7971
+
if chan.context.get_commitment_secret().get_min_seen_secret() > ps_channel.get_min_seen_secret() {
7972
+
panic!("Lost channel state for channel {}.
7973
+
Received peer storage with a more recent state than what our node had.
7974
+
Use the FundRecoverer to initiate a force close and sweep the funds.", ps_channel.channel_id);
7975
+
}
7976
+
},
7977
+
Some(_) => {}
7978
+
None => {
7979
+
panic!("Found a missing channel {} through peer storage", ps_channel.channel_id);
0 commit comments