@@ -3107,14 +3107,15 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
3107
3107
session_priv_bytes. copy_from_slice ( & session_priv[ ..] ) ;
3108
3108
let mut outbounds = self . pending_outbound_payments . lock ( ) . unwrap ( ) ;
3109
3109
if let hash_map:: Entry :: Occupied ( mut payment) = outbounds. entry ( payment_id) {
3110
- if payment. get_mut ( ) . remove ( & session_priv_bytes, Some ( path. last ( ) . unwrap ( ) . fee_msat ) ) &&
3110
+ let path_last_hop = path. last ( ) . expect ( "Outbound payments must have had a valid path" ) ;
3111
+ if payment. get_mut ( ) . remove ( & session_priv_bytes, Some ( path_last_hop. fee_msat ) ) &&
3111
3112
!payment. get ( ) . is_fulfilled ( )
3112
3113
{
3113
3114
let retry = if let Some ( payee_data) = payee {
3114
3115
Some ( PaymentPathRetry {
3115
3116
payee : payee_data,
3116
- final_value_msat : path . last ( ) . expect ( "Outbound payments must have had a valid path" ) . fee_msat ,
3117
- final_cltv_expiry_delta : path . last ( ) . expect ( "Outbound payments must have had a valid path" ) . cltv_expiry_delta ,
3117
+ final_value_msat : path_last_hop . fee_msat ,
3118
+ final_cltv_expiry_delta : path_last_hop . cltv_expiry_delta ,
3118
3119
} )
3119
3120
} else { None } ;
3120
3121
self . pending_events . lock ( ) . unwrap ( ) . push (
@@ -3162,8 +3163,9 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
3162
3163
session_priv_bytes. copy_from_slice ( & session_priv[ ..] ) ;
3163
3164
let mut outbounds = self . pending_outbound_payments . lock ( ) . unwrap ( ) ;
3164
3165
let mut all_paths_failed = false ;
3166
+ let path_last_hop = path. last ( ) . expect ( "Outbound payments must have had a valid path" ) ;
3165
3167
if let hash_map:: Entry :: Occupied ( mut payment) = outbounds. entry ( payment_id) {
3166
- if !payment. get_mut ( ) . remove ( & session_priv_bytes, Some ( path . last ( ) . unwrap ( ) . fee_msat ) ) {
3168
+ if !payment. get_mut ( ) . remove ( & session_priv_bytes, Some ( path_last_hop . fee_msat ) ) {
3167
3169
log_trace ! ( self . logger, "Received duplicative fail for HTLC with payment_hash {}" , log_bytes!( payment_hash. 0 ) ) ;
3168
3170
return ;
3169
3171
}
@@ -3182,8 +3184,8 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
3182
3184
let retry = if let Some ( payee_data) = payee {
3183
3185
Some ( PaymentPathRetry {
3184
3186
payee : payee_data. clone ( ) ,
3185
- final_value_msat : path . last ( ) . expect ( "Outbound payments must have had a valid path" ) . fee_msat ,
3186
- final_cltv_expiry_delta : path . last ( ) . expect ( "Outbound payments must have had a valid path" ) . cltv_expiry_delta ,
3187
+ final_value_msat : path_last_hop . fee_msat ,
3188
+ final_cltv_expiry_delta : path_last_hop . cltv_expiry_delta ,
3187
3189
} )
3188
3190
} else { None } ;
3189
3191
log_trace ! ( self . logger, "Failing outbound payment HTLC with payment_hash {}" , log_bytes!( payment_hash. 0 ) ) ;
0 commit comments