o
    ¢ØÆh²  ã                   @   sf   d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
 eZeZeZeZG dd„ deƒZedd�ZdS )é    )ÚValidationError)ÚBaseSignatureÚLazyBackendÚNonRecoverableSignatureÚ
PrivateKeyÚ	PublicKeyÚ	Signature)Úvalidate_message_hashc                   @   sŠ   e Zd ZeZeZeZeZdedede	fdd„Z
dededefdd„Zdeded	edefd
d„Zdede	defdd„Zdedefdd„ZdS )ÚKeyAPIÚmessage_hashÚprivate_keyÚreturnc                 C   ó>   t |ƒ t|tƒstdƒ‚| j ||¡}t|tƒstdƒ‚|S ©NúHThe `private_key` must be an instance of `eth_keys.datatypes.PrivateKey`zjBackend returned an invalid signature.  Return value must be an instance of `eth_keys.datatypes.Signature`)r	   Ú
isinstancer   r   ÚbackendÚ
ecdsa_signr   ©Úselfr   r   Ú	signature© r   úZ/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/site-packages/eth_keys/main.pyr   "   s   
ÿ
ÿzKeyAPI.ecdsa_signc                 C   r   r   )r	   r   r   r   r   Úecdsa_sign_non_recoverabler   r   r   r   r   r   1   s   
ÿ
ÿz!KeyAPI.ecdsa_sign_non_recoverabler   Ú
public_keyc                 C   s<   t |ƒ t|tƒstdƒ‚t|tƒstdƒ‚| j |||¡S )NzFThe `public_key` must be an instance of `eth_keys.datatypes.PublicKey`zIThe `signature` must be an instance of `eth_keys.datatypes.BaseSignature`)r	   r   r   r   r   r   Úecdsa_verify©r   r   r   r   r   r   r   r   B   s   
ÿ
ÿzKeyAPI.ecdsa_verifyc                 C   r   )NzEThe `signature` must be an instance of `eth_keys.datatypes.Signature`úkBackend returned an invalid public_key.  Return value must be an instance of `eth_keys.datatypes.PublicKey`)r	   r   r   r   r   Úecdsa_recoverÚ
_PublicKeyr   r   r   r   r   Q   s   
ÿ
ÿzKeyAPI.ecdsa_recoverc                 C   s4   t |tƒs	tdƒ‚| j |¡}t |tƒstdƒ‚|S )Nr   r   )r   r   r   r   Úprivate_key_to_public_keyr   )r   r   r   r   r   r   r    _   s   
ÿ
ÿz KeyAPI.private_key_to_public_keyN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚbytesÚ_PrivateKeyÚ
_Signaturer   Ú_NonRecoverableSignaturer   r   r   Úboolr   r   r    r   r   r   r   r
      s0    ÿÿ
þÿÿÿ
þr
   N)r   )Ú	eth_utilsr   Úeth_keys.datatypesr   r   r   r   r   r   Úeth_keys.validationr	   r   r%   r&   r'   r
   Úlazy_key_apir   r   r   r   Ú<module>   s     W