@@ -237,63 +237,52 @@ fn mpp_receive_timeout() {
237
237
}
238
238
239
239
#[ 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 ) ;
268
245
}
269
246
270
- #[ test]
271
- fn test_keysend_payments_to_private_node ( ) {
247
+ fn do_test_keysend_payments ( public_node : bool , with_retry : bool ) {
272
248
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
273
249
let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
274
250
let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
275
251
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
276
252
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
+ }
277
258
let payer_pubkey = nodes[ 0 ] . node . get_our_node_id ( ) ;
278
259
let payee_pubkey = nodes[ 1 ] . node . get_our_node_id ( ) ;
279
-
280
- let _chan = create_chan_between_nodes ( & nodes[ 0 ] , & nodes[ 1 ] ) ;
281
260
let route_params = RouteParameters {
282
261
payment_params : PaymentParameters :: for_keysend ( payee_pubkey, 40 , false ) ,
283
262
final_value_msat : 10000 ,
284
263
} ;
264
+
285
265
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
+
287
270
let scorer = test_utils:: TestScorer :: new ( ) ;
288
271
let random_seed_bytes = chanmon_cfgs[ 1 ] . keys_manager . get_secure_random_bytes ( ) ;
289
272
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,
291
274
nodes[ 0 ] . logger , & scorer, & ( ) , & random_seed_bytes
292
275
) . unwrap ( ) ;
293
276
294
277
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
+ } ;
297
286
check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
298
287
let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
299
288
assert_eq ! ( events. len( ) , 1 ) ;
0 commit comments