From 785fe6aeeacef8b88cb2b8adb19df6d1612b9a1a Mon Sep 17 00:00:00 2001 From: SomberNight Date: Thu, 4 Mar 2021 12:14:47 +0100 Subject: [PATCH] lnutil: (trivial) add ShortChannelID.from_str() method for console use atm --- electrum/lnutil.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/electrum/lnutil.py b/electrum/lnutil.py index 271e9c7c3..17a89698c 100644 --- a/electrum/lnutil.py +++ b/electrum/lnutil.py @@ -1265,6 +1265,18 @@ class ShortChannelID(bytes): oi = output_index.to_bytes(2, byteorder='big') return ShortChannelID(bh + tpos + oi) + @classmethod + def from_str(cls, scid: str) -> 'ShortChannelID': + """Parses a formatted scid str, e.g. '643920x356x0'.""" + components = scid.split("x") + if len(components) != 3: + raise ValueError(f"failed to parse ShortChannelID: {scid!r}") + try: + components = [int(x) for x in components] + except ValueError: + raise ValueError(f"failed to parse ShortChannelID: {scid!r}") from None + return ShortChannelID.from_components(*components) + @classmethod def normalize(cls, data: Union[None, str, bytes, 'ShortChannelID']) -> Optional['ShortChannelID']: if isinstance(data, ShortChannelID) or data is None: