
    i4                        d Z ddlZddlZddlmZ ej                  j                  ej                  j                  e            Zej                  j                  de       	 ddl
mZ ddlmZ ddlmZmZmZ d
 Zd Zd Zd Zedk(  r ej*                   e              yy# e$ r/Z ede         ed        ej*                  d	       Y dZ[YdZ[ww xY w)u}   
Diagnostic de connexion Binance
================================
Teste la connexion API Binance et identifie les problèmes
    N)datetime)Client)BinanceAPIException)BINANCE_API_KEYBINANCE_API_SECRETTESTNET_MODEu   ❌ Erreur d'import: u8      Installe les dépendances: pip install python-binance   c                  ^   t        d       t        d       t        d       t        rt        st        d       yt        dk(  s	t        dk(  rt        d       t        d	       yt        d
t        dd  dt        dd         t        dt        dd  d       t        dt        rdnd        y)u,   Vérifie que les clés API sont configuréesG
======================================================================u    🔑 VÉRIFICATION DES CLÉS APIF======================================================================u/   ❌ ERREUR: Clés API manquantes dans config.pyFyour_api_key_hereyour_api_secret_hereu?   ❌ ERREUR: Les clés API sont toujours aux valeurs par défautu4      Remplace-les dans config.py avec tes vraies clésu   ✅ Clé API trouvée: N   ...iu   ✅ Secret trouvé: z...***u
   ✅ Mode: zTESTNET (argent fictif)u    ⚠️ PRODUCTION (argent réel)T)printr   r   r        ./test_binance_connection.pytest_api_keysr      s    	-	
,-	&M"4?@ --1CG]1]OPDE	#OBQ$7#8OBC<P;Q
RS	 !3BQ!7 8
?@	JL0Fhi
jkr   c                     t        d       t        d       t        d       	 t        dt        rdnd d       t        t        t        t              } t        d	       	 | j                         }|d
   }t        j                  |dz        }t        d|j                  d              t        d       	 | j                         }t        d       t        d|j                  dd              t        d|j                  dd              t        d|j                  dd              t        d|j                  dd              t        d       |j                  dg       }|D cg c]'  }t        |d         dkD  st        |d          dkD  s&|) }}|rQ|dd! D ]H  }	t        |	d         }
t        |	d          }|
|z   }|dkD  s*t        d"|	d#   d$d%|d&d'|
d(d)|d(d*	       J nt        d+       t        d>       	 | j!                  d?@      }t        |dA         }t        dB|dCdD       t        dF       	 | j#                         }t        dGt%        |       dH       t        d       t        dK       t        d       yL# t        $ r}t        d|        Y d}~yd}~ww xY wc c}w # t        $ r}t        d,|        t        d-|j                          t        d.|j                          |j                  d/k(  rt        d0       t        d1       t        d2       t        d3       t        d4       t        d5       t        d6       t        d7       t        d8       t        d9       t        d:       t        d;       t        d<       t        d=       Y d}~yd}~ww xY w# t        $ r}t        dE|        Y d}~yd}~ww xY w# t        $ r2}t        dI|        |j                  d/k(  rt        dJ       Y d}~yd}~ww xY w# t        $ r,}t        dM|        ddl}|j)                          Y d}~yd}~ww xY w)Nu   Teste la connexion à Binancer   u   🌐 TEST DE CONNEXION BINANCEr   z   Connexion au serveur: Testnet
Productionr   )api_key
api_secrettestnetu&   
1️⃣ Test de l'heure du serveur...
serverTimei  u      ✅ Serveur accessible: z%Y-%m-%d %H:%M:%Su      ❌ Serveur inaccessible: NFu'   
2️⃣ Test d'authentification API...u!      ✅ Authentification réussie!u      📊 Type de compte: accountTypezN/Au      📊 Peut trader: canTradeu      📊 Peut retirer: canWithdrawu      📊 Peut déposer: 
canDepositu   
💰 BALANCES:balancesfreer   locked
   z   assetz>6z: z>15.8fz	 (libre: z.8fu   , bloqué: )uI      ⚠️ Aucune balance trouvée (normal pour un nouveau compte testnet)u"      ❌ Erreur d'authentification: z   Code erreur: z   Message: i!uU   
