portfolio.cpython-311.pyc•19.5 kB
�
R\�h�J � �| � d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ ej e
� � Z G d� d� � ZdS )� N)�EthereumClient)�
PolygonClient)�SolanaClientc �v � e Zd ZdZd� Zd� Zd� Zd� Zd� Zd� Z dd �Z
d
� Zdd�Zd
� Z
d� Zd� Zd� Zd� Zd� Zd� ZdS )�PortfolioManagerz!Portfolio management and trackingc �� � t � � | _ t � � | _ t � � | _ t
j dd� � | _ t
j dd� � | _ d S )N�COINGECKO_API_KEYzdemo-key�MORALIS_API_KEY)
r �ethereum_clientr �polygon_clientr �
solana_client�os�getenv�coingecko_api_key�moralis_api_key)�selfs �./home/runner/workspace/defi_tools/portfolio.py�__init__zPortfolioManager.__init__
sZ � �-�/�/���+�o�o���)�^�^��� "$��+>�
�!K�!K���!�y�):�J�G�G����� c �� � |� � � 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#Get complete portfolio for a wallet�ethereum�polygon�solanaFzUnsupported blockchain: ��success�errorzPortfolio fetch failed: N)�lower�_get_ethereum_portfolio�_get_polygon_portfolio�_get_solana_portfolio� Exception�loggerr �str)r �wallet_address�
blockchain�es r �
get_portfoliozPortfolioManager.get_portfolio s � � 7����!�!�Z�/�/��3�3�N�C�C�C��!�!�#�#�y�0�0��2�2�>�B�B�B��!�!�#�#�x�/�/��1�1�.�A�A�A�#(�3Z�j�3Z�3Z�[�[�[��� 7� 7� 7��L�L�<�C��F�F�<�<�=�=�=�$�s�1�v�v�6�6�6�6�6�6�6�6����� 7���s. �,B �,B �,B � B �
C!�;C�C!�C!c � � d|� d�}d| j i}ddi}t j |||�� � }|j dk rdd d
�S |� � � }| j � |� � }|dg d| � � � d
�}| � d� � } t |� � | z }
|d �
ddd|| |
dd�� � |dxx |
z
cc<