o
    Zh	                     @  sL   d Z ddlmZ ddlZddlmZmZmZ erddlm	Z	 ddddZ
dS )z AINetwork Blockchain tool utils.    )annotationsN)TYPE_CHECKINGLiteralOptionalAintestnetnetwork'Optional[Literal['mainnet', 'testnet']]returnr   c              
   C  s
  zddl m} W n ty } ztd|d}~ww | dkr1d}d}dtjv r-tjd }nKtd	| d
krHd}d}dtjv rDtjd }n4td	| du rqdtjv rmdtjv rmdtjv rmtjd }ttjd }tjd }ntdtd|  |||}|j	| |S )z%Authenticate using the AIN Blockchainr   r   z[Cannot import ain-py related modules. Please install the package with `pip install ain-py`.NZmainnetz!https://mainnet-api.ainetwork.ai/   Z"AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEYzVError: The AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEY environmental variable has not been set.r   z!https://testnet-api.ainetwork.ai/ZAIN_BLOCKCHAIN_PROVIDER_URLZAIN_BLOCKCHAIN_CHAIN_IDzError: The AIN_BLOCKCHAIN_PROVIDER_URL and AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEY and AIN_BLOCKCHAIN_CHAIN_ID environmental variable has not been set.zUnsupported 'network': )
ain.ainr   ImportErrorosenvironEnvironmentErrorint
ValueErrorZwalletZaddAndSetDefaultAccount)r	   r   eZprovider_urlZchain_idZprivate_keyZain r   `/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/tools/ainetwork/utils.pyauthenticate   sP   






r   )r   )r	   r
   r   r   )__doc__
__future__r   r   typingr   r   r   r   r   r   r   r   r   r   <module>   s    