@@ -11196,7 +11196,7 @@ This indicates a bug inside LDK. Please report this error at https://github.com/
1119611196 >(
1119711197 &self, counterparty_node_id: &PublicKey, channel_id: ChannelId,
1119811198 tx_msg_handler: HandleTxMsgFn,
11199- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11199+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1120011200 let per_peer_state = self.per_peer_state.read().unwrap();
1120111201 let peer_state_mutex = per_peer_state.get(counterparty_node_id).ok_or_else(|| {
1120211202 debug_assert!(false);
@@ -11211,7 +11211,7 @@ This indicates a bug inside LDK. Please report this error at https://github.com/
1121111211 Ok(msg_send) => {
1121211212 let msg_send_event = msg_send.into_msg_send_event(*counterparty_node_id);
1121311213 peer_state.pending_msg_events.push(msg_send_event);
11214- Ok(NotifyOption::SkipPersistHandleEvents )
11214+ Ok(() )
1121511215 },
1121611216 Err(InteractiveTxMsgError {
1121711217 err,
@@ -11251,31 +11251,31 @@ This indicates a bug inside LDK. Please report this error at https://github.com/
1125111251
1125211252 fn internal_tx_add_input(
1125311253 &self, counterparty_node_id: PublicKey, msg: &msgs::TxAddInput,
11254- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11254+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1125511255 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1125611256 channel.tx_add_input(msg, &self.logger)
1125711257 })
1125811258 }
1125911259
1126011260 fn internal_tx_add_output(
1126111261 &self, counterparty_node_id: PublicKey, msg: &msgs::TxAddOutput,
11262- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11262+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1126311263 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1126411264 channel.tx_add_output(msg, &self.logger)
1126511265 })
1126611266 }
1126711267
1126811268 fn internal_tx_remove_input(
1126911269 &self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveInput,
11270- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11270+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1127111271 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1127211272 channel.tx_remove_input(msg, &self.logger)
1127311273 })
1127411274 }
1127511275
1127611276 fn internal_tx_remove_output(
1127711277 &self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveOutput,
11278- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11278+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1127911279 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1128011280 channel.tx_remove_output(msg, &self.logger)
1128111281 })
@@ -15995,11 +15995,16 @@ impl<
1599515995 fn handle_tx_add_input(&self, counterparty_node_id: PublicKey, msg: &msgs::TxAddInput) {
1599615996 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1599715997 let res = self.internal_tx_add_input(counterparty_node_id, msg);
15998- let (mut persist, exited_quiescence) = match &res {
15999- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16000- Ok(persist) => (*persist, false),
15998+ let exited_quiescence = match &res {
15999+ Err((err, exited_quiescence)) => {
16000+ debug_assert!(!err.closes_channel());
16001+ *exited_quiescence
16002+ },
16003+ Ok(_) => false,
1600116004 };
1600216005 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16006+
16007+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1600316008 if exited_quiescence {
1600416009 // Note that we're not able to do this inline in `internal_tx_add_input` as we
1600516010 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16015,11 +16020,16 @@ impl<
1601516020 fn handle_tx_add_output(&self, counterparty_node_id: PublicKey, msg: &msgs::TxAddOutput) {
1601616021 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1601716022 let res = self.internal_tx_add_output(counterparty_node_id, msg);
16018- let (mut persist, exited_quiescence) = match &res {
16019- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16020- Ok(persist) => (*persist, false),
16023+ let exited_quiescence = match &res {
16024+ Err((err, exited_quiescence)) => {
16025+ debug_assert!(!err.closes_channel());
16026+ *exited_quiescence
16027+ },
16028+ Ok(_) => false,
1602116029 };
1602216030 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16031+
16032+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1602316033 if exited_quiescence {
1602416034 // Note that we're not able to do this inline in `internal_tx_add_output` as we
1602516035 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16035,11 +16045,16 @@ impl<
1603516045 fn handle_tx_remove_input(&self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveInput) {
1603616046 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1603716047 let res = self.internal_tx_remove_input(counterparty_node_id, msg);
16038- let (mut persist, exited_quiescence) = match &res {
16039- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16040- Ok(persist) => (*persist, false),
16048+ let exited_quiescence = match &res {
16049+ Err((err, exited_quiescence)) => {
16050+ debug_assert!(!err.closes_channel());
16051+ *exited_quiescence
16052+ },
16053+ Ok(_) => false,
1604116054 };
1604216055 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16056+
16057+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1604316058 if exited_quiescence {
1604416059 // Note that we're not able to do this inline in `internal_tx_remove_input` as we
1604516060 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16055,11 +16070,16 @@ impl<
1605516070 fn handle_tx_remove_output(&self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveOutput) {
1605616071 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1605716072 let res = self.internal_tx_remove_output(counterparty_node_id, msg);
16058- let (mut persist, exited_quiescence) = match &res {
16059- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16060- Ok(persist) => (*persist, false),
16073+ let exited_quiescence = match &res {
16074+ Err((err, exited_quiescence)) => {
16075+ debug_assert!(!err.closes_channel());
16076+ *exited_quiescence
16077+ },
16078+ Ok(_) => false,
1606116079 };
1606216080 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16081+
16082+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1606316083 if exited_quiescence {
1606416084 // Note that we're not able to do this inline in `internal_tx_remove_output` as we
1606516085 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16076,10 +16096,14 @@ impl<
1607616096 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1607716097 let res = self.internal_tx_complete(counterparty_node_id, msg);
1607816098 let (mut persist, exited_quiescence) = match &res {
16079- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16099+ Err((err, exited_quiescence)) => {
16100+ debug_assert!(!err.closes_channel());
16101+ (NotifyOption::SkipPersistHandleEvents, *exited_quiescence)
16102+ },
1608016103 Ok(persist) => (*persist, false),
1608116104 };
1608216105 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16106+
1608316107 if exited_quiescence {
1608416108 // Note that we're not able to do this inline in `internal_tx_complete` as we
1608516109 // usually do because we first need to send the `tx_abort` in `handle_error` above
0 commit comments