@@ -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 = match per_peer_state.get(counterparty_node_id) {
1120211202 Some(peer_state_mutex) => peer_state_mutex,
@@ -11217,7 +11217,7 @@ This indicates a bug inside LDK. Please report this error at https://github.com/
1121711217 Ok(msg_send) => {
1121811218 let msg_send_event = msg_send.into_msg_send_event(*counterparty_node_id);
1121911219 peer_state.pending_msg_events.push(msg_send_event);
11220- Ok(NotifyOption::SkipPersistHandleEvents )
11220+ Ok(() )
1122111221 },
1122211222 Err(InteractiveTxMsgError {
1122311223 err,
@@ -11257,31 +11257,31 @@ This indicates a bug inside LDK. Please report this error at https://github.com/
1125711257
1125811258 fn internal_tx_add_input(
1125911259 &self, counterparty_node_id: PublicKey, msg: &msgs::TxAddInput,
11260- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11260+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1126111261 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1126211262 channel.tx_add_input(msg, &self.logger)
1126311263 })
1126411264 }
1126511265
1126611266 fn internal_tx_add_output(
1126711267 &self, counterparty_node_id: PublicKey, msg: &msgs::TxAddOutput,
11268- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11268+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1126911269 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1127011270 channel.tx_add_output(msg, &self.logger)
1127111271 })
1127211272 }
1127311273
1127411274 fn internal_tx_remove_input(
1127511275 &self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveInput,
11276- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11276+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1127711277 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1127811278 channel.tx_remove_input(msg, &self.logger)
1127911279 })
1128011280 }
1128111281
1128211282 fn internal_tx_remove_output(
1128311283 &self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveOutput,
11284- ) -> Result<NotifyOption , (MsgHandleErrInternal, bool)> {
11284+ ) -> Result<() , (MsgHandleErrInternal, bool)> {
1128511285 self.internal_tx_msg(&counterparty_node_id, msg.channel_id, |channel: &mut Channel<SP>| {
1128611286 channel.tx_remove_output(msg, &self.logger)
1128711287 })
@@ -16007,11 +16007,16 @@ impl<
1600716007 fn handle_tx_add_input(&self, counterparty_node_id: PublicKey, msg: &msgs::TxAddInput) {
1600816008 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1600916009 let res = self.internal_tx_add_input(counterparty_node_id, msg);
16010- let (mut persist, exited_quiescence) = match &res {
16011- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16012- Ok(persist) => (*persist, false),
16010+ let exited_quiescence = match &res {
16011+ Err((err, exited_quiescence)) => {
16012+ debug_assert!(!err.closes_channel());
16013+ *exited_quiescence
16014+ },
16015+ Ok(_) => false,
1601316016 };
1601416017 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16018+
16019+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1601516020 if exited_quiescence {
1601616021 // Note that we're not able to do this inline in `internal_tx_add_input` as we
1601716022 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16027,11 +16032,16 @@ impl<
1602716032 fn handle_tx_add_output(&self, counterparty_node_id: PublicKey, msg: &msgs::TxAddOutput) {
1602816033 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1602916034 let res = self.internal_tx_add_output(counterparty_node_id, msg);
16030- let (mut persist, exited_quiescence) = match &res {
16031- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16032- Ok(persist) => (*persist, false),
16035+ let exited_quiescence = match &res {
16036+ Err((err, exited_quiescence)) => {
16037+ debug_assert!(!err.closes_channel());
16038+ *exited_quiescence
16039+ },
16040+ Ok(_) => false,
1603316041 };
1603416042 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16043+
16044+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1603516045 if exited_quiescence {
1603616046 // Note that we're not able to do this inline in `internal_tx_add_output` as we
1603716047 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16047,11 +16057,16 @@ impl<
1604716057 fn handle_tx_remove_input(&self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveInput) {
1604816058 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1604916059 let res = self.internal_tx_remove_input(counterparty_node_id, msg);
16050- let (mut persist, exited_quiescence) = match &res {
16051- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16052- Ok(persist) => (*persist, false),
16060+ let exited_quiescence = match &res {
16061+ Err((err, exited_quiescence)) => {
16062+ debug_assert!(!err.closes_channel());
16063+ *exited_quiescence
16064+ },
16065+ Ok(_) => false,
1605316066 };
1605416067 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16068+
16069+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1605516070 if exited_quiescence {
1605616071 // Note that we're not able to do this inline in `internal_tx_remove_input` as we
1605716072 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16067,11 +16082,16 @@ impl<
1606716082 fn handle_tx_remove_output(&self, counterparty_node_id: PublicKey, msg: &msgs::TxRemoveOutput) {
1606816083 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1606916084 let res = self.internal_tx_remove_output(counterparty_node_id, msg);
16070- let (mut persist, exited_quiescence) = match &res {
16071- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16072- Ok(persist) => (*persist, false),
16085+ let exited_quiescence = match &res {
16086+ Err((err, exited_quiescence)) => {
16087+ debug_assert!(!err.closes_channel());
16088+ *exited_quiescence
16089+ },
16090+ Ok(_) => false,
1607316091 };
1607416092 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16093+
16094+ let mut persist = NotifyOption::SkipPersistHandleEvents;
1607516095 if exited_quiescence {
1607616096 // Note that we're not able to do this inline in `internal_tx_remove_output` as we
1607716097 // usually do because we first need to send the `tx_abort` in `handle_error` above
@@ -16088,10 +16108,14 @@ impl<
1608816108 let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
1608916109 let res = self.internal_tx_complete(counterparty_node_id, msg);
1609016110 let (mut persist, exited_quiescence) = match &res {
16091- Err((_, exited_quiescence)) => (NotifyOption::DoPersist, *exited_quiescence),
16111+ Err((err, exited_quiescence)) => {
16112+ debug_assert!(!err.closes_channel());
16113+ (NotifyOption::SkipPersistHandleEvents, *exited_quiescence)
16114+ },
1609216115 Ok(persist) => (*persist, false),
1609316116 };
1609416117 let _ = self.handle_error(res.map_err(|(err, _)| err), counterparty_node_id);
16118+
1609516119 if exited_quiescence {
1609616120 // Note that we're not able to do this inline in `internal_tx_complete` as we
1609716121 // usually do because we first need to send the `tx_abort` in `handle_error` above
0 commit comments