
    ei                         d dl mZ ddlmZ ee         Zddz  dz
  Zd ZdefdZe dz  Z	edz  Z
dedefd	Zdefd
ZdedefdZdedefdZdS )    )List   FIELD_PRIME      valuec                 ^    t           | cxk    rt          k    sn t          d|  d          d S )Nz4Uint256 is expected to be in range [0;2**256), got: .)MIN_UINT256MAX_UINT256
ValueErrorr	   s    j/var/www/html/volatility/venv/lib/python3.11/site-packages/ccxt/static_dependencies/starknet/cairo/felt.pyuint256_range_checkr      sI    %....;....K5KKK
 
 	
 /.    returnc                 ,    d| cxk    o
t           k     nc S )Nr   r   r   s    r   is_in_felt_ranger      s$    #########r   c                 Z    t          |           st          dt           d|  d          d S )Nz$Felt is expected to be in range [0; z), got: r   )r   r   r   r   s    r   cairo_vm_range_checkr      sD    E"" 
P;PPPPP
 
 	

 
r   textc                 T   t          |           dk    r t          dt          |            d          	 |                     d          }n3# t          $ r&}t          dt	          |            d          |d}~ww xY wt
                              |d          }t          |           |S )z
    A function which encodes short string value (at most 31 characters) into cairo felt (MSB as first character)

    :param text: A short string value in python
    :return: Short string value encoded into felt
       z6Shortstring cannot be longer than 31 characters, got: r   asciiz!Expected an ascii string. Found: Nbig)lenr   encodeUnicodeEncodeErrorreprint
from_bytesr   )r   
text_bytesu_errr	   s       r   encode_shortstringr%   "   s     4yy2~~QSYYQQQ
 
 	
W[[))

 W W WJT$ZZJJJKKQVVWNN:u--ELs   A 
A;!A66A;c                     t          |            d                    d |                     dd          D                                           d          S )z
    A function which decodes a felt value to short string (at most 31 characters)

    :param value: A felt value
    :return: Decoded string which is corresponds to that felt
     c                 ,    g | ]}t          |          S  )chr).0is     r   
<listcomp>z&decode_shortstring.<locals>.<listcomp>@   s    HHHqCFFHHHr   r   r   )	byteorder )r   jointo_byteslstripr   s    r   decode_shortstringr3   8   sR     77HHENN2N$G$GHHHIIPPQWXXXr   N)typingr   	constantsr   r!   	CairoDatar   r   r   MIN_FELTMAX_FELTboolr   r   strr%   r3   r)   r   r   <module>r;      s         # # # # # #I	 Cx1n
s 
 
 
 
 <1!$C $D $ $ $ $
 
 
 
 
S S    ,Yc Yc Y Y Y Y Y Yr   