diff --git a/lightning/src/ln/features.rs b/lightning/src/ln/features.rs index 07e1a322944..254a2b918f0 100644 --- a/lightning/src/ln/features.rs +++ b/lightning/src/ln/features.rs @@ -135,7 +135,7 @@ mod sealed { // Byte 2 BasicMPP, // Byte 3 - ShutdownAnySegwit, + CompressionAdvertisement | ShutdownAnySegwit, ], }); define_context!(NodeContext { @@ -163,7 +163,7 @@ mod sealed { // Byte 2 BasicMPP, // Byte 3 - ShutdownAnySegwit, + CompressionAdvertisement | ShutdownAnySegwit, // Byte 4 , // Byte 5 @@ -376,6 +376,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); @@ -810,6 +814,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(); @@ -849,7 +858,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: