@@ -3188,7 +3188,7 @@ where
31883188 }
31893189 } else {
31903190 let mut chan_phase = remove_channel_phase!(self, chan_phase_entry);
3191- shutdown_result = Some(chan_phase.context_mut().force_shutdown(false, ClosureReason::HolderForceClosed));
3191+ shutdown_result = Some(chan_phase.context_mut().force_shutdown(false, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(false) } ));
31923192 }
31933193 },
31943194 hash_map::Entry::Vacant(_) => {
@@ -3357,7 +3357,7 @@ where
33573357 let closure_reason = if let Some(peer_msg) = peer_msg {
33583358 ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(peer_msg.to_string()) }
33593359 } else {
3360- ClosureReason::HolderForceClosed
3360+ ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(broadcast) }
33613361 };
33623362 let logger = WithContext::from(&self.logger, Some(*peer_node_id), Some(*channel_id), None);
33633363 if let hash_map::Entry::Occupied(chan_phase_entry) = peer_state.channel_by_id.entry(channel_id.clone()) {
@@ -5531,7 +5531,7 @@ where
55315531 log_error!(logger,
55325532 "Force-closing pending channel with ID {} for not establishing in a timely manner", chan_id);
55335533 update_maps_on_chan_removal!(self, &context);
5534- shutdown_channels.push(context.force_shutdown(false, ClosureReason::HolderForceClosed));
5534+ shutdown_channels.push(context.force_shutdown(false, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(false) } ));
55355535 pending_msg_events.push(MessageSendEvent::HandleError {
55365536 node_id: counterparty_node_id,
55375537 action: msgs::ErrorAction::SendErrorMessage {
@@ -8018,7 +8018,7 @@ where
80188018 let reason = if let MonitorEvent::HolderForceClosedWithInfo { reason, .. } = monitor_event {
80198019 reason
80208020 } else {
8021- ClosureReason::HolderForceClosed
8021+ ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) }
80228022 };
80238023 failed_channels.push(chan.context.force_shutdown(false, reason.clone()));
80248024 if let Ok(update) = self.get_channel_update_for_broadcast(&chan) {
@@ -12584,7 +12584,7 @@ mod tests {
1258412584
1258512585 nodes[0].node.force_close_channel_with_peer(&chan.2, &nodes[1].node.get_our_node_id(), None, true).unwrap();
1258612586 check_added_monitors!(nodes[0], 1);
12587- check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed, [nodes[1].node.get_our_node_id()], 100000);
12587+ check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) } , [nodes[1].node.get_our_node_id()], 100000);
1258812588
1258912589 // Confirm that the channel_update was not sent immediately to node[1] but was cached.
1259012590 let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
@@ -12643,7 +12643,7 @@ mod tests {
1264312643 nodes[0].node.force_close_broadcasting_latest_txn(&chan.2, &nodes[1].node.get_our_node_id(), error_message.to_string()).unwrap();
1264412644 check_closed_broadcast!(nodes[0], true);
1264512645 check_added_monitors!(nodes[0], 1);
12646- check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed, [nodes[1].node.get_our_node_id()], 100000);
12646+ check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) } , [nodes[1].node.get_our_node_id()], 100000);
1264712647
1264812648 {
1264912649 // Assert that nodes[1] is awaiting removal for nodes[0] once nodes[1] has been
@@ -13380,7 +13380,7 @@ mod tests {
1338013380 nodes[0].node.force_close_broadcasting_latest_txn(&chan_id, &nodes[1].node.get_our_node_id(), error_message.to_string()).unwrap();
1338113381 check_closed_broadcast(&nodes[0], 1, true);
1338213382 check_added_monitors(&nodes[0], 1);
13383- check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed, [nodes[1].node.get_our_node_id()], 100000);
13383+ check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) } , [nodes[1].node.get_our_node_id()], 100000);
1338413384 {
1338513385 let txn = nodes[0].tx_broadcaster.txn_broadcast();
1338613386 assert_eq!(txn.len(), 1);
0 commit comments