@@ -630,7 +630,7 @@ mod test {
630
630
} ;
631
631
use crate :: ln:: functional_test_utils:: * ;
632
632
use crate :: ln:: msgs:: { BaseMessageHandler , ChannelMessageHandler , MessageSendEvent } ;
633
- use crate :: routing:: router:: { PaymentParameters , RouteParameters , RouteParametersConfig } ;
633
+ use crate :: routing:: router:: { PaymentParameters , RouteParameters } ;
634
634
use crate :: sign:: PhantomKeysManager ;
635
635
use crate :: types:: payment:: { PaymentHash , PaymentPreimage } ;
636
636
use crate :: util:: config:: UserConfig ;
@@ -680,6 +680,8 @@ mod test {
680
680
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
681
681
create_unannounced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 100000 , 10001 ) ;
682
682
683
+ let node_a_id = nodes[ 0 ] . node . get_our_node_id ( ) ;
684
+
683
685
let description =
684
686
Bolt11InvoiceDescription :: Direct ( Description :: new ( "test" . to_string ( ) ) . unwrap ( ) ) ;
685
687
let non_default_invoice_expiry_secs = 4200 ;
@@ -715,30 +717,18 @@ mod test {
715
717
assert_eq ! ( invoice. route_hints( ) [ 0 ] . 0 [ 0 ] . htlc_minimum_msat, chan. inbound_htlc_minimum_msat) ;
716
718
assert_eq ! ( invoice. route_hints( ) [ 0 ] . 0 [ 0 ] . htlc_maximum_msat, chan. inbound_htlc_maximum_msat) ;
717
719
718
- let payment_event = {
719
- nodes[ 0 ]
720
- . node
721
- . pay_for_bolt11_invoice (
722
- & invoice,
723
- PaymentId ( [ 42 ; 32 ] ) ,
724
- None ,
725
- RouteParametersConfig :: default ( ) ,
726
- Retry :: Attempts ( 0 ) ,
727
- )
728
- . unwrap ( ) ;
729
- check_added_monitors ( & nodes[ 0 ] , 1 ) ;
730
-
731
- let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
732
- assert_eq ! ( events. len( ) , 1 ) ;
733
- SendEvent :: from_event ( events. remove ( 0 ) )
734
- } ;
735
- nodes[ 1 ]
720
+ let retry = Retry :: Attempts ( 0 ) ;
721
+ nodes[ 0 ]
736
722
. node
737
- . handle_update_add_htlc ( nodes[ 0 ] . node . get_our_node_id ( ) , & payment_event. msgs [ 0 ] ) ;
738
- nodes[ 1 ] . node . handle_commitment_signed_batch_test (
739
- nodes[ 0 ] . node . get_our_node_id ( ) ,
740
- & payment_event. commitment_msg ,
741
- ) ;
723
+ . pay_for_bolt11_invoice ( & invoice, PaymentId ( [ 42 ; 32 ] ) , None , Default :: default ( ) , retry)
724
+ . unwrap ( ) ;
725
+ check_added_monitors ( & nodes[ 0 ] , 1 ) ;
726
+
727
+ let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
728
+ assert_eq ! ( events. len( ) , 1 ) ;
729
+ let payment_event = SendEvent :: from_event ( events. remove ( 0 ) ) ;
730
+ nodes[ 1 ] . node . handle_update_add_htlc ( node_a_id, & payment_event. msgs [ 0 ] ) ;
731
+ nodes[ 1 ] . node . handle_commitment_signed_batch_test ( node_a_id, & payment_event. commitment_msg ) ;
742
732
check_added_monitors ( & nodes[ 1 ] , 1 ) ;
743
733
let events = nodes[ 1 ] . node . get_and_clear_pending_msg_events ( ) ;
744
734
assert_eq ! ( events. len( ) , 2 ) ;
@@ -892,6 +882,9 @@ mod test {
892
882
create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( config. clone ( ) ) , Some ( config) ] ) ;
893
883
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
894
884
885
+ let node_a_id = nodes[ 0 ] . node . get_our_node_id ( ) ;
886
+ let node_b_id = nodes[ 1 ] . node . get_our_node_id ( ) ;
887
+
895
888
// Create a private channel with lots of capacity and a lower value public channel (without
896
889
// confirming the funding tx yet).
897
890
let unannounced_scid =
@@ -907,40 +900,29 @@ mod test {
907
900
// channel we'll immediately switch to including it as a route hint, even though it isn't
908
901
// yet announced.
909
902
let pub_channel_scid = mine_transaction ( & nodes[ 0 ] , & conf_tx) ;
910
- let node_a_pub_channel_ready = get_event_msg ! (
911
- nodes[ 0 ] ,
912
- MessageSendEvent :: SendChannelReady ,
913
- nodes[ 1 ] . node. get_our_node_id( )
914
- ) ;
915
- nodes[ 1 ]
916
- . node
917
- . handle_channel_ready ( nodes[ 0 ] . node . get_our_node_id ( ) , & node_a_pub_channel_ready) ;
903
+ let node_a_pub_channel_ready =
904
+ get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendChannelReady , node_b_id) ;
905
+ nodes[ 1 ] . node . handle_channel_ready ( node_a_id, & node_a_pub_channel_ready) ;
918
906
919
907
assert_eq ! ( mine_transaction( & nodes[ 1 ] , & conf_tx) , pub_channel_scid) ;
920
908
let events = nodes[ 1 ] . node . get_and_clear_pending_msg_events ( ) ;
921
909
assert_eq ! ( events. len( ) , 2 ) ;
922
910
if let MessageSendEvent :: SendChannelReady { msg, .. } = & events[ 0 ] {
923
- nodes[ 0 ] . node . handle_channel_ready ( nodes [ 1 ] . node . get_our_node_id ( ) , msg) ;
911
+ nodes[ 0 ] . node . handle_channel_ready ( node_b_id , msg) ;
924
912
} else {
925
913
panic ! ( ) ;
926
914
}
927
915
if let MessageSendEvent :: SendChannelUpdate { msg, .. } = & events[ 1 ] {
928
- nodes[ 0 ] . node . handle_channel_update ( nodes [ 1 ] . node . get_our_node_id ( ) , msg) ;
916
+ nodes[ 0 ] . node . handle_channel_update ( node_b_id , msg) ;
929
917
} else {
930
918
panic ! ( ) ;
931
919
}
932
920
933
- nodes[ 1 ] . node . handle_channel_update (
934
- nodes[ 0 ] . node . get_our_node_id ( ) ,
935
- & get_event_msg ! (
936
- nodes[ 0 ] ,
937
- MessageSendEvent :: SendChannelUpdate ,
938
- nodes[ 1 ] . node. get_our_node_id( )
939
- ) ,
940
- ) ;
921
+ let as_update = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendChannelUpdate , node_b_id) ;
922
+ nodes[ 1 ] . node . handle_channel_update ( node_a_id, & as_update) ;
941
923
942
- expect_channel_ready_event ( & nodes[ 0 ] , & nodes [ 1 ] . node . get_our_node_id ( ) ) ;
943
- expect_channel_ready_event ( & nodes[ 1 ] , & nodes [ 0 ] . node . get_our_node_id ( ) ) ;
924
+ expect_channel_ready_event ( & nodes[ 0 ] , & node_b_id ) ;
925
+ expect_channel_ready_event ( & nodes[ 1 ] , & node_a_id ) ;
944
926
945
927
scid_aliases. clear ( ) ;
946
928
scid_aliases. insert ( node_a_pub_channel_ready. short_channel_id_alias . unwrap ( ) ) ;
@@ -954,11 +936,7 @@ mod test {
954
936
connect_blocks ( & nodes[ 1 ] , 5 ) ;
955
937
match_invoice_routes ( Some ( 5000 ) , & nodes[ 1 ] , scid_aliases. clone ( ) ) ;
956
938
connect_blocks ( & nodes[ 1 ] , 1 ) ;
957
- get_event_msg ! (
958
- nodes[ 1 ] ,
959
- MessageSendEvent :: SendAnnouncementSignatures ,
960
- nodes[ 0 ] . node. get_our_node_id( )
961
- ) ;
939
+ get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendAnnouncementSignatures , node_a_id) ;
962
940
match_invoice_routes ( Some ( 5000 ) , & nodes[ 1 ] , HashSet :: new ( ) ) ;
963
941
}
964
942
@@ -1080,34 +1058,23 @@ mod test {
1080
1058
let chan_1_0 =
1081
1059
create_unannounced_chan_between_nodes_with_value ( & nodes, 1 , 0 , 100000 , 10001 ) ;
1082
1060
1061
+ let node_a_id = nodes[ 0 ] . node . get_our_node_id ( ) ;
1062
+ let node_c_id = nodes[ 2 ] . node . get_our_node_id ( ) ;
1063
+
1083
1064
// Create an unannonced channel between `nodes[2]` and `nodes[0]`, for which the
1084
1065
// `msgs::ChannelUpdate` is never handled for the node(s). As the `msgs::ChannelUpdate`
1085
1066
// is never handled, the `channel.counterparty.forwarding_info` is never assigned.
1086
1067
let mut private_chan_cfg = UserConfig :: default ( ) ;
1087
1068
private_chan_cfg. channel_handshake_config . announce_for_forwarding = false ;
1088
1069
let temporary_channel_id = nodes[ 2 ]
1089
1070
. node
1090
- . create_channel (
1091
- nodes[ 0 ] . node . get_our_node_id ( ) ,
1092
- 1_000_000 ,
1093
- 500_000_000 ,
1094
- 42 ,
1095
- None ,
1096
- Some ( private_chan_cfg) ,
1097
- )
1071
+ . create_channel ( node_a_id, 1_000_000 , 500_000_000 , 42 , None , Some ( private_chan_cfg) )
1098
1072
. unwrap ( ) ;
1099
- let open_channel = get_event_msg ! (
1100
- nodes[ 2 ] ,
1101
- MessageSendEvent :: SendOpenChannel ,
1102
- nodes[ 0 ] . node. get_our_node_id( )
1103
- ) ;
1104
- nodes[ 0 ] . node . handle_open_channel ( nodes[ 2 ] . node . get_our_node_id ( ) , & open_channel) ;
1105
- let accept_channel = get_event_msg ! (
1106
- nodes[ 0 ] ,
1107
- MessageSendEvent :: SendAcceptChannel ,
1108
- nodes[ 2 ] . node. get_our_node_id( )
1109
- ) ;
1110
- nodes[ 2 ] . node . handle_accept_channel ( nodes[ 0 ] . node . get_our_node_id ( ) , & accept_channel) ;
1073
+ let open_channel = get_event_msg ! ( nodes[ 2 ] , MessageSendEvent :: SendOpenChannel , node_a_id) ;
1074
+ nodes[ 0 ] . node . handle_open_channel ( node_c_id, & open_channel) ;
1075
+ let accept_channel =
1076
+ get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendAcceptChannel , node_c_id) ;
1077
+ nodes[ 2 ] . node . handle_accept_channel ( node_a_id, & accept_channel) ;
1111
1078
1112
1079
let tx = sign_funding_transaction ( & nodes[ 2 ] , & nodes[ 0 ] , 1_000_000 , temporary_channel_id) ;
1113
1080
@@ -1117,32 +1084,16 @@ mod test {
1117
1084
connect_blocks ( & nodes[ 2 ] , CHAN_CONFIRM_DEPTH - 1 ) ;
1118
1085
confirm_transaction_at ( & nodes[ 0 ] , & tx, conf_height) ;
1119
1086
connect_blocks ( & nodes[ 0 ] , CHAN_CONFIRM_DEPTH - 1 ) ;
1120
- let as_channel_ready = get_event_msg ! (
1121
- nodes[ 2 ] ,
1122
- MessageSendEvent :: SendChannelReady ,
1123
- nodes[ 0 ] . node. get_our_node_id( )
1124
- ) ;
1125
- nodes[ 2 ] . node . handle_channel_ready (
1126
- nodes[ 0 ] . node . get_our_node_id ( ) ,
1127
- & get_event_msg ! (
1128
- nodes[ 0 ] ,
1129
- MessageSendEvent :: SendChannelReady ,
1130
- nodes[ 2 ] . node. get_our_node_id( )
1131
- ) ,
1132
- ) ;
1133
- get_event_msg ! (
1134
- nodes[ 2 ] ,
1135
- MessageSendEvent :: SendChannelUpdate ,
1136
- nodes[ 0 ] . node. get_our_node_id( )
1137
- ) ;
1138
- nodes[ 0 ] . node . handle_channel_ready ( nodes[ 2 ] . node . get_our_node_id ( ) , & as_channel_ready) ;
1139
- get_event_msg ! (
1140
- nodes[ 0 ] ,
1141
- MessageSendEvent :: SendChannelUpdate ,
1142
- nodes[ 2 ] . node. get_our_node_id( )
1143
- ) ;
1144
- expect_channel_ready_event ( & nodes[ 0 ] , & nodes[ 2 ] . node . get_our_node_id ( ) ) ;
1145
- expect_channel_ready_event ( & nodes[ 2 ] , & nodes[ 0 ] . node . get_our_node_id ( ) ) ;
1087
+ let as_channel_ready =
1088
+ get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendChannelReady , node_c_id) ;
1089
+ let cs_channel_ready =
1090
+ get_event_msg ! ( nodes[ 2 ] , MessageSendEvent :: SendChannelReady , node_a_id) ;
1091
+ nodes[ 2 ] . node . handle_channel_ready ( node_a_id, & as_channel_ready) ;
1092
+ get_event_msg ! ( nodes[ 2 ] , MessageSendEvent :: SendChannelUpdate , node_a_id) ;
1093
+ nodes[ 0 ] . node . handle_channel_ready ( node_c_id, & cs_channel_ready) ;
1094
+ get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendChannelUpdate , node_c_id) ;
1095
+ expect_channel_ready_event ( & nodes[ 0 ] , & node_c_id) ;
1096
+ expect_channel_ready_event ( & nodes[ 2 ] , & node_a_id) ;
1146
1097
1147
1098
// As `msgs::ChannelUpdate` was never handled for the participating node(s) of the second
1148
1099
// channel, the channel will never be assigned any `counterparty.forwarding_info`.
@@ -1348,20 +1299,14 @@ mod test {
1348
1299
payment_params,
1349
1300
invoice. amount_milli_satoshis ( ) . unwrap ( ) ,
1350
1301
) ;
1351
- let ( payment_event, fwd_idx) = {
1352
- let payment_hash = PaymentHash ( invoice. payment_hash ( ) . to_byte_array ( ) ) ;
1353
- nodes[ 0 ]
1354
- . node
1355
- . send_payment (
1356
- payment_hash,
1357
- RecipientOnionFields :: secret_only ( * invoice. payment_secret ( ) ) ,
1358
- PaymentId ( payment_hash. 0 ) ,
1359
- params,
1360
- Retry :: Attempts ( 0 ) ,
1361
- )
1362
- . unwrap ( ) ;
1363
- check_added_monitors ( & nodes[ 0 ] , 1 ) ;
1364
1302
1303
+ let payment_hash = PaymentHash ( invoice. payment_hash ( ) . to_byte_array ( ) ) ;
1304
+ let id = PaymentId ( payment_hash. 0 ) ;
1305
+ let onion = RecipientOnionFields :: secret_only ( * invoice. payment_secret ( ) ) ;
1306
+ nodes[ 0 ] . node . send_payment ( payment_hash, onion, id, params, Retry :: Attempts ( 0 ) ) . unwrap ( ) ;
1307
+ check_added_monitors ( & nodes[ 0 ] , 1 ) ;
1308
+
1309
+ let ( send_event, fwd_idx) = {
1365
1310
let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
1366
1311
assert_eq ! ( events. len( ) , 1 ) ;
1367
1312
let fwd_idx = match events[ 0 ] {
@@ -1378,14 +1323,8 @@ mod test {
1378
1323
} ;
1379
1324
nodes[ fwd_idx]
1380
1325
. node
1381
- . handle_update_add_htlc ( nodes[ 0 ] . node . get_our_node_id ( ) , & payment_event. msgs [ 0 ] ) ;
1382
- commitment_signed_dance ! (
1383
- nodes[ fwd_idx] ,
1384
- nodes[ 0 ] ,
1385
- & payment_event. commitment_msg,
1386
- false ,
1387
- true
1388
- ) ;
1326
+ . handle_update_add_htlc ( nodes[ 0 ] . node . get_our_node_id ( ) , & send_event. msgs [ 0 ] ) ;
1327
+ commitment_signed_dance ! ( nodes[ fwd_idx] , nodes[ 0 ] , & send_event. commitment_msg, false , true ) ;
1389
1328
1390
1329
// Note that we have to "forward pending HTLCs" twice before we see the PaymentClaimable as
1391
1330
// this "emulates" the payment taking two hops, providing some privacy to make phantom node
@@ -1644,6 +1583,9 @@ mod test {
1644
1583
let node_chanmgrs = create_node_chanmgrs ( 4 , & node_cfgs, & [ None , None , None , None ] ) ;
1645
1584
let nodes = create_network ( 4 , & node_cfgs, & node_chanmgrs) ;
1646
1585
1586
+ let node_b_id = nodes[ 1 ] . node . get_our_node_id ( ) ;
1587
+ let node_d_id = nodes[ 3 ] . node . get_our_node_id ( ) ;
1588
+
1647
1589
let chan_0_2 =
1648
1590
create_unannounced_chan_between_nodes_with_value ( & nodes, 0 , 2 , 100000 , 10001 ) ;
1649
1591
let chan_0_3 =
@@ -1656,26 +1598,12 @@ mod test {
1656
1598
private_chan_cfg. channel_handshake_config . announce_for_forwarding = false ;
1657
1599
let temporary_channel_id = nodes[ 1 ]
1658
1600
. node
1659
- . create_channel (
1660
- nodes[ 3 ] . node . get_our_node_id ( ) ,
1661
- 1_000_000 ,
1662
- 500_000_000 ,
1663
- 42 ,
1664
- None ,
1665
- Some ( private_chan_cfg) ,
1666
- )
1601
+ . create_channel ( node_d_id, 1_000_000 , 500_000_000 , 42 , None , Some ( private_chan_cfg) )
1667
1602
. unwrap ( ) ;
1668
- let open_channel = get_event_msg ! (
1669
- nodes[ 1 ] ,
1670
- MessageSendEvent :: SendOpenChannel ,
1671
- nodes[ 3 ] . node. get_our_node_id( )
1672
- ) ;
1603
+ let open_channel = get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendOpenChannel , node_d_id) ;
1673
1604
nodes[ 3 ] . node . handle_open_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , & open_channel) ;
1674
- let accept_channel = get_event_msg ! (
1675
- nodes[ 3 ] ,
1676
- MessageSendEvent :: SendAcceptChannel ,
1677
- nodes[ 1 ] . node. get_our_node_id( )
1678
- ) ;
1605
+ let accept_channel =
1606
+ get_event_msg ! ( nodes[ 3 ] , MessageSendEvent :: SendAcceptChannel , node_b_id) ;
1679
1607
nodes[ 1 ] . node . handle_accept_channel ( nodes[ 3 ] . node . get_our_node_id ( ) , & accept_channel) ;
1680
1608
1681
1609
let tx = sign_funding_transaction ( & nodes[ 1 ] , & nodes[ 3 ] , 1_000_000 , temporary_channel_id) ;
@@ -1686,30 +1614,15 @@ mod test {
1686
1614
connect_blocks ( & nodes[ 1 ] , CHAN_CONFIRM_DEPTH - 1 ) ;
1687
1615
confirm_transaction_at ( & nodes[ 3 ] , & tx, conf_height) ;
1688
1616
connect_blocks ( & nodes[ 3 ] , CHAN_CONFIRM_DEPTH - 1 ) ;
1689
- let as_channel_ready = get_event_msg ! (
1690
- nodes[ 1 ] ,
1691
- MessageSendEvent :: SendChannelReady ,
1692
- nodes[ 3 ] . node. get_our_node_id( )
1693
- ) ;
1694
- nodes[ 1 ] . node . handle_channel_ready (
1695
- nodes[ 3 ] . node . get_our_node_id ( ) ,
1696
- & get_event_msg ! (
1697
- nodes[ 3 ] ,
1698
- MessageSendEvent :: SendChannelReady ,
1699
- nodes[ 1 ] . node. get_our_node_id( )
1700
- ) ,
1701
- ) ;
1702
- get_event_msg ! (
1703
- nodes[ 1 ] ,
1704
- MessageSendEvent :: SendChannelUpdate ,
1705
- nodes[ 3 ] . node. get_our_node_id( )
1706
- ) ;
1707
- nodes[ 3 ] . node . handle_channel_ready ( nodes[ 1 ] . node . get_our_node_id ( ) , & as_channel_ready) ;
1708
- get_event_msg ! (
1709
- nodes[ 3 ] ,
1710
- MessageSendEvent :: SendChannelUpdate ,
1711
- nodes[ 1 ] . node. get_our_node_id( )
1712
- ) ;
1617
+
1618
+ let bs_channel_ready =
1619
+ get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendChannelReady , node_d_id) ;
1620
+ let ds_channel_ready =
1621
+ get_event_msg ! ( nodes[ 3 ] , MessageSendEvent :: SendChannelReady , node_b_id) ;
1622
+ nodes[ 1 ] . node . handle_channel_ready ( node_d_id, & ds_channel_ready) ;
1623
+ get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendChannelUpdate , node_d_id) ;
1624
+ nodes[ 3 ] . node . handle_channel_ready ( nodes[ 1 ] . node . get_our_node_id ( ) , & bs_channel_ready) ;
1625
+ get_event_msg ! ( nodes[ 3 ] , MessageSendEvent :: SendChannelUpdate , node_b_id) ;
1713
1626
expect_channel_ready_event ( & nodes[ 1 ] , & nodes[ 3 ] . node . get_our_node_id ( ) ) ;
1714
1627
expect_channel_ready_event ( & nodes[ 3 ] , & nodes[ 1 ] . node . get_our_node_id ( ) ) ;
1715
1628
0 commit comments