Skip to content

Commit e7e7dc6

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 87dd4f1 commit e7e7dc6

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
@@ -1349,7 +1349,7 @@ macro_rules! convert_chan_err {
13491349
}
13501350

13511351
macro_rules! break_chan_entry {
1352-
($self: ident, $res: expr, $channel_state: expr, $entry: expr) => {
1352+
($self: ident, $res: expr, $entry: expr) => {
13531353
match $res {
13541354
Ok(res) => res,
13551355
Err(e) => {
@@ -1364,7 +1364,7 @@ macro_rules! break_chan_entry {
13641364
}
13651365

13661366
macro_rules! try_chan_entry {
1367-
($self: ident, $res: expr, $channel_state: expr, $entry: expr) => {
1367+
($self: ident, $res: expr, $entry: expr) => {
13681368
match $res {
13691369
Ok(res) => res,
13701370
Err(e) => {
@@ -1379,7 +1379,7 @@ macro_rules! try_chan_entry {
13791379
}
13801380

13811381
macro_rules! remove_channel {
1382-
($self: expr, $channel_state: expr, $entry: expr) => {
1382+
($self: expr, $entry: expr) => {
13831383
{
13841384
let channel = $entry.remove_entry().1;
13851385
update_maps_on_chan_removal!($self, channel);
@@ -1901,7 +1901,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
19011901
let (result, is_permanent) =
19021902
handle_monitor_update_res!(self, update_res, chan_entry.get_mut(), RAACommitmentOrder::CommitmentFirst, chan_entry.key(), NO_UPDATE);
19031903
if is_permanent {
1904-
remove_channel!(self, channel_state, chan_entry);
1904+
remove_channel!(self, chan_entry);
19051905
break result;
19061906
}
19071907
}
@@ -1912,7 +1912,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
19121912
});
19131913

19141914
if chan_entry.get().is_shutdown() {
1915-
let channel = remove_channel!(self, channel_state, chan_entry);
1915+
let channel = remove_channel!(self, chan_entry);
19161916
if let Ok(channel_update) = self.get_channel_update_for_broadcast(&channel) {
19171917
channel_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelUpdate {
19181918
msg: channel_update
@@ -2013,7 +2013,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
20132013
} else {
20142014
self.issue_channel_close_events(chan.get(),ClosureReason::HolderForceClosed);
20152015
}
2016-
remove_channel!(self, channel_state, chan)
2016+
remove_channel!(self, chan)
20172017
} else {
20182018
return Err(APIError::ChannelUnavailable{err: "No such channel".to_owned()});
20192019
}
@@ -2514,7 +2514,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
25142514
payment_secret: payment_secret.clone(),
25152515
payment_params: payment_params.clone(),
25162516
}, onion_packet, &self.logger),
2517-
channel_state, chan)
2517+
chan)
25182518
} {
25192519
Some((update_add, commitment_signed, monitor_update)) => {
25202520
let update_err = self.chain_monitor.update_channel(chan.get().get_funding_txo().unwrap(), monitor_update);
@@ -3249,7 +3249,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
32493249
}
32503250
ChannelError::Close(msg) => {
32513251
log_trace!(self.logger, "Closing channel {} due to Close-required error: {}", log_bytes!(chan.key()[..]), msg);
3252-
let mut channel = remove_channel!(self, channel_state, chan);
3252+
let mut channel = remove_channel!(self, chan);
32533253
// ChannelClosed event is generated by handle_error for us.
32543254
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()))
32553255
},
@@ -4453,7 +4453,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
44534453
}
44544454
};
44554455
channel_state.pending_msg_events.push(send_msg_err_event);
4456-
let _ = remove_channel!(self, channel_state, channel);
4456+
let _ = remove_channel!(self, channel);
44574457
return Err(APIError::APIMisuseError { err: "Please use accept_inbound_channel_from_trusted_peer_0conf to accept channels with zero confirmations.".to_owned() });
44584458
}
44594459

@@ -4533,7 +4533,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
45334533
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
45344534
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.temporary_channel_id));
45354535
}
4536-
try_chan_entry!(self, chan.get_mut().accept_channel(&msg, &self.default_configuration.channel_handshake_limits, &their_features), channel_state, chan);
4536+
try_chan_entry!(self, chan.get_mut().accept_channel(&msg, &self.default_configuration.channel_handshake_limits, &their_features), chan);
45374537
(chan.get().get_value_satoshis(), chan.get().get_funding_redeemscript().to_v0_p2wsh(), chan.get().get_user_id())
45384538
},
45394539
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.temporary_channel_id))
@@ -4560,7 +4560,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
45604560
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
45614561
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.temporary_channel_id));
45624562
}
4563-
(try_chan_entry!(self, chan.get_mut().funding_created(msg, best_block, &self.logger), channel_state, chan), chan.remove())
4563+
(try_chan_entry!(self, chan.get_mut().funding_created(msg, best_block, &self.logger), chan), chan.remove())
45644564
},
45654565
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.temporary_channel_id))
45664566
}
@@ -4633,7 +4633,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
46334633
}
46344634
let (monitor, funding_tx, channel_ready) = match chan.get_mut().funding_signed(&msg, best_block, &self.logger) {
46354635
Ok(update) => update,
4636-
Err(e) => try_chan_entry!(self, Err(e), channel_state, chan),
4636+
Err(e) => try_chan_entry!(self, Err(e), chan),
46374637
};
46384638
match self.chain_monitor.watch_channel(chan.get().get_funding_txo().unwrap(), monitor) {
46394639
ChannelMonitorUpdateStatus::Completed => {},
@@ -4672,7 +4672,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
46724672
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
46734673
}
46744674
let announcement_sigs_opt = try_chan_entry!(self, chan.get_mut().channel_ready(&msg, self.get_our_node_id(),
4675-
self.genesis_hash.clone(), &self.best_block.read().unwrap(), &self.logger), channel_state, chan);
4675+
self.genesis_hash.clone(), &self.best_block.read().unwrap(), &self.logger), chan);
46764676
if let Some(announcement_sigs) = announcement_sigs_opt {
46774677
log_trace!(self.logger, "Sending announcement_signatures for channel {}", log_bytes!(chan.get().channel_id()));
46784678
channel_state.pending_msg_events.push(events::MessageSendEvent::SendAnnouncementSignatures {
@@ -4717,7 +4717,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47174717
if chan_entry.get().sent_shutdown() { " after we initiated shutdown" } else { "" });
47184718
}
47194719

4720-
let (shutdown, monitor_update, htlcs) = try_chan_entry!(self, chan_entry.get_mut().shutdown(&self.keys_manager, &their_features, &msg), channel_state, chan_entry);
4720+
let (shutdown, monitor_update, htlcs) = try_chan_entry!(self, chan_entry.get_mut().shutdown(&self.keys_manager, &their_features, &msg), chan_entry);
47214721
dropped_htlcs = htlcs;
47224722

47234723
// Update the monitor with the shutdown script if necessary.
@@ -4726,7 +4726,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47264726
let (result, is_permanent) =
47274727
handle_monitor_update_res!(self, update_res, chan_entry.get_mut(), RAACommitmentOrder::CommitmentFirst, chan_entry.key(), NO_UPDATE);
47284728
if is_permanent {
4729-
remove_channel!(self, channel_state, chan_entry);
4729+
remove_channel!(self, chan_entry);
47304730
break result;
47314731
}
47324732
}
@@ -4761,7 +4761,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47614761
if chan_entry.get().get_counterparty_node_id() != *counterparty_node_id {
47624762
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
47634763
}
4764-
let (closing_signed, tx) = try_chan_entry!(self, chan_entry.get_mut().closing_signed(&self.fee_estimator, &msg), channel_state, chan_entry);
4764+
let (closing_signed, tx) = try_chan_entry!(self, chan_entry.get_mut().closing_signed(&self.fee_estimator, &msg), chan_entry);
47654765
if let Some(msg) = closing_signed {
47664766
channel_state.pending_msg_events.push(events::MessageSendEvent::SendClosingSigned {
47674767
node_id: counterparty_node_id.clone(),
@@ -4774,7 +4774,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
47744774
// also implies there are no pending HTLCs left on the channel, so we can
47754775
// fully delete it from tracking (the channel monitor is still around to
47764776
// watch for old state broadcasts)!
4777-
(tx, Some(remove_channel!(self, channel_state, chan_entry)))
4777+
(tx, Some(remove_channel!(self, chan_entry)))
47784778
} else { (tx, None) }
47794779
},
47804780
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
@@ -4838,7 +4838,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48384838
_ => pending_forward_info
48394839
}
48404840
};
4841-
try_chan_entry!(self, chan.get_mut().update_add_htlc(&msg, pending_forward_info, create_pending_htlc_status, &self.logger), channel_state, chan);
4841+
try_chan_entry!(self, chan.get_mut().update_add_htlc(&msg, pending_forward_info, create_pending_htlc_status, &self.logger), chan);
48424842
},
48434843
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
48444844
}
@@ -4854,7 +4854,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48544854
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
48554855
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
48564856
}
4857-
try_chan_entry!(self, chan.get_mut().update_fulfill_htlc(&msg), channel_state, chan)
4857+
try_chan_entry!(self, chan.get_mut().update_fulfill_htlc(&msg), chan)
48584858
},
48594859
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
48604860
}
@@ -4871,7 +4871,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48714871
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
48724872
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
48734873
}
4874-
try_chan_entry!(self, chan.get_mut().update_fail_htlc(&msg, HTLCFailReason::LightningError { err: msg.reason.clone() }), channel_state, chan);
4874+
try_chan_entry!(self, chan.get_mut().update_fail_htlc(&msg, HTLCFailReason::LightningError { err: msg.reason.clone() }), chan);
48754875
},
48764876
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
48774877
}
@@ -4888,9 +4888,9 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
48884888
}
48894889
if (msg.failure_code & 0x8000) == 0 {
48904890
let chan_err: ChannelError = ChannelError::Close("Got update_fail_malformed_htlc with BADONION not set".to_owned());
4891-
try_chan_entry!(self, Err(chan_err), channel_state, chan);
4891+
try_chan_entry!(self, Err(chan_err), chan);
48924892
}
4893-
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);
4893+
try_chan_entry!(self, chan.get_mut().update_fail_malformed_htlc(&msg, HTLCFailReason::Reason { failure_code: msg.failure_code, data: Vec::new() }), chan);
48944894
Ok(())
48954895
},
48964896
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
@@ -4907,11 +4907,11 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
49074907
}
49084908
let (revoke_and_ack, commitment_signed, monitor_update) =
49094909
match chan.get_mut().commitment_signed(&msg, &self.logger) {
4910-
Err((None, e)) => try_chan_entry!(self, Err(e), channel_state, chan),
4910+
Err((None, e)) => try_chan_entry!(self, Err(e), chan),
49114911
Err((Some(update), e)) => {
49124912
assert!(chan.get().is_awaiting_monitor_update());
49134913
let _ = self.chain_monitor.update_channel(chan.get().get_funding_txo().unwrap(), update);
4914-
try_chan_entry!(self, Err(e), channel_state, chan);
4914+
try_chan_entry!(self, Err(e), chan);
49154915
unreachable!();
49164916
},
49174917
Ok(res) => res
@@ -4994,7 +4994,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
49944994
}
49954995
let was_paused_for_mon_update = chan.get().is_awaiting_monitor_update();
49964996
let raa_updates = break_chan_entry!(self,
4997-
chan.get_mut().revoke_and_ack(&msg, &self.logger), channel_state, chan);
4997+
chan.get_mut().revoke_and_ack(&msg, &self.logger), chan);
49984998
htlcs_to_fail = raa_updates.holding_cell_failed_htlcs;
49994999
let update_res = self.chain_monitor.update_channel(chan.get().get_funding_txo().unwrap(), raa_updates.monitor_update);
50005000
if was_paused_for_mon_update {
@@ -5054,7 +5054,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
50545054
if chan.get().get_counterparty_node_id() != *counterparty_node_id {
50555055
return Err(MsgHandleErrInternal::send_err_msg_no_close("Got a message for a channel from the wrong node!".to_owned(), msg.channel_id));
50565056
}
5057-
try_chan_entry!(self, chan.get_mut().update_fee(&self.fee_estimator, &msg), channel_state, chan);
5057+
try_chan_entry!(self, chan.get_mut().update_fee(&self.fee_estimator, &msg), chan);
50585058
},
50595059
hash_map::Entry::Vacant(_) => return Err(MsgHandleErrInternal::send_err_msg_no_close("Failed to find corresponding channel".to_owned(), msg.channel_id))
50605060
}
@@ -5076,7 +5076,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
50765076

