@@ -506,8 +506,8 @@ where
506506 I : ExactSizeIterator < Item = ForwardNode > ,
507507 T : secp256k1:: Signing + secp256k1:: Verification
508508 > (
509- & self , recipient : PublicKey , context : MessageContext , peers : I ,
510- secp_ctx : & Secp256k1 < T > , compact_paths : bool
509+ network_graph : & G , recipient : PublicKey , context : MessageContext , peers : I ,
510+ entropy_source : & ES , secp_ctx : & Secp256k1 < T > , compact_paths : bool ,
511511 ) -> Result < Vec < BlindedPath > , ( ) > {
512512 // Limit the number of blinded paths that are computed.
513513 const MAX_PATHS : usize = 3 ;
@@ -516,7 +516,7 @@ where
516516 // recipient's node_id.
517517 const MIN_PEER_CHANNELS : usize = 3 ;
518518
519- let network_graph = self . network_graph . deref ( ) . read_only ( ) ;
519+ let network_graph = network_graph. deref ( ) . read_only ( ) ;
520520 let is_recipient_announced =
521521 network_graph. nodes ( ) . contains_key ( & NodeId :: from_pubkey ( & recipient) ) ;
522522
@@ -546,7 +546,7 @@ where
546546
547547 let paths = peer_info. into_iter ( )
548548 . map ( |( peer, _, _) | {
549- BlindedPath :: new_for_message ( & [ peer] , recipient, context. clone ( ) , & * self . entropy_source , secp_ctx)
549+ BlindedPath :: new_for_message ( & [ peer] , recipient, context. clone ( ) , & * * entropy_source, secp_ctx)
550550 } )
551551 . take ( MAX_PATHS )
552552 . collect :: < Result < Vec < _ > , _ > > ( ) ;
@@ -555,7 +555,7 @@ where
555555 Ok ( paths) if !paths. is_empty ( ) => Ok ( paths) ,
556556 _ => {
557557 if is_recipient_announced {
558- BlindedPath :: one_hop_for_message ( recipient, context, & * self . entropy_source , secp_ctx)
558+ BlindedPath :: one_hop_for_message ( recipient, context, & * * entropy_source, secp_ctx)
559559 . map ( |path| vec ! [ path] )
560560 } else {
561561 Err ( ( ) )
@@ -571,17 +571,11 @@ where
571571
572572 Ok ( paths)
573573 }
574- }
575574
576- impl < G : Deref < Target =NetworkGraph < L > > , L : Deref , ES : Deref > MessageRouter for DefaultMessageRouter < G , L , ES >
577- where
578- L :: Target : Logger ,
579- ES :: Target : EntropySource ,
580- {
581- fn find_path (
582- & self , sender : PublicKey , peers : Vec < PublicKey > , mut destination : Destination
575+ pub ( crate ) fn find_path (
576+ network_graph : & G , sender : PublicKey , peers : Vec < PublicKey > , mut destination : Destination
583577 ) -> Result < OnionMessagePath , ( ) > {
584- let network_graph = self . network_graph . deref ( ) . read_only ( ) ;
578+ let network_graph = network_graph. deref ( ) . read_only ( ) ;
585579 destination. resolve ( & network_graph) ;
586580
587581 let first_node = match destination. first_node ( ) {
@@ -611,26 +605,55 @@ where
611605 }
612606 }
613607
614- fn create_blinded_paths <
608+ pub ( crate ) fn create_blinded_paths <
615609 T : secp256k1:: Signing + secp256k1:: Verification
616610 > (
617- & self , recipient : PublicKey , context : MessageContext ,
618- peers : Vec < PublicKey > , secp_ctx : & Secp256k1 < T > ,
611+ network_graph : & G , recipient : PublicKey , context : MessageContext ,
612+ peers : Vec < PublicKey > , entropy_source : & ES , secp_ctx : & Secp256k1 < T > ,
619613 ) -> Result < Vec < BlindedPath > , ( ) > {
620614 let peers = peers
621615 . into_iter ( )
622616 . map ( |node_id| ForwardNode { node_id, short_channel_id : None } ) ;
623- self . create_blinded_paths_from_iter ( recipient, context, peers, secp_ctx, false )
617+ Self :: create_blinded_paths_from_iter ( network_graph, recipient, context, peers. into_iter ( ) , entropy_source, secp_ctx, false )
618+ }
619+
620+ pub ( crate ) fn create_compact_blinded_paths <
621+ T : secp256k1:: Signing + secp256k1:: Verification
622+ > (
623+ network_graph : & G , recipient : PublicKey , context : MessageContext ,
624+ peers : Vec < ForwardNode > , entropy_source : & ES , secp_ctx : & Secp256k1 < T > ,
625+ ) -> Result < Vec < BlindedPath > , ( ) > {
626+ Self :: create_blinded_paths_from_iter ( network_graph, recipient, context, peers. into_iter ( ) , entropy_source, secp_ctx, true )
627+ }
628+ }
629+
630+ impl < G : Deref < Target =NetworkGraph < L > > , L : Deref , ES : Deref > MessageRouter for DefaultMessageRouter < G , L , ES >
631+ where
632+ L :: Target : Logger ,
633+ ES :: Target : EntropySource ,
634+ {
635+ fn find_path (
636+ & self , sender : PublicKey , peers : Vec < PublicKey > , destination : Destination
637+ ) -> Result < OnionMessagePath , ( ) > {
638+ Self :: find_path ( & self . network_graph , sender, peers, destination)
639+ }
640+
641+ fn create_blinded_paths <
642+ T : secp256k1:: Signing + secp256k1:: Verification
643+ > (
644+ & self , recipient : PublicKey , context : MessageContext , peers : Vec < PublicKey > , secp_ctx : & Secp256k1 < T > ,
645+ ) -> Result < Vec < BlindedPath > , ( ) > {
646+ Self :: create_blinded_paths ( & self . network_graph , recipient, context, peers, & self . entropy_source , secp_ctx)
624647 }
625648
626649 fn create_compact_blinded_paths <
627650 T : secp256k1:: Signing + secp256k1:: Verification
628651 > (
629- & self , recipient : PublicKey , context : MessageContext ,
630- peers : Vec < ForwardNode > , secp_ctx : & Secp256k1 < T > ,
652+ & self , recipient : PublicKey , context : MessageContext , peers : Vec < ForwardNode > , secp_ctx : & Secp256k1 < T > ,
631653 ) -> Result < Vec < BlindedPath > , ( ) > {
632- self . create_blinded_paths_from_iter ( recipient, context, peers. into_iter ( ) , secp_ctx , true )
654+ Self :: create_compact_blinded_paths ( & self . network_graph , recipient, context, peers, & self . entropy_source , secp_ctx )
633655 }
656+
634657}
635658
636659/// A path for sending an [`OnionMessage`].
0 commit comments