
    E#i                         S SK r S SK Jr  S SKJr  SSKJrJr  SSKJr   " S S5      rS r	S	S
-  S-
  r
S\S\S\\\ R                  4   4S jrS\\\\\ R                  4   S\S\4S jrg)    N)localcontext)Union   )
is_integer	is_string)unitsc                      \ rS rSr\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r	\" \S   5      r
\" \S   5      r\" \S   5      r\" \S	   5      r\" \S
   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      r\" \S   5      rSrg)denoms   weikweibabbage
femtoethermweilovelace	picoethergweishannon	nanoethernanoszabo
microethermicrofinney
milliethermillietherkethergrandmethergethertether N)__name__
__module____qualname____firstlineno__intr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   __static_attributes__r#       j/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/ethereum/utils/currency.pyr
   r
      sL   
eEl
CuV}D%	"#GU<()JuV}D5$%HE+&'IuV}D%	"#GE+&'IuV}DgEU<()JgEx!FU<()JgEgEx!FgEx!Fx!Fx!Fr*   r
         numberunitreturnc                    UR                  5       [        ;  a0  [        SSR                  [        R                  " 5       5       35      eU S:X  a  gU [
        :  d
  U [        :  a  [        S5      e[        UR                  5          n[        5        nSUl        [        R                  " XS9nXB-  nSSS5        U$ ! , (       d  f       W$ = f)z@
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_weirE   0   s     zz|5 8%**,9O8PQRR{6G+ABBtzz|$J	3??=, 

  

 s    B::
C	c                    UR                  5       [        ;  a0  [        SSR                  [        R                  " 5       5       35      e[        U 5      (       d  [        U 5      (       a  [        R                  " U S9nO`[        U [        5      (       a  [        R                  " [        U 5      S9nO-[        U [        R                  5      (       a  U nO[        S5      e[        U 5      n[        UR                  5          nU[        R                  " S5      :X  a  gUS:  aa  SU;   a[  [        5        n[        U5      UR                  S5      -
  S-
  nXel        [        R                  " XS9S	U-  -  nS
S
S
5        US	W-  -  n[        5        nSUl        [        R                  " X%S9U-  nS
S
S
5        W["        :  d
  U[$        :  a  [        S5      e['        U5      $ ! , (       d  f       Nq= f! , (       d  f       NI= f)z2
Takes a number of a unit and converts it to wei.
r2   r3   )r6   z:Unsupported type. Must be one of integer, float, or stringr   r   .r5   
   Nr4   z4Resulting wei value must be between 1 and 2**256 - 1)r8   r   r9   r:   r;   r   r   r?   r@   
isinstancefloatstr	TypeErrorr   lenindexr>   r<   r=   r(   )r.   r/   rC   s_numberrA   rB   
multiplierrD   s           r+   to_weirQ   G   s    zz|5 8%**,9O8PQRR&Yv..??0	FE	"	"??V5	FGOO	,	,TUU6{Htzz|$J7??1%%!|x^sX)<<q@J!HVAB
NRH  	b*n$
	3XCjP 
 g!7OPP| ^ 
s   1AGG.
G+.
G<)r?   r   typingr   typesr   r   r   r
   r<   r=   r(   rK   r@   rE   rJ   rQ   r#   r*   r+   <module>rT      s    
" "4 
S&1*S  c7??.B(C .$5eS'//9: $# $# $r*   