Skip to content

Commit

Permalink
Define feature for option_compression advertisement
Browse files Browse the repository at this point in the history
This adds the new feature bit from
lightning/bolts#825
  • Loading branch information
TheBlueMatt committed Nov 13, 2021
1 parent f83d630 commit 3e22a96
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions lightning/src/ln/features.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ mod sealed {
,
// Byte 3
,
// Byte 4
,
],
optional_features: [
// Byte 0
Expand All @@ -136,6 +138,8 @@ mod sealed {
BasicMPP,
// Byte 3
ShutdownAnySegwit,
// Byte 4
CompressionAdvertisement,
],
});
define_context!(NodeContext {
Expand Down Expand Up @@ -165,7 +169,7 @@ mod sealed {
// Byte 3
ShutdownAnySegwit,
// Byte 4
,
CompressionAdvertisement,
// Byte 5
,
// Byte 6
Expand Down Expand Up @@ -376,6 +380,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!(33, 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);
Expand Down Expand Up @@ -810,6 +818,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();
Expand Down Expand Up @@ -849,7 +862,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:
Expand Down

0 comments on commit 3e22a96

Please sign in to comment.