@@ -147,6 +147,7 @@ fn mpp_retry() {
147
147
// Check the remaining max total routing fee for the second attempt is 50_000 - 1_000 msat fee
148
148
// used by the first path
149
149
route_params. max_total_routing_fee_msat = Some ( max_total_routing_fee_msat - 1_000 ) ;
150
+ route. route_params = Some ( route_params. clone ( ) ) ;
150
151
nodes[ 0 ] . router . expect_find_route ( route_params, Ok ( route) ) ;
151
152
nodes[ 0 ] . node . process_pending_htlc_forwards ( ) ;
152
153
check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
@@ -253,12 +254,12 @@ fn mpp_retry_overpay() {
253
254
254
255
route. paths . remove ( 0 ) ;
255
256
route_params. final_value_msat -= first_path_value;
256
- route. route_params . as_mut ( ) . map ( |p| p. final_value_msat -= first_path_value) ;
257
257
route_params. payment_params . previously_failed_channels . push ( chan_4_update. contents . short_channel_id ) ;
258
-
259
258
// Check the remaining max total routing fee for the second attempt accounts only for 1_000 msat
260
259
// base fee, but not for overpaid value of the first try.
261
260
route_params. max_total_routing_fee_msat . as_mut ( ) . map ( |m| * m -= 1000 ) ;
261
+
262
+ route. route_params = Some ( route_params. clone ( ) ) ;
262
263
nodes[ 0 ] . router . expect_find_route ( route_params, Ok ( route) ) ;
263
264
nodes[ 0 ] . node . process_pending_htlc_forwards ( ) ;
264
265
@@ -2738,7 +2739,7 @@ fn retry_multi_path_single_failed_payment() {
2738
2739
2739
2740
let mut retry_params = RouteParameters :: from_payment_params_and_value ( pay_params, 100_000_000 ) ;
2740
2741
retry_params. max_total_routing_fee_msat = None ;
2741
- route. route_params . as_mut ( ) . unwrap ( ) . final_value_msat = 100_000_000 ;
2742
+ route. route_params = Some ( retry_params . clone ( ) ) ;
2742
2743
nodes[ 0 ] . router . expect_find_route ( retry_params, Ok ( route. clone ( ) ) ) ;
2743
2744
2744
2745
{
@@ -2809,9 +2810,7 @@ fn immediate_retry_on_failure() {
2809
2810
maybe_announced_channel: true ,
2810
2811
} ] , blinded_tail: None } ,
2811
2812
] ,
2812
- route_params : Some ( RouteParameters :: from_payment_params_and_value (
2813
- PaymentParameters :: from_node_id ( nodes[ 1 ] . node . get_our_node_id ( ) , TEST_FINAL_CLTV ) ,
2814
- 100_000_001 ) ) ,
2813
+ route_params : Some ( route_params. clone ( ) ) ,
2815
2814
} ;
2816
2815
nodes[ 0 ] . router . expect_find_route ( route_params. clone ( ) , Ok ( route. clone ( ) ) ) ;
2817
2816
// On retry, split the payment across both channels.
@@ -2821,9 +2820,9 @@ fn immediate_retry_on_failure() {
2821
2820
route. paths [ 1 ] . hops [ 0 ] . fee_msat = 50_000_001 ;
2822
2821
let mut pay_params = route_params. payment_params . clone ( ) ;
2823
2822
pay_params. previously_failed_channels . push ( chans[ 0 ] . short_channel_id . unwrap ( ) ) ;
2824
- nodes [ 0 ] . router . expect_find_route (
2825
- RouteParameters :: from_payment_params_and_value ( pay_params , amt_msat ) ,
2826
- Ok ( route. clone ( ) ) ) ;
2823
+ let retry_params = RouteParameters :: from_payment_params_and_value ( pay_params , amt_msat ) ;
2824
+ route . route_params = Some ( retry_params . clone ( ) ) ;
2825
+ nodes [ 0 ] . router . expect_find_route ( retry_params , Ok ( route. clone ( ) ) ) ;
2827
2826
2828
2827
nodes[ 0 ] . node . send_payment ( payment_hash, RecipientOnionFields :: secret_only ( payment_secret) ,
2829
2828
PaymentId ( payment_hash. 0 ) , route_params, Retry :: Attempts ( 1 ) ) . unwrap ( ) ;
@@ -2933,6 +2932,7 @@ fn no_extra_retries_on_back_to_back_fail() {
2933
2932
route. paths [ 0 ] . hops [ 1 ] . fee_msat = amt_msat;
2934
2933
let mut retry_params = RouteParameters :: from_payment_params_and_value ( second_payment_params, amt_msat) ;
2935
2934
retry_params. max_total_routing_fee_msat = None ;
2935
+ route. route_params = Some ( retry_params. clone ( ) ) ;
2936
2936
nodes[ 0 ] . router . expect_find_route ( retry_params, Ok ( route. clone ( ) ) ) ;
2937
2937
2938
2938
nodes[ 0 ] . node . send_payment ( payment_hash, RecipientOnionFields :: secret_only ( payment_secret) ,
@@ -3137,7 +3137,7 @@ fn test_simple_partial_retry() {
3137
3137
route. paths . remove ( 0 ) ;
3138
3138
let mut retry_params = RouteParameters :: from_payment_params_and_value ( second_payment_params, amt_msat / 2 ) ;
3139
3139
retry_params. max_total_routing_fee_msat = None ;
3140
- route. route_params . as_mut ( ) . unwrap ( ) . final_value_msat = amt_msat / 2 ;
3140
+ route. route_params = Some ( retry_params . clone ( ) ) ;
3141
3141
nodes[ 0 ] . router . expect_find_route ( retry_params, Ok ( route. clone ( ) ) ) ;
3142
3142
3143
3143
nodes[ 0 ] . node . send_payment ( payment_hash, RecipientOnionFields :: secret_only ( payment_secret) ,
@@ -3316,7 +3316,7 @@ fn test_threaded_payment_retries() {
3316
3316
3317
3317
// from here on out, the retry `RouteParameters` amount will be amt/1000
3318
3318
route_params. final_value_msat /= 1000 ;
3319
- route. route_params . as_mut ( ) . unwrap ( ) . final_value_msat /= 1000 ;
3319
+ route. route_params = Some ( route_params . clone ( ) ) ;
3320
3320
route. paths . pop ( ) ;
3321
3321
3322
3322
let end_time = Instant :: now ( ) + Duration :: from_secs ( 1 ) ;
@@ -3358,6 +3358,7 @@ fn test_threaded_payment_retries() {
3358
3358
new_route_params. payment_params . previously_failed_channels = previously_failed_channels. clone ( ) ;
3359
3359
new_route_params. max_total_routing_fee_msat . as_mut ( ) . map ( |m| * m -= 100_000 ) ;
3360
3360
route. paths [ 0 ] . hops [ 1 ] . short_channel_id += 1 ;
3361
+ route. route_params = Some ( new_route_params. clone ( ) ) ;
3361
3362
nodes[ 0 ] . router . expect_find_route ( new_route_params, Ok ( route. clone ( ) ) ) ;
3362
3363
3363
3364
let bs_fail_updates = get_htlc_update_msgs ! ( nodes[ 1 ] , nodes[ 0 ] . node. get_our_node_id( ) ) ;
@@ -3720,7 +3721,7 @@ fn test_retry_custom_tlvs() {
3720
3721
send_payment ( & nodes[ 2 ] , & vec ! ( & nodes[ 1 ] ) [ ..] , 1_500_000 ) ;
3721
3722
3722
3723
let amt_msat = 1_000_000 ;
3723
- let ( route, payment_hash, payment_preimage, payment_secret) =
3724
+ let ( mut route, payment_hash, payment_preimage, payment_secret) =
3724
3725
get_route_and_payment_hash ! ( nodes[ 0 ] , nodes[ 2 ] , amt_msat) ;
3725
3726
3726
3727
// Initiate the payment
@@ -3772,6 +3773,7 @@ fn test_retry_custom_tlvs() {
3772
3773
3773
3774
// Retry the payment and make sure it succeeds
3774
3775
route_params. payment_params . previously_failed_channels . push ( chan_2_update. contents . short_channel_id ) ;
3776
+ route. route_params = Some ( route_params. clone ( ) ) ;
3775
3777
nodes[ 0 ] . router . expect_find_route ( route_params, Ok ( route) ) ;
3776
3778
nodes[ 0 ] . node . process_pending_htlc_forwards ( ) ;
3777
3779
check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
0 commit comments