Skip to content
This repository was archived by the owner on Jan 6, 2025. It is now read-only.

Commit ad3cc2f

Browse files
committed
Use AChannelManaager / APeerManager to simplify types
1 parent 718dd2b commit ad3cc2f

File tree

3 files changed

+104
-387
lines changed

3 files changed

+104
-387
lines changed

src/lsps0/message_handler.rs

Lines changed: 43 additions & 184 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,25 @@ use crate::lsps0::protocol::LSPS0MessageHandler;
1313
use crate::lsps2::channel_manager::JITChannelManager;
1414
use crate::lsps2::msgs::{OpeningFeeParams, RawOpeningFeeParams};
1515

16-
use chrono::Utc;
17-
use lightning::chain::chaininterface::{BroadcasterInterface, FeeEstimator};
1816
use lightning::chain::{self, BestBlock, Confirm, Filter, Listen};
19-
use lightning::ln::channelmanager::{ChainParameters, ChannelManager, InterceptId};
17+
use lightning::ln::channelmanager::{AChannelManager, ChainParameters, InterceptId};
2018
use lightning::ln::features::{InitFeatures, NodeFeatures};
21-
use lightning::ln::msgs::{
22-
ChannelMessageHandler, ErrorAction, LightningError, OnionMessageHandler, RoutingMessageHandler,
23-
};
24-
use lightning::ln::peer_handler::{CustomMessageHandler, PeerManager, SocketDescriptor};
19+
use lightning::ln::msgs::{ErrorAction, LightningError};
20+
use lightning::ln::peer_handler::{APeerManager, CustomMessageHandler};
2521
use lightning::ln::wire::CustomMessageReader;
2622
use lightning::ln::ChannelId;
27-
use lightning::routing::router::Router;
28-
use lightning::sign::{EntropySource, NodeSigner, SignerProvider};
23+
use lightning::sign::EntropySource;
2924
use lightning::util::errors::APIError;
30-
use lightning::util::logger::{Level, Logger};
25+
use lightning::util::logger::Level;
3126
use lightning::util::ser::Readable;
3227

3328
use bitcoin::blockdata::constants::genesis_block;
3429
use bitcoin::secp256k1::PublicKey;
3530
use bitcoin::BlockHash;
3631

