Files
checkaddy/checkaddy_app/validators/doge.py
2026-03-06 18:22:02 +01:00

19 lines
665 B
Python

from __future__ import annotations
from .common import base58check_verify
def validate_doge_address(address: str) -> tuple[bool, str]:
address = address.strip()
if not (address.startswith("D") or address.startswith("A") or address.startswith("9")):
return False, "DOGE Base58 addresses must start with D, A, or 9"
valid, reason, version, payload_len = base58check_verify(address)
if not valid:
return False, reason
if payload_len != 21:
return False, "Unexpected Base58 payload length"
if version not in (0x1E, 0x16):
return False, "Invalid DOGE version byte"
return True, "Valid Base58Check address"