Add UserConfig::manually_handle_bolt12_invoices
[rust-lightning] / lightning / src / onion_message / offers.rs
index faf539f868261a97768e6051b22451861db737ca..42c6914157e74f345ed0d2ad354834262653646a 100644 (file)
@@ -19,6 +19,7 @@ use crate::offers::parse::Bolt12ParseError;
 use crate::onion_message::packet::OnionMessageContents;
 use crate::util::logger::Logger;
 use crate::util::ser::{Readable, ReadableArgs, Writeable, Writer};
+use crate::onion_message::messenger::{ResponseInstruction, Responder};
 #[cfg(not(c_bindings))]
 use crate::onion_message::messenger::PendingOnionMessage;
 
@@ -39,7 +40,7 @@ pub trait OffersMessageHandler {
        /// The returned [`OffersMessage`], if any, is enqueued to be sent by [`OnionMessenger`].
        ///
        /// [`OnionMessenger`]: crate::onion_message::messenger::OnionMessenger
-       fn handle_message(&self, message: OffersMessage) -> Option<OffersMessage>;
+       fn handle_message(&self, message: OffersMessage, responder: Option<Responder>) -> ResponseInstruction<OffersMessage>;
 
        /// Releases any [`OffersMessage`]s that need to be sent.
        ///
@@ -117,6 +118,13 @@ impl OnionMessageContents for OffersMessage {
                        OffersMessage::InvoiceError(_) => INVOICE_ERROR_TLV_TYPE,
                }
        }
+       fn msg_type(&self) -> &'static str {
+               match &self {
+                       OffersMessage::InvoiceRequest(_) => "Invoice Request",
+                       OffersMessage::Invoice(_) => "Invoice",
+                       OffersMessage::InvoiceError(_) => "Invoice Error",
+               }
+       }
 }
 
 impl Writeable for OffersMessage {