@@ -2326,6 +2326,8 @@ where L::Target: Logger {
2326
2326
// if the amount being transferred over this path is lower.
2327
2327
// We do this for now, but this is a subject for removal.
2328
2328
if let Some ( mut available_value_contribution_msat) = htlc_maximum_msat. checked_sub( $next_hops_fee_msat) {
2329
+ let cltv_expiry_delta = $candidate. cltv_expiry_delta( ) ;
2330
+ let htlc_minimum_msat = $candidate. htlc_minimum_msat( ) ;
2329
2331
let used_liquidity_msat = used_liquidities
2330
2332
. get( & $candidate. id( ) )
2331
2333
. map_or( 0 , |used_liquidity_msat| {
@@ -2349,7 +2351,7 @@ where L::Target: Logger {
2349
2351
. checked_sub( 2 * MEDIAN_HOP_CLTV_EXPIRY_DELTA )
2350
2352
. unwrap_or( payment_params. max_total_cltv_expiry_delta - final_cltv_expiry_delta) ;
2351
2353
let hop_total_cltv_delta = ( $next_hops_cltv_delta as u32 )
2352
- . saturating_add( $candidate . cltv_expiry_delta( ) ) ;
2354
+ . saturating_add( cltv_expiry_delta) ;
2353
2355
let exceeds_cltv_delta_limit = hop_total_cltv_delta > max_total_cltv_expiry_delta;
2354
2356
2355
2357
let value_contribution_msat = cmp:: min( available_value_contribution_msat, $next_hops_value_contribution) ;
@@ -2359,7 +2361,6 @@ where L::Target: Logger {
2359
2361
// Can't overflow due to how the values were computed right above.
2360
2362
None => unreachable!( ) ,
2361
2363
} ;
2362
- let htlc_minimum_msat = $candidate. htlc_minimum_msat( ) ;
2363
2364
#[ allow( unused_comparisons) ] // $next_hops_path_htlc_minimum_msat is 0 in some calls so rustc complains
2364
2365
let over_path_minimum_msat = amount_to_transfer_over_msat >= htlc_minimum_msat &&
2365
2366
amount_to_transfer_over_msat >= $next_hops_path_htlc_minimum_msat;
@@ -2437,12 +2438,14 @@ where L::Target: Logger {
2437
2438
// payment path (upstream to the payee). To avoid that, we recompute
2438
2439
// path fees knowing the final path contribution after constructing it.
2439
2440
let curr_min = cmp:: max(
2440
- $next_hops_path_htlc_minimum_msat, $candidate . htlc_minimum_msat( )
2441
+ $next_hops_path_htlc_minimum_msat, htlc_minimum_msat
2441
2442
) ;
2442
- let path_htlc_minimum_msat = compute_fees_saturating( curr_min, $candidate. fees( ) )
2443
+ let candidate_fees = $candidate. fees( ) ;
2444
+ let src_node_counter = $candidate. src_node_counter( ) ;
2445
+ let path_htlc_minimum_msat = compute_fees_saturating( curr_min, candidate_fees)
2443
2446
. saturating_add( curr_min) ;
2444
2447
2445
- let dist_entry = & mut dist[ $candidate . src_node_counter( ) as usize ] ;
2448
+ let dist_entry = & mut dist[ src_node_counter as usize ] ;
2446
2449
let old_entry = if let Some ( hop) = dist_entry {
2447
2450
hop
2448
2451
} else {
@@ -2486,7 +2489,7 @@ where L::Target: Logger {
2486
2489
if src_node_id != our_node_id {
2487
2490
// Note that `u64::max_value` means we'll always fail the
2488
2491
// `old_entry.total_fee_msat > total_fee_msat` check below
2489
- hop_use_fee_msat = compute_fees_saturating( amount_to_transfer_over_msat, $candidate . fees ( ) ) ;
2492
+ hop_use_fee_msat = compute_fees_saturating( amount_to_transfer_over_msat, candidate_fees ) ;
2490
2493
total_fee_msat = total_fee_msat. saturating_add( hop_use_fee_msat) ;
2491
2494
}
2492
2495
0 commit comments