@@ -16,14 +16,14 @@ use crate::chain::transaction::OutPoint;
1616use crate :: ln:: { PaymentPreimage , PaymentHash , PaymentSecret } ;
1717use crate :: ln:: channelmanager:: { ChainParameters , ChannelManager , ChannelManagerReadArgs , RAACommitmentOrder , PaymentSendFailure , PaymentId , MIN_CLTV_EXPIRY_DELTA } ;
1818use crate :: routing:: gossip:: { P2PGossipSync , NetworkGraph , NetworkUpdate } ;
19- use crate :: routing:: router:: { PaymentParameters , Route , get_route } ;
19+ use crate :: routing:: router:: { self , PaymentParameters , Route } ;
2020use crate :: ln:: features:: InitFeatures ;
2121use crate :: ln:: msgs;
2222use crate :: ln:: msgs:: { ChannelMessageHandler , RoutingMessageHandler } ;
2323use crate :: util:: enforcing_trait_impls:: EnforcingSigner ;
2424use crate :: util:: scid_utils;
2525use crate :: util:: test_utils;
26- use crate :: util:: test_utils:: { panicking, TestChainMonitor } ;
26+ use crate :: util:: test_utils:: { panicking, TestChainMonitor , TestScorer , TestKeysInterface } ;
2727use crate :: util:: events:: { Event , HTLCDestination , MessageSendEvent , MessageSendEventsProvider , PathFailure , PaymentPurpose } ;
2828use crate :: util:: errors:: APIError ;
2929use crate :: util:: config:: UserConfig ;
@@ -1583,19 +1583,26 @@ macro_rules! get_payment_preimage_hash {
15831583 } ;
15841584}
15851585
1586+ /// Gets a route from the given sender to the node described in `payment_params`.
1587+ pub fn get_route ( send_node : & Node , payment_params : & PaymentParameters , recv_value : u64 , final_cltv_expiry_delta : u32 ) -> Result < Route , msgs:: LightningError > {
1588+ let scorer = TestScorer :: new ( ) ;
1589+ let keys_manager = TestKeysInterface :: new ( & [ 0u8 ; 32 ] , bitcoin:: network:: constants:: Network :: Testnet ) ;
1590+ let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
1591+ router:: get_route (
1592+ & send_node. node . get_our_node_id ( ) , payment_params, & send_node. network_graph . read_only ( ) ,
1593+ Some ( & send_node. node . list_usable_channels ( ) . iter ( ) . collect :: < Vec < _ > > ( ) ) ,
1594+ recv_value, final_cltv_expiry_delta, send_node. logger , & scorer, & random_seed_bytes
1595+ )
1596+ }
1597+
1598+ /// Gets a route from the given sender to the node described in `payment_params`.
1599+ ///
1600+ /// Don't use this, use the identically-named function instead.
15861601#[ macro_export]
15871602macro_rules! get_route {
1588- ( $send_node: expr, $payment_params: expr, $recv_value: expr, $cltv: expr) => { {
1589- use $crate:: chain:: keysinterface:: EntropySource ;
1590- let scorer = $crate:: util:: test_utils:: TestScorer :: new( ) ;
1591- let keys_manager = $crate:: util:: test_utils:: TestKeysInterface :: new( & [ 0u8 ; 32 ] , bitcoin:: network:: constants:: Network :: Testnet ) ;
1592- let random_seed_bytes = keys_manager. get_secure_random_bytes( ) ;
1593- $crate:: routing:: router:: get_route(
1594- & $send_node. node. get_our_node_id( ) , & $payment_params, & $send_node. network_graph. read_only( ) ,
1595- Some ( & $send_node. node. list_usable_channels( ) . iter( ) . collect:: <Vec <_>>( ) ) ,
1596- $recv_value, $cltv, $send_node. logger, & scorer, & random_seed_bytes
1597- )
1598- } }
1603+ ( $send_node: expr, $payment_params: expr, $recv_value: expr, $cltv: expr) => {
1604+ $crate:: ln:: functional_test_utils:: get_route( & $send_node, & $payment_params, $recv_value, $cltv)
1605+ }
15991606}
16001607
16011608#[ cfg( test) ]
@@ -1609,7 +1616,7 @@ macro_rules! get_route_and_payment_hash {
16091616 ( $send_node: expr, $recv_node: expr, $payment_params: expr, $recv_value: expr, $cltv: expr) => { {
16101617 let ( payment_preimage, payment_hash, payment_secret) =
16111618 $crate:: ln:: functional_test_utils:: get_payment_preimage_hash( & $recv_node, Some ( $recv_value) , None ) ;
1612- let route = $crate:: get_route! ( $send_node, $payment_params, $recv_value, $cltv) ;
1619+ let route = $crate:: ln :: functional_test_utils :: get_route( & $send_node, & $payment_params, $recv_value, $cltv) ;
16131620 ( route. unwrap( ) , payment_hash, payment_preimage, payment_secret)
16141621 } }
16151622}
@@ -2123,7 +2130,7 @@ pub const TEST_FINAL_CLTV: u32 = 70;
21232130pub fn route_payment < ' a , ' b , ' c > ( origin_node : & Node < ' a , ' b , ' c > , expected_route : & [ & Node < ' a , ' b , ' c > ] , recv_value : u64 ) -> ( PaymentPreimage , PaymentHash , PaymentSecret ) {
21242131 let payment_params = PaymentParameters :: from_node_id ( expected_route. last ( ) . unwrap ( ) . node . get_our_node_id ( ) , TEST_FINAL_CLTV )
21252132 . with_features ( expected_route. last ( ) . unwrap ( ) . node . invoice_features ( ) ) ;
2126- let route = get_route ! ( origin_node, payment_params, recv_value, TEST_FINAL_CLTV ) . unwrap ( ) ;
2133+ let route = get_route ( origin_node, & payment_params, recv_value, TEST_FINAL_CLTV ) . unwrap ( ) ;
21272134 assert_eq ! ( route. paths. len( ) , 1 ) ;
21282135 assert_eq ! ( route. paths[ 0 ] . len( ) , expected_route. len( ) ) ;
21292136 for ( node, hop) in expected_route. iter ( ) . zip ( route. paths [ 0 ] . iter ( ) ) {
@@ -2142,7 +2149,7 @@ pub fn route_over_limit<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_rou
21422149 let seed = [ 0u8 ; 32 ] ;
21432150 let keys_manager = test_utils:: TestKeysInterface :: new ( & seed, Network :: Testnet ) ;
21442151 let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
2145- let route = get_route (
2152+ let route = router :: get_route (
21462153 & origin_node. node . get_our_node_id ( ) , & payment_params, & network_graph,
21472154 None , recv_value, TEST_FINAL_CLTV , origin_node. logger , & scorer, & random_seed_bytes) . unwrap ( ) ;
21482155 assert_eq ! ( route. paths. len( ) , 1 ) ;
0 commit comments