
    j
                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZ ddZedk    r e e                      dS )	    N)load_dotenv)Exchange)Info)expected_confirmationvalidate_panic_confirmationc                    t          j        d          }|                    ddd           |                    |           }t	                       t          j        d          }t          j        d          }|r|st          d	           d
S t          |          }t          |j
        |          s$t          d           t          d| d           dS t          d           t          j                            |          }t          |d          }t          dd          }	 i }	t!          j        dddiddi          }
|
j        dk    rDt'          |
                                d         d                   D ]\  }}|d         |	|d         <   |                    |          }|                    dg           }d}|D ]}t/          |d         d                    }|dk    r|d         d!         }|dk     }t1          |          }|	                    |d          }|dk    rt3          ||          nt5          |          }t          d"| d#| d$           |                    |||d%&          }|r2|                    d'          d(k    rt          d)| d*           |d+z  }t          d,| d-|            t          d.| d/           dS # t8          $ r}t          d0|            Y d }~d+S d }~ww xY w)1Nu;   PANIC CLOSE: alle offenen Hyperliquid Positionen schließen)descriptionz	--confirmFu-   Exakte Bestätigung: CLOSE ALL <wallet-last4>)requiredhelpHL_API_PRIVATE_KEYHL_WALLET_ADDRESSu.   ❌ FATAL: API Key oder Wallet Address fehlen!   uH   ❌ PANIC CLOSE blockiert: explizite Bestätigung fehlt oder ist falsch.z   Erwartet: --confirm ""   u7   🚨 PANIC CLOSE INITIIERT: Verbinde mit Hyperliquid...zhttps://api.hyperliquid.xyzT)skip_wsz https://api.hyperliquid.xyz/infozContent-Typezapplication/jsontypemetaAndAssetCtxs)headersjson   r   universe
szDecimalsnameassetPositionspositionszicoinu   ⚠️ Schließe z (Size: z) per Market-Order...g?)slippagestatusoku   ✅ z erfolgreich geschlossen.   u   ❌ Fehler bei z: u   🏁 PANIC CLOSE BEENDET. z Positionen geschlossen.u   🔥 FATALER FEHLER: )argparseArgumentParseradd_argument
parse_argsr   osgetenvprintr   r   confirmeth_accountAccountfrom_keyr   r   requestspoststatus_code	enumerater   
user_stategetfloatabsroundintmarket_open	Exception)argvparserargs
secret_keywallet_addressexpectedaccountexchangeinfosz_decimalsri	coin_infou_state	positionsclosed_countpr   r   is_buyexact_szdecimals
rounded_szreses                            panic_close.pymainrQ      sm   $1noooF
e:ijjjT""DMMM/00JY233N ^ >???q$^44H&t|^DD XYYY6(666777q	
CDDD!**:66G!>??H-t<<<DM<~WiFjrx  {M  rN  O  O  O=C )!&&((1+j*A B B I I91:<1HIf-..//.11KK 0"55	 	; 	;A*e,--Caxx}V,qs88&??433:BQ,,U8X666CPXMM
Y$YY
YYYZZZ**4d*SS ;3778,,44@@@@AAA A%LL9D99C99:::Q<QQQRRRq   )a))***qqqqqs   &F(K 
K7K22K7__main__)N)r"   r&   sysr*   r-   dotenvr   hyperliquid.exchanger   hyperliquid.infor   panic_guardr   r   rQ   __name__
SystemExit     rP   <module>r\      s     				 



            ) ) ) ) ) ) ! ! ! ! ! ! J J J J J J J J6 6 6 6r z
*TTVV

 r[   