OutboundOnionPayload: hold Vec fields as references.
[rust-lightning] / lightning / src / blinded_path / payment.rs
index e243d478bd91621bdcb811f98420c7de194a40e3..dfe89e0ebc6c34e6579fa1cea0ca79f4dc0b7672 100644 (file)
@@ -7,11 +7,12 @@ use bitcoin::secp256k1::{self, PublicKey, Secp256k1, SecretKey};
 use crate::blinded_path::BlindedHop;
 use crate::blinded_path::utils;
 use crate::io;
-use crate::ln::PaymentSecret;
+use crate::ln::types::PaymentSecret;
 use crate::ln::channelmanager::CounterpartyForwardingInfo;
 use crate::ln::features::BlindedHopFeatures;
 use crate::ln::msgs::DecodeError;
 use crate::offers::invoice::BlindedPayInfo;
+use crate::offers::invoice_request::InvoiceRequestFields;
 use crate::offers::offer::OfferId;
 use crate::util::ser::{HighZeroBytesDroppedBigSize, Readable, Writeable, Writer};
 
@@ -140,6 +141,12 @@ pub struct Bolt12OfferContext {
        ///
        /// [`Offer`]: crate::offers::offer::Offer
        pub offer_id: OfferId,
+
+       /// Fields from an [`InvoiceRequest`] sent for a [`Bolt12Invoice`].
+       ///
+       /// [`InvoiceRequest`]: crate::offers::invoice_request::InvoiceRequest
+       /// [`Bolt12Invoice`]: crate::offers::invoice::Bolt12Invoice
+       pub invoice_request: InvoiceRequestFields,
 }
 
 /// The context of a payment made for an invoice sent for a BOLT 12 [`Refund`].
@@ -409,6 +416,7 @@ impl Readable for UnknownPaymentContext {
 
 impl_writeable_tlv_based!(Bolt12OfferContext, {
        (0, offer_id, required),
+       (2, invoice_request, required),
 });
 
 impl_writeable_tlv_based!(Bolt12RefundContext, {});
@@ -417,7 +425,7 @@ impl_writeable_tlv_based!(Bolt12RefundContext, {});
 mod tests {
        use bitcoin::secp256k1::PublicKey;
        use crate::blinded_path::payment::{ForwardNode, ForwardTlvs, ReceiveTlvs, PaymentConstraints, PaymentContext, PaymentRelay};
-       use crate::ln::PaymentSecret;
+       use crate::ln::types::PaymentSecret;
        use crate::ln::features::BlindedHopFeatures;
        use crate::ln::functional_test_utils::TEST_FINAL_CLTV;