Merge pull request #2696 from TheBlueMatt/2023-10-no-chan-feerate-upper-bound
[rust-lightning] / lightning / src / routing / router.rs
index 4c8a31bd73533fdf3ca4d19b869c8339edcc2167..8e45a8779620c2fc8247c8bce2b13a3620c18404 100644 (file)
@@ -90,6 +90,7 @@ pub trait Router {
                &self, payer: &PublicKey, route_params: &RouteParameters,
                first_hops: Option<&[&ChannelDetails]>, inflight_htlcs: InFlightHtlcs
        ) -> Result<Route, LightningError>;
+
        /// Finds a [`Route`] for a payment between the given `payer` and a payee.
        ///
        /// The `payee` and the payment's value are given in [`RouteParameters::payment_params`]
@@ -2817,7 +2818,7 @@ mod tests {
        use crate::chain::transaction::OutPoint;
        use crate::sign::EntropySource;
        use crate::ln::ChannelId;
-       use crate::ln::features::{BlindedHopFeatures, Bolt12InvoiceFeatures, ChannelFeatures, InitFeatures, NodeFeatures};
+       use crate::ln::features::{BlindedHopFeatures, ChannelFeatures, InitFeatures, NodeFeatures};
        use crate::ln::msgs::{ErrorAction, LightningError, UnsignedChannelUpdate, MAX_VALUE_MSAT};
        use crate::ln::channelmanager;
        use crate::offers::invoice::BlindedPayInfo;
@@ -3085,7 +3086,9 @@ mod tests {
                let (secp_ctx, network_graph, gossip_sync, _, logger) = build_graph();
                let (our_privkey, our_id, privkeys, nodes) = get_nodes(&secp_ctx);
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[2], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[2], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
                let scorer = ln_test_utils::TestScorer::new();
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
@@ -3231,7 +3234,7 @@ mod tests {
                let (secp_ctx, network_graph, gossip_sync, _, logger) = build_graph();
                let (_, our_id, privkeys, nodes) = get_nodes(&secp_ctx);
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[2], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[2], 42).with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config)).unwrap();
                let scorer = ln_test_utils::TestScorer::new();
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
@@ -4170,7 +4173,9 @@ mod tests {
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[2], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[2], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                // We will use a simple single-path route from
                // our node to node2 via node0: channels {1, 3}.
@@ -4478,7 +4483,9 @@ mod tests {
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[3], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[3], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                // Path via {node7, node2, node4} is channels {12, 13, 6, 11}.
                // {12, 13, 11} have the capacities of 100, {6} has a capacity of 50.
@@ -4662,11 +4669,12 @@ mod tests {
                let (_, _, _, nodes) = get_nodes(&secp_ctx);
                let config = UserConfig::default();
                let clear_payment_params = PaymentParameters::from_node_id(nodes[2], 42)
-                       .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
                do_simple_mpp_route_test(clear_payment_params);
 
                // MPP to a 1-hop blinded path for nodes[2]
-               let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+               let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                let blinded_path = BlindedPath {
                        introduction_node_id: nodes[2],
                        blinding_point: ln_test_utils::pubkey(42),
@@ -4905,7 +4913,8 @@ mod tests {
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
                let payment_params = PaymentParameters::from_node_id(nodes[3], 42)
-                       .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                // We need a route consisting of 3 paths:
                // From our node to node3 via {node0, node2}, {node7, node2, node4} and {node7, node2}.
@@ -5076,7 +5085,9 @@ mod tests {
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[3], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[3], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                // This test checks that if we have two cheaper paths and one more expensive path,
                // so that liquidity-wise any 2 of 3 combination is sufficient,
@@ -5249,7 +5260,9 @@ mod tests {
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[3], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[3], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                // We need a route consisting of 2 paths:
                // From our node to node3 via {node0, node2} and {node7, node2, node4}.
@@ -5404,7 +5417,7 @@ mod tests {
                                max_total_routing_fee_msat: Some(149_999) };
                        if let Err(LightningError{err, action: ErrorAction::IgnoreError}) = get_route(
                                &our_id, &route_params, &network_graph.read_only(), None, Arc::clone(&logger),
-                               &scorer, &(), &random_seed_bytes) {
+                               &scorer, &Default::default(), &random_seed_bytes) {
                                        assert_eq!(err, "Failed to find a sufficient route to the given destination");
                        } else { panic!(); }
                }
@@ -5448,7 +5461,8 @@ mod tests {
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(PublicKey::from_slice(&[02; 33]).unwrap(), 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap()
+               let payment_params = PaymentParameters::from_node_id(PublicKey::from_slice(&[02; 33]).unwrap(), 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config)).unwrap()
                        .with_route_hints(vec![RouteHint(vec![RouteHintHop {
                                src_node_id: nodes[2],
                                short_channel_id: 42,
@@ -5543,7 +5557,9 @@ mod tests {
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[2], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap()
+               let payment_params = PaymentParameters::from_node_id(nodes[2], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap()
                        .with_max_channel_saturation_power_of_half(0);
 
                // We need a route consisting of 3 paths:
@@ -5915,7 +5931,9 @@ mod tests {
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[2], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[2], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                // We modify the graph to set the htlc_minimum of channel 2 and 4 as needed - channel 2
                // gets an htlc_maximum_msat of 80_000 and channel 4 an htlc_minimum_msat of 90_000. We
@@ -5968,7 +5986,7 @@ mod tests {
                        assert_eq!(route.paths[0].hops[1].short_channel_id, 13);
                        assert_eq!(route.paths[0].hops[1].fee_msat, 90_000);
                        assert_eq!(route.paths[0].hops[1].cltv_expiry_delta, 42);
-                       assert_eq!(route.paths[0].hops[1].node_features.le_flags(), channelmanager::provided_invoice_features(&config).le_flags());
+                       assert_eq!(route.paths[0].hops[1].node_features.le_flags(), channelmanager::provided_bolt11_invoice_features(&config).le_flags());
                        assert_eq!(route.paths[0].hops[1].channel_features.le_flags(), &id_to_feature_flags(13));
                }
        }
@@ -5987,7 +6005,9 @@ mod tests {
                let network_graph = NetworkGraph::new(Network::Testnet, Arc::clone(&logger));
                let scorer = ln_test_utils::TestScorer::new();
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[0], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[0], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
 
@@ -6498,7 +6518,9 @@ mod tests {
                });
 
                let config = UserConfig::default();
-               let payment_params = PaymentParameters::from_node_id(nodes[2], 42).with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+               let payment_params = PaymentParameters::from_node_id(nodes[2], 42)
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
                let keys_manager = ln_test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                // 100,000 sats is less than the available liquidity on each channel, set above.
@@ -6557,7 +6579,7 @@ mod tests {
 
                let params = ProbabilisticScoringFeeParameters::default();
                let mut scorer = ProbabilisticScorer::new(ProbabilisticScoringDecayParameters::default(), &graph, &logger);
-               let features = channelmanager::provided_invoice_features(&UserConfig::default());
+               let features = channelmanager::provided_bolt11_invoice_features(&UserConfig::default());
 
                super::bench_utils::generate_test_routes(&graph, &mut scorer, &params, features, random_init_seed(), 0, 2);
        }
@@ -6578,7 +6600,7 @@ mod tests {
 
                let params = ProbabilisticScoringFeeParameters::default();
                let mut scorer = ProbabilisticScorer::new(ProbabilisticScoringDecayParameters::default(), &graph, &logger);
-               let features = channelmanager::provided_invoice_features(&UserConfig::default());
+               let features = channelmanager::provided_bolt11_invoice_features(&UserConfig::default());
 
                super::bench_utils::generate_test_routes(&graph, &mut scorer, &params, features, random_init_seed(), 1_000_000, 2);
        }
@@ -6652,7 +6674,8 @@ mod tests {
                let dest_node_id = ln_test_utils::pubkey(42);
                let payment_params = PaymentParameters::from_node_id(dest_node_id, 42)
                        .with_route_hints(vec![route_hint_1.clone()]).unwrap()
-                       .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                // Make sure we'll error if our route hints don't have enough liquidity according to their
                // htlc_maximum_msat.
@@ -6671,7 +6694,8 @@ mod tests {
                route_hint_2.0[0].short_channel_id = 43;
                let payment_params = PaymentParameters::from_node_id(dest_node_id, 42)
                        .with_route_hints(vec![route_hint_1, route_hint_2]).unwrap()
-                       .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
                let mut route_params = RouteParameters::from_payment_params_and_value(
                        payment_params, max_htlc_msat + 1);
                route_params.max_total_routing_fee_msat = Some(max_htlc_msat * 2);
@@ -6727,7 +6751,8 @@ mod tests {
                let dest_node_id = ln_test_utils::pubkey(44);
                let payment_params = PaymentParameters::from_node_id(dest_node_id, 42)
                        .with_route_hints(vec![route_hint_1, route_hint_2]).unwrap()
-                       .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config))
+                       .unwrap();
 
                let route_params = RouteParameters::from_payment_params_and_value(
                        payment_params, amt_msat);
@@ -6770,7 +6795,7 @@ mod tests {
                        cltv_expiry_delta: 10,
                        features: BlindedHopFeatures::empty(),
                };
-               let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+               let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                let payment_params = PaymentParameters::blinded(vec![
                        (blinded_payinfo.clone(), blinded_path.clone()),
                        (blinded_payinfo.clone(), blinded_path.clone())])
@@ -7079,7 +7104,7 @@ mod tests {
                let random_seed_bytes = keys_manager.get_secure_random_bytes();
                let config = UserConfig::default();
 
-               let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+               let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                let blinded_path_1 = BlindedPath {
                        introduction_node_id: nodes[2],
                        blinding_point: ln_test_utils::pubkey(42),
@@ -7107,7 +7132,7 @@ mod tests {
                        (blinded_payinfo_2.clone(), blinded_path_2.clone()),
                ];
                let payment_params = PaymentParameters::blinded(blinded_hints.clone())
-                       .with_bolt12_features(bolt12_features.clone()).unwrap();
+                       .with_bolt12_features(bolt12_features).unwrap();
 
                let mut route_params = RouteParameters::from_payment_params_and_value(payment_params, 100_000);
                route_params.max_total_routing_fee_msat = Some(100_000);
@@ -7272,9 +7297,9 @@ mod tests {
                blinded_hints[1].0.htlc_maximum_msat = 2_8089_0861_1584_0000;
                blinded_hints[1].0.cltv_expiry_delta = 0;
 
-               let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+               let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                let payment_params = PaymentParameters::blinded(blinded_hints.clone())
-                       .with_bolt12_features(bolt12_features.clone()).unwrap();
+                       .with_bolt12_features(bolt12_features).unwrap();
 
                let netgraph = network_graph.read_only();
                let route_params = RouteParameters::from_payment_params_and_value(
@@ -7324,7 +7349,7 @@ mod tests {
                ];
                blinded_hints[1].1.introduction_node_id = nodes[6];
 
-               let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+               let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                let payment_params = PaymentParameters::blinded(blinded_hints.clone())
                        .with_bolt12_features(bolt12_features.clone()).unwrap();
 
@@ -7332,7 +7357,7 @@ mod tests {
                let route_params = RouteParameters::from_payment_params_and_value(
                        payment_params, amt_msat);
                if let Err(LightningError { err, .. }) = get_route(
-                       &our_id, &route_params, &netgraph, None, Arc::clone(&logger), &scorer, &(), &random_seed_bytes
+                       &our_id, &route_params, &netgraph, None, Arc::clone(&logger), &scorer, &Default::default(), &random_seed_bytes
                ) {
                        assert_eq!(err, "Failed to find a path to the given destination");
                } else { panic!() }
@@ -7381,7 +7406,7 @@ mod tests {
 
                blinded_hints[2].1.introduction_node_id = nodes[6];
 
-               let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+               let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                let payment_params = PaymentParameters::blinded(blinded_hints.clone())
                        .with_bolt12_features(bolt12_features.clone()).unwrap();
 
@@ -7389,7 +7414,7 @@ mod tests {
                let route_params = RouteParameters::from_payment_params_and_value(
                        payment_params, amt_msat);
                if let Err(LightningError { err, .. }) = get_route(
-                       &our_id, &route_params, &netgraph, None, Arc::clone(&logger), &scorer, &(), &random_seed_bytes
+                       &our_id, &route_params, &netgraph, None, Arc::clone(&logger), &scorer, &Default::default(), &random_seed_bytes
                ) {
                        assert_eq!(err, "Failed to find a path to the given destination");
                } else { panic!() }
@@ -7441,7 +7466,7 @@ mod tests {
                                cltv_expiry_delta: 0,
                                features: BlindedHopFeatures::empty(),
                        };
-                       let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+                       let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                        PaymentParameters::blinded(vec![(blinded_payinfo, blinded_path)])
                                .with_bolt12_features(bolt12_features.clone()).unwrap()
                } else {
@@ -7459,7 +7484,7 @@ mod tests {
 
                        PaymentParameters::from_node_id(nodes[1], 42)
                                .with_route_hints(vec![route_hint]).unwrap()
-                               .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap()
+                               .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config)).unwrap()
                };
 
                let netgraph = network_graph.read_only();
@@ -7467,7 +7492,7 @@ mod tests {
                        payment_params, amt_msat);
                if let Err(LightningError { err, .. }) = get_route(
                        &our_id, &route_params, &netgraph, Some(&first_hops.iter().collect::<Vec<_>>()),
-                       Arc::clone(&logger), &scorer, &(), &random_seed_bytes
+                       Arc::clone(&logger), &scorer, &Default::default(), &random_seed_bytes
                ) {
                        assert_eq!(err, "Failed to find a path to the given destination");
                } else { panic!() }
@@ -7524,7 +7549,7 @@ mod tests {
                                        features: BlindedHopFeatures::empty(),
                                }, blinded_path.clone()));
                        }
-                       let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+                       let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                        PaymentParameters::blinded(blinded_hints.clone())
                                .with_bolt12_features(bolt12_features.clone()).unwrap()
                } else {
@@ -7544,7 +7569,7 @@ mod tests {
                        }
                        PaymentParameters::from_node_id(nodes[1], 42)
                                .with_route_hints(route_hints).unwrap()
-                               .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap()
+                               .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config)).unwrap()
                };
 
                let netgraph = network_graph.read_only();
@@ -7553,7 +7578,7 @@ mod tests {
 
                let route = get_route(
                        &our_id, &route_params, &netgraph, Some(&first_hops.iter().collect::<Vec<_>>()),
-                       Arc::clone(&logger), &scorer, &(), &random_seed_bytes
+                       Arc::clone(&logger), &scorer, &Default::default(), &random_seed_bytes
                ).unwrap();
                assert_eq!(route.paths.len(), 1);
                assert_eq!(route.get_total_amount(), amt_msat);
@@ -7615,7 +7640,7 @@ mod tests {
                                ],
                        })
                ];
-               let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+               let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                let payment_params = PaymentParameters::blinded(blinded_hints.clone())
                        .with_bolt12_features(bolt12_features.clone()).unwrap();
                let route_params = RouteParameters::from_payment_params_and_value(
@@ -7675,7 +7700,7 @@ mod tests {
                                        features: BlindedHopFeatures::empty(),
                                }, blinded_path.clone()));
                        }
-                       let bolt12_features: Bolt12InvoiceFeatures = channelmanager::provided_invoice_features(&config).to_context();
+                       let bolt12_features = channelmanager::provided_bolt12_invoice_features(&config);
                        PaymentParameters::blinded(blinded_hints.clone())
                                .with_bolt12_features(bolt12_features.clone()).unwrap()
                };
@@ -7789,7 +7814,7 @@ mod tests {
 
                let payment_params = PaymentParameters::from_node_id(dest_node_id, 42)
                        .with_route_hints(vec![route_hint]).unwrap()
-                       .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config)).unwrap();
                let route_params = RouteParameters::from_payment_params_and_value(
                        payment_params, amt_msat);
 
@@ -7871,7 +7896,7 @@ mod tests {
 
                let payment_params = PaymentParameters::from_node_id(dest_node_id, 42)
                        .with_route_hints(vec![route_hint]).unwrap()
-                       .with_bolt11_features(channelmanager::provided_invoice_features(&config)).unwrap();
+                       .with_bolt11_features(channelmanager::provided_bolt11_invoice_features(&config)).unwrap();
 
                let route_params = RouteParameters::from_payment_params_and_value(
                        payment_params, amt_msat);
@@ -8031,7 +8056,7 @@ pub(crate) mod bench_utils {
                                                // Generate fail/success paths for a wider range of potential amounts with
                                                // MPP enabled to give us a chance to apply penalties for more potential
                                                // routes.
-                                               let mpp_features = channelmanager::provided_invoice_features(&UserConfig::default());
+                                               let mpp_features = channelmanager::provided_bolt11_invoice_features(&UserConfig::default());
                                                let params = PaymentParameters::from_node_id(dst, 42)
                                                        .with_bolt11_features(mpp_features).unwrap();
                                                let route_params = RouteParameters::from_payment_params_and_value(
@@ -8109,7 +8134,7 @@ pub mod benches {
                let network_graph = bench_utils::read_network_graph(&logger).unwrap();
                let scorer = FixedPenaltyScorer::with_penalty(0);
                generate_routes(bench, &network_graph, scorer, &Default::default(),
-                       channelmanager::provided_invoice_features(&UserConfig::default()), 0,
+                       channelmanager::provided_bolt11_invoice_features(&UserConfig::default()), 0,
                        "generate_mpp_routes_with_zero_penalty_scorer");
        }
 
@@ -8128,7 +8153,7 @@ pub mod benches {
                let params = ProbabilisticScoringFeeParameters::default();
                let scorer = ProbabilisticScorer::new(ProbabilisticScoringDecayParameters::default(), &network_graph, &logger);
                generate_routes(bench, &network_graph, scorer, &params,
-                       channelmanager::provided_invoice_features(&UserConfig::default()), 0,
+                       channelmanager::provided_bolt11_invoice_features(&UserConfig::default()), 0,
                        "generate_mpp_routes_with_probabilistic_scorer");
        }
 
@@ -8138,7 +8163,7 @@ pub mod benches {
                let params = ProbabilisticScoringFeeParameters::default();
                let scorer = ProbabilisticScorer::new(ProbabilisticScoringDecayParameters::default(), &network_graph, &logger);
                generate_routes(bench, &network_graph, scorer, &params,
-                       channelmanager::provided_invoice_features(&UserConfig::default()), 100_000_000,
+                       channelmanager::provided_bolt11_invoice_features(&UserConfig::default()), 100_000_000,
                        "generate_large_mpp_routes_with_probabilistic_scorer");
        }
 
@@ -8150,7 +8175,7 @@ pub mod benches {
                let scorer = ProbabilisticScorer::new(
                        ProbabilisticScoringDecayParameters::default(), &network_graph, &logger);
                generate_routes(bench, &network_graph, scorer, &params,
-                       channelmanager::provided_invoice_features(&UserConfig::default()), 0,
+                       channelmanager::provided_bolt11_invoice_features(&UserConfig::default()), 0,
                        "generate_routes_with_nonlinear_probabilistic_scorer");
        }
 
@@ -8162,7 +8187,7 @@ pub mod benches {
                let scorer = ProbabilisticScorer::new(
                        ProbabilisticScoringDecayParameters::default(), &network_graph, &logger);
                generate_routes(bench, &network_graph, scorer, &params,
-                       channelmanager::provided_invoice_features(&UserConfig::default()), 0,
+                       channelmanager::provided_bolt11_invoice_features(&UserConfig::default()), 0,
                        "generate_mpp_routes_with_nonlinear_probabilistic_scorer");
        }
 
@@ -8174,7 +8199,7 @@ pub mod benches {
                let scorer = ProbabilisticScorer::new(
                        ProbabilisticScoringDecayParameters::default(), &network_graph, &logger);
                generate_routes(bench, &network_graph, scorer, &params,
-                       channelmanager::provided_invoice_features(&UserConfig::default()), 100_000_000,
+                       channelmanager::provided_bolt11_invoice_features(&UserConfig::default()), 100_000_000,
                        "generate_large_mpp_routes_with_nonlinear_probabilistic_scorer");
        }