|
@ -59,7 +59,7 @@ from .lnhtlc import HTLCManager |
|
|
from .lnmsg import encode_msg, decode_msg |
|
|
from .lnmsg import encode_msg, decode_msg |
|
|
from .address_synchronizer import TX_HEIGHT_LOCAL |
|
|
from .address_synchronizer import TX_HEIGHT_LOCAL |
|
|
from .lnutil import CHANNEL_OPENING_TIMEOUT |
|
|
from .lnutil import CHANNEL_OPENING_TIMEOUT |
|
|
from .lnutil import ChannelBackupStorage, ImportedChannelBackupStorage |
|
|
from .lnutil import ChannelBackupStorage, ImportedChannelBackupStorage, OnchainChannelBackupStorage |
|
|
from .lnutil import format_short_channel_id |
|
|
from .lnutil import format_short_channel_id |
|
|
|
|
|
|
|
|
if TYPE_CHECKING: |
|
|
if TYPE_CHECKING: |
|
@ -148,7 +148,7 @@ class AbstractChannel(Logger, ABC): |
|
|
_fallback_sweep_address: str |
|
|
_fallback_sweep_address: str |
|
|
channel_id: bytes |
|
|
channel_id: bytes |
|
|
funding_outpoint: Outpoint |
|
|
funding_outpoint: Outpoint |
|
|
node_id: bytes |
|
|
node_id: bytes # note that it might not be the full 33 bytes; for OCB it is only the prefix |
|
|
_state: ChannelState |
|
|
_state: ChannelState |
|
|
|
|
|
|
|
|
def set_short_channel_id(self, short_id: ShortChannelID) -> None: |
|
|
def set_short_channel_id(self, short_id: ShortChannelID) -> None: |
|
@ -391,6 +391,11 @@ class AbstractChannel(Logger, ABC): |
|
|
def is_static_remotekey_enabled(self) -> bool: |
|
|
def is_static_remotekey_enabled(self) -> bool: |
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
@abstractmethod |
|
|
|
|
|
def get_local_pubkey(self) -> bytes: |
|
|
|
|
|
"""Returns our node ID.""" |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ChannelBackup(AbstractChannel): |
|
|
class ChannelBackup(AbstractChannel): |
|
|
""" |
|
|
""" |
|
@ -513,6 +518,14 @@ class ChannelBackup(AbstractChannel): |
|
|
# their local config is not static) |
|
|
# their local config is not static) |
|
|
return False |
|
|
return False |
|
|
|
|
|
|
|
|
|
|
|
def get_local_pubkey(self) -> bytes: |
|
|
|
|
|
cb = self.cb |
|
|
|
|
|
assert isinstance(cb, ChannelBackupStorage) |
|
|
|
|
|
if isinstance(cb, ImportedChannelBackupStorage): |
|
|
|
|
|
return ecc.ECPrivkey(cb.privkey).get_public_key_bytes(compressed=True) |
|
|
|
|
|
if isinstance(cb, OnchainChannelBackupStorage): |
|
|
|
|
|
return self.lnworker.node_keypair.pubkey |
|
|
|
|
|
raise NotImplementedError(f"unexpected cb type: {type(cb)}") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Channel(AbstractChannel): |
|
|
class Channel(AbstractChannel): |
|
|