
    Fi                        d dl mZ d dlmZ d dlmZmZ d dlmZmZ dZ	dZ
dZddZdd	Zdd
ZddZddZddZddZddZe G d d             Ze G d d             Ze G d d             Zy)    )annotations)	dataclass)datetimetimezone)AnyOptionalzbtc-updown-5m-i,  zAmerica/New_Yorkc                (    | sy| j                         S N )lowervalues    0/root/polymarket_arb/analysis/safe_btc5/types.pynormalize_addrr      s    ;;=    c                   | dv ry t        | t              rK| j                   | j                  t        j
                        S | j                  t        j
                        S t        | t        t        f      r.t        j                  t        |       t        j
                        S t        | t              rC	 t        j                  | j                  dd            j                  t        j
                        S y # t        $ rR 	 t        j                  t        |       t        j
                        cY S # t        t        t        t        f$ r Y Y y w xY ww xY w)Nr
   tzinfotzZz+00:00)
isinstancer   r   replacer   utc
astimezoneintfloatfromtimestampstrfromisoformat
ValueError	TypeErrorOSErrorOverflowErrorr   s    r   parse_dtr%      s   
%"<<===55--%#u&%%eElx||DD%	))%--X*FGRR    	--eElx||LLz7MB 	s1   6AC9 9	E-D30E3EEEEc                    | y| j                    | j                  t        j                        } | j	                  t        j                        j                         S )Nr   r   )r   r   r   r   r   	isoformatr   s    r   	dt_to_isor(   )   sF    }||X\\2HLL)3355r   c                N    | dv ry 	 t        |       S # t        t        f$ r Y y w xY wNr
   )r   r"   r!   r   s    r   float_or_noner+   1   s3    
U|z"    
 $$c                N    | dv ry 	 t        |       S # t        t        f$ r Y y w xY wr*   )r   r"   r!   r   s    r   int_or_noner.   :   s3    
