diff --git a/lightning/src/ln/features.rs b/lightning/src/ln/features.rs index 11548016375..794372f3e6e 100644 --- a/lightning/src/ln/features.rs +++ b/lightning/src/ln/features.rs @@ -111,7 +111,7 @@ mod sealed { // Byte 2 BasicMPP, // Byte 3 - ShutdownAnySegwit, + CompressionAdvertisement | ShutdownAnySegwit, ], }); define_context!(NodeContext { @@ -133,7 +133,7 @@ mod sealed { // Byte 2 BasicMPP, // Byte 3 - ShutdownAnySegwit, + CompressionAdvertisement | ShutdownAnySegwit, ], }); define_context!(ChannelContext { @@ -316,6 +316,10 @@ mod sealed { define_feature!(17, BasicMPP, [InitContext, NodeContext, InvoiceContext], "Feature flags for `basic_mpp`.", set_basic_mpp_optional, set_basic_mpp_required, supports_basic_mpp, requires_basic_mpp); + define_feature!(25, CompressionAdvertisement, [InitContext, NodeContext], + "Feature flags for `option_compression`.", set_compression_advertisement_optional, + set_compression_advertisement_required, supports_compression_advertisement, + requires_compression_advertisement); define_feature!(27, ShutdownAnySegwit, [InitContext, NodeContext], "Feature flags for `opt_shutdown_anysegwit`.", set_shutdown_any_segwit_optional, set_shutdown_any_segwit_required, supports_shutdown_anysegwit, requires_shutdown_anysegwit); @@ -670,6 +674,11 @@ mod tests { assert!(InitFeatures::known().supports_shutdown_anysegwit()); assert!(NodeFeatures::known().supports_shutdown_anysegwit()); + assert!(InitFeatures::known().supports_compression_advertisement()); + assert!(NodeFeatures::known().supports_compression_advertisement()); + assert!(!InitFeatures::known().requires_compression_advertisement()); + assert!(!NodeFeatures::known().requires_compression_advertisement()); + let mut init_features = InitFeatures::known(); assert!(init_features.initial_routing_sync()); init_features.clear_initial_routing_sync(); @@ -709,7 +718,7 @@ mod tests { assert_eq!(node_features.flags[0], 0b00000010); assert_eq!(node_features.flags[1], 0b01010001); assert_eq!(node_features.flags[2], 0b00000010); - assert_eq!(node_features.flags[3], 0b00001000); + assert_eq!(node_features.flags[3], 0b00001010); } // Check that cleared flags are kept blank when converting back: