Skip to content

Commit 2db9c6e

Browse files
committed
Account for new ChannelId type
1 parent a33e59c commit 2db9c6e

File tree

4 files changed

+21
-52
lines changed

4 files changed

+21
-52
lines changed

src/event.rs

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use crate::{
2-
hex_utils, ChannelId, ChannelManager, Config, Error, KeysManager, NetworkGraph, UserChannelId,
3-
Wallet,
2+
hex_utils, ChannelManager, Config, Error, KeysManager, NetworkGraph, UserChannelId, Wallet,
43
};
54

65
use crate::payment_store::{
@@ -17,7 +16,7 @@ use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget,
1716
use lightning::events::Event as LdkEvent;
1817
use lightning::events::PaymentPurpose;
1918
use lightning::impl_writeable_tlv_based_enum;
20-
use lightning::ln::PaymentHash;
19+
use lightning::ln::{ChannelId, PaymentHash};
2120
use lightning::routing::gossip::NodeId;
2221
use lightning::util::errors::APIError;
2322
use lightning::util::persist::KVStore;
@@ -573,7 +572,7 @@ where
573572
});
574573
}
575574
}
576-
LdkEvent::SpendableOutputs { outputs } => {
575+
LdkEvent::SpendableOutputs { outputs, channel_id: _ } => {
577576
// TODO: We should eventually remember the outputs and supply them to the wallet's coin selection, once BDK allows us to do so.
578577
let destination_address = self.wallet.get_new_address().unwrap_or_else(|e| {
579578
log_error!(self.logger, "Failed to get destination address: {}", e);
@@ -664,7 +663,7 @@ where
664663
let nodes = read_only_network_graph.nodes();
665664
let channels = self.channel_manager.list_channels();
666665

667-
let node_str = |channel_id: &Option<[u8; 32]>| {
666+
let node_str = |channel_id: &Option<ChannelId>| {
668667
channel_id
669668
.and_then(|channel_id| channels.iter().find(|c| c.channel_id == channel_id))
670669
.and_then(|channel| {
@@ -678,11 +677,9 @@ where
678677
})
679678
})
680679
};
681-
let channel_str = |channel_id: &Option<[u8; 32]>| {
680+
let channel_str = |channel_id: &Option<ChannelId>| {
682681
channel_id
683-
.map(|channel_id| {
684-
format!(" with channel {}", hex_utils::to_string(&channel_id))
685-
})
682+
.map(|channel_id| format!(" with channel {}", channel_id))
686683
.unwrap_or_default()
687684
};
688685
let from_prev_str = format!(
@@ -725,16 +722,14 @@ where
725722
log_info!(
726723
self.logger,
727724
"New channel {} with counterparty {} has been created and is pending confirmation on chain.",
728-
hex_utils::to_string(&channel_id),
725+
channel_id,
729726
counterparty_node_id,
730727
);
731728
self.event_queue
732729
.add_event(Event::ChannelPending {
733-
channel_id: ChannelId(channel_id),
730+
channel_id,
734731
user_channel_id: UserChannelId(user_channel_id),
735-
former_temporary_channel_id: ChannelId(
736-
former_temporary_channel_id.unwrap(),
737-
),
732+
former_temporary_channel_id: former_temporary_channel_id.unwrap(),
738733
counterparty_node_id,
739734
funding_txo,
740735
})
@@ -749,12 +744,12 @@ where
749744
log_info!(
750745
self.logger,
751746
"Channel {} with counterparty {} ready to be used.",
752-
hex_utils::to_string(&channel_id),
747+
channel_id,
753748
counterparty_node_id,
754749
);
755750
self.event_queue
756751
.add_event(Event::ChannelReady {
757-
channel_id: ChannelId(channel_id),
752+
channel_id,
758753
user_channel_id: UserChannelId(user_channel_id),
759754
counterparty_node_id: Some(counterparty_node_id),
760755
})
@@ -770,15 +765,10 @@ where
770765
counterparty_node_id,
771766
..
772767
} => {
773-
log_info!(
774-
self.logger,
775-
"Channel {} closed due to: {:?}",
776-
hex_utils::to_string(&channel_id),
777-
reason
778-
);
768+
log_info!(self.logger, "Channel {} closed due to: {:?}", channel_id, reason);
779769
self.event_queue
780770
.add_event(Event::ChannelClosed {
781-
channel_id: ChannelId(channel_id),
771+
channel_id,
782772
user_channel_id: UserChannelId(user_channel_id),
783773
counterparty_node_id,
784774
})

src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,14 @@ use payment_store::PaymentStore;
119119
pub use payment_store::{PaymentDetails, PaymentDirection, PaymentStatus};
120120
use peer_store::{PeerInfo, PeerStore};
121121
use types::{ChainMonitor, ChannelManager, KeysManager, NetworkGraph, PeerManager, Router, Scorer};
122-
pub use types::{ChannelDetails, ChannelId, PeerDetails, UserChannelId};
122+
pub use types::{ChannelDetails, PeerDetails, UserChannelId};
123123
use wallet::Wallet;
124124

125125
use logger::{log_debug, log_error, log_info, log_trace, FilesystemLogger, Logger};
126126

127127
use lightning::chain::Confirm;
128128
use lightning::ln::channelmanager::{self, PaymentId, RecipientOnionFields, Retry};
129-
use lightning::ln::{PaymentHash, PaymentPreimage};
129+
use lightning::ln::{ChannelId, PaymentHash, PaymentPreimage};
130130
use lightning::sign::EntropySource;
131131

132132
use lightning::util::persist::KVStore;
@@ -1032,7 +1032,7 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
10321032
&self, channel_id: &ChannelId, counterparty_node_id: PublicKey,
10331033
) -> Result<(), Error> {
10341034
self.peer_store.remove_peer(&counterparty_node_id)?;
1035-
match self.channel_manager.close_channel(&channel_id.0, &counterparty_node_id) {
1035+
match self.channel_manager.close_channel(&channel_id, &counterparty_node_id) {
10361036
Ok(_) => Ok(()),
10371037
Err(_) => Err(Error::ChannelClosingFailed),
10381038
}
@@ -1046,7 +1046,7 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
10461046
self.channel_manager
10471047
.update_channel_config(
10481048
&counterparty_node_id,
1049-
&[channel_id.0],
1049+
&[*channel_id],
10501050
&(*channel_config).clone().into(),
10511051
)
10521052
.map_err(|_| Error::ChannelConfigUpdateFailed)

src/types.rs

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use lightning::ln::channelmanager::ChannelDetails as LdkChannelDetails;
66
use lightning::ln::msgs::RoutingMessageHandler;
77
use lightning::ln::msgs::SocketAddress as LdkSocketAddress;
88
use lightning::ln::peer_handler::IgnoringMessageHandler;
9+
use lightning::ln::ChannelId;
910
use lightning::routing::gossip;
1011
use lightning::routing::router::DefaultRouter;
1112
use lightning::routing::scoring::{ProbabilisticScorer, ProbabilisticScoringFeeParameters};
@@ -106,28 +107,6 @@ impl lightning::onion_message::MessageRouter for FakeMessageRouter {
106107
}
107108
}
108109

109-
/// The global identifier of a channel.
110-
///
111-
/// Note that this will start out to be a temporary ID until channel funding negotiation is
112-
/// finalized, at which point it will change to be a permanent global ID tied to the on-chain
113-
/// funding transaction.
114-
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
115-
pub struct ChannelId(pub [u8; 32]);
116-
117-
impl Writeable for ChannelId {
118-
fn write<W: Writer>(&self, writer: &mut W) -> Result<(), lightning::io::Error> {
119-
Ok(self.0.write(writer)?)
120-
}
121-
}
122-
123-
impl Readable for ChannelId {
124-
fn read<R: lightning::io::Read>(
125-
reader: &mut R,
126-
) -> Result<Self, lightning::ln::msgs::DecodeError> {
127-
Ok(Self(Readable::read(reader)?))
128-
}
129-
}
130-
131110
/// A local, potentially user-provided, identifier of a channel.
132111
///
133112
/// By default, this will be randomly generated for the user to ensure local uniqueness.
@@ -224,7 +203,7 @@ pub struct ChannelDetails {
224203
impl From<LdkChannelDetails> for ChannelDetails {
225204
fn from(value: LdkChannelDetails) -> Self {
226205
ChannelDetails {
227-
channel_id: ChannelId(value.channel_id),
206+
channel_id: value.channel_id,
228207
counterparty_node_id: value.counterparty.node_id,
229208
funding_txo: value.funding_txo.and_then(|o| Some(o.into_bitcoin_outpoint())),
230209
channel_value_sats: value.channel_value_satoshis,

src/uniffi_types.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ use crate::UniffiCustomTypeConverter;
33
use crate::error::Error;
44
use crate::hex_utils;
55
use crate::io::SqliteStore;
6-
use crate::{ChannelId, Node, SocketAddress, UserChannelId};
6+
use crate::{Node, SocketAddress, UserChannelId};
77

88
use bitcoin::hashes::sha256::Hash as Sha256;
99
use bitcoin::hashes::Hash;
1010
use bitcoin::secp256k1::PublicKey;
1111
use bitcoin::{Address, Txid};
12-
use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
12+
use lightning::ln::{ChannelId, PaymentHash, PaymentPreimage, PaymentSecret};
1313
use lightning_invoice::{Bolt11Invoice, SignedRawBolt11Invoice};
1414

1515
use bip39::Mnemonic;

0 commit comments

Comments
 (0)