50775077
channel_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
50785078
msg: try_chan_entry!(self, chan.get_mut().announcement_signatures(
5079-
self.get_our_node_id(), self.genesis_hash.clone(), self.best_block.read().unwrap().height(), msg), channel_state, chan),
5079+
self.get_our_node_id(), self.genesis_hash.clone(), self.best_block.read().unwrap().height(), msg), chan),
50805080
// Note that announcement_signatures fails if the channel cannot be announced,
50815081
// so get_channel_update_for_broadcast will never fail by the time we get here.
50825082
update_msg: self.get_channel_update_for_broadcast(chan.get()).unwrap(),
@@ -5115,7 +5115,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
51155115
return Ok(NotifyOption::SkipPersist);
51165116
} else {
51175117
log_debug!(self.logger, "Received channel_update for channel {}.", log_bytes!(chan_id));
5118-
try_chan_entry!(self, chan.get_mut().channel_update(&msg), channel_state, chan);
5118+
try_chan_entry!(self, chan.get_mut().channel_update(&msg), chan);
51195119
}
51205120
},
51215121
hash_map::Entry::Vacant(_) => unreachable!()
@@ -5140,7 +5140,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
51405140
// add-HTLCs on disconnect, we may be handed HTLCs to fail backwards here.
51415141
let responses = try_chan_entry!(self, chan.get_mut().channel_reestablish(
51425142
msg, &self.logger, self.our_network_pubkey.clone(), self.genesis_hash,
5143-
&*self.best_block.read().unwrap()), channel_state, chan);
5143+
&*self.best_block.read().unwrap()), chan);
51445144
let mut channel_update = None;
51455145
if let Some(msg) = responses.shutdown_msg {
51465146
channel_state.pending_msg_events.push(events::MessageSendEvent::SendShutdown {
@@ -5204,7 +5204,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
52045204
let by_id = &mut channel_state.by_id;
52055205
let pending_msg_events = &mut channel_state.pending_msg_events;
52065206
if let hash_map::Entry::Occupied(chan_entry) = by_id.entry(funding_outpoint.to_channel_id()) {
5207-
let mut chan = remove_channel!(self, channel_state, chan_entry);
5207+
let mut chan = remove_channel!(self, chan_entry);
52085208
failed_channels.push(chan.force_shutdown(false));
52095209
if let Ok(update) = self.get_channel_update_for_broadcast(&chan) {
52105210
pending_msg_events.push(events::MessageSendEvent::BroadcastChannelUpdate {

0 commit comments

Comments
 (0)