5zz" r,   c                d    | j                  t              sy t        | t        t              d        S N)
startswith
BTC_PREFIXr.   len)slugs    r   slug_start_tsr5   C   s(    ??:&tC
O-.//r   c                D    t          t        |       t        z  t        z   S r0   )r2   r   SESSION_SEC	timestamps    r   slug_for_tsr:   I   s     \3y>[8KGHIIr   c                4    t        |       t        z  t        z  S r0   )r   r7   r8   s    r   floor_session_tsr<   M   s    	Nk)[88r   c                      e Zd ZU 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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dZedd       Zy)
MarketInfor   r4   r   condition_idtitle
event_slugNOptional[datetime]
start_timeend_timeup_token_iddown_token_idFboolresolvedwinning_outcomeOptional[float]final_priceprice_to_beatsourcec                   | j                   | j                  | j                  | j                  t	        | j
                        t	        | j                        | j                  | j                  t        t        | j                              j                         | j                  | j                  dn| j                  | j                  dn| j                  | j                   dS )Nr   )market_slugrA   r?   questionrC   rD   rE   rF   rH   rI   rK   rL   rM   )r4   rA   r?   r@   r(   rC   rD   rE   rF   r   rG   rH   r   rI   rK   rL   rM   selfs    r   to_rowzMarketInfo.to_rowa   s    99// --

#DOO4!$--0++!//D/0668#33!%!1!1!92t?O?O#'#5#5#=R4CUCUkk
 	
r   c                l    | |j                  d      xs |j                  d      xs d|j                  dd      |j                  dd      |j                  dd      t        |j                  d            t        |j                  d            |j                  d	d      |j                  d
d      t        |j                  dd            j                         dk(  |j                  dd      t	        |j                  d            t	        |j                  d            |j                  dd            S )NrO   r4   r   rA   r?   rP   rC   rD   rE   rF   rH   truerI   rK   rL   rM   )r4   rA   r?   r@   rC   rD   rE   rF   rH   rI   rK   rL   rM   )getr%   r   r   r+   )clsrows     r   from_rowzMarketInfo.from_rowr   s    '@3776?@bww|R04''*b) 56cggj12r2''/26R01779VCGG$5r:%cggm&<='(@A778R(
 	
r   returndict[str, Any])rX   r\   r[   z'MarketInfo')__name__
__module____qualname____annotations__r?   r@   rA   rC   rD   rE   rF   rH   rI   rK   rL   rM   rS   classmethodrY    r   r   r>   r>   Q   s    
IL#E3OJ%)J")#'H 'KM3HdOS#'K'%)M?)FC
" 
 
r   r>   c                  6   e Zd ZU ded<   ded<   ded<   ded<   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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<   ed"d       Zd#d Zed$d!       Zy)%
SafeActionr   saferO   r?   tx_hashr   r9   action_typerM   r   raw_typeoutcomesideNrJ   price        r   shares
gross_usdcnet_usdc_delta
usdc_deltaup_delta
down_delta	not_trademaker_taker_rolecounterpartiesTrG   pnl_eligiblec           
     &   | j                   j                         | j                  | j                  | j                  t        t        | j                  j                                     | j                  d| j                  dg}dj                  |      S )Nz.8f|)rf   r   rg   rj   ri   r   r   r9   rm   rn   join)rR   partss     r   	action_idzSafeAction.action_id   st     LL IILLDNN,,./0{{3s#
 xxr   c           	        i d| j                   d| j                  d| j                  d| j                  d| j                  dt        | j                        d| j                  d| j                  d	| j                  d
| j                  d| j                  d| j                  dn| j                  d| j                  d| j                  d| j                  dn| j                  d| j                   d| j"                  | j$                  | j&                  | j(                  t+        t-        | j.                              j1                         dS )Nr{   re   rO   r?   rf   r9   rg   rM   rh   ri   rj   rk   r   rm   rn   ro   rp   rq   )rr   rt   ru   rv   )r{   re   rO   r?   rf   r(   r9   rg   rM   rh   ri   rj   rk   rm   rn   ro   rp   rq   rr   rt   ru   r   rG   rv   r   rQ   s    r   rS   zSafeAction.to_row   s~   

DII
 4++
 D--	

 t||
 4>>2
 4++
 dkk
 
 t||
 DII
 4::-R4::
 dkk
 $//
 ""* !$$#
$ $//%
& '
( // $ 5 5"11T%6%6 78>>@/
 	
r   c                4   t        |j                  d            xs% t        j                  dt        j
                        } | di d|j                  dd      d|j                  dd      d|j                  dd      d|j                  dd      d|d	|j                  d	d      d
|j                  d
d      d|j                  dd      d|j                  dd      d|j                  dd      dt        |j                  d            dt        |j                  d            xs ddt        |j                  d            xs ddt        |j                  d            dt        |j                  d            xs ddt        |j                  d            xs ddt        |j                  d            xs dd|j                  dd      d|j                  dd      dt        |j                  dd            j                         dk(  S )Nr9   r   r   re   r   rO   r?   rf   rg   rM   rh   ri   rj   rk   rm   rl   rn   ro   rp   rq   rr   rt   rs   ru   rv   rU   rb   )	r%   rV   r   r   r   r   r+   r   r   )rW   rX   tss      r   rY   zSafeAction.from_row   s   cggk*+Yx/E/EaHLL/Y 
$
r2
 4
 GGIr*	

 
 r2
 778R(
 WWZ,
 GGIr*
 $
   01
 !!23:s
 %SWW\%:;Bs
 )1A)BC
 %SWW\%:;Bs
  #377:#67>3!
" %SWW\%:;Bs#
$ !WW%7E%
& 77#3R8'
( SWW^V<=CCEO)
 	
r   )r[   r   rZ   )rX   r\   r[   z'SafeAction')r]   r^   r_   r`   rh   ri   rj   rk   rm   rn   ro   rp   rq   rr   rt   ru   rv   propertyr{   rS   ra   rY   rb   r   r   rd   rd      s    
ILKHcGSD#N!E?!FEJ&*NO*JHeJ'c'NCL$
 

6 
 
r   rd   c                      e Zd ZU 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Zded<   dZded<   dZded<   y)ReceiptSummaryr   rf   r   statusNOptional[int]block_numbertx_fromtx_torJ   gas_fee_polrl   r   safe_usdc_net_deltaunknownrt   rb   ztuple[str, ...]ru   r   r   real_fill_countsummary_fill_count)r]   r^   r_   r`   r   r   r   r   r   r   rt   ru   r   r   rb   r   r   r   r      sm    LFC"&L-&GSE3O#'K'!$$%c%&(NO(OSr   r   N)r   zOptional[str]r[   r   )r   r   r[   rB   )r   rB   r[   r   )r   r   r[   rJ   )r   r   r[   r   )r4   r   r[   r   )r9   r   r[   r   )r9   r   r[   r   )
__future__r   dataclassesr   r   r   typingr   r   r2   r7   
ET_TZ_NAMEr   r%   r(   r+   r.   r5   r:   r<   r>   rd   r   rb   r   r   <module>r      s    " ! '   

,60J9 0
 0
 0
f V
 V
 V
r      r   