Add missing copyright statement
[rust-lightning] / lightning / src / blinded_path / payment.rs
index e243d478bd91621bdcb811f98420c7de194a40e3..5e44c792d33b9c49df82c2d9840e462ad45cb9f6 100644 (file)
@@ -1,3 +1,12 @@
+// This file is Copyright its original authors, visible in version control
+// history.
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
 //! Data structures and methods for constructing [`BlindedPath`]s to send a payment over.
 //!
 //! [`BlindedPath`]: crate::blinded_path::BlindedPath
@@ -7,11 +16,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 +150,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 +425,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 +434,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;