o
    ¢ØÆhÔ
  ã                   @   sP  d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 deddfdd	„Zdeddfd
d„Zedededdfdd„ƒZedededdfdd„ƒZee
d d�Zdedededdfdd„Zdeddfdd„Zdeddfdd„Zdeddfdd„Zdeddfdd„Zdeddfd d!„Zdeddfd"d#„Zdeddfd$d%„Zdeddfd&d'„ZdS )(é    )ÚAny)ÚValidationErrorÚ
encode_hexÚis_bytesÚ
is_integer)Úcurry)ÚSECPK1_NÚvalueÚreturnNc                 C   s(   t | ƒr	t| tƒrtdt| ƒ› �ƒ‚d S )Nz"Value must be a an integer.  Got: )r   Ú
isinstanceÚboolr   Útype©r	   © r   ú`/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/site-packages/eth_keys/validation.pyÚvalidate_integer   s   ÿr   c                 C   s   t | ƒstdt| ƒ› �ƒ‚d S )Nz#Value must be a byte string.  Got: )r   r   r   r   r   r   r   Úvalidate_bytes   s   ÿr   Úminimumc                 C   s(   t | ƒ | |k rtd| › d|› �ƒ‚d S )NúValue z! is not greater than or equal to ©r   r   )r	   r   r   r   r   Úvalidate_gte   s   ÿÿr   Úmaximumc                 C   s(   t | ƒ | |krtd| › d|› �ƒ‚d S )Nr   z is not less than or equal to r   )r	   r   r   r   r   Úvalidate_lte'   s   ÿr   é   ©r   Úexpected_lengthÚnamec                 C   s0   t | ƒ}||krtd|› d|› d|› d�ƒ‚d S )NzUnexpected z length: Expected z
, but got z bytes)Úlenr   )r	   r   r   Úactual_lengthr   r   r   Úvalidate_bytes_length1   s   ÿÿÿr   c                 C   ó   t | ƒ t| ddƒ d S )Né    zmessage hash©r   r   r   r   r   r   Úvalidate_message_hash:   ó   r#   c                 C   r    )Né@   zuncompressed public keyr"   r   r   r   r   Ú&validate_uncompressed_public_key_bytes?   r$   r&   c                 C   s>   t | ƒ t| ddƒ | dd… }|dvrtdt|ƒ› �ƒ‚d S )Né!   zcompressed public keyr   r   )ó   ó   zWUnexpected compressed public key format: Must start with 0x02 or 0x03, but starts with )r   r   r   r   )r	   Ú
first_byter   r   r   Ú$validate_compressed_public_key_bytesD   s   ÿÿÿr+   c                 C   r    )Nr!   zprivate keyr"   r   r   r   r   Úvalidate_private_key_bytesO   r$   r,   c                 C   r    )NéA   zrecoverable signaturer"   r   r   r   r   Ú$validate_recoverable_signature_bytesT   r$   r.   c                 C   r    )Nr%   znon recoverable signaturer"   r   r   r   r   Ú(validate_non_recoverable_signature_bytesY   r$   r/   c                 C   s$   t | ƒ t| dd� t| dd� d S )Nr   )r   r   r   )r   r   r   r   r   r   r   Úvalidate_signature_v^   s   r0   c                 C   s   t | ƒ t| dƒ t| ƒ d S )Nr   )r   r   Úvalidate_lt_secpk1nr   r   r   r   Úvalidate_signature_r_or_sd   s   
r2   )Útypingr   Ú	eth_utilsr   r   r   r   Úeth_utils.toolzr   Úeth_keys.constantsr   r   r   Úintr   r   r1   ÚbytesÚstrr   r#   r&   r+   r,   r.   r/   r0   r2   r   r   r   r   Ú<module>   s(    	