
    
%j^                        d dl mZ d dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZmZmZ  ed	           G d
 d                      ZddddZdS )    )annotations)	dataclass)DecimalN)Any)OrderIntent)HyperliquidAssetMetaround_hyperliquid_priceround_hyperliquid_sizeT)frozenc                      e Zd ZU ded<   ded<   ded<   dZded	<   dZded
<   dZded<   dZded<   dZded<   dZ	ded<   dZ
ded<   dS )PreparedOrderPayloadboolacceptedztuple[str, ...]reasonszdict[str, Any]payloadNzdict[str, Any] | Nonestop_loss_payloadtake_profit_payloadzDecimal | Nonerounded_sizerounded_priceestimated_notionalz
str | Nonecloidstrategy_id)__name__
__module____qualname____annotations__r   r   r   r   r   r   r        L/home/agent/projects/CryptoTradingBot/Crypto_Agent/src/execution/payloads.pyr   r      s         NNN/33333155555#'L''''$(M(((()-----E"K""""""r   r   F)require_testnetintentr   metar   min_notional_usdr   r    r   returnc               R   g }|r@t          j        dd                                          dk    r|                    d           | j        dk    r|                    d           | j        s| j        |                    d           | j        dk    rt          | j        |          nt          d          }| j	        p| j
        p| j        pt          d          }|dk    rt          |          nd }|||z  n| j        }||k     r|                    d	           |dk    r|                    d
           | j        |j        | j        dk    | j        | j        | j        | j        t%          |d|j         d          |t)          |          nd | j
        r!t)          t          | j
                            nd | j        d}	d }
| j        S| j        | j        dk    | j        dk    rdndddt)          t          | j                            |	d         | j         dd}
d }| j        S| j        | j        dk    | j        dk    rdndddt)          t          | j                            |	d         | j         dd}t/          | t1          |          |	|
||||| j        | j        
  
        S )N
CTB_HL_ENV testnettestnet_env_requiredr   size_non_positivestop_loss_required0min_notionalrounded_size_zerobuy.f)coinasset_idis_buysidereduce_only
order_typetifsizepricetrigger_pricer   sellTtriggerr9   z-sl)r2   r4   r5   r6   r7   r;   r9   r   z-tp)
r   r   r   r   r   r   r   r   r   r   )osgetenvlowerappendr9   r6   	stop_lossr
   r   r:   r;   r	   estimated_notional_usdr2   r3   r5   r7   r8   formatsz_decimalsstrclient_order_idtake_profitr   tupler   )r!   r"   r#   r    r   r   reference_pricer   r   r   stop_payload
tp_payloads               r   prepare_order_payloadrM      s
   G /29\266<<>>)KK-...{a*+++ -&"2":+,,,@Fa)&+t<<<U\]`UaUaLl^f&:^f>N^RYZ]R^R^O@ORS@S@S+O<<<Y]M;H;T,66Z`Zw,,,~&&&q*+++ M+&)'z|%<)9%<%<%<=='4'@]###dOUOcm4V5IJJKKKim' G L#KkV+$kU22FF# !89I!J!JKKFO.333	
 	
 J%KkV+$kU22FF# !89K!L!LMMFO.333	
 	

  g&&!#-$&   r   )
r!   r   r"   r   r#   r   r    r   r$   r   )
__future__r   dataclassesr   decimalr   r>   typingr   src.execution.order_intentr   src.hyperliquid.roundingr   r	   r
   r   rM   r   r   r   <module>rT      s    " " " " " " ! ! ! ! ! !       				       2 2 2 2 2 2 j j j j j j j j j j $
# 
# 
# 
# 
# 
# 
# 
# BG B B B B B B B Br   