From 27a4ea54e996047bfbf0f0f83a3b4d66eb0e4ac7 Mon Sep 17 00:00:00 2001 From: Mohammad Aghamir Date: Wed, 5 Jan 2022 19:30:29 +0330 Subject: [PATCH] LTC: Support segwit address in ltc --- coinaddrng/currency.py | 7 ++++--- coinaddrng/validation.py | 7 +++++-- tests/test_coinaddr.py | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/coinaddrng/currency.py b/coinaddrng/currency.py index 72de7d2..dbd2821 100644 --- a/coinaddrng/currency.py +++ b/coinaddrng/currency.py @@ -78,11 +78,12 @@ class Currency(metaclass=CurrencyMeta): Currency('bitcoin-cash', ticker='bch', validator='Base58Check', networks=dict( main=(0x00, 0x05), test=(0x6f, 0xc4))) -Currency('litecoin', ticker='ltc', validator='Base58Check', +Currency('litecoin', ticker='ltc', validator='BitcoinBasedCheck', networks=dict( main=(0x30, 0x05, 0x32, 0x019da462, 0x01b26ef6, - 0x488B21E, 0x49D7CB2, 0x4B24746, 0x295B43F, 0x2AA7ED3), - test=(0x6f, 0xc4, 0x0436f6e1))) + 0x488B21E, 0x49D7CB2, 0x4B24746, 0x295B43F, + 0x2AA7ED3, 'ltc'), + test=(0x6f, 0xc4, 0x0436f6e1, 'tltc'))) Currency('dogecoin', ticker='doge', validator='Base58Check', networks=dict( main=(0x1e, 0x16), test=(0x71, 0xc4))) diff --git a/coinaddrng/validation.py b/coinaddrng/validation.py index 01c18c8..0506f94 100644 --- a/coinaddrng/validation.py +++ b/coinaddrng/validation.py @@ -291,8 +291,11 @@ def validate_extended(self,checksum_algo='sha256'): @property def network(self): """Return network derived from network version bytes.""" - abytes = base58check.b58decode( - self.request.address, **self.request.extras) + try: + abytes = base58check.b58decode( + self.request.address, **self.request.extras) + except ValueError: + return '' nbyte = abytes[0] for name, networks in self.request.currency.networks.items(): diff --git a/tests/test_coinaddr.py b/tests/test_coinaddr.py index a846d3d..72266d2 100644 --- a/tests/test_coinaddr.py +++ b/tests/test_coinaddr.py @@ -23,6 +23,7 @@ ('bitcoin-cash', 'bch', b'3QJmV3qfvL9SuYo34YihAf3sRCW3qSinyC', 'main'), ('litecoin', 'ltc', b'LeF6vC9k1qfFDEj6UGjM5e4fwHtiKsakTd', 'main'), ('litecoin', 'ltc', b'mkwV3DZkgYwKaXkphBtcXAjsYQEqZ8aB3x', 'test'), + ('litecoin', 'ltc', b'ltc1qs54v679auflz9y88nleyy6qknalwwmfx6kcf8z', 'main'), ('neocoin', 'neo', b'AL9fzczwjV6ynoFAJVz4fBDu4NYLG6MBwm', 'both'), ('dogecoin', 'doge', b'DAnBU2rLkUgQb1ZLBJd6Bm5pZ45RN4TQC4', 'main'), ('dogecoin', 'doge', b'njscgXBB3HUUTXH7njim1Uw82PF9da4R8k', 'test'),