diff --git a/common/features.c b/common/features.c index ba20abda4..9989cb93a 100644 --- a/common/features.c +++ b/common/features.c @@ -56,6 +56,13 @@ static const struct feature_style feature_styles[] = { .copy_style = { [INIT_FEATURE] = FEATURE_REPRESENT, [NODE_ANNOUNCE_FEATURE] = FEATURE_REPRESENT, [CHANNEL_FEATURE] = FEATURE_REPRESENT_AS_OPTIONAL } }, +#if EXPERIMENTAL_FEATURES + { OPT_ONION_MESSAGES, + .copy_style = { [INIT_FEATURE] = FEATURE_REPRESENT, + [NODE_ANNOUNCE_FEATURE] = FEATURE_REPRESENT, + [BOLT11_FEATURE] = FEATURE_REPRESENT, + [CHANNEL_FEATURE] = FEATURE_REPRESENT_AS_OPTIONAL} }, +#endif }; static enum feature_copy_style feature_copy_style(u32 f, enum feature_place p) diff --git a/common/features.h b/common/features.h index bf6b534e1..cf364d8c8 100644 --- a/common/features.h +++ b/common/features.h @@ -99,4 +99,11 @@ u8 *featurebits_or(const tal_t *ctx, const u8 *f1 TAKES, const u8 *f2 TAKES); #define OPT_BASIC_MPP 16 #define OPT_LARGE_CHANNELS 18 +/* BOLT-9fc25cfd2895578c0b1ab701ebe6c1eb67a19623 #9: + * + * | 102/103 | `option_onion_messages` |... INC+ ... + */ +#if EXPERIMENTAL_FEATURES +#define OPT_ONION_MESSAGES 102 +#endif #endif /* LIGHTNING_COMMON_FEATURES_H */ diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index 30e801440..e97ea13d6 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -723,6 +723,9 @@ static struct feature_set *default_features(const tal_t *ctx) OPTIONAL_FEATURE(OPT_BASIC_MPP), OPTIONAL_FEATURE(OPT_GOSSIP_QUERIES_EX), OPTIONAL_FEATURE(OPT_STATIC_REMOTEKEY), +#if EXPERIMENTAL_FEATURES + OPTIONAL_FEATURE(OPT_ONION_MESSAGES), +#endif }; for (size_t i = 0; i < ARRAY_SIZE(features); i++) {