Skip to content

Commit 6dc21d5

Browse files
Remove excess channel_state passing to macros
As the `short_to_chan_info` has been moved out of the `channel_state` to a standalone lock, several macros no longer need the `channel_state` passed into the macro.
1 parent ef4f0f0 commit 6dc21d5

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1354,7 +1354,7 @@ macro_rules! convert_chan_err {
13541354
}
13551355

13561356
macro_rules! break_chan_entry {
1357-
($self: ident, $res: expr, $channel_state: expr, $entry: expr) => {
1357+
($self: ident, $res: expr, $entry: expr) => {
13581358
match $res {
13591359
Ok(res) => res,
13601360
Err(e) => {
@@ -1369,7 +1369,7 @@ macro_rules! break_chan_entry {
13691369
}
13701370

13711371
macro_rules! try_chan_entry {
1372-
($self: ident, $res: expr, $channel_state: expr, $entry: expr) => {
1372+
($self: ident, $res: expr, $entry: expr) => {
13731373
match $res {
13741374
Ok(res) => res,
13751375
Err(e) => {
@@ -1384,7 +1384,7 @@ macro_rules! try_chan_entry {
13841384
}
13851385

13861386
macro_rules! remove_channel {
1387-
($self: expr, $channel_state: expr, $entry: expr) => {
1387+
($self: expr, $entry: expr) => {
13881388
{
13891389
let channel = $entry.remove_entry().1;
13901390
update_maps_on_chan_removal!($self, channel);
@@ -1906,7 +1906,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
19061906
let (result, is_permanent) =
19071907
handle_monitor_update_res!(self, update_res, chan_entry.get_mut(), RAACommitmentOrder::CommitmentFirst, chan_entry.key(), NO_UPDATE);
19081908
if is_permanent {
1909-
remove_channel!(self, channel_state, chan_entry);
1909+
remove_channel!(self, chan_entry);
19101910
break result;
19111911
}
19121912
}
@@ -1917,7 +1917,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
19171917
});
19181918

19191919
if chan_entry.get().is_shutdown() {
1920-
let channel = remove_channel!(self, channel_state, chan_entry);
1920+
let channel = remove_channel!(self, chan_entry);
19211921
if let Ok(channel_update) = self.get_channel_update_for_broadcast(&channel) {
19221922
channel_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelUpdate {
19231923
msg: channel_update
@@ -2018,7 +2018,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
20182018
} else {
20192019
self.issue_channel_close_events(chan.get(),ClosureReason::HolderForceClosed);
20202020
}
2021-
remove_channel!(self, channel_state, chan)
2021+
remove_channel!(self, chan)
20222022
} else {
20232023
return Err(APIError::ChannelUnavailable{err: "No such channel".to_owned()});
20242024
}
@@ -2520,7 +2520,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
25202520
payment_secret: payment_secret.clone(),
25212521
payment_params: payment_params.clone(),
25222522
}, onion_packet, &self.logger),
2523-
channel_state, chan)
2523+
chan)
25242524
} {
25252525
Some((update_add, commitment_signed, monitor_update)) => {
25262526
let update_err = self.chain_monitor.update_channel(chan.get().get_funding_txo().unwrap(), monitor_update);
@@ -3255,7 +3255,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
32553255
}
32563256
ChannelError::Close(msg) => {
32573257
log_trace!(self.logger, "Closing channel {} due to Close-required error: {}", log_bytes!(chan.key()[..]), msg);
3258-
let mut channel = remove_channel!(self, channel_state, chan);
3258+
let mut channel = remove_channel!(self, chan);
32593259
// ChannelClosed event is generated by handle_error for us.
32603260
Err(MsgHandleErrInternal::from_finish_shutdown(msg, channel.channel_id(), channel.get_user_id(), channel.force_shutdown(true), self.get_channel_update_for_broadcast(&channel).ok()))
32613261
},
@@ -4459,7 +4459,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
44594459
}
44604460
};
44614461
channel_state.pending_msg_events.push(send_msg_err_event);
4462-
let _ = remove_channel!(self, channel_state, channel);
4462+
let _ = remove_channel!(self, channel);
44634463
return Err(APIError::APIMisuseError { err: "Please use accept_inbound_channel_from_trusted_peer_0conf to accept channels with zero confirmations.".to_owned() });
44644464
}
44654465

@@ -4539,7 +4539,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
45394539
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
45404540
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.temporary_channel_id));
45414541
}
4542-
try_chan_entry!(self, chan.get_mut().accept_channel(&msg, &self.default_configuration.channel_handshake_limits, &their_features), channel_state, chan);
4542+
try_chan_entry!(self, chan.get_mut().accept_channel(&msg, &self.default_configuration.channel_handshake_limits, &their_features), chan);
45434543
(chan.get().get_value_satoshis(), chan.get().get_funding_redeemscript().to_v0_p2wsh(), chan.get().get_user_id())
45444544
},
45454545
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.temporary_channel_id))
@@ -4566,7 +4566,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
45664566
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
45674567
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.temporary_channel_id));
45684568
}
4569-
(try_chan_entry!(self, chan.get_mut().funding_created(msg, best_block, &self.logger), channel_state, chan), chan.remove())
4569+
(try_chan_entry!(self, chan.get_mut().funding_created(msg, best_block, &self.logger), chan), chan.remove())
45704570
},
45714571
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.temporary_channel_id))
45724572
}
@@ -4639,7 +4639,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
46394639
}
46404640
let (monitor, funding_tx, channel_ready) = match chan.get_mut().funding_signed(&msg, best_block, &self.logger) {
46414641
Ok(update) => update,
4642-
Err(e) => try_chan_entry!(self, Err(e), channel_state, chan),
4642+
Err(e) => try_chan_entry!(self, Err(e), chan),
46434643
};
46444644
match self.chain_monitor.watch_channel(chan.get().get_funding_txo().unwrap(), monitor) {
46454645
ChannelMonitorUpdateStatus::Completed => {},
@@ -4678,7 +4678,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
46784678
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
46794679
}
46804680
let announcement_sigs_opt = try_chan_entry!(self, chan.get_mut().channel_ready(&msg, self.get_our_node_id(),
4681-
self.genesis_hash.clone(), &self.best_block.read().unwrap(), &self.logger), channel_state, chan);
4681+
self.genesis_hash.clone(), &self.best_block.read().unwrap(), &self.logger), chan);
46824682
if let Some(announcement_sigs) = announcement_sigs_opt {
46834683
log_trace!(self.logger, "Sending announcement_signatures for channel {}", log_bytes!(chan.get().channel_id()));
46844684
channel_state.pending_msg_events.push(events::MessageSendEvent::SendAnnouncementSignatures {
@@ -4723,7 +4723,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47234723
if chan_entry.get().sent_shutdown() { " after we initiated shutdown" } else { "" });
47244724
}
47254725

4726-
let (shutdown, monitor_update, htlcs) = try_chan_entry!(self, chan_entry.get_mut().shutdown(&self.keys_manager, &their_features, &msg), channel_state, chan_entry);
4726+
let (shutdown, monitor_update, htlcs) = try_chan_entry!(self, chan_entry.get_mut().shutdown(&self.keys_manager, &their_features, &msg), chan_entry);
47274727
dropped_htlcs = htlcs;
47284728

47294729
// Update the monitor with the shutdown script if necessary.
@@ -4732,7 +4732,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47324732
let (result, is_permanent) =
47334733
handle_monitor_update_res!(self, update_res, chan_entry.get_mut(), RAACommitmentOrder::CommitmentFirst, chan_entry.key(), NO_UPDATE);
47344734
if is_permanent {
4735-
remove_channel!(self, channel_state, chan_entry);
4735+
remove_channel!(self, chan_entry);
47364736
break result;
47374737
}
47384738
}
@@ -4767,7 +4767,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47674767
if chan_entry.get().get_counterparty_node_id() != *counterparty_node_id {
47684768
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
47694769
}
4770-
let (closing_signed, tx) = try_chan_entry!(self, chan_entry.get_mut().closing_signed(&self.fee_estimator, &msg), channel_state, chan_entry);
4770+
let (closing_signed, tx) = try_chan_entry!(self, chan_entry.get_mut().closing_signed(&self.fee_estimator, &msg), chan_entry);
47714771
if let Some(msg) = closing_signed {
47724772
channel_state.pending_msg_events.push(events::MessageSendEvent::SendClosingSigned {
47734773
node_id: counterparty_node_id.clone(),
@@ -4780,7 +4780,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47804780
// also implies there are no pending HTLCs left on the channel, so we can
47814781
// fully delete it from tracking (the channel monitor is still around to
47824782
// watch for old state broadcasts)!
4783-
(tx, Some(remove_channel!(self, channel_state, chan_entry)))
4783+
(tx, Some(remove_channel!(self, chan_entry)))
47844784
} else { (tx, None) }
47854785
},
47864786
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
@@ -4844,7 +4844,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48444844
_ => pending_forward_info
48454845
}
48464846
};
4847-
try_chan_entry!(self, chan.get_mut().update_add_htlc(&msg, pending_forward_info, create_pending_htlc_status, &self.logger), channel_state, chan);
4847+
try_chan_entry!(self, chan.get_mut().update_add_htlc(&msg, pending_forward_info, create_pending_htlc_status, &self.logger), chan);
48484848
},
48494849
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
48504850
}
@@ -4860,7 +4860,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48604860
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
48614861
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
48624862
}
4863-
try_chan_entry!(self, chan.get_mut().update_fulfill_htlc(&msg), channel_state, chan)
4863+
try_chan_entry!(self, chan.get_mut().update_fulfill_htlc(&msg), chan)
48644864
},
48654865
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
48664866
}
@@ -4877,7 +4877,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48774877
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
48784878
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
48794879
}
4880-
try_chan_entry!(self, chan.get_mut().update_fail_htlc(&msg, HTLCFailReason::LightningError { err: msg.reason.clone() }), channel_state, chan);
4880+
try_chan_entry!(self, chan.get_mut().update_fail_htlc(&msg, HTLCFailReason::LightningError { err: msg.reason.clone() }), chan);
48814881
},
48824882
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
48834883
}
@@ -4894,9 +4894,9 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48944894
}
48954895
if (msg.failure_code & 0x8000) == 0 {
48964896
let chan_err: ChannelError = ChannelError::Close("Got update_fail_malformed_htlc with BADONION not set".to_owned());
4897-
try_chan_entry!(self, Err(chan_err), channel_state, chan);
4897+
try_chan_entry!(self, Err(chan_err), chan);
48984898
}
4899-
try_chan_entry!(self, chan.get_mut().update_fail_malformed_htlc(&msg, HTLCFailReason::Reason { failure_code: msg.failure_code, data: Vec::new() }), channel_state, chan);
4899+
try_chan_entry!(self, chan.get_mut().update_fail_malformed_htlc(&msg, HTLCFailReason::Reason { failure_code: msg.failure_code, data: Vec::new() }), chan);
49004900
Ok(())
49014901
},
49024902
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
@@ -4913,11 +4913,11 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
49134913
}
49144914
let (revoke_and_ack, commitment_signed, monitor_update) =
49154915
match chan.get_mut().commitment_signed(&msg, &self.logger) {
4916-
Err((None, e)) => try_chan_entry!(self, Err(e), channel_state, chan),
4916+
Err((None, e)) => try_chan_entry!(self, Err(e), chan),
49174917
Err((Some(update), e)) => {
49184918
assert!(chan.get().is_awaiting_monitor_update());
49194919
let _ = self.chain_monitor.update_channel(chan.get().get_funding_txo().unwrap(), update);
4920-
try_chan_entry!(self, Err(e), channel_state, chan);
4920+
try_chan_entry!(self, Err(e), chan);
49214921
unreachable!();
49224922
},
49234923
Ok(res) => res
@@ -5000,7 +5000,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
50005000
}
50015001
let was_paused_for_mon_update = chan.get().is_awaiting_monitor_update();
50025002
let raa_updates = break_chan_entry!(self,
5003-
chan.get_mut().revoke_and_ack(&msg, &self.logger), channel_state, chan);
5003+
chan.get_mut().revoke_and_ack(&msg, &self.logger), chan);
50045004
htlcs_to_fail = raa_updates.holding_cell_failed_htlcs;
50055005
let update_res = self.chain_monitor.update_channel(chan.get().get_funding_txo().unwrap(), raa_updates.monitor_update);
50065006
if was_paused_for_mon_update {
@@ -5060,7 +5060,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
50605060
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
50615061
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
50625062
}
5063-
try_chan_entry!(self, chan.get_mut().update_fee(&self.fee_estimator, &msg), channel_state, chan);
5063+
try_chan_entry!(self, chan.get_mut().update_fee(&self.fee_estimator, &msg), chan);
50645064
},
50655065
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
50665066
}
@@ -5082,7 +5082,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
50825082

50835083
channel_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
50845084
msg: try_chan_entry!(self, chan.get_mut().announcement_signatures(
5085-
self.get_our_node_id(), self.genesis_hash.clone(), self.best_block.read().unwrap().height(), msg), channel_state, chan),
5085+
self.get_our_node_id(), self.genesis_hash.clone(), self.best_block.read().unwrap().height(), msg), chan),
50865086
// Note that announcement_signatures fails if the channel cannot be announced,
50875087
// so get_channel_update_for_broadcast will never fail by the time we get here.
50885088
update_msg: self.get_channel_update_for_broadcast(chan.get()).unwrap(),
@@ -5121,7 +5121,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
51215121
return Ok(NotifyOption::SkipPersist);
51225122
} else {
51235123
log_debug!(self.logger, "Received channel_update for channel {}.", log_bytes!(chan_id));
5124-
try_chan_entry!(self, chan.get_mut().channel_update(&msg), channel_state, chan);
5124+
try_chan_entry!(self, chan.get_mut().channel_update(&msg), chan);
51255125
}
51265126
},
51275127
hash_map::Entry::Vacant(_) => unreachable!()
@@ -5146,7 +5146,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
51465146
// add-HTLCs on disconnect, we may be handed HTLCs to fail backwards here.
51475147
let responses = try_chan_entry!(self, chan.get_mut().channel_reestablish(
51485148
msg, &self.logger, self.our_network_pubkey.clone(), self.genesis_hash,
5149-
&*self.best_block.read().unwrap()), channel_state, chan);
5149+
&*self.best_block.read().unwrap()), chan);
51505150
let mut channel_update = None;
51515151
if let Some(msg) = responses.shutdown_msg {
51525152
channel_state.pending_msg_events.push(events::MessageSendEvent::SendShutdown {
@@ -5210,7 +5210,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
52105210
let by_id = &mut channel_state.by_id;
52115211
let pending_msg_events = &mut channel_state.pending_msg_events;
52125212
if let hash_map::Entry::Occupied(chan_entry) = by_id.entry(funding_outpoint.to_channel_id()) {
5213-
let mut chan = remove_channel!(self, channel_state, chan_entry);
5213+
let mut chan = remove_channel!(self, chan_entry);
52145214
failed_channels.push(chan.force_shutdown(false));
52155215
if let Ok(update) = self.get_channel_update_for_broadcast(&chan) {
52165216
pending_msg_events.push(events::MessageSendEvent::BroadcastChannelUpdate {

0 commit comments

Comments
 (0)