
    @6i                     j    d Z ddlZddlmZ dZ	 ddlmZ defdZ	ed	efd
       Z
y# e$ r dZY w xY w)zETH Address.    N)	validatorT)keccakFaddrc                    | j                  dd      } t        j                  | j                         j	                  d            j                         j                         }t        |       dk7  ryt        dd      D ][  }t        ||   d      dkD  r| |   j                         | |   k7  s-t        ||   d      dk  sA| |   j                         | |   k7  s[ y y	)
z#Validate ETH type checksum address.0x ascii(   Fr         T)replacer   newlowerencodedigesthexlenrangeintupper)r   	addr_hashis      j/home/azureuser/techstart-app/venv/lib/python3.12/site-packages/validators/crypto_addresses/eth_address.py_validate_eth_checksum_addressr      s    <<b!D

4::<..w78??AEEGI
4yB1b\ 	!b!A%$q'--/T!W*D	!b!Q&47==?d1g+E	
     valuec                    t         st        d      | syt        j                  d      j	                  |       xs t        |       S )al  Return whether or not given value is a valid ethereum address.

    Full validation is implemented for ERC20 addresses.

    Examples:
        >>> eth_address('0x9cc14ba4f9f68ca159ea4ebf2c292a808aaeb598')
        True
        >>> eth_address('0x8Ba1f109551bD432803012645Ac136ddd64DBa72')
        ValidationError(func=eth_address, args={'value': '0x8Ba1f109551bD432803012645Ac136ddd64DBa72'})

    Args:
        value:
            Ethereum address string to validate.

    Returns:
        (Literal[True]): If `value` is a valid ethereum address.
        (ValidationError): If `value` is an invalid ethereum address.
    zVDo `pip install validators[crypto-eth-addresses]` to perform `eth_address` validation.Fz!^0x[0-9a-f]{40}$|^0x[0-9A-F]{40}$)_keccak_flagImportErrorrecompilematchr   )r   s    r   eth_addressr#   !   sL    ( d
 	
 :::;AA /	'	./r   )__doc__r    validators.utilsr   r   eth_hash.autor   r   strr   r#    r   r   <module>r)      s\     
 '$
   /s / /+  Ls   ( 22