From fe73761d90fcbbd32181fde5855e8705d91e7c1b Mon Sep 17 00:00:00 2001 From: Jeffrey Czyz Date: Wed, 15 Apr 2020 18:21:29 -0700 Subject: [PATCH] Add missing feature sanity checks PaymentSecret and BasicMPP were added in d39f25839ad9ff5e2a0e1dd8919e991828d1bf35 but the sanity test for supported features was missed. --- lightning/src/ln/features.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lightning/src/ln/features.rs b/lightning/src/ln/features.rs index 9ab53b4ae..f441f80a2 100644 --- a/lightning/src/ln/features.rs +++ b/lightning/src/ln/features.rs @@ -299,7 +299,7 @@ impl Features { // Note that we never need to test this since what really matters is the invoice - iff the // invoice provides a payment_secret, we assume that we can use it (ie that the recipient // supports payment_secret). - pub(crate) fn payment_secret(&self) -> bool { + pub(crate) fn supports_payment_secret(&self) -> bool { self.flags.len() > 1 && (self.flags[1] & (3 << (14-8))) != 0 } } @@ -307,7 +307,7 @@ impl Features { impl Features { // We currently never test for this since we don't actually *generate* multipath routes. #[allow(dead_code)] - pub(crate) fn basic_mpp(&self) -> bool { + pub(crate) fn supports_basic_mpp(&self) -> bool { self.flags.len() > 2 && (self.flags[2] & (3 << (16-8*2))) != 0 } } @@ -356,6 +356,12 @@ mod tests { assert!(InitFeatures::supported().supports_variable_length_onion()); assert!(NodeFeatures::supported().supports_variable_length_onion()); + assert!(InitFeatures::supported().supports_payment_secret()); + assert!(NodeFeatures::supported().supports_payment_secret()); + + assert!(InitFeatures::supported().supports_basic_mpp()); + assert!(NodeFeatures::supported().supports_basic_mpp()); + let mut init_features = InitFeatures::supported(); init_features.set_initial_routing_sync(); assert!(!init_features.requires_unknown_bits()); -- 2.39.5