@@ -3066,7 +3066,12 @@ impl<ChanSigner: ChannelKeys, M: Deref + Sync + Send, T: Deref + Sync + Send, K:
3066
3066
// number of blocks we generally consider it to take to do a commitment update,
3067
3067
// just give up on it and fail he HTLC.
3068
3068
if height >= htlc. cltv_expiry - CLTV_CLAIM_BUFFER - LATENCY_GRACE_PERIOD_BLOCKS {
3069
- timed_out_htlcs. push ( ( HTLCSource :: PreviousHopData ( htlc. prev_hop . clone ( ) ) , payment_hash. clone ( ) , htlc. value ) ) ;
3069
+ let mut htlc_msat_height_data = byte_utils:: be64_to_array ( htlc. value ) . to_vec ( ) ;
3070
+ htlc_msat_height_data. extend_from_slice ( & byte_utils:: be32_to_array ( height) ) ;
3071
+ timed_out_htlcs. push ( ( HTLCSource :: PreviousHopData ( htlc. prev_hop . clone ( ) ) , payment_hash. clone ( ) , HTLCFailReason :: Reason {
3072
+ failure_code : 0x4000 | 15 ,
3073
+ data : htlc_msat_height_data
3074
+ } ) ) ;
3070
3075
false
3071
3076
} else { true }
3072
3077
} ) ;
@@ -3077,17 +3082,10 @@ impl<ChanSigner: ChannelKeys, M: Deref + Sync + Send, T: Deref + Sync + Send, K:
3077
3082
self . finish_force_close_channel ( failure) ;
3078
3083
}
3079
3084
3080
- for ( source, payment_hash, value ) in timed_out_htlcs. drain ( ..) {
3085
+ for ( source, payment_hash, reason ) in timed_out_htlcs. drain ( ..) {
3081
3086
// Call it incorrect_or_unknown_payment_details as the issue, ultimately, is that the
3082
3087
// user failed to provide us a preimage within the cltv_expiry time window.
3083
- let mut htlc_msat_height_data = byte_utils:: be64_to_array ( value) . to_vec ( ) ;
3084
- htlc_msat_height_data. extend_from_slice ( & byte_utils:: be32_to_array (
3085
- self . latest_block_height . load ( Ordering :: Acquire ) as u32 ,
3086
- ) ) ;
3087
- self . fail_htlc_backwards_internal ( self . channel_state . lock ( ) . unwrap ( ) , source, & payment_hash, HTLCFailReason :: Reason {
3088
- failure_code : 0x4000 | 15 ,
3089
- data : htlc_msat_height_data
3090
- } ) ;
3088
+ self . fail_htlc_backwards_internal ( self . channel_state . lock ( ) . unwrap ( ) , source, & payment_hash, reason) ;
3091
3089
}
3092
3090
self . latest_block_height . store ( height as usize , Ordering :: Release ) ;
3093
3091
* self . last_block_hash . try_lock ( ) . expect ( "block_(dis)connected must not be called in parallel" ) = header_hash;
0 commit comments