@@ -2400,15 +2400,35 @@ impl_writeable_tlv_based_enum_upgradable!(PendingOutboundPayment,
2400
2400
( 5 , AwaitingInvoice ) => {
2401
2401
( 0 , expiration, required) ,
2402
2402
( 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
+ ) ) ,
2404
2409
( 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
+ ) ) ) ,
2406
2416
} ,
2407
2417
( 7 , InvoiceReceived ) => {
2408
2418
( 0 , payment_hash, required) ,
2409
2419
( 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
+ ) ) ,
2412
2432
} ,
2413
2433
// Added in 0.1. Prior versions will drop these outbounds on downgrade, which is safe because no
2414
2434
// HTLCs are in-flight.
@@ -2424,7 +2444,18 @@ impl_writeable_tlv_based_enum_upgradable!(PendingOutboundPayment,
2424
2444
( 11 , AwaitingOffer ) => {
2425
2445
( 0 , expiration, required) ,
2426
2446
( 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
+ ) ) ) ,
2428
2459
( 6 , amount_msats, required) ,
2429
2460
} ,
2430
2461
) ;
0 commit comments