From 6a79eece219858524b733953b96111b5061f8214 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Wed, 5 May 2021 16:15:11 +0000 Subject: [PATCH] Indiciate if a channel is outbound/confirmed in ChannelDetails --- fuzz/src/router.rs | 2 ++ lightning/src/ln/channelmanager.rs | 14 +++++++++++++- lightning/src/routing/router.rs | 7 +++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/fuzz/src/router.rs b/fuzz/src/router.rs index 42c97f4e4..585ae9b35 100644 --- a/fuzz/src/router.rs +++ b/fuzz/src/router.rs @@ -213,6 +213,8 @@ pub fn do_test(data: &[u8], out: Out) { channel_value_satoshis: slice_to_be64(get_slice!(8)), user_id: 0, inbound_capacity_msat: 0, + is_outbound: true, + is_funding_locked: true, is_live: true, is_public: true, outbound_capacity_msat: 0, diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index 8c9c702b7..a970c52de 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -634,8 +634,18 @@ pub struct ChannelDetails { /// Note that there are some corner cases not fully handled here, so the actual available /// inbound capacity may be slightly higher than this. pub inbound_capacity_msat: u64, + /// True if the channel was initiated (and thus funded) by us. + pub is_outbound: bool, + /// True if the channel is confirmed, funding_locked messages have been exchanged, and the + /// channel is not currently being shut down. `funding_locked` message exchange implies the + /// required confirmation count has been reached (and we were connected to the peer at some + /// point after the funding transaction received enough confirmations). + pub is_funding_locked: bool, /// True if the channel is (a) confirmed and funding_locked messages have been exchanged, (b) - /// the peer is connected, and (c) no monitor update failure is pending resolution. + /// the peer is connected, (c) no monitor update failure is pending resolution, and (d) the + /// channel is not currently negotiating a shutdown. + /// + /// This is a strict superset of `is_funding_locked`. pub is_live: bool, /// True if this channel is (or will be) publicly-announced. pub is_public: bool, @@ -969,6 +979,8 @@ impl ChannelMana inbound_capacity_msat, outbound_capacity_msat, user_id: channel.get_user_id(), + is_outbound: channel.is_outbound(), + is_funding_locked: channel.is_usable(), is_live: channel.is_live(), is_public: channel.should_announce(), counterparty_forwarding_info: channel.counterparty_forwarding_info(), diff --git a/lightning/src/routing/router.rs b/lightning/src/routing/router.rs index 795780f48..87214b8f5 100644 --- a/lightning/src/routing/router.rs +++ b/lightning/src/routing/router.rs @@ -1634,6 +1634,7 @@ mod tests { user_id: 0, outbound_capacity_msat: 100000, inbound_capacity_msat: 100000, + is_outbound: true, is_funding_locked: true, is_live: true, is_public: true, counterparty_forwarding_info: None, }]; @@ -1953,6 +1954,7 @@ mod tests { user_id: 0, outbound_capacity_msat: 250_000_000, inbound_capacity_msat: 0, + is_outbound: true, is_funding_locked: true, is_live: true, is_public: true, counterparty_forwarding_info: None, }]; @@ -2002,6 +2004,7 @@ mod tests { user_id: 0, outbound_capacity_msat: 250_000_000, inbound_capacity_msat: 0, + is_outbound: true, is_funding_locked: true, is_live: true, is_public: true, counterparty_forwarding_info: None, }]; @@ -2068,6 +2071,7 @@ mod tests { user_id: 0, outbound_capacity_msat: 250_000_000, inbound_capacity_msat: 0, + is_outbound: true, is_funding_locked: true, is_live: true, is_public: true, counterparty_forwarding_info: None, }]; @@ -2206,6 +2210,7 @@ mod tests { user_id: 0, outbound_capacity_msat: 250_000_000, inbound_capacity_msat: 0, + is_outbound: true, is_funding_locked: true, is_live: true, is_public: true, counterparty_forwarding_info: None, }]; @@ -2336,6 +2341,7 @@ mod tests { user_id: 0, outbound_capacity_msat: 100000, inbound_capacity_msat: 100000, + is_outbound: true, is_funding_locked: true, is_live: true, is_public: true, counterparty_forwarding_info: None, }]; @@ -2469,6 +2475,7 @@ mod tests { user_id: 0, outbound_capacity_msat: 200_000_000, inbound_capacity_msat: 0, + is_outbound: true, is_funding_locked: true, is_live: true, is_public: true, counterparty_forwarding_info: None, }]; -- 2.39.5