
    E#i                         S SK Jr  SSKJr  \\   rSS-  S-
  rS rS\4S jr\* S-  r	\S-  r
S\S\4S	 jrS\4S
 jrS\S\4S jrS\S\4S jrg)    )List   FIELD_PRIME      valuec                 P    [         U s=::  a
  [        ::  d  O  [        SU  S35      eg )Nz4Uint256 is expected to be in range [0;2**256), got: .)MIN_UINT256MAX_UINT256
ValueErrorr	   s    f/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/starknet/cairo/felt.pyuint256_range_checkr      s-    %.;.B5'K
 	
 /    returnc                 4    SU s=:*  =(       a	    [         :  $ s  $ )Nr   r   r   s    r   is_in_felt_ranger      s    ######r   c                 P    [        U 5      (       d  [        S[         SU  S35      eg )Nz$Felt is expected to be in range [0; z), got: r   )r   r   r   r   s    r   cairo_vm_range_checkr      s1    E""2;-xwaP
 	
 #r   textc                    [        U 5      S:  a  [        S[        U 5       S35      e U R                  S5      n[
        R                  US5      n[        U5        U$ ! [         a  n[        S[	        U 5       S35      UeSnAff = f)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     4y2~DSYKqQ
 	
W[[)
 NN:u-EL  W<T$ZLJKQVVWs   A 
B'B  Bc                     [        U 5        SR                  U R                  SSS9 Vs/ s H  n[        U5      PM     sn5      R	                  S5      $ s  snf )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
 r   r   )	byteorder )r   jointo_byteschrlstrip)r	   is     r   decode_shortstringr/   8   sL     77ENN2N$GH$GqCF$GHIPPQWXXHs   AN)typingr   	constantsr   r!   	CairoDatar   r   r   MIN_FELTMAX_FELTboolr   r   strr%   r/    r   r   <module>r8      s     #I	 Cx1n
s 
 <1!$C $D $
 
S S ,Yc Yc Yr   