@@ -3107,14 +3107,15 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
31073107 session_priv_bytes. copy_from_slice ( & session_priv[ ..] ) ;
31083108 let mut outbounds = self . pending_outbound_payments . lock ( ) . unwrap ( ) ;
31093109 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 ) ) &&
31113112 !payment. get ( ) . is_fulfilled ( )
31123113 {
31133114 let retry = if let Some ( payee_data) = payee {
31143115 Some ( PaymentPathRetry {
31153116 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 ,
31183119 } )
31193120 } else { None } ;
31203121 self . pending_events . lock ( ) . unwrap ( ) . push (
@@ -3162,8 +3163,9 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
31623163 session_priv_bytes. copy_from_slice ( & session_priv[ ..] ) ;
31633164 let mut outbounds = self . pending_outbound_payments . lock ( ) . unwrap ( ) ;
31643165 let mut all_paths_failed = false ;
3166+ let path_last_hop = path. last ( ) . expect ( "Outbound payments must have had a valid path" ) ;
31653167 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 ) ) {
31673169 log_trace ! ( self . logger, "Received duplicative fail for HTLC with payment_hash {}" , log_bytes!( payment_hash. 0 ) ) ;
31683170 return ;
31693171 }
@@ -3182,8 +3184,8 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
31823184 let retry = if let Some ( payee_data) = payee {
31833185 Some ( PaymentPathRetry {
31843186 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 ,
31873189 } )
31883190 } else { None } ;
31893191 log_trace ! ( self . logger, "Failing outbound payment HTLC with payment_hash {}" , log_bytes!( payment_hash. 0 ) ) ;
0 commit comments