X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Foffers%2Fpayer.rs;h=19aef23363d8e0afc9a5ddd758d5808098d1d03f;hb=c39c398f0618835201fb741b1976952c3f9180fa;hp=1705be85ed8f53bb316154f81edacbd9f2f391ab;hpb=0c621646a627a0e43e10fdb7717ba0dbc45893c5;p=rust-lightning diff --git a/lightning/src/offers/payer.rs b/lightning/src/offers/payer.rs index 1705be85..19aef233 100644 --- a/lightning/src/offers/payer.rs +++ b/lightning/src/offers/payer.rs @@ -9,6 +9,9 @@ //! Data structures and encoding for `invoice_request_metadata` records. +use crate::offers::signer::Metadata; +use crate::util::ser::WithoutLength; + use crate::prelude::*; /// An unpredictable sequence of bytes typically containing information needed to derive @@ -16,4 +19,15 @@ use crate::prelude::*; /// /// [`InvoiceRequest::payer_id`]: crate::offers::invoice_request::InvoiceRequest::payer_id #[derive(Clone, Debug)] -pub(crate) struct PayerContents(pub Vec); +#[cfg_attr(test, derive(PartialEq))] +pub(super) struct PayerContents(pub Metadata); + +/// TLV record type for [`InvoiceRequest::payer_metadata`] and [`Refund::payer_metadata`]. +/// +/// [`InvoiceRequest::payer_metadata`]: crate::offers::invoice_request::InvoiceRequest::payer_metadata +/// [`Refund::payer_metadata`]: crate::offers::refund::Refund::payer_metadata +pub(super) const PAYER_METADATA_TYPE: u64 = 0; + +tlv_stream!(PayerTlvStream, PayerTlvStreamRef, 0..1, { + (PAYER_METADATA_TYPE, metadata: (Vec, WithoutLength)), +});