
    b?1i                     V    d Z ddlmZ ddlZddlmZ defdZdefdZed	efd
       Z	y)zBTC Address.    )sha256N   )	validatoraddrc           	      N    dt        fdt        | ddd         D              S )zDecode base58.:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzc              3   R   K   | ]  \  }}d |z  j                  |      z     yw):   N)index).0enmidxalphabets      `/home/www/therecruiter.miabetepe.com/venv/lib/python3.12/site-packages/validators/btc_address.py	<genexpr>z!_decode_base58.<locals>.<genexpr>   s'     U83C8>>#..Us   $'N)sum	enumerate)r   r   s    @r   _decode_base58r      s'    KHUydPRd?TUUU    c                     t        |       t        dd      vryt        |       j                  dd      }|dd |dd }}|t	        t	        |      j                               j                         dd k(  S )z%Validate P2PKH and P2SH type address.   #   FbigN   )lenranger   to_bytesr   digest)r   decoded_bytesheaderchecksums       r   _validate_old_btc_addressr$      sr    
4yb"%"4(11"e<M$Sb)=+=HFvfVn3356==?CCCr   valuec                t    | sy| dd dv r$t        j                  d      j                  |       S t        |       S )a  Return whether or not given value is a valid bitcoin address.

    Full validation is implemented for P2PKH and P2SH addresses.
    For segwit addresses a regexp is used to provide a reasonable
    estimate on whether the address is valid.

    Examples:
        >>> btc_address('3Cwgr2g7vsi1bXDUkpEnVoRLA9w4FZfC69')
        # Output: True
        >>> btc_address('1BvBMsEYstWetqTFn5Au4m4GFg7xJaNVN2')
        # Output: ValidationError(func=btc_address, args=...)

    Args:
        value:
            Bitcoin address string to validate.

    Returns:
        (Literal[True]):
            If `value` is a valid bitcoin address.
        (ValidationError):
            If `value` is an invalid bitcoin address.

    > *New in version 0.18.0*.
    FN   )bctbz%^(bc|tc)[0-3][02-9ac-hj-np-z]{14,74}$)recompilematchr$   )r%   s    r   btc_addressr-      sH    4 
 !9$ 	

;<BB5I 'u-	r   )
__doc__hashlibr   r*   utilsr   strr   r$   r-    r   r   <module>r3      sL      	 V VDC D !s ! !r   