From a211a047b5a60936d28c956a970c4eaacc382d47 Mon Sep 17 00:00:00 2001 From: "Ygsk Lv.212" <3891200-ygsk-tor@users.noreply.gitlab.com> Date: Mon, 17 Nov 2025 09:44:54 +0000 Subject: [PATCH] Update BTC & LTC regex for Taproot and stricter rules --- fdroidserver/metadata.py | 4 ++-- tests/test_metadata.py | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 30d60d75..78f0675f 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -425,11 +425,11 @@ valuetypes = { ["AuthorEmail"]), FieldValidator("Bitcoin address", - r'^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$', + r'^([13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[02-9ac-hj-np-z]{39,59})$', ["Bitcoin"]), FieldValidator("Litecoin address", - r'^([LM3][a-km-zA-HJ-NP-Z1-9]{26,33}|ltc1[ac-hj-np-z0-9]{39,59})$', + r'^([LM3][a-km-zA-HJ-NP-Z1-9]{26,33}|ltc1[02-9ac-hj-np-z]{39,59})$', ["Litecoin"]), FieldValidator("Repo Type", diff --git a/tests/test_metadata.py b/tests/test_metadata.py index 0543e86d..9143bcb0 100755 --- a/tests/test_metadata.py +++ b/tests/test_metadata.py @@ -78,6 +78,12 @@ class MetadataTest(unittest.TestCase): self.assertIsNone( validator.check('bc1qar0srrr7xrkvr5lr43lrdnwrre5rgtrzrf5rrq', 'fake.app.id') ) + self.assertIsNone( + validator.check( + 'bc1pyp5jy62x5lnjg9tm4p89xxk6mlrr0uphgp0z2vrgm2r5zd6xta3qw67uv6', + 'fake.app.id', + ) + ) # some invalid addresses self.assertRaises( @@ -125,7 +131,7 @@ class MetadataTest(unittest.TestCase): break self.assertIsNotNone(validator, "could not find 'Litecoin address' validator") - # some valid addresses (L, M, 3, segwit) + # some valid addresses (L, M, 3, segwit, taproot) self.assertIsNone( validator.check('LgeGrrrrJAxyXprrPrrBrrX5Qrrrrrrrrd', 'fake.app.id') )