@@ -16,14 +16,14 @@ use crate::chain::transaction::OutPoint;
16
16
use crate :: ln:: { PaymentPreimage , PaymentHash , PaymentSecret } ;
17
17
use crate :: ln:: channelmanager:: { ChainParameters , ChannelManager , ChannelManagerReadArgs , RAACommitmentOrder , PaymentSendFailure , PaymentId , MIN_CLTV_EXPIRY_DELTA } ;
18
18
use crate :: routing:: gossip:: { P2PGossipSync , NetworkGraph , NetworkUpdate } ;
19
- use crate :: routing:: router:: { PaymentParameters , Route , get_route } ;
19
+ use crate :: routing:: router:: { self , PaymentParameters , Route } ;
20
20
use crate :: ln:: features:: InitFeatures ;
21
21
use crate :: ln:: msgs;
22
22
use crate :: ln:: msgs:: { ChannelMessageHandler , RoutingMessageHandler } ;
23
23
use crate :: util:: enforcing_trait_impls:: EnforcingSigner ;
24
24
use crate :: util:: scid_utils;
25
25
use crate :: util:: test_utils;
26
- use crate :: util:: test_utils:: { panicking, TestChainMonitor } ;
26
+ use crate :: util:: test_utils:: { panicking, TestChainMonitor , TestScorer , TestKeysInterface } ;
27
27
use crate :: util:: events:: { Event , HTLCDestination , MessageSendEvent , MessageSendEventsProvider , PathFailure , PaymentPurpose } ;
28
28
use crate :: util:: errors:: APIError ;
29
29
use crate :: util:: config:: UserConfig ;
@@ -1583,19 +1583,26 @@ macro_rules! get_payment_preimage_hash {
1583
1583
} ;
1584
1584
}
1585
1585
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.
1586
1601
#[ macro_export]
1587
1602
macro_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
+ }
1599
1606
}
1600
1607
1601
1608
#[ cfg( test) ]
@@ -1609,7 +1616,7 @@ macro_rules! get_route_and_payment_hash {
1609
1616
( $send_node: expr, $recv_node: expr, $payment_params: expr, $recv_value: expr, $cltv: expr) => { {
1610
1617
let ( payment_preimage, payment_hash, payment_secret) =
1611
1618
$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) ;
1613
1620
( route. unwrap( ) , payment_hash, payment_preimage, payment_secret)
1614
1621
} }
1615
1622
}
@@ -2123,7 +2130,7 @@ pub const TEST_FINAL_CLTV: u32 = 70;
2123
2130
pub fn route_payment < ' a , ' b , ' c > ( origin_node : & Node < ' a , ' b , ' c > , expected_route : & [ & Node < ' a , ' b , ' c > ] , recv_value : u64 ) -> ( PaymentPreimage , PaymentHash , PaymentSecret ) {
2124
2131
let payment_params = PaymentParameters :: from_node_id ( expected_route. last ( ) . unwrap ( ) . node . get_our_node_id ( ) , TEST_FINAL_CLTV )
2125
2132
. 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 ( ) ;
2127
2134
assert_eq ! ( route. paths. len( ) , 1 ) ;
2128
2135
assert_eq ! ( route. paths[ 0 ] . len( ) , expected_route. len( ) ) ;
2129
2136
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
2142
2149
let seed = [ 0u8 ; 32 ] ;
2143
2150
let keys_manager = test_utils:: TestKeysInterface :: new ( & seed, Network :: Testnet ) ;
2144
2151
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
2145
- let route = get_route (
2152
+ let route = router :: get_route (
2146
2153
& origin_node. node . get_our_node_id ( ) , & payment_params, & network_graph,
2147
2154
None , recv_value, TEST_FINAL_CLTV , origin_node. logger , & scorer, & random_seed_bytes) . unwrap ( ) ;
2148
2155
assert_eq ! ( route. paths. len( ) , 1 ) ;
0 commit comments