@@ -13,27 +13,25 @@ use crate::lsps0::protocol::LSPS0MessageHandler;
13
13
use crate :: lsps2:: channel_manager:: JITChannelManager ;
14
14
use crate :: lsps2:: msgs:: { OpeningFeeParams , RawOpeningFeeParams } ;
15
15
16
- use chrono:: Utc ;
17
- use lightning:: chain:: chaininterface:: { BroadcasterInterface , FeeEstimator } ;
18
16
use lightning:: chain:: { self , BestBlock , Confirm , Filter , Listen } ;
19
- use lightning:: ln:: channelmanager:: { ChainParameters , ChannelManager , InterceptId } ;
17
+ use lightning:: ln:: channelmanager:: { AChannelManager , ChainParameters , InterceptId } ;
20
18
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 } ;
25
21
use lightning:: ln:: wire:: CustomMessageReader ;
26
22
use lightning:: ln:: ChannelId ;
27
- use lightning:: routing:: router:: Router ;
28
- use lightning:: sign:: { EntropySource , NodeSigner , SignerProvider } ;
23
+ use lightning:: sign:: EntropySource ;
29
24
use lightning:: util:: errors:: APIError ;
30
- use lightning:: util:: logger:: { Level , Logger } ;
25
+ use lightning:: util:: logger:: Level ;
31
26
use lightning:: util:: ser:: Readable ;
32
27
33
28
use bitcoin:: blockdata:: constants:: genesis_block;
34
29
use bitcoin:: secp256k1:: PublicKey ;
35
30
use bitcoin:: BlockHash ;
36
31
32
+ #[ cfg( lsps1) ]
33
+ use chrono:: Utc ;
34
+
37
35
use std:: collections:: HashMap ;
38
36
use std:: convert:: TryFrom ;
39
37
use std:: ops:: Deref ;
@@ -108,88 +106,43 @@ pub struct CRChannelConfig {
108
106
/// [`Event::ChannelReady`]: lightning::events::Event::ChannelReady
109
107
pub struct LiquidityManager <
110
108
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 ,
124
112
> where
125
113
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 ,
137
116
C :: Target : Filter ,
138
117
{
139
118
pending_messages : Arc < Mutex < Vec < ( PublicKey , LSPSMessage ) > > > ,
140
119
pending_events : Arc < EventQueue > ,
141
120
request_id_to_method_map : Mutex < HashMap < String , String > > ,
142
121
lsps0_message_handler : LSPS0MessageHandler < ES > ,
143
122
#[ 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 > > ,
148
125
provider_config : Option < LiquidityProviderConfig > ,
149
- channel_manager : Arc < ChannelManager < M , T , ES , NS , SP , F , R , L > > ,
126
+ channel_manager : CM ,
150
127
chain_source : Option < C > ,
151
128
genesis_hash : Option < BlockHash > ,
152
129
best_block : Option < RwLock < BestBlock > > ,
153
130
}
154
131
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 >
171
134
where
172
135
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 ,
184
138
C :: Target : Filter ,
185
139
{
186
140
/// Constructor for the [`LiquidityManager`].
187
141
///
188
142
/// Sets up the required protocol message handlers based on the given [`LiquidityProviderConfig`].
189
143
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 > ,
193
146
) -> Self
194
147
where {
195
148
let pending_messages = Arc :: new ( Mutex :: new ( vec ! [ ] ) ) ;
@@ -208,7 +161,7 @@ where {
208
161
config,
209
162
Arc :: clone ( & pending_messages) ,
210
163
Arc :: clone ( & pending_events) ,
211
- Arc :: clone ( & channel_manager ) ,
164
+ channel_manager . clone ( ) ,
212
165
)
213
166
} )
214
167
} ) ;
@@ -221,7 +174,8 @@ where {
221
174
lsps1_config,
222
175
Arc :: clone ( & pending_messages) ,
223
176
Arc :: clone ( & pending_events) ,
224
- Arc :: clone ( & channel_manager) ,
177
+ channel_manager. clone ( ) ,
178
+ chain_source. clone ( ) ,
225
179
)
226
180
} )
227
181
} ) ;
@@ -266,9 +220,8 @@ where {
266
220
/// your background processor uses.
267
221
///
268
222
/// [`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 ) {
272
225
#[ cfg( lsps1) ]
273
226
if let Some ( lsps1_message_handler) = & self . lsps1_message_handler {
274
227
lsps1_message_handler. set_peer_manager ( peer_manager. clone ( ) ) ;
@@ -549,36 +502,12 @@ where {
549
502
}
550
503
}
551
504
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 >
569
507
where
570
508
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 ,
582
511
C :: Target : Filter ,
583
512
{
584
513
type CustomMessage = RawLSPSMessage ;
@@ -593,36 +522,12 @@ where
593
522
}
594
523
}
595
524
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 >
613
527
where
614
528
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 ,
626
531
C :: Target : Filter ,
627
532
{
628
533
fn handle_custom_message (
@@ -681,35 +586,12 @@ where
681
586
}
682
587
}
683
588
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 >
700
591
where
701
592
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 ,
713
595
C :: Target : Filter ,
714
596
{
715
597
fn filtered_block_connected (
@@ -745,35 +627,12 @@ where
745
627
}
746
628
}
747
629
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 >
764
632
where
765
633
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 ,
777
636
C :: Target : Filter ,
778
637
{
779
638
fn transactions_confirmed (
0 commit comments