1010use crate :: blinded_path:: message:: {
1111 BlindedMessagePath , MessageContext , NextMessageHop , OffersContext ,
1212} ;
13- use crate :: blinded_path:: payment:: PaymentContext ;
1413use crate :: blinded_path:: payment:: { AsyncBolt12OfferContext , BlindedPaymentTlvs } ;
14+ use crate :: blinded_path:: payment:: { DummyTlvs , PaymentContext } ;
1515use crate :: chain:: channelmonitor:: { HTLC_FAIL_BACK_BUFFER , LATENCY_GRACE_PERIOD_BLOCKS } ;
1616use crate :: events:: {
1717 Event , EventsProvider , HTLCHandlingFailureReason , HTLCHandlingFailureType , PaidBolt12Invoice ,
@@ -55,7 +55,7 @@ use crate::onion_message::messenger::{
5555use crate :: onion_message:: offers:: OffersMessage ;
5656use crate :: onion_message:: packet:: ParsedOnionMessageContents ;
5757use crate :: prelude:: * ;
58- use crate :: routing:: router:: { Payee , PaymentParameters } ;
58+ use crate :: routing:: router:: { Payee , PaymentParameters , DEFAULT_PAYMENT_DUMMY_HOPS } ;
5959use crate :: sign:: NodeSigner ;
6060use crate :: sync:: Mutex ;
6161use crate :: types:: features:: Bolt12InvoiceFeatures ;
@@ -984,7 +984,8 @@ fn ignore_duplicate_invoice() {
984984 check_added_monitors ! ( sender, 1 ) ;
985985
986986 let route: & [ & [ & Node ] ] = & [ & [ always_online_node, async_recipient] ] ;
987- let args = PassAlongPathArgs :: new ( sender, route[ 0 ] , amt_msat, payment_hash, ev) ;
987+ let args = PassAlongPathArgs :: new ( sender, route[ 0 ] , amt_msat, payment_hash, ev)
988+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
988989 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
989990 let keysend_preimage = extract_payment_preimage ( & claimable_ev) ;
990991 let ( res, _) =
@@ -1063,7 +1064,8 @@ fn ignore_duplicate_invoice() {
10631064 check_added_monitors ! ( sender, 1 ) ;
10641065
10651066 let args = PassAlongPathArgs :: new ( sender, route[ 0 ] , amt_msat, payment_hash, ev)
1066- . without_clearing_recipient_events ( ) ;
1067+ . without_clearing_recipient_events ( )
1068+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
10671069 do_pass_along_path ( args) ;
10681070
10691071 let payment_preimage = match get_event ! ( async_recipient, Event :: PaymentClaimable ) {
@@ -1138,7 +1140,8 @@ fn async_receive_flow_success() {
11381140 assert ! ( nodes[ 0 ] . node. get_and_clear_pending_msg_events( ) . is_empty( ) ) ;
11391141
11401142 let route: & [ & [ & Node ] ] = & [ & [ & nodes[ 1 ] , & nodes[ 2 ] ] ] ;
1141- let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev) ;
1143+ let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev)
1144+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
11421145 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
11431146 let keysend_preimage = extract_payment_preimage ( & claimable_ev) ;
11441147 let ( res, _) =
@@ -1375,11 +1378,13 @@ fn async_receive_mpp() {
13751378 } ;
13761379
13771380 let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , expected_route[ 0 ] , amt_msat, payment_hash, ev)
1378- . without_claimable_event ( ) ;
1381+ . without_claimable_event ( )
1382+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
13791383 do_pass_along_path ( args) ;
13801384
13811385 let ev = remove_first_msg_event_to_node ( & nodes[ 2 ] . node . get_our_node_id ( ) , & mut events) ;
1382- let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , expected_route[ 1 ] , amt_msat, payment_hash, ev) ;
1386+ let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , expected_route[ 1 ] , amt_msat, payment_hash, ev)
1387+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
13831388 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
13841389 let keysend_preimage = match claimable_ev {
13851390 Event :: PaymentClaimable {
@@ -1497,7 +1502,8 @@ fn amount_doesnt_match_invreq() {
14971502 let route: & [ & [ & Node ] ] = & [ & [ & nodes[ 1 ] , & nodes[ 3 ] ] ] ;
14981503 let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev)
14991504 . without_claimable_event ( )
1500- . expect_failure ( HTLCHandlingFailureType :: Receive { payment_hash } ) ;
1505+ . expect_failure ( HTLCHandlingFailureType :: Receive { payment_hash } )
1506+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
15011507 do_pass_along_path ( args) ;
15021508
15031509 // Modify the invoice request stored in our outbounds to be the correct one, to make sure the
@@ -1521,7 +1527,8 @@ fn amount_doesnt_match_invreq() {
15211527 ev, MessageSendEvent :: UpdateHTLCs { ref updates, .. } if updates. update_add_htlcs. len( ) == 1 ) ) ;
15221528 check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
15231529 let route: & [ & [ & Node ] ] = & [ & [ & nodes[ 2 ] , & nodes[ 3 ] ] ] ;
1524- let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev) ;
1530+ let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev)
1531+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
15251532 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
15261533 let keysend_preimage = extract_payment_preimage ( & claimable_ev) ;
15271534 claim_payment_along_route ( ClaimAlongRouteArgs :: new ( & nodes[ 0 ] , route, keysend_preimage) ) ;
@@ -1712,7 +1719,8 @@ fn invalid_async_receive_with_retry<F1, F2>(
17121719 let payment_hash = extract_payment_hash ( & ev) ;
17131720
17141721 let route: & [ & [ & Node ] ] = & [ & [ & nodes[ 1 ] , & nodes[ 2 ] ] ] ;
1715- let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev) ;
1722+ let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev)
1723+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
17161724 do_pass_along_path ( args) ;
17171725
17181726 // Fail the HTLC backwards to enable us to more easily modify the now-Retryable outbound to test
@@ -1739,7 +1747,8 @@ fn invalid_async_receive_with_retry<F1, F2>(
17391747 let route: & [ & [ & Node ] ] = & [ & [ & nodes[ 1 ] , & nodes[ 2 ] ] ] ;
17401748 let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev)
17411749 . without_claimable_event ( )
1742- . expect_failure ( HTLCHandlingFailureType :: Receive { payment_hash } ) ;
1750+ . expect_failure ( HTLCHandlingFailureType :: Receive { payment_hash } )
1751+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
17431752 do_pass_along_path ( args) ;
17441753 fail_blinded_htlc_backwards ( payment_hash, 1 , & [ & nodes[ 0 ] , & nodes[ 1 ] , & nodes[ 2 ] ] , true ) ;
17451754
@@ -1751,7 +1760,8 @@ fn invalid_async_receive_with_retry<F1, F2>(
17511760 let mut ev = remove_first_msg_event_to_node ( & nodes[ 1 ] . node . get_our_node_id ( ) , & mut events) ;
17521761 check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
17531762 let route: & [ & [ & Node ] ] = & [ & [ & nodes[ 1 ] , & nodes[ 2 ] ] ] ;
1754- let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev) ;
1763+ let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev)
1764+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
17551765 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
17561766 let keysend_preimage = extract_payment_preimage ( & claimable_ev) ;
17571767 claim_payment_along_route ( ClaimAlongRouteArgs :: new ( & nodes[ 0 ] , route, keysend_preimage) ) ;
@@ -1858,6 +1868,13 @@ fn expired_static_invoice_payment_path() {
18581868 blinded_path
18591869 . advance_path_by_one ( & nodes[ 1 ] . keys_manager , & nodes[ 1 ] . node , & secp_ctx)
18601870 . unwrap ( ) ;
1871+
1872+ for _ in 0 ..DEFAULT_PAYMENT_DUMMY_HOPS {
1873+ blinded_path
1874+ . advance_path_by_one ( & nodes[ 2 ] . keys_manager , & nodes[ 2 ] . node , & secp_ctx)
1875+ . unwrap ( ) ;
1876+ }
1877+
18611878 match blinded_path. decrypt_intro_payload ( & nodes[ 2 ] . keys_manager ) . unwrap ( ) . 0 {
18621879 BlindedPaymentTlvs :: Receive ( tlvs) => tlvs. payment_constraints . max_cltv_expiry ,
18631880 _ => panic ! ( ) ,
@@ -1920,7 +1937,8 @@ fn expired_static_invoice_payment_path() {
19201937 let route: & [ & [ & Node ] ] = & [ & [ & nodes[ 1 ] , & nodes[ 2 ] ] ] ;
19211938 let args = PassAlongPathArgs :: new ( & nodes[ 0 ] , route[ 0 ] , amt_msat, payment_hash, ev)
19221939 . without_claimable_event ( )
1923- . expect_failure ( HTLCHandlingFailureType :: Receive { payment_hash } ) ;
1940+ . expect_failure ( HTLCHandlingFailureType :: Receive { payment_hash } )
1941+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
19241942 do_pass_along_path ( args) ;
19251943 fail_blinded_htlc_backwards ( payment_hash, 1 , & [ & nodes[ 0 ] , & nodes[ 1 ] , & nodes[ 2 ] ] , false ) ;
19261944 nodes[ 2 ] . logger . assert_log_contains (
@@ -2363,7 +2381,8 @@ fn refresh_static_invoices_for_used_offers() {
23632381 check_added_monitors ! ( sender, 1 ) ;
23642382
23652383 let route: & [ & [ & Node ] ] = & [ & [ server, recipient] ] ;
2366- let args = PassAlongPathArgs :: new ( sender, route[ 0 ] , amt_msat, payment_hash, ev) ;
2384+ let args = PassAlongPathArgs :: new ( sender, route[ 0 ] , amt_msat, payment_hash, ev)
2385+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
23672386 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
23682387 let keysend_preimage = extract_payment_preimage ( & claimable_ev) ;
23692388 let res = claim_payment_along_route ( ClaimAlongRouteArgs :: new ( sender, route, keysend_preimage) ) ;
@@ -2697,7 +2716,8 @@ fn invoice_server_is_not_channel_peer() {
26972716 check_added_monitors ! ( sender, 1 ) ;
26982717
26992718 let route: & [ & [ & Node ] ] = & [ & [ forwarding_node, recipient] ] ;
2700- let args = PassAlongPathArgs :: new ( sender, route[ 0 ] , amt_msat, payment_hash, ev) ;
2719+ let args = PassAlongPathArgs :: new ( sender, route[ 0 ] , amt_msat, payment_hash, ev)
2720+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
27012721 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
27022722 let keysend_preimage = extract_payment_preimage ( & claimable_ev) ;
27032723 let res = claim_payment_along_route ( ClaimAlongRouteArgs :: new ( sender, route, keysend_preimage) ) ;
@@ -2936,7 +2956,8 @@ fn async_payment_e2e() {
29362956 check_added_monitors ! ( sender_lsp, 1 ) ;
29372957
29382958 let path: & [ & Node ] = & [ invoice_server, recipient] ;
2939- let args = PassAlongPathArgs :: new ( sender_lsp, path, amt_msat, payment_hash, ev) ;
2959+ let args = PassAlongPathArgs :: new ( sender_lsp, path, amt_msat, payment_hash, ev)
2960+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
29402961 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
29412962
29422963 let route: & [ & [ & Node ] ] = & [ & [ sender_lsp, invoice_server, recipient] ] ;
@@ -3173,7 +3194,8 @@ fn intercepted_hold_htlc() {
31733194 check_added_monitors ! ( lsp, 1 ) ;
31743195
31753196 let path: & [ & Node ] = & [ recipient] ;
3176- let args = PassAlongPathArgs :: new ( lsp, path, amt_msat, payment_hash, ev) ;
3197+ let args = PassAlongPathArgs :: new ( lsp, path, amt_msat, payment_hash, ev)
3198+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
31773199 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
31783200
31793201 let route: & [ & [ & Node ] ] = & [ & [ lsp, recipient] ] ;
@@ -3276,15 +3298,17 @@ fn async_payment_mpp() {
32763298 assert_eq ! ( events. len( ) , 1 ) ;
32773299 let ev = remove_first_msg_event_to_node ( & recipient. node . get_our_node_id ( ) , & mut events) ;
32783300 let args = PassAlongPathArgs :: new ( lsp_a, expected_path, amt_msat, payment_hash, ev)
3279- . without_claimable_event ( ) ;
3301+ . without_claimable_event ( )
3302+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
32803303 do_pass_along_path ( args) ;
32813304
32823305 lsp_b. node . process_pending_htlc_forwards ( ) ;
32833306 check_added_monitors ! ( lsp_b, 1 ) ;
32843307 let mut events = lsp_b. node . get_and_clear_pending_msg_events ( ) ;
32853308 assert_eq ! ( events. len( ) , 1 ) ;
32863309 let ev = remove_first_msg_event_to_node ( & recipient. node . get_our_node_id ( ) , & mut events) ;
3287- let args = PassAlongPathArgs :: new ( lsp_b, expected_path, amt_msat, payment_hash, ev) ;
3310+ let args = PassAlongPathArgs :: new ( lsp_b, expected_path, amt_msat, payment_hash, ev)
3311+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
32883312 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
32893313
32903314 let keysend_preimage = match claimable_ev {
@@ -3420,7 +3444,8 @@ fn release_htlc_races_htlc_onion_decode() {
34203444 check_added_monitors ! ( sender_lsp, 1 ) ;
34213445
34223446 let path: & [ & Node ] = & [ invoice_server, recipient] ;
3423- let args = PassAlongPathArgs :: new ( sender_lsp, path, amt_msat, payment_hash, ev) ;
3447+ let args = PassAlongPathArgs :: new ( sender_lsp, path, amt_msat, payment_hash, ev)
3448+ . with_dummy_tlvs ( & [ DummyTlvs :: default ( ) ; DEFAULT_PAYMENT_DUMMY_HOPS ] ) ;
34243449 let claimable_ev = do_pass_along_path ( args) . unwrap ( ) ;
34253450
34263451 let route: & [ & [ & Node ] ] = & [ & [ sender_lsp, invoice_server, recipient] ] ;
0 commit comments