#ifndef LIGHTNING_COMMON_FEATURES_H #define LIGHTNING_COMMON_FEATURES_H #include "config.h" #include #include /* Returns true if we're OK with all these offered features. */ bool features_supported(const u8 *gfeatures, const u8 *lfeatures); /* For sending our features: tal_len() returns length. */ u8 *get_offered_global_features(const tal_t *ctx); u8 *get_offered_local_features(const tal_t *ctx); /* Is this feature bit requested? (Either compulsory or optional) */ bool feature_offered(const u8 *features, size_t f); #define COMPULSORY_FEATURE(x) (x) #define OPTIONAL_FEATURE(x) ((x)+1) /* BOLT #9: * * ## Assigned `localfeatures` flags *... * | Bits | Name |... * | 0/1 | `option-data-loss-protect` |... * | 3 | `initial_routing_sync` |... * | 4/5 | `option_upfront_shutdown_script` |... */ #define LOCAL_DATA_LOSS_PROTECT 0 #define LOCAL_INITIAL_ROUTING_SYNC 2 #define LOCAL_UPFRONT_SHUTDOWN_SCRIPT 4 #endif /* LIGHTNING_COMMON_FEATURES_H */