projects
/
rust-lightning
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add missing feature sanity checks
[rust-lightning]
/
lightning
/
src
/
ln
/
features.rs
diff --git
a/lightning/src/ln/features.rs
b/lightning/src/ln/features.rs
index 9ab53b4ae82c808745fec6b9d6e71a4cc9502650..f441f80a227e74dbd8f264deddd4fb8422c13ea5 100644
(file)
--- a/
lightning/src/ln/features.rs
+++ b/
lightning/src/ln/features.rs
@@
-299,7
+299,7
@@
impl<T: sealed::PaymentSecret> Features<T> {
// 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).
// 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
}
}
self.flags.len() > 1 && (self.flags[1] & (3 << (14-8))) != 0
}
}
@@
-307,7
+307,7
@@
impl<T: sealed::PaymentSecret> Features<T> {
impl<T: sealed::BasicMPP> Features<T> {
// We currently never test for this since we don't actually *generate* multipath routes.
#[allow(dead_code)]
impl<T: sealed::BasicMPP> Features<T> {
// 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
}
}
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_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());
let mut init_features = InitFeatures::supported();
init_features.set_initial_routing_sync();
assert!(!init_features.requires_unknown_bits());