@@ -3153,7 +3153,7 @@ where
31533153 }
31543154 } else {
31553155 let mut chan_phase = remove_channel_phase!(self, chan_phase_entry);
3156- shutdown_result = Some(chan_phase.context_mut().force_shutdown(false, ClosureReason::HolderForceClosed));
3156+ shutdown_result = Some(chan_phase.context_mut().force_shutdown(false, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(false) } ));
31573157 }
31583158 },
31593159 hash_map::Entry::Vacant(_) => {
@@ -3322,7 +3322,7 @@ where
33223322 let closure_reason = if let Some(peer_msg) = peer_msg {
33233323 ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(peer_msg.to_string()) }
33243324 } else {
3325- ClosureReason::HolderForceClosed
3325+ ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(broadcast) }
33263326 };
33273327 let logger = WithContext::from(&self.logger, Some(*peer_node_id), Some(*channel_id), None);
33283328 if let hash_map::Entry::Occupied(chan_phase_entry) = peer_state.channel_by_id.entry(channel_id.clone()) {
@@ -5497,7 +5497,7 @@ where
54975497 log_error!(logger,
54985498 "Force-closing pending channel with ID {} for not establishing in a timely manner", chan_id);
54995499 update_maps_on_chan_removal!(self, &context);
5500- shutdown_channels.push(context.force_shutdown(false, ClosureReason::HolderForceClosed));
5500+ shutdown_channels.push(context.force_shutdown(false, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(false) } ));
55015501 pending_msg_events.push(MessageSendEvent::HandleError {
55025502 node_id: counterparty_node_id,
55035503 action: msgs::ErrorAction::SendErrorMessage {
@@ -7984,7 +7984,7 @@ where
79847984 let reason = if let MonitorEvent::HolderForceClosedWithInfo { reason, .. } = monitor_event {
79857985 reason
79867986 } else {
7987- ClosureReason::HolderForceClosed
7987+ ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) }
79887988 };
79897989 failed_channels.push(chan.context.force_shutdown(false, reason.clone()));
79907990 if let Ok(update) = self.get_channel_update_for_broadcast(&chan) {
@@ -12458,7 +12458,7 @@ mod tests {
1245812458
1245912459 nodes[0].node.force_close_channel_with_peer(&chan.2, &nodes[1].node.get_our_node_id(), None, true).unwrap();
1246012460 check_added_monitors!(nodes[0], 1);
12461- check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed, [nodes[1].node.get_our_node_id()], 100000);
12461+ check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) } , [nodes[1].node.get_our_node_id()], 100000);
1246212462
1246312463 // Confirm that the channel_update was not sent immediately to node[1] but was cached.
1246412464 let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
@@ -12517,7 +12517,7 @@ mod tests {
1251712517 nodes[0].node.force_close_broadcasting_latest_txn(&chan.2, &nodes[1].node.get_our_node_id(), error_message.to_string()).unwrap();
1251812518 check_closed_broadcast!(nodes[0], true);
1251912519 check_added_monitors!(nodes[0], 1);
12520- check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed, [nodes[1].node.get_our_node_id()], 100000);
12520+ check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) } , [nodes[1].node.get_our_node_id()], 100000);
1252112521
1252212522 {
1252312523 // Assert that nodes[1] is awaiting removal for nodes[0] once nodes[1] has been
@@ -13254,7 +13254,7 @@ mod tests {
1325413254 nodes[0].node.force_close_broadcasting_latest_txn(&chan_id, &nodes[1].node.get_our_node_id(), error_message.to_string()).unwrap();
1325513255 check_closed_broadcast(&nodes[0], 1, true);
1325613256 check_added_monitors(&nodes[0], 1);
13257- check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed, [nodes[1].node.get_our_node_id()], 100000);
13257+ check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true) } , [nodes[1].node.get_our_node_id()], 100000);
1325813258 {
1325913259 let txn = nodes[0].tx_broadcaster.txn_broadcast();
1326013260 assert_eq!(txn.len(), 1);
0 commit comments