32+
#[cfg(lsps1)]
33+
use chrono::Utc;
34+
3735
use std::collections::HashMap;
3836
use std::convert::TryFrom;
3937
use std::ops::Deref;
@@ -108,88 +106,43 @@ pub struct CRChannelConfig {
108106
/// [`Event::ChannelReady`]: lightning::events::Event::ChannelReady
109107
pub struct LiquidityManager<
110108
ES: Deref + Clone,
111-
M: Deref,
112-
T: Deref,
113-
F: Deref,
114-
R: Deref,
115-
SP: Deref,
116-
L: Deref,
117-
Descriptor: SocketDescriptor,
118-
RM: Deref,
119-
CM: Deref,
120-
OM: Deref,
121-
CMH: Deref,
122-
NS: Deref,
123-
C: Deref,
109+
CM: Deref + Clone,
110+
PM: Deref + Clone,
111+
C: Deref + Clone,
124112
> where
125113
ES::Target: EntropySource,
126-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
127-
T::Target: BroadcasterInterface,
128-
F::Target: FeeEstimator,
129-
R::Target: Router,
130-
SP::Target: SignerProvider,
131-
L::Target: Logger,
132-
RM::Target: RoutingMessageHandler,
133-
CM::Target: ChannelMessageHandler,
134-
OM::Target: OnionMessageHandler,
135-
CMH::Target: CustomMessageHandler,
136-
NS::Target: NodeSigner,
114+
CM::Target: AChannelManager,
115+
PM::Target: APeerManager,
137116
C::Target: Filter,
138117
{
139118
pending_messages: Arc<Mutex<Vec<(PublicKey, LSPSMessage)>>>,
140119
pending_events: Arc<EventQueue>,
141120
request_id_to_method_map: Mutex<HashMap<String, String>>,
142121
lsps0_message_handler: LSPS0MessageHandler<ES>,
143122
#[cfg(lsps1)]
144-
lsps1_message_handler:
145-
Option<CRManager<ES, M, T, F, R, SP, Descriptor, L, RM, CM, OM, CMH, NS>>,
146-
lsps2_message_handler:
147-
Option<JITChannelManager<ES, M, T, F, R, SP, Descriptor, L, RM, CM, OM, CMH, NS>>,
123+
lsps1_message_handler: Option<CRManager<ES, CM, PM, C>>,
124+
lsps2_message_handler: Option<JITChannelManager<ES, CM, PM>>,
148125
provider_config: Option<LiquidityProviderConfig>,
149-
channel_manager: Arc<ChannelManager<M, T, ES, NS, SP, F, R, L>>,
126+
channel_manager: CM,
150127
chain_source: Option<C>,
151128
genesis_hash: Option<BlockHash>,
152129
best_block: Option<RwLock<BestBlock>>,
153130
}
154131

155-
impl<
156-
ES: Deref + Clone,
157-
M: Deref,
158-
T: Deref,
159-
F: Deref,
160-
R: Deref,
161-
SP: Deref,
162-
L: Deref,
163-
Descriptor: SocketDescriptor,
164-
RM: Deref,
165-
CM: Deref,
166-
OM: Deref,
167-
CMH: Deref,
168-
NS: Deref,
169-
C: Deref,
170-
> LiquidityManager<ES, M, T, F, R, SP, L, Descriptor, RM, CM, OM, CMH, NS, C>
132+
impl<ES: Deref + Clone, CM: Deref + Clone, PM: Deref + Clone, C: Deref + Clone>
133+
LiquidityManager<ES, CM, PM, C>
171134
where
172135
ES::Target: EntropySource,
173-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
174-
T::Target: BroadcasterInterface,
175-
F::Target: FeeEstimator,
176-
R::Target: Router,
177-
SP::Target: SignerProvider,
178-
L::Target: Logger,
179-
RM::Target: RoutingMessageHandler,
180-
CM::Target: ChannelMessageHandler,
181-
OM::Target: OnionMessageHandler,
182-
CMH::Target: CustomMessageHandler,
183-
NS::Target: NodeSigner,
136+
CM::Target: AChannelManager,
137+
PM::Target: APeerManager,
184138
C::Target: Filter,
185139
{
186140
/// Constructor for the [`LiquidityManager`].
187141
///
188142
/// Sets up the required protocol message handlers based on the given [`LiquidityProviderConfig`].
189143
pub fn new(
190-
entropy_source: ES, provider_config: Option<LiquidityProviderConfig>,
191-
channel_manager: Arc<ChannelManager<M, T, ES, NS, SP, F, R, L>>, chain_source: Option<C>,
192-
chain_params: Option<ChainParameters>,
144+
entropy_source: ES, provider_config: Option<LiquidityProviderConfig>, channel_manager: CM,
145+
chain_source: Option<C>, chain_params: Option<ChainParameters>,
193146
) -> Self
194147
where {
195148
let pending_messages = Arc::new(Mutex::new(vec![]));
@@ -208,7 +161,7 @@ where {
208161
config,
209162
Arc::clone(&pending_messages),
210163
Arc::clone(&pending_events),
211-
Arc::clone(&channel_manager),
164+
channel_manager.clone(),
212165
)
213166
})
214167
});
@@ -221,7 +174,8 @@ where {
221174
lsps1_config,
222175
Arc::clone(&pending_messages),
223176
Arc::clone(&pending_events),
224-
Arc::clone(&channel_manager),
177+
channel_manager.clone(),
178+
chain_source.clone(),
225179
)
226180
})
227181
});
@@ -266,9 +220,8 @@ where {
266220
/// your background processor uses.
267221
///
268222
/// [`PeerManager`]: lightning::ln::peer_handler::PeerManager
269-
pub fn set_peer_manager(
270-
&self, peer_manager: Arc<PeerManager<Descriptor, CM, RM, OM, L, CMH, NS>>,
271-
) {
223+
/// [`PeerManager::process_events`]: lightning::ln::peer_handler::PeerManager::process_events
224+
pub fn set_peer_manager(&self, peer_manager: PM) {
272225
#[cfg(lsps1)]
273226
if let Some(lsps1_message_handler) = &self.lsps1_message_handler {
274227
lsps1_message_handler.set_peer_manager(peer_manager.clone());
@@ -549,36 +502,12 @@ where {
549502
}
550503
}
551504

552-
impl<
553-
ES: Deref + Clone + Clone,
554-
M: Deref,
555-
T: Deref,
556-
F: Deref,
557-
R: Deref,
558-
SP: Deref,
559-
L: Deref,
560-
Descriptor: SocketDescriptor,
561-
RM: Deref,
562-
CM: Deref,
563-
OM: Deref,
564-
CMH: Deref,
565-
NS: Deref,
566-
C: Deref,
567-
> CustomMessageReader
568-
for LiquidityManager<ES, M, T, F, R, SP, L, Descriptor, RM, CM, OM, CMH, NS, C>
505+
impl<ES: Deref + Clone + Clone, CM: Deref + Clone, PM: Deref + Clone, C: Deref + Clone>
506+
CustomMessageReader for LiquidityManager<ES, CM, PM, C>
569507
where
570508
ES::Target: EntropySource,
571-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
572-
T::Target: BroadcasterInterface,
573-
F::Target: FeeEstimator,
574-
R::Target: Router,
575-
SP::Target: SignerProvider,
576-
L::Target: Logger,
577-
RM::Target: RoutingMessageHandler,
578-
CM::Target: ChannelMessageHandler,
579-
OM::Target: OnionMessageHandler,
580-
CMH::Target: CustomMessageHandler,
581-
NS::Target: NodeSigner,
509+
CM::Target: AChannelManager,
510+
PM::Target: APeerManager,
582511
C::Target: Filter,
583512
{
584513
type CustomMessage = RawLSPSMessage;
@@ -593,36 +522,12 @@ where
593522
}
594523
}
595524

596-
impl<
597-
ES: Deref + Clone,
598-
M: Deref,
599-
T: Deref,
600-
F: Deref,
601-
R: Deref,
602-
SP: Deref,
603-
L: Deref,
604-
Descriptor: SocketDescriptor,
605-
RM: Deref,
606-
CM: Deref,
607-
OM: Deref,
608-
CMH: Deref,
609-
NS: Deref,
610-
C: Deref,
611-
> CustomMessageHandler
612-
for LiquidityManager<ES, M, T, F, R, SP, L, Descriptor, RM, CM, OM, CMH, NS, C>
525+
impl<ES: Deref + Clone, CM: Deref + Clone, PM: Deref + Clone, C: Deref + Clone> CustomMessageHandler
526+
for LiquidityManager<ES, CM, PM, C>
613527
where
614528
ES::Target: EntropySource,
615-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
616-
T::Target: BroadcasterInterface,
617-
F::Target: FeeEstimator,
618-
R::Target: Router,
619-
SP::Target: SignerProvider,
620-
L::Target: Logger,
621-
RM::Target: RoutingMessageHandler,
622-
CM::Target: ChannelMessageHandler,
623-
OM::Target: OnionMessageHandler,
624-
CMH::Target: CustomMessageHandler,
625-
NS::Target: NodeSigner,
529+
CM::Target: AChannelManager,
530+
PM::Target: APeerManager,
626531
C::Target: Filter,
627532
{
628533
fn handle_custom_message(
@@ -681,35 +586,12 @@ where
681586
}
682587
}
683588

684-
impl<
685-
ES: Deref + Clone,
686-
M: Deref,
687-
T: Deref,
688-
F: Deref,
689-
R: Deref,
690-
SP: Deref,
691-
L: Deref,
692-
Descriptor: SocketDescriptor,
693-
RM: Deref,
694-
CM: Deref,
695-
OM: Deref,
696-
CMH: Deref,
697-
NS: Deref,
698-
C: Deref,
699-
> Listen for LiquidityManager<ES, M, T, F, R, SP, L, Descriptor, RM, CM, OM, CMH, NS, C>
589+
impl<ES: Deref + Clone, CM: Deref + Clone, PM: Deref + Clone, C: Deref + Clone> Listen
590+
for LiquidityManager<ES, CM, PM, C>
700591
where
701592
ES::Target: EntropySource,
702-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
703-
T::Target: BroadcasterInterface,
704-
F::Target: FeeEstimator,
705-
R::Target: Router,
706-
SP::Target: SignerProvider,
707-
L::Target: Logger,
708-
RM::Target: RoutingMessageHandler,
709-
CM::Target: ChannelMessageHandler,
710-
OM::Target: OnionMessageHandler,
711-
CMH::Target: CustomMessageHandler,
712-
NS::Target: NodeSigner,
593+
CM::Target: AChannelManager,
594+
PM::Target: APeerManager,
713595
C::Target: Filter,
714596
{
715597
fn filtered_block_connected(
@@ -745,35 +627,12 @@ where
745627
}
746628
}
747629

748-
impl<
749-
ES: Deref + Clone,
750-
M: Deref,
751-
T: Deref,
752-
F: Deref,
753-
R: Deref,
754-
SP: Deref,
755-
L: Deref,
756-
Descriptor: SocketDescriptor,
757-
RM: Deref,
758-
CM: Deref,
759-
OM: Deref,
760-
CMH: Deref,
761-
NS: Deref,
762-
C: Deref,
763-
> Confirm for LiquidityManager<ES, M, T, F, R, SP, L, Descriptor, RM, CM, OM, CMH, NS, C>
630+
impl<ES: Deref + Clone, CM: Deref + Clone, PM: Deref + Clone, C: Deref + Clone> Confirm
631+
for LiquidityManager<ES, CM, PM, C>
764632
where
765633
ES::Target: EntropySource,
766-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
767-
T::Target: BroadcasterInterface,
768-
F::Target: FeeEstimator,
769-
R::Target: Router,
770-
SP::Target: SignerProvider,
771-
L::Target: Logger,
772-
RM::Target: RoutingMessageHandler,
773-
CM::Target: ChannelMessageHandler,
774-
OM::Target: OnionMessageHandler,
775-
CMH::Target: CustomMessageHandler,
776-
NS::Target: NodeSigner,
634+
CM::Target: AChannelManager,
635+
PM::Target: APeerManager,
777636
C::Target: Filter,
778637
{
779638
fn transactions_confirmed(

0 commit comments

Comments
 (0)