Implement `Hash` for `Offer` and `Refund`
[rust-lightning] / lightning / src / offers / invoice.rs
index d0e866b2f2ba9e2acbfa56f8912d8ffe2fbe62fb..bb29c76164e1aa7422c5dddda07b8cbd3e7ac01f 100644 (file)
@@ -720,8 +720,7 @@ impl Bolt12Invoice {
                self.contents.verify(TlvStream::new(&self.bytes), key, secp_ctx)
        }
 
-       #[cfg(test)]
-       pub(super) fn as_tlv_stream(&self) -> FullInvoiceTlvStreamRef {
+       pub(crate) fn as_tlv_stream(&self) -> FullInvoiceTlvStreamRef {
                let (payer_tlv_stream, offer_tlv_stream, invoice_request_tlv_stream, invoice_tlv_stream) =
                        self.contents.as_tlv_stream();
                let signature_tlv_stream = SignatureTlvStreamRef {
@@ -926,20 +925,11 @@ impl InvoiceContents {
                        };
 
                        let program = &address.program;
-                       if program.len() < 2 || program.len() > 40 {
-                               return None;
-                       }
-
                        let witness_program = match WitnessProgram::new(version, program.clone()) {
                                Ok(witness_program) => witness_program,
                                Err(_) => return None,
                        };
-                       let address = Address::new(network, Payload::WitnessProgram(witness_program));
-                       if !address.is_spend_standard() && version == WitnessVersion::V0 {
-                               return None;
-                       }
-
-                       Some(address)
+                       Some(Address::new(network, Payload::WitnessProgram(witness_program)))
                };
 
                self.fields().fallbacks
@@ -1152,7 +1142,6 @@ impl_writeable!(FallbackAddress, { version, program });
 type FullInvoiceTlvStream =
        (PayerTlvStream, OfferTlvStream, InvoiceRequestTlvStream, InvoiceTlvStream, SignatureTlvStream);
 
-#[cfg(test)]
 type FullInvoiceTlvStreamRef<'a> = (
        PayerTlvStreamRef<'a>,
        OfferTlvStreamRef<'a>,