dex_operations.cpython-311.pyc•9.8 kB
�
R\�h�) � �| � d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ ej e
� � Z G d� d� � ZdS )� N)�EthereumClient)�
PolygonClient)�SolanaClientc �8 � e Zd ZdZd� Zdd�Zd� Zd� Zd� Zd � Z d
S )�
DEXOperationsz2DEX trading operations across multiple blockchainsc � � t � � | _ t � � | _ t � � | _ t
j dd� � | _ d S )N�ONE_INCH_API_KEYzdemo-key) r �ethereum_clientr �polygon_clientr �
solana_client�os�getenv�one_inch_api_key)�selfs �3/home/runner/workspace/defi_tools/dex_operations.py�__init__zDEXOperations.__init__
sC � �-�/�/���+�o�o���)�^�^��� "� �*<�j� I� I����� � �?�uniswapc �� � |� � � dk r| � ||||||� � S |� � � dk r| � ||||||� � S |� � � dk r| � ||||||� � S dd|� �d�S # t $ rF}t
� dt |� � � �� � dt |� � d�cY d}~S d}~ww xY w) z,Execute a token swap on specified blockchain�ethereum�polygon�solanaF�Unsupported blockchain: ��success�errorzSwap execution failed: N)�lower�_execute_ethereum_swap�_execute_polygon_swap�_execute_solana_swap� Exception�loggerr �str) r �
blockchain�wallet_address�token_in� token_out� amount_in�slippage�protocol�es r �execute_swapzDEXOperations.execute_swap s) � � 7����!�!�Z�/�/��2�2�>�8�Y�Xa�ck�mu�v�v�v��!�!�#�#�y�0�0��1�1�.�(�I�W`�bj�lt�u�u�u��!�!�#�#�x�/�/��0�0���9�V_�ai�ks�t�t�t�#(�3Z�j�3Z�3Z�[�[�[��� 7� 7� 7��L�L�;�3�q�6�6�;�;�<�<�<�$�s�1�v�v�6�6�6�6�6�6�6�6����� 7���s. �1B �1B �&1B �B �
C0�*;C+�%C0�+C0c �� � d}|||d�}dd| j � �i} t j ||| �� � }
|
j dk rddd �S |
� � � }d
}|||||d�}
t j ||
| �� � }|j dk rddd �S |� � � }| j � ||d
d |d
d |d
d |d
d �� � }|r,d||� dd� � |d
d d||d�d�S ddd �S # t $ rF}t � dt |� � � �� � dt |� � d �cY d}~S d}~ww xY w)zExecute swap on Ethereumz'https://api.1inch.dev/swap/v5.2/1/quote��src�dst�amount�
Authorization�Bearer ��params�headers�� F�Failed to get swap quoter z&https://api.1inch.dev/swap/v5.2/1/swap�r0 r1 r2 �fromr* �Failed to get swap transaction�tx�to�data�value�gas�r&