Check if invoices contain unknown required features
[rust-lightning] / lightning-invoice / src / lib.rs
index bcb15245d3f201ad920002f2f3f76d4ea1707cd4..75aac5491513840c433ed17a6b785ff791aa646c 100644 (file)
@@ -1052,7 +1052,9 @@ impl Invoice {
                        None if has_payment_secret => Err(SemanticError::InvalidFeatures),
                        None => Ok(()),
                        Some(TaggedField::Features(features)) => {
-                               if features.supports_payment_secret() && has_payment_secret {
+                               if features.requires_unknown_bits() {
+                                       Err(SemanticError::InvalidFeatures)
+                               } else if features.supports_payment_secret() && has_payment_secret {
                                        Ok(())
                                } else if has_payment_secret {
                                        Err(SemanticError::InvalidFeatures)