
    ":h                         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y)    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y)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!        j/var/www/html/turnos/venv/lib/python3.12/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                    |j                         t        vr/t        ddj                  t        j                                      | dk(  ry| t
        k  s	| t        kD  rt        d      t        |j                            }t               5 }d|_        t        j                  | |      }||z  }ddd       |S # 1 sw Y   S xY w)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 8%**,9O8PQRR{6G+ABBtzz|$J	 -3??=*,-
 -
 s   
$B88Cc                    |j                         t        vr/t        ddj                  t        j                                      t        |       st        |       rt        j                  |       }nXt        | t              r t        j                  t        |             }n(t        | t        j                        r| }nt        d      t        |       }t        |j                            }|t        j                  d      k(  ry|dk  rcd|v r_t               5 }t        |      |j                  d      z
  dz
  }||_        t        j                  | |      d	|z  z  }d
d
d
       |d	z  z  }t               5 }d|_        t        j                  ||      |z  }d
d
d
       t"        k  s	|t$        kD  rt        d      t'        |      S # 1 sw Y   mxY w# 1 sw Y   =xY w)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 8%**,9O8PQRR&Yv.??0	FE	"??V5	FGOO	,TUU6{Htzz|$J7??1%%!|x^ 	SsX)<<q@J!CHVSAB
NRH	S 	b*n$
	 Q3XsCjPQ g!7OPP|	S 	SQ Qs   AG
8"G
GG)r<   r   typingr   typesr   r   r   r
   r9   r:   r%   rH   r=   rB   rG   rN   r&   r'   r(   <module>rQ      s    
" "4 
S&1*S  c7??.B(C .$5eS'//9: $# $# $r'   