@@ -2400,15 +2400,35 @@ impl_writeable_tlv_based_enum_upgradable!(PendingOutboundPayment,
24002400 ( 5 , AwaitingInvoice ) => {
24012401 ( 0 , expiration, required) ,
24022402 ( 2 , retry_strategy, required) ,
2403- // TODO: Add support for legacy `max_total_routing_fee_msat`
2403+ ( 4 , _max_total_routing_fee_msat, ( legacy, u64 ,
2404+ |us: & PendingOutboundPayment | match us {
2405+ PendingOutboundPayment :: AwaitingInvoice { route_params_config, .. } => route_params_config. max_total_routing_fee_msat,
2406+ _ => None ,
2407+ }
2408+ ) ) ,
24042409 ( 5 , retryable_invoice_request, option) ,
2405- ( 7 , route_params_config, ( default_value, RouteParametersConfig :: new( ) ) ) ,
2410+ ( 7 , route_params_config, ( default_value, (
2411+ _max_total_routing_fee_msat. map_or(
2412+ RouteParametersConfig :: new( ) ,
2413+ |fee_msat| RouteParametersConfig :: new( ) . with_max_total_routing_fee_msat( fee_msat)
2414+ )
2415+ ) ) ) ,
24062416 } ,
24072417 ( 7 , InvoiceReceived ) => {
24082418 ( 0 , payment_hash, required) ,
24092419 ( 2 , retry_strategy, required) ,
2410- ( 3 , route_params_config, ( default_value, RouteParametersConfig :: new( ) ) ) ,
2411- // TODO: Add support for legacy `max_total_routing_fee_msat`
2420+ ( 3 , route_params_config, ( default_value, (
2421+ _max_total_routing_fee_msat. map_or(
2422+ RouteParametersConfig :: new( ) ,
2423+ |fee_msat| RouteParametersConfig :: new( ) . with_max_total_routing_fee_msat( fee_msat)
2424+ )
2425+ ) ) ) ,
2426+ ( 4 , _max_total_routing_fee_msat, ( legacy, u64 ,
2427+ |us: & PendingOutboundPayment | match us {
2428+ PendingOutboundPayment :: InvoiceReceived { route_params_config, .. } => route_params_config. max_total_routing_fee_msat,
2429+ _ => None ,
2430+ }
2431+ ) ) ,
24122432 } ,
24132433 // Added in 0.1. Prior versions will drop these outbounds on downgrade, which is safe because no
24142434 // HTLCs are in-flight.
@@ -2424,7 +2444,18 @@ impl_writeable_tlv_based_enum_upgradable!(PendingOutboundPayment,
24242444 ( 11 , AwaitingOffer ) => {
24252445 ( 0 , expiration, required) ,
24262446 ( 2 , retry_strategy, required) ,
2427- ( 5 , route_params_config, ( default_value, RouteParametersConfig :: new( ) ) ) ,
2447+ ( 4 , _max_total_routing_fee_msat, ( legacy, u64 ,
2448+ |us: & PendingOutboundPayment | match us {
2449+ PendingOutboundPayment :: AwaitingOffer { route_params_config, .. } => route_params_config. max_total_routing_fee_msat,
2450+ _ => None ,
2451+ }
2452+ ) ) ,
2453+ ( 5 , route_params_config, ( default_value, (
2454+ _max_total_routing_fee_msat. map_or(
2455+ RouteParametersConfig :: new( ) ,
2456+ |fee_msat| RouteParametersConfig :: new( ) . with_max_total_routing_fee_msat( fee_msat)
2457+ )
2458+ ) ) ) ,
24282459 ( 6 , amount_msats, required) ,
24292460 } ,
24302461) ;
0 commit comments