update trampoline feature bits. fixes #7801
This commit is contained in:
@@ -1090,12 +1090,27 @@ class LnFeatures(IntFlag):
|
|||||||
_ln_feature_contexts[OPTION_SUPPORT_LARGE_CHANNEL_OPT] = (LNFC.INIT | LNFC.NODE_ANN)
|
_ln_feature_contexts[OPTION_SUPPORT_LARGE_CHANNEL_OPT] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
_ln_feature_contexts[OPTION_SUPPORT_LARGE_CHANNEL_REQ] = (LNFC.INIT | LNFC.NODE_ANN)
|
_ln_feature_contexts[OPTION_SUPPORT_LARGE_CHANNEL_REQ] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
|
|
||||||
OPTION_TRAMPOLINE_ROUTING_REQ = 1 << 24
|
# This is still a temporary number. Also used by Eclair.
|
||||||
OPTION_TRAMPOLINE_ROUTING_OPT = 1 << 25
|
OPTION_TRAMPOLINE_ROUTING_REQ = 1 << 148
|
||||||
|
OPTION_TRAMPOLINE_ROUTING_OPT = 1 << 149
|
||||||
|
|
||||||
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_REQ] = (LNFC.INIT | LNFC.NODE_ANN | LNFC.INVOICE)
|
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_REQ] = (LNFC.INIT | LNFC.NODE_ANN | LNFC.INVOICE)
|
||||||
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_OPT] = (LNFC.INIT | LNFC.NODE_ANN | LNFC.INVOICE)
|
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_OPT] = (LNFC.INIT | LNFC.NODE_ANN | LNFC.INVOICE)
|
||||||
|
|
||||||
|
# allow old Electrum wallets to pay us with trampoline
|
||||||
|
OPTION_TRAMPOLINE_ROUTING_REQ_COMPAT_ELECTRUM = 1 << 24
|
||||||
|
OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ELECTRUM = 1 << 25
|
||||||
|
|
||||||
|
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_REQ_COMPAT_ELECTRUM] = (LNFC.INVOICE)
|
||||||
|
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ELECTRUM] = (LNFC.INVOICE)
|
||||||
|
|
||||||
|
# allow old Phoenix wallets to pay us with trampoline
|
||||||
|
OPTION_TRAMPOLINE_ROUTING_REQ_COMPAT_ECLAIR = 1 << 50
|
||||||
|
OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ECLAIR = 1 << 51
|
||||||
|
|
||||||
|
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_REQ_COMPAT_ECLAIR] = (LNFC.INVOICE)
|
||||||
|
_ln_feature_contexts[OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ECLAIR] = (LNFC.INVOICE)
|
||||||
|
|
||||||
OPTION_SHUTDOWN_ANYSEGWIT_REQ = 1 << 26
|
OPTION_SHUTDOWN_ANYSEGWIT_REQ = 1 << 26
|
||||||
OPTION_SHUTDOWN_ANYSEGWIT_OPT = 1 << 27
|
OPTION_SHUTDOWN_ANYSEGWIT_OPT = 1 << 27
|
||||||
|
|
||||||
@@ -1108,10 +1123,6 @@ class LnFeatures(IntFlag):
|
|||||||
_ln_feature_contexts[OPTION_CHANNEL_TYPE_REQ] = (LNFC.INIT | LNFC.NODE_ANN)
|
_ln_feature_contexts[OPTION_CHANNEL_TYPE_REQ] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
_ln_feature_contexts[OPTION_CHANNEL_TYPE_OPT] = (LNFC.INIT | LNFC.NODE_ANN)
|
_ln_feature_contexts[OPTION_CHANNEL_TYPE_OPT] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
|
|
||||||
# temporary
|
|
||||||
OPTION_TRAMPOLINE_ROUTING_REQ_ECLAIR = 1 << 50
|
|
||||||
OPTION_TRAMPOLINE_ROUTING_OPT_ECLAIR = 1 << 51
|
|
||||||
|
|
||||||
def validate_transitive_dependencies(self) -> bool:
|
def validate_transitive_dependencies(self) -> bool:
|
||||||
# for all even bit set, set corresponding odd bit:
|
# for all even bit set, set corresponding odd bit:
|
||||||
features = self # copy
|
features = self # copy
|
||||||
|
|||||||
@@ -106,10 +106,11 @@ def is_legacy_relay(invoice_features, r_tags) -> Tuple[bool, Optional[bytes]]:
|
|||||||
"""
|
"""
|
||||||
invoice_features = LnFeatures(invoice_features)
|
invoice_features = LnFeatures(invoice_features)
|
||||||
# trampoline-supporting wallets:
|
# trampoline-supporting wallets:
|
||||||
# OPTION_TRAMPOLINE_ROUTING_OPT_ECLAIR: these are Phoenix/Eclair wallets
|
# OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ECLAIR: old Phoenix/Eclair wallets
|
||||||
# OPTION_TRAMPOLINE_ROUTING_OPT: these are Electrum wallets
|
# OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ELECTRUM: old Electrum wallets
|
||||||
if (invoice_features.supports(LnFeatures.OPTION_TRAMPOLINE_ROUTING_OPT)
|
if (invoice_features.supports(LnFeatures.OPTION_TRAMPOLINE_ROUTING_OPT)
|
||||||
or invoice_features.supports(LnFeatures.OPTION_TRAMPOLINE_ROUTING_OPT_ECLAIR)):
|
or invoice_features.supports(LnFeatures.OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ECLAIR)
|
||||||
|
or invoice_features.supports(LnFeatures.OPTION_TRAMPOLINE_ROUTING_OPT_COMPAT_ELECTRUM)):
|
||||||
# If there are no r_tags (routing hints) included, the wallet doesn't have
|
# If there are no r_tags (routing hints) included, the wallet doesn't have
|
||||||
# private channels and is probably directly connected to a trampoline node.
|
# private channels and is probably directly connected to a trampoline node.
|
||||||
# Any trampoline node should be able to figure out a path to the receiver and
|
# Any trampoline node should be able to figure out a path to the receiver and
|
||||||
|
|||||||
Reference in New Issue
Block a user