@@ -54,7 +54,7 @@ use crate::ln::channel_state::ChannelDetails;
5454use crate::types::features::{Bolt12InvoiceFeatures, ChannelFeatures, ChannelTypeFeatures, InitFeatures, NodeFeatures};
5555#[cfg(any(feature = "_test_utils", test))]
5656use crate::types::features::Bolt11InvoiceFeatures;
57- use crate::routing::router::{BlindedTail, InFlightHtlcs, Path, Payee, PaymentParameters, Route, RouteParameters, Router};
57+ use crate::routing::router::{BlindedTail, InFlightHtlcs, Path, Payee, PaymentParameters, Route, RouteParameters, RouteParametersConfig, Router};
5858use crate::ln::onion_payment::{check_incoming_htlc_cltv, create_recv_pending_htlc_info, create_fwd_pending_htlc_info, decode_incoming_update_add_htlc_onion, InboundHTLCErr, NextPacketDetails};
5959use crate::ln::msgs;
6060use crate::ln::onion_utils;
@@ -1847,6 +1847,7 @@ where
18471847/// # use lightning::events::{Event, EventsProvider, PaymentPurpose};
18481848/// # use lightning::ln::channelmanager::AChannelManager;
18491849/// # use lightning::offers::parse::Bolt12SemanticError;
1850+ /// # use lightning::routing::router::RouteParametersConfig;
18501851/// #
18511852/// # fn example<T: AChannelManager>(channel_manager: T) -> Result<(), Bolt12SemanticError> {
18521853/// # let channel_manager = channel_manager.get_cm();
@@ -1894,15 +1895,16 @@ where
18941895/// # use lightning::events::{Event, EventsProvider};
18951896/// # use lightning::ln::channelmanager::{AChannelManager, PaymentId, RecentPaymentDetails, Retry};
18961897/// # use lightning::offers::offer::Offer;
1898+ /// # use lightning::routing::router::RouteParametersConfig;
18971899/// #
18981900/// # fn example<T: AChannelManager>(
18991901/// # channel_manager: T, offer: &Offer, quantity: Option<u64>, amount_msats: Option<u64>,
1900- /// # payer_note: Option<String>, retry: Retry, max_total_routing_fee_msat : Option<u64 >
1902+ /// # payer_note: Option<String>, retry: Retry, route_params_config : Option<RouteParametersConfig >
19011903/// # ) {
19021904/// # let channel_manager = channel_manager.get_cm();
19031905/// let payment_id = PaymentId([42; 32]);
19041906/// match channel_manager.pay_for_offer(
1905- /// offer, quantity, amount_msats, payer_note, payment_id, retry, max_total_routing_fee_msat
1907+ /// offer, quantity, amount_msats, payer_note, payment_id, retry, route_params_config
19061908/// ) {
19071909/// Ok(()) => println!("Requesting invoice for offer"),
19081910/// Err(e) => println!("Unable to request invoice for offer: {:?}", e),
@@ -9209,10 +9211,15 @@ macro_rules! create_refund_builder { ($self: ident, $builder: ty) => {
92099211
92109212 let _persistence_guard = PersistenceNotifierGuard::notify_on_drop($self);
92119213
9214+ let route_params_config = max_total_routing_fee_msat.map(
9215+ |fee_msat| RouteParametersConfig::new()
9216+ .with_max_total_routing_fee_msat(fee_msat)
9217+ );
9218+
92129219 let expiration = StaleExpiration::AbsoluteTimeout(absolute_expiry);
92139220 $self.pending_outbound_payments
92149221 .add_new_awaiting_invoice(
9215- payment_id, expiration, retry_strategy, max_total_routing_fee_msat , None,
9222+ payment_id, expiration, retry_strategy, route_params_config , None,
92169223 )
92179224 .map_err(|_| Bolt12SemanticError::DuplicatePaymentId)?;
92189225
@@ -9305,7 +9312,7 @@ where
93059312 pub fn pay_for_offer(
93069313 &self, offer: &Offer, quantity: Option<u64>, amount_msats: Option<u64>,
93079314 payer_note: Option<String>, payment_id: PaymentId, retry_strategy: Retry,
9308- max_total_routing_fee_msat : Option<u64 >
9315+ route_params_config : Option<RouteParametersConfig >
93099316 ) -> Result<(), Bolt12SemanticError> {
93109317 let expanded_key = &self.inbound_payment_key;
93119318 let entropy = &*self.entropy_source;
@@ -9347,7 +9354,7 @@ where
93479354 };
93489355 self.pending_outbound_payments
93499356 .add_new_awaiting_invoice(
9350- payment_id, expiration, retry_strategy, max_total_routing_fee_msat ,
9357+ payment_id, expiration, retry_strategy, route_params_config ,
93519358 Some(retryable_invoice_request)
93529359 )
93539360 .map_err(|_| Bolt12SemanticError::DuplicatePaymentId)?;
0 commit comments