X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fonion_message%2Foffers.rs;h=533b4cb571805c98be6d4235fef190de00d7ff7c;hb=d5a0eb4270eae847763b4b13439fdfe9a1302a99;hp=f5945cd55054dc6c368a668fcf4aa777f15d6a21;hpb=840efd533468cf7cacd8b4bab27ce2db86b3eb93;p=rust-lightning diff --git a/lightning/src/onion_message/offers.rs b/lightning/src/onion_message/offers.rs index f5945cd5..533b4cb5 100644 --- a/lightning/src/onion_message/offers.rs +++ b/lightning/src/onion_message/offers.rs @@ -17,6 +17,7 @@ use crate::offers::invoice_request::InvoiceRequest; use crate::offers::invoice::Bolt12Invoice; use crate::offers::parse::Bolt12ParseError; use crate::onion_message::OnionMessageContents; +use crate::onion_message::messenger::PendingOnionMessage; use crate::util::logger::Logger; use crate::util::ser::{Readable, ReadableArgs, Writeable, Writer}; @@ -33,7 +34,25 @@ const INVOICE_ERROR_TLV_TYPE: u64 = 68; pub trait OffersMessageHandler { /// Handles the given message by either responding with an [`Bolt12Invoice`], sending a payment, /// or replying with an error. + /// + /// The returned [`OffersMessage`], if any, is enqueued to be sent by [`OnionMessenger`]. + /// + /// [`OnionMessenger`]: crate::onion_message::OnionMessenger fn handle_message(&self, message: OffersMessage) -> Option; + + /// Releases any [`OffersMessage`]s that need to be sent. + /// + /// Typically, this is used for messages initiating a payment flow rather than in response to + /// another message. The latter should use the return value of [`Self::handle_message`]. + #[cfg(not(c_bindings))] + fn release_pending_messages(&self) -> Vec> { vec![] } + + /// Releases any [`OffersMessage`]s that need to be sent. + /// + /// Typically, this is used for messages initiating a payment flow rather than in response to + /// another message. The latter should use the return value of [`Self::handle_message`]. + #[cfg(c_bindings)] + fn release_pending_messages(&self) -> Vec<(OffersMessage, crate::onion_message::Destination, Option)> { vec![] } } /// Possible BOLT 12 Offers messages sent and received via an [`OnionMessage`].