@@ -849,7 +849,7 @@ impl OutboundPayments {
849
849
SP : Fn ( SendAlongPathArgs ) -> Result < ( ) , APIError > ,
850
850
{
851
851
let payment_hash = invoice. payment_hash ( ) ;
852
- let max_total_routing_fee_msat ;
852
+ let params_override ;
853
853
let retry_strategy;
854
854
match self . pending_outbound_payments . lock ( ) . unwrap ( ) . entry ( payment_id) {
855
855
hash_map:: Entry :: Occupied ( entry) => match entry. get ( ) {
@@ -864,9 +864,7 @@ impl OutboundPayments {
864
864
params_override. with_max_total_routing_fee_msat ( fee_msat)
865
865
) . or_else ( || Some ( RouteParametersOverride :: new ( ) . with_max_total_routing_fee_msat ( fee_msat) ) )
866
866
} ) ;
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;
870
868
* entry. into_mut ( ) = PendingOutboundPayment :: InvoiceReceived {
871
869
payment_hash,
872
870
retry_strategy : * retry,
@@ -886,11 +884,12 @@ impl OutboundPayments {
886
884
}
887
885
888
886
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 ( )
890
888
) ;
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
+
894
893
self . send_payment_for_bolt12_invoice_internal (
895
894
payment_id, payment_hash, None , route_params, retry_strategy, router, first_hops,
896
895
inflight_htlcs, entropy_source, node_signer, node_id_lookup, secp_ctx, best_block_height,
@@ -2718,7 +2717,7 @@ mod tests {
2718
2717
2719
2718
router. expect_find_route (
2720
2719
RouteParameters :: from_payment_params_and_value (
2721
- PaymentParameters :: from_bolt12_invoice ( & invoice) ,
2720
+ PaymentParameters :: from_bolt12_invoice ( & invoice, None ) ,
2722
2721
invoice. amount_msats ( ) ,
2723
2722
) ,
2724
2723
Err ( LightningError { err : String :: new ( ) , action : ErrorAction :: IgnoreError } ) ,
@@ -2770,7 +2769,7 @@ mod tests {
2770
2769
. sign ( recipient_sign) . unwrap ( ) ;
2771
2770
2772
2771
let route_params = RouteParameters {
2773
- payment_params : PaymentParameters :: from_bolt12_invoice ( & invoice) ,
2772
+ payment_params : PaymentParameters :: from_bolt12_invoice ( & invoice, None ) ,
2774
2773
final_value_msat : invoice. amount_msats ( ) ,
2775
2774
max_total_routing_fee_msat : Some ( 1234 ) ,
2776
2775
} ;
0 commit comments