@@ -22,6 +22,7 @@ use lightning::ln::channelmanager::ChannelManager;
2222use lightning:: ln:: msgs:: { ChannelMessageHandler , OnionMessageHandler , RoutingMessageHandler } ;
2323use lightning:: ln:: peer_handler:: { CustomMessageHandler , PeerManager , SocketDescriptor } ;
2424use lightning:: routing:: gossip:: { NetworkGraph , P2PGossipSync } ;
25+ use lightning:: routing:: router:: Router ;
2526use lightning:: routing:: scoring:: WriteableScore ;
2627use lightning:: util:: events:: { Event , EventHandler , EventsProvider } ;
2728use lightning:: util:: logger:: Logger ;
@@ -342,6 +343,7 @@ pub async fn process_events_async<
342343 T : ' static + Deref + Send + Sync ,
343344 K : ' static + Deref + Send + Sync ,
344345 F : ' static + Deref + Send + Sync ,
346+ R : ' static + Deref + Send + Sync ,
345347 G : ' static + Deref < Target = NetworkGraph < L > > + Send + Sync ,
346348 L : ' static + Deref + Send + Sync ,
347349 P : ' static + Deref + Send + Sync ,
@@ -353,7 +355,7 @@ pub async fn process_events_async<
353355 EventHandler : Fn ( Event ) -> EventHandlerFuture ,
354356 PS : ' static + Deref + Send ,
355357 M : ' static + Deref < Target = ChainMonitor < <K :: Target as KeysInterface >:: Signer , CF , T , F , L , P > > + Send + Sync ,
356- CM : ' static + Deref < Target = ChannelManager < CW , T , K , F , L > > + Send + Sync ,
358+ CM : ' static + Deref < Target = ChannelManager < CW , T , K , F , R , L > > + Send + Sync ,
357359 PGS : ' static + Deref < Target = P2PGossipSync < G , CA , L > > + Send + Sync ,
358360 RGS : ' static + Deref < Target = RapidGossipSync < G , L > > + Send ,
359361 UMH : ' static + Deref + Send + Sync ,
@@ -374,13 +376,14 @@ where
374376 T :: Target : ' static + BroadcasterInterface ,
375377 K :: Target : ' static + KeysInterface ,
376378 F :: Target : ' static + FeeEstimator ,
379+ R :: Target : ' static + Router ,
377380 L :: Target : ' static + Logger ,
378381 P :: Target : ' static + Persist < <K :: Target as KeysInterface >:: Signer > ,
379382 CMH :: Target : ' static + ChannelMessageHandler ,
380383 OMH :: Target : ' static + OnionMessageHandler ,
381384 RMH :: Target : ' static + RoutingMessageHandler ,
382385 UMH :: Target : ' static + CustomMessageHandler ,
383- PS :: Target : ' static + Persister < ' a , CW , T , K , F , L , SC > ,
386+ PS :: Target : ' static + Persister < ' a , CW , T , K , F , R , L , SC > ,
384387{
385388 let mut should_break = true ;
386389 let async_event_handler = |event| {
@@ -460,6 +463,7 @@ impl BackgroundProcessor {
460463 T : ' static + Deref + Send + Sync ,
461464 K : ' static + Deref + Send + Sync ,
462465 F : ' static + Deref + Send + Sync ,
466+ R : ' static + Deref + Send + Sync ,
463467 G : ' static + Deref < Target = NetworkGraph < L > > + Send + Sync ,
464468 L : ' static + Deref + Send + Sync ,
465469 P : ' static + Deref + Send + Sync ,
@@ -470,7 +474,7 @@ impl BackgroundProcessor {
470474 EH : ' static + EventHandler + Send ,
471475 PS : ' static + Deref + Send ,
472476 M : ' static + Deref < Target = ChainMonitor < <K :: Target as KeysInterface >:: Signer , CF , T , F , L , P > > + Send + Sync ,
473- CM : ' static + Deref < Target = ChannelManager < CW , T , K , F , L > > + Send + Sync ,
477+ CM : ' static + Deref < Target = ChannelManager < CW , T , K , F , R , L > > + Send + Sync ,
474478 PGS : ' static + Deref < Target = P2PGossipSync < G , CA , L > > + Send + Sync ,
475479 RGS : ' static + Deref < Target = RapidGossipSync < G , L > > + Send ,
476480 UMH : ' static + Deref + Send + Sync ,
@@ -488,13 +492,14 @@ impl BackgroundProcessor {
488492 T :: Target : ' static + BroadcasterInterface ,
489493 K :: Target : ' static + KeysInterface ,
490494 F :: Target : ' static + FeeEstimator ,
495+ R :: Target : ' static + Router ,
491496 L :: Target : ' static + Logger ,
492497 P :: Target : ' static + Persist < <K :: Target as KeysInterface >:: Signer > ,
493498 CMH :: Target : ' static + ChannelMessageHandler ,
494499 OMH :: Target : ' static + OnionMessageHandler ,
495500 RMH :: Target : ' static + RoutingMessageHandler ,
496501 UMH :: Target : ' static + CustomMessageHandler ,
497- PS :: Target : ' static + Persister < ' a , CW , T , K , F , L , SC > ,
502+ PS :: Target : ' static + Persister < ' a , CW , T , K , F , R , L , SC > ,
498503 {
499504 let stop_thread = Arc :: new ( AtomicBool :: new ( false ) ) ;
500505 let stop_thread_clone = stop_thread. clone ( ) ;
@@ -615,7 +620,7 @@ mod tests {
615620 type RGS = Arc < RapidGossipSync < Arc < NetworkGraph < Arc < test_utils:: TestLogger > > > , Arc < test_utils:: TestLogger > > > ;
616621
617622 struct Node {
618- node : Arc < SimpleArcChannelManager < ChainMonitor , test_utils:: TestBroadcaster , test_utils:: TestFeeEstimator , test_utils:: TestLogger > > ,
623+ node : Arc < SimpleArcChannelManager < ChainMonitor , test_utils:: TestBroadcaster , test_utils:: TestFeeEstimator , test_utils:: TestRouter , test_utils :: TestLogger > > ,
619624 p2p_gossip_sync : PGS ,
620625 rapid_gossip_sync : RGS ,
621626 peer_manager : Arc < PeerManager < TestDescriptor , Arc < test_utils:: TestChannelMessageHandler > , Arc < test_utils:: TestRoutingMessageHandler > , IgnoringMessageHandler , Arc < test_utils:: TestLogger > , IgnoringMessageHandler > > ,
@@ -722,6 +727,7 @@ mod tests {
722727 for i in 0 ..num_nodes {
723728 let tx_broadcaster = Arc :: new ( test_utils:: TestBroadcaster { txn_broadcasted : Mutex :: new ( Vec :: new ( ) ) , blocks : Arc :: new ( Mutex :: new ( Vec :: new ( ) ) ) } ) ;
724729 let fee_estimator = Arc :: new ( test_utils:: TestFeeEstimator { sat_per_kw : Mutex :: new ( 253 ) } ) ;
730+ let router = Arc :: new ( test_utils:: TestRouter { } ) ;
725731 let chain_source = Arc :: new ( test_utils:: TestChainSource :: new ( Network :: Testnet ) ) ;
726732 let logger = Arc :: new ( test_utils:: TestLogger :: with_id ( format ! ( "node {}" , i) ) ) ;
727733 let persister = Arc :: new ( FilesystemPersister :: new ( format ! ( "{}_persister_{}" , persist_dir, i) ) ) ;
@@ -733,7 +739,7 @@ mod tests {
733739 let chain_monitor = Arc :: new ( chainmonitor:: ChainMonitor :: new ( Some ( chain_source. clone ( ) ) , tx_broadcaster. clone ( ) , logger. clone ( ) , fee_estimator. clone ( ) , persister. clone ( ) ) ) ;
734740 let best_block = BestBlock :: from_genesis ( network) ;
735741 let params = ChainParameters { network, best_block } ;
736- let manager = Arc :: new ( ChannelManager :: new ( fee_estimator. clone ( ) , chain_monitor. clone ( ) , tx_broadcaster. clone ( ) , logger. clone ( ) , keys_manager. clone ( ) , UserConfig :: default ( ) , params) ) ;
742+ let manager = Arc :: new ( ChannelManager :: new ( fee_estimator. clone ( ) , chain_monitor. clone ( ) , tx_broadcaster. clone ( ) , router . clone ( ) , logger. clone ( ) , keys_manager. clone ( ) , UserConfig :: default ( ) , params) ) ;
737743 let network_graph = Arc :: new ( NetworkGraph :: new ( genesis_block. header . block_hash ( ) , logger. clone ( ) ) ) ;
738744 let p2p_gossip_sync = Arc :: new ( P2PGossipSync :: new ( network_graph. clone ( ) , Some ( chain_source. clone ( ) ) , logger. clone ( ) ) ) ;
739745 let rapid_gossip_sync = Arc :: new ( RapidGossipSync :: new ( network_graph. clone ( ) ) ) ;
0 commit comments