Static invoice encoding and parsing
[rust-lightning] / lightning / src / offers / parse.rs
index 400cf51a2944d47cc0afd19e227acb3216242959..c48d745a9ffd365ecf09800bc6b6bd24d6e988b5 100644 (file)
@@ -9,13 +9,12 @@
 
 //! Parsing and formatting for bech32 message encoding.
 
-use bitcoin::bech32;
 use bitcoin::secp256k1;
-use core::convert::TryFrom;
 use crate::io;
 use crate::ln::msgs::DecodeError;
 use crate::util::ser::SeekReadable;
 
+#[allow(unused_imports)]
 use crate::prelude::*;
 
 #[cfg(not(fuzzing))]
@@ -25,12 +24,11 @@ pub(super) use sealed::Bech32Encode;
 pub use sealed::Bech32Encode;
 
 mod sealed {
-       use bitcoin::bech32;
-       use bitcoin::bech32::{FromBase32, ToBase32};
-       use core::convert::TryFrom;
+       use bech32::{FromBase32, ToBase32};
        use core::fmt;
        use super::Bolt12ParseError;
 
+       #[allow(unused_imports)]
        use crate::prelude::*;
 
        /// Indicates a message can be encoded using bech32.
@@ -183,12 +181,16 @@ pub enum Bolt12SemanticError {
        DuplicatePaymentId,
        /// Blinded paths were expected but were missing.
        MissingPaths,
+       /// Blinded paths were provided but were not expected.
+       UnexpectedPaths,
        /// The blinded payinfo given does not match the number of blinded path hops.
        InvalidPayInfo,
        /// An invoice creation time was expected but was missing.
        MissingCreationTime,
        /// An invoice payment hash was expected but was missing.
        MissingPaymentHash,
+       /// An invoice payment hash was provided but was not expected.
+       UnexpectedPaymentHash,
        /// A signature was expected but was missing.
        MissingSignature,
 }
@@ -275,7 +277,6 @@ mod bolt12_tests {
 #[cfg(test)]
 mod tests {
        use super::Bolt12ParseError;
-       use bitcoin::bech32;
        use crate::ln::msgs::DecodeError;
        use crate::offers::offer::Offer;