⚠️ ERREUR -2015: Clé API invalide, IP non autorisée, ou permissions manquantesu   
📋 SOLUTIONS POSSIBLES:u>      1. Vérifie que tes clés API sont correctes dans config.pyz<   2. Sur Binance Testnet (https://testnet.binance.vision/):z,      - Connecte-toi avec ton compte testnetu2         - Crée une nouvelle clé API si nécessaireu1         - Copie la clé et le secret dans config.pyu.      3. Vérifie les permissions de la clé API:z       - Enable Reading (lecture)z.      - Enable Spot & Margin Trading (trading)z   4. Restrictions IP:u<         - Sur le testnet, généralement pas de restriction IPu/         - Vérifie que 'Unrestricted' est activéu5      5. Si tu utilises un VPN, essaie de le désactiveru+   
3️⃣ Test de récupération des prix...BTCUSDT)symbolpriceu      ✅ Prix BTC: z,.2fz USDTu#      ❌ Erreur récupération prix: u&   
4️⃣ Test de lecture des ordres...u#      ✅ Ordres ouverts accessibles: z	 ordre(s)u      ❌ Erreur lecture ordres: uF      ⚠️ Permissions insuffisantes (normal si clés en lecture seule)u   ✅ TOUS LES TESTS RÉUSSIS!Tu   
❌ ERREUR CRITIQUE: )r   r   r   r   r   get_server_timer   fromtimestampstrftime	Exceptionget_accountgetfloatr   codemessageget_symbol_tickerget_open_orderslen	traceback	print_exc)clientserver_timeserver_timestampserver_dateeaccountr!   bnon_zerobalancer"   r#   totaltickerr)   ordersr6   s                    r   test_binance_connectionrD   /   s=   	-	
*+	&Mb)|))VVYZ[#) 
 	78	 002K*<8"001AD1HIK/0D0DEX0Y/Z[\ 	89,	((*G57,W[[-N,OPQ)'++j%*H)IJK*7;;}e+L*MNO+GKKe,L+MNO $%{{:r2H#+^auQvY/?!/CuQx[GY\]G]^H^'} vG 1D"78#45F 6MEqyGG$4R#85.	RVWZQ[[fgmnqfrrstuv ab4 	<=	--Y-?F&/*E%eD\78 	78	++-F7F}INO 	m,-fY  	1!56	" _ # 	6qc:;$QVVH-.L,-vvno34VWTUDEJKIJFG89FG./TUGHMN+	:  	7s;<	 # 	21#67vv^_		  's+,	s   <P  A
J *P 6B4J1 *'J,J,2J1 	-J1 6P 0N. 2P >(O &!P 	J)J$P $J))P ,J1 1	N+:C'N&!P &N++P .	O7O
P 
OP 	P(PP PP 	Q"Q  Qc            
         t        d       t        d       t        d       ddl} ddg}|D ]-  \  }}	 | j                  ||fd	       t        d
| d| d       / y# t        $ r}t        d| d| d|        Y d}~Sd}~ww xY w)u!   Vérifie la connectivité réseaur   u   🌍 VÉRIFICATION RÉSEAUr   r   N)ztestnet.binance.vision  )zapi.binance.comrF      )timeoutu      ✅ :z accessibleu      ❌ z inaccessible: )r   socketcreate_connectionr-   )rJ   hostshostportr<   s        r   check_networkrO      s    	-	
&'	&M 	( E
  =
d	=$$dD\1$=GD64&45=  	=GD64&s;<<	=s   'A	B&A??Bc                      t        d       t        d       t        d       t               syt                t               rt        d       t        d       yt        d       t        d	       y)
zFonction principaler   u#   🔧 DIAGNOSTIC COMPLET BINANCE APIr   r	   u2   
✅ La connexion Binance fonctionne correctement!u-      Tu peux lancer le bot en toute sécurité.r   u&   
❌ Problème de connexion détecté.z8   Corrige les erreurs ci-dessus avant de lancer le bot.)r   r   rO   rD   r   r   r   mainrQ      s]    	-	
/0	&M ? O  CD=>78HIr   __main__)__doc__sysosr   pathdirnameabspath__file__
SCRIPT_DIRinsertbinance.clientr   binance.exceptionsr   configr   r   r   ImportErrorr<   r   exitr   rD   rO   rQ   __name__r   r   r   <module>rb      s     	  WW__RWW__X67
 : %6HH,hT=*. zCHHTV c  	!!
%&	
DECHHQKKs   "B" "C'%CC