
    ei                         d dl Z d dl mZ d dlmZ ddlmZmZ ddlmZ  G d d          Zd Z	d	d
z  dz
  Z
dededeee j        f         fdZdeeeee j        f         dedefdZdS )    N)localcontext)Union   )
is_integer	is_string)unitsc                      e Zd Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z	 eed                   Z
 eed                   Z eed                   Z eed	                   Z eed
                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   Z eed                   ZdS )denomsweikweibabbage
femtoethermweilovelace	picoethergweishannon	nanoethernanoszabo
microethermicrofinney
milliethermillietherkethergrandmethergethertetherN)__name__
__module____qualname__intr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!        n/var/www/html/volatility/venv/lib/python3.11/site-packages/ccxt/static_dependencies/ethereum/utils/currency.pyr
   r
      s       
#eEl

C3uV}Dc%	"##GU<())J3uV}Ds5$%%HE+&''I3uV}Dc%	"##GE+&''I3uV}DCgEU<())JCgESx!!FU<())JCgECgESx!!FCgESx!!FSx!!FSx!!FFFr'   r
         numberunitreturnc                    |                                 t          vr6t          dd                    t          j                                         | dk    rdS | t
          k     s| t          k    rt          d          t          |                                          }t                      5 }d|_        t          j
        | |          }||z  }ddd           n# 1 swxY w Y   |S )zH
    Takes a number of wei and converts it to any other ether unit.
    Unknown unit. Must be one of /r   z&value must be between 1 and 2**256 - 1  valuecontextN)lowerr   
ValueErrorjoinkeysMIN_WEIMAX_WEIr   precdecimalDecimal)r+   r,   
unit_valuectxd_numberresult_values         r(   from_weirB   0   s    zz||5  Q%*,,9O9OQQRRR{{q6G++ABBBtzz||$J	 -3?===*,- - - - - - - - - - - - - - -
 s   ,#CC"Cc                 ^   |                                 t          vr6t          dd                    t          j                                         t          |           st          |           rt          j        |           }ndt          | t                    r#t          j        t          |                     }n,t          | t          j                  r| }nt          d          t          |           }t          |                                          }|t          j        d          k    rdS |dk     r}d|v ryt                      5 }t          |          |                    d          z
  dz
  }||_        t          j        | |          d	|z  z  }d
d
d
           n# 1 swxY w Y   |d	|z  z  }t                      5 }d|_        t          j        ||          |z  }d
d
d
           n# 1 swxY w Y   |t"          k     s|t$          k    rt          d          t'          |          S )z:
    Takes a number of a unit and converts it to wei.
    r/   r0   )r3   z:Unsupported type. Must be one of integer, float, or stringr   r   .r2   
   Nr1   z4Resulting wei value must be between 1 and 2**256 - 1)r5   r   r6   r7   r8   r   r   r<   r=   
isinstancefloatstr	TypeErrorr   lenindexr;   r9   r:   r%   )r+   r,   r@   s_numberr>   r?   
multiplierrA   s           r(   to_weirN   G   s    zz||5  Q%*,,9O9OQQRRR& VYv.. V?000	FE	"	" V?V555	FGO	,	, VTUUU6{{Htzz||$J7?1%%%%q!||x^^ 	SsX)<)<<q@J!CHVSAAAB
NRH	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	b*n$
	 Q3XsCCCjPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q g!7!7OPPP|s%   
AF""F&)F&!G00G47G4)r<   r   typingr   typesr   r   r   r
   r9   r:   r%   rH   r=   rB   rG   rN   r&   r'   r(   <module>rQ      sD                         
" " " " " " " "4 
S&1*S  c7?.B(C    .$5eS'/9: $# $# $ $ $ $ $ $r'   