@@ -2143,6 +2143,8 @@ where L::Target: Logger {
2143
2143
// if the amount being transferred over this path is lower.
2144
2144
// We do this for now, but this is a subject for removal.
2145
2145
if let Some ( mut available_value_contribution_msat) = htlc_maximum_msat. checked_sub( $next_hops_fee_msat) {
2146
+ let cltv_expiry_delta = $candidate. cltv_expiry_delta( ) ;
2147
+ let htlc_minimum_msat = $candidate. htlc_minimum_msat( ) ;
2146
2148
let used_liquidity_msat = used_liquidities
2147
2149
. get( & $candidate. id( ) )
2148
2150
. map_or( 0 , |used_liquidity_msat| {
@@ -2165,7 +2167,7 @@ where L::Target: Logger {
2165
2167
. checked_sub( 2 * MEDIAN_HOP_CLTV_EXPIRY_DELTA )
2166
2168
. unwrap_or( payment_params. max_total_cltv_expiry_delta - final_cltv_expiry_delta) ;
2167
2169
let hop_total_cltv_delta = ( $next_hops_cltv_delta as u32 )
2168
- . saturating_add( $candidate . cltv_expiry_delta( ) ) ;
2170
+ . saturating_add( cltv_expiry_delta) ;
2169
2171
let exceeds_cltv_delta_limit = hop_total_cltv_delta > max_total_cltv_expiry_delta;
2170
2172
2171
2173
let value_contribution_msat = cmp:: min( available_value_contribution_msat, $next_hops_value_contribution) ;
@@ -2175,7 +2177,6 @@ where L::Target: Logger {
2175
2177
// Can't overflow due to how the values were computed right above.
2176
2178
None => unreachable!( ) ,
2177
2179
} ;
2178
- let htlc_minimum_msat = $candidate. htlc_minimum_msat( ) ;
2179
2180
#[ allow( unused_comparisons) ] // $next_hops_path_htlc_minimum_msat is 0 in some calls so rustc complains
2180
2181
let over_path_minimum_msat = amount_to_transfer_over_msat >= htlc_minimum_msat &&
2181
2182
amount_to_transfer_over_msat >= $next_hops_path_htlc_minimum_msat;
@@ -2258,12 +2259,14 @@ where L::Target: Logger {
2258
2259
// payment path (upstream to the payee). To avoid that, we recompute
2259
2260
// path fees knowing the final path contribution after constructing it.
2260
2261
let curr_min = cmp:: max(
2261
- $next_hops_path_htlc_minimum_msat, $candidate . htlc_minimum_msat( )
2262
+ $next_hops_path_htlc_minimum_msat, htlc_minimum_msat
2262
2263
) ;
2263
- let path_htlc_minimum_msat = compute_fees_saturating( curr_min, $candidate. fees( ) )
2264
+ let candidate_fees = $candidate. fees( ) ;
2265
+ let src_node_counter = $candidate. src_node_counter( ) ;
2266
+ let path_htlc_minimum_msat = compute_fees_saturating( curr_min, candidate_fees)
2264
2267
. saturating_add( curr_min) ;
2265
2268
2266
- let dist_entry = & mut dist[ $candidate . src_node_counter( ) as usize ] ;
2269
+ let dist_entry = & mut dist[ src_node_counter as usize ] ;
2267
2270
let old_entry = if let Some ( hop) = dist_entry {
2268
2271
hop
2269
2272
} else {
@@ -2307,7 +2310,7 @@ where L::Target: Logger {
2307
2310
if src_node_id != our_node_id {
2308
2311
// Note that `u64::max_value` means we'll always fail the
2309
2312
// `old_entry.total_fee_msat > total_fee_msat` check below
2310
- hop_use_fee_msat = compute_fees_saturating( amount_to_transfer_over_msat, $candidate . fees ( ) ) ;
2313
+ hop_use_fee_msat = compute_fees_saturating( amount_to_transfer_over_msat, candidate_fees ) ;
2311
2314
total_fee_msat = total_fee_msat. saturating_add( hop_use_fee_msat) ;
2312
2315
}
2313
2316
0 commit comments