"Feature flags for `option_upfront_shutdown_script`.");
define_feature!(9, VariableLengthOnion, [InitContext, NodeContext],
"Feature flags for `var_onion_optin`.");
+ define_feature!(13, StaticRemoteKey, [InitContext, NodeContext],
+ "Feature flags for `option_static_remotekey`.");
define_feature!(15, PaymentSecret, [InitContext, NodeContext],
"Feature flags for `payment_secret`.");
define_feature!(17, BasicMPP, [InitContext, NodeContext],
}
}
+impl<T: sealed::StaticRemoteKey> Features<T> {
+ pub(crate) fn supports_static_remote_key(&self) -> bool {
+ <T as sealed::StaticRemoteKey>::supports_feature(&self.flags)
+ }
+ #[cfg(test)]
+ pub(crate) fn requires_static_remote_key(&self) -> bool {
+ <T as sealed::StaticRemoteKey>::requires_feature(&self.flags)
+ }
+}
+
impl<T: sealed::InitialRoutingSync> Features<T> {
pub(crate) fn initial_routing_sync(&self) -> bool {
<T as sealed::InitialRoutingSync>::supports_feature(&self.flags)
assert!(!InitFeatures::known().requires_variable_length_onion());
assert!(!NodeFeatures::known().requires_variable_length_onion());
+ assert!(!InitFeatures::known().supports_static_remote_key());
+ assert!(!NodeFeatures::known().supports_static_remote_key());
+ assert!(!InitFeatures::known().requires_static_remote_key());
+ assert!(!NodeFeatures::known().requires_static_remote_key());
+
assert!(InitFeatures::known().supports_payment_secret());
assert!(NodeFeatures::known().supports_payment_secret());
assert!(!InitFeatures::known().requires_payment_secret());
return Err(PeerHandleError{ no_connection_possible: false });
}
- log_info!(self, "Received peer Init message: data_loss_protect: {}, initial_routing_sync: {}, upfront_shutdown_script: {}, unkown local flags: {}, unknown global flags: {}",
+ log_info!(self, "Received peer Init message: data_loss_protect: {}, initial_routing_sync: {}, upfront_shutdown_script: {}, static_remote_key: {}, unkown local flags: {}, unknown global flags: {}",
if msg.features.supports_data_loss_protect() { "supported" } else { "not supported"},
if msg.features.initial_routing_sync() { "requested" } else { "not requested" },
if msg.features.supports_upfront_shutdown_script() { "supported" } else { "not supported"},
+ if msg.features.supports_static_remote_key() { "supported" } else { "not supported"},
if msg.features.supports_unknown_bits() { "present" } else { "none" },
if msg.features.supports_unknown_bits() { "present" } else { "none" });