prepare a channel to have anchors
* add anchor ln features * peer.use_anchors is added * channel.has_anchors is added
This commit is contained in:
@@ -496,6 +496,9 @@ class AbstractChannel(Logger, ABC):
|
|||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def has_anchors(self) -> bool:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ChannelBackup(AbstractChannel):
|
class ChannelBackup(AbstractChannel):
|
||||||
"""
|
"""
|
||||||
@@ -883,6 +886,10 @@ class Channel(AbstractChannel):
|
|||||||
assert self.lnworker.wallet.is_mine(addr)
|
assert self.lnworker.wallet.is_mine(addr)
|
||||||
return addr
|
return addr
|
||||||
|
|
||||||
|
def has_anchors(self) -> bool:
|
||||||
|
channel_type = ChannelType(self.storage.get('channel_type'))
|
||||||
|
return bool(channel_type & ChannelType.OPTION_ANCHOR_OUTPUTS)
|
||||||
|
|
||||||
def get_wallet_addresses_channel_might_want_reserved(self) -> Sequence[str]:
|
def get_wallet_addresses_channel_might_want_reserved(self) -> Sequence[str]:
|
||||||
assert self.is_static_remotekey_enabled()
|
assert self.is_static_remotekey_enabled()
|
||||||
our_payment_pubkey = self.config[LOCAL].payment_basepoint.pubkey
|
our_payment_pubkey = self.config[LOCAL].payment_basepoint.pubkey
|
||||||
|
|||||||
@@ -656,6 +656,9 @@ class Peer(Logger, EventListener):
|
|||||||
def is_upfront_shutdown_script(self):
|
def is_upfront_shutdown_script(self):
|
||||||
return self.features.supports(LnFeatures.OPTION_UPFRONT_SHUTDOWN_SCRIPT_OPT)
|
return self.features.supports(LnFeatures.OPTION_UPFRONT_SHUTDOWN_SCRIPT_OPT)
|
||||||
|
|
||||||
|
def use_anchors(self) -> bool:
|
||||||
|
return self.features.supports(LnFeatures.OPTION_ANCHOR_OUTPUTS_OPT)
|
||||||
|
|
||||||
def upfront_shutdown_script_from_payload(self, payload, msg_identifier: str) -> Optional[bytes]:
|
def upfront_shutdown_script_from_payload(self, payload, msg_identifier: str) -> Optional[bytes]:
|
||||||
if msg_identifier not in ['accept', 'open']:
|
if msg_identifier not in ['accept', 'open']:
|
||||||
raise ValueError("msg_identifier must be either 'accept' or 'open'")
|
raise ValueError("msg_identifier must be either 'accept' or 'open'")
|
||||||
|
|||||||
@@ -1181,6 +1181,18 @@ 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_ANCHOR_OUTPUTS_REQ = 1 << 20
|
||||||
|
OPTION_ANCHOR_OUTPUTS_OPT = 1 << 21
|
||||||
|
_ln_feature_direct_dependencies[OPTION_ANCHOR_OUTPUTS_OPT] = {OPTION_STATIC_REMOTEKEY_OPT}
|
||||||
|
_ln_feature_contexts[OPTION_ANCHOR_OUTPUTS_REQ] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
|
_ln_feature_contexts[OPTION_ANCHOR_OUTPUTS_OPT] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
|
|
||||||
|
OPTION_ANCHORS_ZERO_FEE_HTLC_REQ = 1 << 22
|
||||||
|
OPTION_ANCHORS_ZERO_FEE_HTLC_OPT = 1 << 23
|
||||||
|
_ln_feature_direct_dependencies[OPTION_ANCHORS_ZERO_FEE_HTLC_OPT] = {OPTION_STATIC_REMOTEKEY_OPT}
|
||||||
|
_ln_feature_contexts[OPTION_ANCHORS_ZERO_FEE_HTLC_REQ] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
|
_ln_feature_contexts[OPTION_ANCHORS_ZERO_FEE_HTLC_OPT] = (LNFC.INIT | LNFC.NODE_ANN)
|
||||||
|
|
||||||
# Temporary number.
|
# Temporary number.
|
||||||
OPTION_TRAMPOLINE_ROUTING_REQ_ECLAIR = 1 << 148
|
OPTION_TRAMPOLINE_ROUTING_REQ_ECLAIR = 1 << 148
|
||||||
OPTION_TRAMPOLINE_ROUTING_OPT_ECLAIR = 1 << 149
|
OPTION_TRAMPOLINE_ROUTING_OPT_ECLAIR = 1 << 149
|
||||||
|
|||||||
Reference in New Issue
Block a user