Check offer expiry when building invoice in no-std
[rust-lightning] / lightning / src / ln / channelmanager.rs
index 2df3b5d416376cdeed5c62ba26a40b92f6b530a2..7861078ff9522797cc54986174651aed3415c0fe 100644 (file)
@@ -43,7 +43,7 @@ use crate::events::{Event, EventHandler, EventsProvider, MessageSendEvent, Messa
 // construct one themselves.
 use crate::ln::{inbound_payment, ChannelId, PaymentHash, PaymentPreimage, PaymentSecret};
 use crate::ln::channel::{Channel, ChannelPhase, ChannelContext, ChannelError, ChannelUpdateStatus, ShutdownResult, UnfundedChannelContext, UpdateFulfillCommitFetch, OutboundV1Channel, InboundV1Channel};
-use crate::ln::features::{ChannelFeatures, ChannelTypeFeatures, InitFeatures, NodeFeatures};
+use crate::ln::features::{Bolt12InvoiceFeatures, ChannelFeatures, ChannelTypeFeatures, InitFeatures, NodeFeatures};
 #[cfg(any(feature = "_test_utils", test))]
 use crate::ln::features::Bolt11InvoiceFeatures;
 use crate::routing::gossip::NetworkGraph;
@@ -8244,35 +8244,41 @@ where
                self.best_block.read().unwrap().clone()
        }
 
-       /// Fetches the set of [`NodeFeatures`] flags which are provided by or required by
+       /// Fetches the set of [`NodeFeatures`] flags that are provided by or required by
        /// [`ChannelManager`].
        pub fn node_features(&self) -> NodeFeatures {
                provided_node_features(&self.default_configuration)
        }
 
-       /// Fetches the set of [`Bolt11InvoiceFeatures`] flags which are provided by or required by
+       /// Fetches the set of [`Bolt11InvoiceFeatures`] flags that are provided by or required by
        /// [`ChannelManager`].
        ///
        /// Note that the invoice feature flags can vary depending on if the invoice is a "phantom invoice"
        /// or not. Thus, this method is not public.
        #[cfg(any(feature = "_test_utils", test))]
-       pub fn invoice_features(&self) -> Bolt11InvoiceFeatures {
-               provided_invoice_features(&self.default_configuration)
+       pub fn bolt11_invoice_features(&self) -> Bolt11InvoiceFeatures {
+               provided_bolt11_invoice_features(&self.default_configuration)
        }
 
-       /// Fetches the set of [`ChannelFeatures`] flags which are provided by or required by
+       /// Fetches the set of [`Bolt12InvoiceFeatures`] flags that are provided by or required by
+       /// [`ChannelManager`].
+       fn bolt12_invoice_features(&self) -> Bolt12InvoiceFeatures {
+               provided_bolt12_invoice_features(&self.default_configuration)
+       }
+
+       /// Fetches the set of [`ChannelFeatures`] flags that are provided by or required by
        /// [`ChannelManager`].
        pub fn channel_features(&self) -> ChannelFeatures {
                provided_channel_features(&self.default_configuration)
        }
 
-       /// Fetches the set of [`ChannelTypeFeatures`] flags which are provided by or required by
+       /// Fetches the set of [`ChannelTypeFeatures`] flags that are provided by or required by
        /// [`ChannelManager`].
        pub fn channel_type_features(&self) -> ChannelTypeFeatures {
                provided_channel_type_features(&self.default_configuration)
        }
 
-       /// Fetches the set of [`InitFeatures`] flags which are provided by or required by
+       /// Fetches the set of [`InitFeatures`] flags that are provided by or required by
        /// [`ChannelManager`].
        pub fn init_features(&self) -> InitFeatures {
                provided_init_features(&self.default_configuration)
@@ -8803,7 +8809,7 @@ where
        }
 }
 
-/// Fetches the set of [`NodeFeatures`] flags which are provided by or required by
+/// Fetches the set of [`NodeFeatures`] flags that are provided by or required by
 /// [`ChannelManager`].
 pub(crate) fn provided_node_features(config: &UserConfig) -> NodeFeatures {
        let mut node_features = provided_init_features(config).to_context();
@@ -8811,29 +8817,35 @@ pub(crate) fn provided_node_features(config: &UserConfig) -> NodeFeatures {
        node_features
 }
 
-/// Fetches the set of [`Bolt11InvoiceFeatures`] flags which are provided by or required by
+/// Fetches the set of [`Bolt11InvoiceFeatures`] flags that are provided by or required by
 /// [`ChannelManager`].
 ///
 /// Note that the invoice feature flags can vary depending on if the invoice is a "phantom invoice"
 /// or not. Thus, this method is not public.
 #[cfg(any(feature = "_test_utils", test))]
-pub(crate) fn provided_invoice_features(config: &UserConfig) -> Bolt11InvoiceFeatures {
+pub(crate) fn provided_bolt11_invoice_features(config: &UserConfig) -> Bolt11InvoiceFeatures {
+       provided_init_features(config).to_context()
+}
+
+/// Fetches the set of [`Bolt12InvoiceFeatures`] flags that are provided by or required by
+/// [`ChannelManager`].
+pub(crate) fn provided_bolt12_invoice_features(config: &UserConfig) -> Bolt12InvoiceFeatures {
        provided_init_features(config).to_context()
 }
 
-/// Fetches the set of [`ChannelFeatures`] flags which are provided by or required by
+/// Fetches the set of [`ChannelFeatures`] flags that are provided by or required by
 /// [`ChannelManager`].
 pub(crate) fn provided_channel_features(config: &UserConfig) -> ChannelFeatures {
        provided_init_features(config).to_context()
 }
 
-/// Fetches the set of [`ChannelTypeFeatures`] flags which are provided by or required by
+/// Fetches the set of [`ChannelTypeFeatures`] flags that are provided by or required by
 /// [`ChannelManager`].
 pub(crate) fn provided_channel_type_features(config: &UserConfig) -> ChannelTypeFeatures {
        ChannelTypeFeatures::from_init(&provided_init_features(config))
 }
 
-/// Fetches the set of [`InitFeatures`] flags which are provided by or required by
+/// Fetches the set of [`InitFeatures`] flags that are provided by or required by
 /// [`ChannelManager`].
 pub fn provided_init_features(config: &UserConfig) -> InitFeatures {
        // Note that if new features are added here which other peers may (eventually) require, we
@@ -11988,7 +12000,7 @@ pub mod bench {
                macro_rules! send_payment {
                        ($node_a: expr, $node_b: expr) => {
                                let payment_params = PaymentParameters::from_node_id($node_b.get_our_node_id(), TEST_FINAL_CLTV)
-                                       .with_bolt11_features($node_b.invoice_features()).unwrap();
+                                       .with_bolt11_features($node_b.bolt11_invoice_features()).unwrap();
                                let mut payment_preimage = PaymentPreimage([0; 32]);
                                payment_preimage.0[0..8].copy_from_slice(&payment_count.to_le_bytes());
                                payment_count += 1;