Skip to main content
Glama

ONEDeFi MCP Server

by JMadhan1
dex_operations.cpython-311.pyc9.8 kB
� R\�h�)��|�ddlZddlZddlZddlmZddlmZddlmZej e ��Z Gd�d��Z dS)�N)�EthereumClient)� PolygonClient)� SolanaClientc�8�eZdZdZd�Zd d�Zd�Zd�Zd�Zd �Z d S) � DEXOperationsz2DEX trading operations across multiple blockchainsc��t��|_t��|_t ��|_t jdd��|_dS)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��� |���dkr|�||||||��S|���dkr|�||||||��S|���dkr|�||||||��Sdd|��d�S#t$rF}t �dt|������dt|��d�cYd}~Sd}~wwxYw) 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_swaps)�� 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} tj||| ���} | jdkrddd �S| ���} d } |||||d �} tj| | | ���}|jdkrdd d �S|���}|j�||d d|d d|d d|d d���}|r,d|| �dd��|d dd| |d�d�Sddd �S#t$rF}t� dt|������dt|��d �cYd}~Sd}~wwxYw)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 quoterz&https://api.1inch.dev/swap/v5.2/1/swap�r0r1r2�fromr*�Failed to get swap transaction�tx�to�data�value�gas�r&� to_addressr?r@rAT�toAmount�0�1inch��quote�swap�r�tx_hash� amount_out�gas_usedr+�metadata�Transaction failedzEthereum swap failed: N) r�requests�get� status_code�jsonr �send_transactionr"r#rr$�rr&r'r(r)r*r+� quote_url� quote_paramsr7�quote_response� quote_data�swap_url� swap_params� swap_response� swap_datarKr,s rrz$DEXOperations._execute_ethereum_swap#s���< 7�B�I�� �#���L� '�(I�$�2G�(I�(I�J�G�%�\�)�L�RY�Z�Z�Z�N��)�S�0�0�#(�3M�N�N�N�'�,�,�.�.�J�A�H�� �#�&�$� ��K�%�L��+�w�W�W�W�M��(�C�/�/�#(�3S�T�T�T�%�*�*�,�,�I��*�;�;�-�$�T�?�4�0��t�_�V�,���o�g�.��d�O�E�*� <���G�� I�#�&�",�.�.��S�"A�"A� )�$��� 6� '�!+� )�!�!� � � �$)�3G�H�H�H��� 7� 7� 7� �L�L�:�#�a�&�&�:�:� ;� ;� ;�$�s�1�v�v�6�6� 6� 6� 6� 6� 6� 6����� 7����0�:D�AD�BD�D� E(�";E#�E(�#E(c��� d}|||d�}dd|j��i} tj||| ���} | jdkrddd �S| ���} d } |||||d �} tj| | | ���}|jdkrdd d �S|���}|j�||d d|d d|d d|d d���}|r,d|| �dd��|d dd| |d�d�Sddd �S#t$rF}t� dt|������dt|��d �cYd}~Sd}~wwxYw)zExecute swap on Polygonz)https://api.1inch.dev/swap/v5.2/137/quoter/r3r4r5r8Fr9rz(https://api.1inch.dev/swap/v5.2/137/swapr:r<r=r>r?r@rArBTrDrErFrGrJrOzPolygon swap failed: N) rrPrQrRrSr rTr"r#rr$rUs rr z#DEXOperations._execute_polygon_swapcs���< 7�D�I�� �#���L� '�(I�$�2G�(I�(I�J�G�%�\�)�L�RY�Z�Z�Z�N��)�S�0�0�#(�3M�N�N�N�'�,�,�.�.�J�C�H�� �#�&�$� ��K�%�L��+�w�W�W�W�M��(�C�/�/�#(�3S�T�T�T�%�*�*�,�,�I��)�:�:�-�$�T�?�4�0��t�_�V�,���o�g�.��d�O�E�*� ;���G�� I�#�&�",�.�.��S�"A�"A� )�$��� 6� '�!+� )�!�!� � � �$)�3G�H�H�H��� 7� 7� 7� �L�L�9��Q���9�9� :� :� :�$�s�1�v�v�6�6� 6� 6� 6� 6� 6� 6����� 7���r^c�b� d}|||t|dz��d�}tj||���} | jdkrddd�S| ���} d } | |d �} tj| | � ��} | jdkrdd d�S| ���}|j�||d ���}|rd|| �dd��d| |d�d�Sddd�S#t$rF}t� dt|������dt|��d�cYd}~Sd}~wwxYw)zExecute swap on Solana�!https://quote-api.jup.ag/v6/quote�d)� inputMint� outputMintr2� slippageBps�r6r8Fr9rz https://quote-api.jup.ag/v6/swap)� quoteResponse� userPublicKey)rSr<�swapTransaction)r&� transactionT� outAmountrE�jupiterrG)rrKrLr+rNrOzSolana swap failed: N) �intrPrQrRrS�postr rTr"r#rr$)rr&r'r(r)r*r+rVrWrXrYrZ� swap_payloadr\r]rKr,s rr!z"DEXOperations._execute_solana_swap�s���5 7�;�I�%�'�#�"�8�c�>�2�2� ��L�&�\�)�L�I�I�I�N��)�S�0�0�#(�3M�N�N�N�'�,�,�.�.�J�:�H�!+�!/���L� %�M�(��F�F�F�M��(�C�/�/�#(�3S�T�T�T�%�*�*�,�,�I��(�9�9�-�%�&7�8�:���G� � I�#�&�",�.�.��c�"B�"B� )�!+� )�!�!� � � �$)�3G�H�H�H��� 7� 7� 7� �L�L�8��A���8�8� 9� 9� 9�$�s�1�v�v�6�6� 6� 6� 6� 6� 6� 6����� 7���s1�>C�AC�AC�C� D.�(;D)�#D.�)D.c�� |���dkrd}n�|���dkrd}ne|���dkrEd}|||d�}tj||���}|jd krd |���d �Sd d d�Sd d|��d�Sd|�d�}|||d�}dd|j��i} tj||| ���}|jd krd |���d �Sd d d�S#t $rF} t�dt| ������d t| ��d�cYd} ~ Sd} ~ wwxYw)z Get swap quote without executingr�1r�137rra)rcrdr2rfr8T)rrHFzFailed to get quoterrz https://api.1inch.dev/swap/v5.2/z/quoter/r3r4r5zQuote fetch failed: N) rrPrQrRrSrr"r#rr$) rr%r'r(r)�chain_idrVrW�responser7r,s r�get_swap_quotezDEXOperations.get_swap_quote�s���( 7����!�!�Z�/�/�����!�!�#�#�y�0�0� ����!�!�#�#�x�/�/�?� �!)�"+�'� � � � $�<� �,�G�G�G���'�3�.�.�'+�h�m�m�o�o�F�F�F�',�7L�M�M�M�#(�3Z�j�3Z�3Z�[�[�[�L�8�K�K�K�I�� �#���L� '�(I�$�2G�(I�(I�J�G��|�I�l�G�T�T�T�H��#�s�*�*�#'�(�-�-�/�/�B�B�B�#(�3H�I�I�I��� 7� 7� 7� �L�L�8��A���8�8� 9� 9� 9�$�s�1�v�v�6�6� 6� 6� 6� 6� 6� 6����� 7���s7�B C3�C3�C3�AC3�.C3�3 E�=;D>�8E�>EN)rr) �__name__� __module__� __qualname__�__doc__rr-rr r!ru�rrrr s������<�<�J�J�J� 7�7�7�7� >7�>7�>7�@>7�>7�>7�@77�77�77�r*7�*7�*7�*7�*7rr) r �loggingrP�blockchain.ethereumr�blockchain.polygonr�blockchain.solanar� getLoggerrvr#rrzrr�<module>r�s��� � � � ���������.�.�.�.�.�.�,�,�,�,�,�,�*�*�*�*�*�*� �� �8� $� $��|7�|7�|7�|7�|7�|7�|7�|7�|7�|7r

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JMadhan1/OneDefi-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server