o
    ¡ØÆh—  ã                   @   sL   d dl Z d dlmZ deeeeeeef defdd„Z	dedefdd	„Z
dS )
é    N)ÚUnionÚvalÚreturnc                 C   s¢   t | tƒr| S t | tƒrt| ƒS t | tƒrt| ƒS t | tƒr$| r"dS dS t | tƒr;| dk r5td| › d�ƒ‚tt	| ƒƒS t | t
ƒrDt| ƒS td| ›dt| ƒ› d�ƒ‚)zÚ
    Equivalent to: `eth_utils.hexstr_if_str(eth_utils.to_bytes, val)` .

    Convert a hex string, integer, or bool, to a bytes representation.
    Alternatively, pass through bytes or bytearray as a bytes value.
    ó   ó    r   z Cannot convert negative integer z	 to byteszCannot convert z	 of type )Ú
isinstanceÚbytesÚstrÚhexstr_to_bytesÚ	bytearrayÚboolÚintÚ
ValueErrorÚto_bytesÚhexÚ
memoryviewÚ	TypeErrorÚtype)r   © r   ú\/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/site-packages/hexbytes/_utils.pyr      s   





r   Úhexstrc                 C   sn   |   d¡r| dd … }n| }t| ƒd rd| }n|}z| d¡}W n ty1   td|› d�ƒ‚w t |¡S )N)Ú0xÚ0Xé   Ú0Úasciizhex string z( may only contain [0-9a-fA-F] characters)Ú
startswithÚlenÚencodeÚUnicodeDecodeErrorr   ÚbinasciiÚ	unhexlify)r   Únon_prefixed_hexÚ
padded_hexÚ	ascii_hexr   r   r   r
   #   s   


ÿÿ
r
   )r    Útypingr   r   r   r   r   r	   r   r   r
   r   r   r   r   Ú<module>   s    "