@@ -237,63 +237,52 @@ fn mpp_receive_timeout() {
237237}
238238
239239#[ test]
240- fn test_keysend_payments_to_public_node ( ) {
241- let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
242- let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
243- let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
244- let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
245-
246- let _chan = create_announced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 100000 , 10001 ) ;
247- let network_graph = nodes[ 0 ] . network_graph . clone ( ) ;
248- let payer_pubkey = nodes[ 0 ] . node . get_our_node_id ( ) ;
249- let payee_pubkey = nodes[ 1 ] . node . get_our_node_id ( ) ;
250- let route_params = RouteParameters {
251- payment_params : PaymentParameters :: for_keysend ( payee_pubkey, 40 , false ) ,
252- final_value_msat : 10000 ,
253- } ;
254- let scorer = test_utils:: TestScorer :: new ( ) ;
255- let random_seed_bytes = chanmon_cfgs[ 1 ] . keys_manager . get_secure_random_bytes ( ) ;
256- let route = find_route ( & payer_pubkey, & route_params, & network_graph, None , nodes[ 0 ] . logger , & scorer, & ( ) , & random_seed_bytes) . unwrap ( ) ;
257-
258- let test_preimage = PaymentPreimage ( [ 42 ; 32 ] ) ;
259- let payment_hash = nodes[ 0 ] . node . send_spontaneous_payment ( & route, Some ( test_preimage) ,
260- RecipientOnionFields :: spontaneous_empty ( ) , PaymentId ( test_preimage. 0 ) ) . unwrap ( ) ;
261- check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
262- let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
263- assert_eq ! ( events. len( ) , 1 ) ;
264- let event = events. pop ( ) . unwrap ( ) ;
265- let path = vec ! [ & nodes[ 1 ] ] ;
266- pass_along_path ( & nodes[ 0 ] , & path, 10000 , payment_hash, None , event, true , Some ( test_preimage) ) ;
267- claim_payment ( & nodes[ 0 ] , & path, test_preimage) ;
240+ fn test_keysend_payments ( ) {
241+ do_test_keysend_payments ( false , false ) ;
242+ do_test_keysend_payments ( false , true ) ;
243+ do_test_keysend_payments ( true , false ) ;
244+ do_test_keysend_payments ( true , true ) ;
268245}
269246
270- #[ test]
271- fn test_keysend_payments_to_private_node ( ) {
247+ fn do_test_keysend_payments ( public_node : bool , with_retry : bool ) {
272248 let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
273249 let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
274250 let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
275251 let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
276252
253+ if public_node {
254+ create_announced_chan_between_nodes ( & nodes, 0 , 1 ) ;
255+ } else {
256+ create_chan_between_nodes ( & nodes[ 0 ] , & nodes[ 1 ] ) ;
257+ }
277258 let payer_pubkey = nodes[ 0 ] . node . get_our_node_id ( ) ;
278259 let payee_pubkey = nodes[ 1 ] . node . get_our_node_id ( ) ;
279-
280- let _chan = create_chan_between_nodes ( & nodes[ 0 ] , & nodes[ 1 ] ) ;
281260 let route_params = RouteParameters {
282261 payment_params : PaymentParameters :: for_keysend ( payee_pubkey, 40 , false ) ,
283262 final_value_msat : 10000 ,
284263 } ;
264+
285265 let network_graph = nodes[ 0 ] . network_graph . clone ( ) ;
286- let first_hops = nodes[ 0 ] . node . list_usable_channels ( ) ;
266+ let channels = nodes[ 0 ] . node . list_usable_channels ( ) ;
267+ let first_hops = channels. iter ( ) . collect :: < Vec < _ > > ( ) ;
268+ let first_hops = if public_node { None } else { Some ( first_hops. as_slice ( ) ) } ;
269+
287270 let scorer = test_utils:: TestScorer :: new ( ) ;
288271 let random_seed_bytes = chanmon_cfgs[ 1 ] . keys_manager . get_secure_random_bytes ( ) ;
289272 let route = find_route (
290- & payer_pubkey, & route_params, & network_graph, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
273+ & payer_pubkey, & route_params, & network_graph, first_hops,
291274 nodes[ 0 ] . logger , & scorer, & ( ) , & random_seed_bytes
292275 ) . unwrap ( ) ;
293276
294277 let test_preimage = PaymentPreimage ( [ 42 ; 32 ] ) ;
295- let payment_hash = nodes[ 0 ] . node . send_spontaneous_payment ( & route, Some ( test_preimage) ,
296- RecipientOnionFields :: spontaneous_empty ( ) , PaymentId ( test_preimage. 0 ) ) . unwrap ( ) ;
278+ let payment_hash = if with_retry {
279+ nodes[ 0 ] . node . send_spontaneous_payment_with_retry ( Some ( test_preimage) ,
280+ RecipientOnionFields :: spontaneous_empty ( ) , PaymentId ( test_preimage. 0 ) ,
281+ route_params, Retry :: Attempts ( 1 ) ) . unwrap ( )
282+ } else {
283+ nodes[ 0 ] . node . send_spontaneous_payment ( & route, Some ( test_preimage) ,
284+ RecipientOnionFields :: spontaneous_empty ( ) , PaymentId ( test_preimage. 0 ) ) . unwrap ( )
285+ } ;
297286 check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
298287 let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
299288 assert_eq ! ( events. len( ) , 1 ) ;
0 commit comments