}))
}
- pub fn get_update_fail_htlc_and_commit(&mut self, htlc_id: u64, err_packet: msgs::OnionErrorPacket) -> Result<Option<(msgs::UpdateFailHTLC, msgs::CommitmentSigned, ChannelMonitor)>, ChannelError> {
- match self.get_update_fail_htlc(htlc_id, err_packet)? {
- Some(update_fail_htlc) => {
- let (commitment, monitor_update) = self.send_commitment_no_status_check()?;
- Ok(Some((update_fail_htlc, commitment, monitor_update)))
- },
- None => Ok(None)
- }
- }
-
// Message handlers:
pub fn accept_channel(&mut self, msg: &msgs::AcceptChannel, config: &UserConfig) -> Result<(), ChannelError> {
}
if have_updates { break; }
}
+ for htlc in self.pending_inbound_htlcs.iter() {
+ if let InboundHTLCState::LocalRemoved(_) = htlc.state {
+ have_updates = true;
+ }
+ if have_updates { break; }
+ }
if !have_updates {
panic!("Cannot create commitment tx until we have some updates to send");
}