@@ -21,7 +21,7 @@ use crate::blinded_path::utils;
2121use crate :: io;
2222use crate :: io:: Cursor ;
2323use crate :: ln:: channelmanager:: PaymentId ;
24- use crate :: ln:: onion_utils;
24+ use crate :: ln:: { PaymentHash , onion_utils} ;
2525use crate :: offers:: nonce:: Nonce ;
2626use crate :: onion_message:: packet:: ControlTlvs ;
2727use crate :: sign:: { NodeSigner , Recipient } ;
@@ -144,6 +144,17 @@ pub enum OffersContext {
144144 /// [`InvoiceRequest`]: crate::offers::invoice_request::InvoiceRequest
145145 payment_id : PaymentId
146146 } ,
147+ /// Context used by a [`BlindedPath`] for replying to a [`Bolt12Invoice`] with an
148+ /// [`InvoiceError`].
149+ ///
150+ /// [`Bolt12Invoice`]: crate::offers::invoice::Bolt12Invoice
151+ /// [`InvoiceError`]: crate::offers::invoice_error::InvoiceError
152+ InboundPayment {
153+ /// The same payment hash as [`Bolt12Invoice::payment_hash`].
154+ ///
155+ /// [`Bolt12Invoice::payment_hash`]: crate::offers::invoice::Bolt12Invoice::payment_hash
156+ payment_hash : PaymentHash ,
157+ } ,
147158}
148159
149160impl_writeable_tlv_based_enum ! ( MessageContext , ;
@@ -159,6 +170,9 @@ impl_writeable_tlv_based_enum!(OffersContext,
159170 ( 2 , OutboundPayment ) => {
160171 ( 0 , payment_id, required) ,
161172 } ,
173+ ( 3 , InboundPayment ) => {
174+ ( 0 , payment_hash, required) ,
175+ } ,
162176; ) ;
163177
164178/// Construct blinded onion message hops for the given `intermediate_nodes` and `recipient_node_id`.
0 commit comments