From: Matt Corallo Date: Thu, 6 Sep 2018 23:12:32 +0000 (-0400) Subject: Sync get_update_fail_htlc, get_update_fulfill_htlc state err result X-Git-Tag: v0.0.12~318^2~2 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=8cad2ffa9b40704721089cb564d331e684c38052;p=rust-lightning Sync get_update_fail_htlc, get_update_fulfill_htlc state err result Both get_update_fail_htlc and get_update_fulfill_htlc should never be called before any HTLC could have been accepted (ie pre-ChannelFunded) nor should they ever be called post-ShutdownComplete as the Channel object should be destroyed at that point. Previously get_update_fulfill_htlc would panic, but get_update_fail_htlc would return an Err. For now make them both panic but we can revisit this if we want to have fewer panics in the future. --- diff --git a/src/ln/channel.rs b/src/ln/channel.rs index d620ff4f8..77bd70143 100644 --- a/src/ln/channel.rs +++ b/src/ln/channel.rs @@ -1094,7 +1094,7 @@ impl Channel { pub fn get_update_fail_htlc(&mut self, payment_hash_arg: &[u8; 32], err_packet: msgs::OnionErrorPacket) -> Result, HandleError> { if (self.channel_state & (ChannelState::ChannelFunded as u32)) != (ChannelState::ChannelFunded as u32) { - return Err(HandleError{err: "Was asked to fail an HTLC when channel was not in an operational state", action: None}); + panic!("Was asked to fail an HTLC when channel was not in an operational state"); } assert_eq!(self.channel_state & ChannelState::ShutdownComplete as u32, 0);