@@ -13,27 +13,25 @@ use crate::lsps0::protocol::LSPS0MessageHandler;
1313use crate :: lsps2:: channel_manager:: JITChannelManager ;
1414use crate :: lsps2:: msgs:: { OpeningFeeParams , RawOpeningFeeParams } ;
1515
16- use chrono:: Utc ;
17- use lightning:: chain:: chaininterface:: { BroadcasterInterface , FeeEstimator } ;
1816use lightning:: chain:: { self , BestBlock , Confirm , Filter , Listen } ;
19- use lightning:: ln:: channelmanager:: { ChainParameters , ChannelManager , InterceptId } ;
17+ use lightning:: ln:: channelmanager:: { AChannelManager , ChainParameters , InterceptId } ;
2018use 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 } ;
2521use lightning:: ln:: wire:: CustomMessageReader ;
2622use lightning:: ln:: ChannelId ;
27- use lightning:: routing:: router:: Router ;
28- use lightning:: sign:: { EntropySource , NodeSigner , SignerProvider } ;
23+ use lightning:: sign:: EntropySource ;
2924use lightning:: util:: errors:: APIError ;
30- use lightning:: util:: logger:: { Level , Logger } ;
25+ use lightning:: util:: logger:: Level ;
3126use lightning:: util:: ser:: Readable ;
3227
3328use bitcoin:: blockdata:: constants:: genesis_block;
3429use bitcoin:: secp256k1:: PublicKey ;
3530use bitcoin:: BlockHash ;
3631
32+ #[ cfg( lsps1) ]
33+ use chrono:: Utc ;
34+
3735use std:: collections:: HashMap ;
3836use std:: convert:: TryFrom ;
3937use std:: ops:: Deref ;
@@ -108,88 +106,43 @@ pub struct CRChannelConfig {
108106/// [`Event::ChannelReady`]: lightning::events::Event::ChannelReady
109107pub 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 >
171134where
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
194147where {
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 >
569507where
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 >
613527where
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 >
700591where
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 >
764632where
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