@@ -630,7 +630,7 @@ mod test {
630630 } ;
631631 use crate :: ln:: functional_test_utils:: * ;
632632 use crate :: ln:: msgs:: { BaseMessageHandler , ChannelMessageHandler , MessageSendEvent } ;
633- use crate :: routing:: router:: { PaymentParameters , RouteParameters , RouteParametersConfig } ;
633+ use crate :: routing:: router:: { PaymentParameters , RouteParameters } ;
634634 use crate :: sign:: PhantomKeysManager ;
635635 use crate :: types:: payment:: { PaymentHash , PaymentPreimage } ;
636636 use crate :: util:: config:: UserConfig ;
@@ -680,6 +680,8 @@ mod test {
680680 let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
681681 create_unannounced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 100000 , 10001 ) ;
682682
683+ let node_a_id = nodes[ 0 ] . node . get_our_node_id ( ) ;
684+
683685 let description =
684686 Bolt11InvoiceDescription :: Direct ( Description :: new ( "test" . to_string ( ) ) . unwrap ( ) ) ;
685687 let non_default_invoice_expiry_secs = 4200 ;
@@ -715,30 +717,18 @@ mod test {
715717 assert_eq ! ( invoice. route_hints( ) [ 0 ] . 0 [ 0 ] . htlc_minimum_msat, chan. inbound_htlc_minimum_msat) ;
716718 assert_eq ! ( invoice. route_hints( ) [ 0 ] . 0 [ 0 ] . htlc_maximum_msat, chan. inbound_htlc_maximum_msat) ;
717719
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 ]
736722 . 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 ) ;
742732 check_added_monitors ( & nodes[ 1 ] , 1 ) ;
743733 let events = nodes[ 1 ] . node . get_and_clear_pending_msg_events ( ) ;
744734 assert_eq ! ( events. len( ) , 2 ) ;
@@ -892,6 +882,9 @@ mod test {
892882 create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( config. clone ( ) ) , Some ( config) ] ) ;
893883 let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
894884
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+
895888 // Create a private channel with lots of capacity and a lower value public channel (without
896889 // confirming the funding tx yet).
897890 let unannounced_scid =
@@ -907,40 +900,29 @@ mod test {
907900 // channel we'll immediately switch to including it as a route hint, even though it isn't
908901 // yet announced.
909902 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) ;
918906
919907 assert_eq ! ( mine_transaction( & nodes[ 1 ] , & conf_tx) , pub_channel_scid) ;
920908 let events = nodes[ 1 ] . node . get_and_clear_pending_msg_events ( ) ;
921909 assert_eq ! ( events. len( ) , 2 ) ;
922910 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) ;
924912 } else {
925913 panic ! ( ) ;
926914 }
927915 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) ;
929917 } else {
930918 panic ! ( ) ;
931919 }
932920
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) ;
941923
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 ) ;
944926
945927 scid_aliases. clear ( ) ;
946928 scid_aliases. insert ( node_a_pub_channel_ready. short_channel_id_alias . unwrap ( ) ) ;
@@ -954,11 +936,7 @@ mod test {
954936 connect_blocks ( & nodes[ 1 ] , 5 ) ;
955937 match_invoice_routes ( Some ( 5000 ) , & nodes[ 1 ] , scid_aliases. clone ( ) ) ;
956938 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) ;
962940 match_invoice_routes ( Some ( 5000 ) , & nodes[ 1 ] , HashSet :: new ( ) ) ;
963941 }
964942
@@ -1080,34 +1058,23 @@ mod test {
10801058 let chan_1_0 =
10811059 create_unannounced_chan_between_nodes_with_value ( & nodes, 1 , 0 , 100000 , 10001 ) ;
10821060
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+
10831064 // Create an unannonced channel between `nodes[2]` and `nodes[0]`, for which the
10841065 // `msgs::ChannelUpdate` is never handled for the node(s). As the `msgs::ChannelUpdate`
10851066 // is never handled, the `channel.counterparty.forwarding_info` is never assigned.
10861067 let mut private_chan_cfg = UserConfig :: default ( ) ;
10871068 private_chan_cfg. channel_handshake_config . announce_for_forwarding = false ;
10881069 let temporary_channel_id = nodes[ 2 ]
10891070 . 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) )
10981072 . 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) ;
11111078
11121079 let tx = sign_funding_transaction ( & nodes[ 2 ] , & nodes[ 0 ] , 1_000_000 , temporary_channel_id) ;
11131080
@@ -1117,32 +1084,16 @@ mod test {
11171084 connect_blocks ( & nodes[ 2 ] , CHAN_CONFIRM_DEPTH - 1 ) ;
11181085 confirm_transaction_at ( & nodes[ 0 ] , & tx, conf_height) ;
11191086 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) ;
11461097
11471098 // As `msgs::ChannelUpdate` was never handled for the participating node(s) of the second
11481099 // channel, the channel will never be assigned any `counterparty.forwarding_info`.
@@ -1348,20 +1299,14 @@ mod test {
13481299 payment_params,
13491300 invoice. amount_milli_satoshis ( ) . unwrap ( ) ,
13501301 ) ;
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 ) ;
13641302
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) = {
13651310 let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
13661311 assert_eq ! ( events. len( ) , 1 ) ;
13671312 let fwd_idx = match events[ 0 ] {
@@ -1378,14 +1323,8 @@ mod test {
13781323 } ;
13791324 nodes[ fwd_idx]
13801325 . 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 ) ;
13891328
13901329 // Note that we have to "forward pending HTLCs" twice before we see the PaymentClaimable as
13911330 // this "emulates" the payment taking two hops, providing some privacy to make phantom node
@@ -1644,6 +1583,9 @@ mod test {
16441583 let node_chanmgrs = create_node_chanmgrs ( 4 , & node_cfgs, & [ None , None , None , None ] ) ;
16451584 let nodes = create_network ( 4 , & node_cfgs, & node_chanmgrs) ;
16461585
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+
16471589 let chan_0_2 =
16481590 create_unannounced_chan_between_nodes_with_value ( & nodes, 0 , 2 , 100000 , 10001 ) ;
16491591 let chan_0_3 =
@@ -1656,26 +1598,12 @@ mod test {
16561598 private_chan_cfg. channel_handshake_config . announce_for_forwarding = false ;
16571599 let temporary_channel_id = nodes[ 1 ]
16581600 . 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) )
16671602 . 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) ;
16731604 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) ;
16791607 nodes[ 1 ] . node . handle_accept_channel ( nodes[ 3 ] . node . get_our_node_id ( ) , & accept_channel) ;
16801608
16811609 let tx = sign_funding_transaction ( & nodes[ 1 ] , & nodes[ 3 ] , 1_000_000 , temporary_channel_id) ;
@@ -1686,30 +1614,15 @@ mod test {
16861614 connect_blocks ( & nodes[ 1 ] , CHAN_CONFIRM_DEPTH - 1 ) ;
16871615 confirm_transaction_at ( & nodes[ 3 ] , & tx, conf_height) ;
16881616 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) ;
17131626 expect_channel_ready_event ( & nodes[ 1 ] , & nodes[ 3 ] . node . get_our_node_id ( ) ) ;
17141627 expect_channel_ready_event ( & nodes[ 3 ] , & nodes[ 1 ] . node . get_our_node_id ( ) ) ;
17151628
0 commit comments