@@ -849,7 +849,7 @@ impl OutboundPayments {
849849 SP : Fn ( SendAlongPathArgs ) -> Result < ( ) , APIError > ,
850850 {
851851 let payment_hash = invoice. payment_hash ( ) ;
852- let max_total_routing_fee_msat ;
852+ let params_override ;
853853 let retry_strategy;
854854 match self . pending_outbound_payments . lock ( ) . unwrap ( ) . entry ( payment_id) {
855855 hash_map:: Entry :: Occupied ( entry) => match entry. get ( ) {
@@ -864,9 +864,7 @@ impl OutboundPayments {
864864 params_override. with_max_total_routing_fee_msat ( fee_msat)
865865 ) . or_else ( || Some ( RouteParametersOverride :: new ( ) . with_max_total_routing_fee_msat ( fee_msat) ) )
866866 } ) ;
867- max_total_routing_fee_msat = route_params_override. and_then (
868- |params| params. max_total_routing_fee_msat
869- ) ;
867+ params_override = route_params_override;
870868 * entry. into_mut ( ) = PendingOutboundPayment :: InvoiceReceived {
871869 payment_hash,
872870 retry_strategy : * retry,
@@ -886,11 +884,12 @@ impl OutboundPayments {
886884 }
887885
888886 let mut route_params = RouteParameters :: from_payment_params_and_value (
889- PaymentParameters :: from_bolt12_invoice ( & invoice) , invoice. amount_msats ( )
887+ PaymentParameters :: from_bolt12_invoice ( & invoice, params_override ) , invoice. amount_msats ( )
890888 ) ;
891- if let Some ( max_fee_msat) = max_total_routing_fee_msat {
892- route_params. max_total_routing_fee_msat = Some ( max_fee_msat) ;
893- }
889+
890+ params_override. and_then ( |p| p. max_total_routing_fee_msat )
891+ . map ( |max_fee_msat| route_params. max_total_routing_fee_msat = Some ( max_fee_msat) ) ;
892+
894893 self . send_payment_for_bolt12_invoice_internal (
895894 payment_id, payment_hash, None , route_params, retry_strategy, router, first_hops,
896895 inflight_htlcs, entropy_source, node_signer, node_id_lookup, secp_ctx, best_block_height,
@@ -2718,7 +2717,7 @@ mod tests {
27182717
27192718 router. expect_find_route (
27202719 RouteParameters :: from_payment_params_and_value (
2721- PaymentParameters :: from_bolt12_invoice ( & invoice) ,
2720+ PaymentParameters :: from_bolt12_invoice ( & invoice, None ) ,
27222721 invoice. amount_msats ( ) ,
27232722 ) ,
27242723 Err ( LightningError { err : String :: new ( ) , action : ErrorAction :: IgnoreError } ) ,
@@ -2770,7 +2769,7 @@ mod tests {
27702769 . sign ( recipient_sign) . unwrap ( ) ;
27712770
27722771 let route_params = RouteParameters {
2773- payment_params : PaymentParameters :: from_bolt12_invoice ( & invoice) ,
2772+ payment_params : PaymentParameters :: from_bolt12_invoice ( & invoice, None ) ,
27742773 final_value_msat : invoice. amount_msats ( ) ,
27752774 max_total_routing_fee_msat : Some ( 1234 ) ,
27762775 } ;
0 commit comments