
    (i{                        d dl Z d dlmZmZmZ d dlmZ d dlmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZmZ d dlmZ h dZd	ed
efdZded
efdZd	ed
efdZ d	ed
efdZ!d	ed
efdZ"d	ed
efdZ#d	ed
efdZ$d	ed
efdZ%e	 ddedee&   ded
efd       Z' ee       ee       ee       ee ee      feefed ff       ee       ee       ee       ee       ee      d	Z(e e e e!e d d dZ)d
efdZ*y)    N)AnyOptionalcast)KDFType)is_binary_addressis_checksum_addressis_dict	is_hexstr)
apply_one_of_formattershexstr_if_stris_0x_prefixed
is_addressis_bytes
is_integeris_list_like	is_stringto_bytesto_int)curryidentity)HexBytes>   N     valreturnc                 
    | d u S N r   s    N/var/www/br/venv/lib/python3.12/site-packages/eth_account/_utils/validation.pyis_noner!   (   s    $;r   valuec                 2    t        |       xs t        |       S r   )r   r   )r"   s    r    is_valid_addressr$   ,   s    U#A':5'AAr   c                 T    t        |       ryt        | t              rt        |       ryy)NTF)r   
isinstancestrr   r   s    r    is_int_or_prefixed_hexstrr(   0   s#    #	C	."5r   c                 *    | t         v ryt        |       S )NT)VALID_EMPTY_ADDRESSESr$   r   s    r    is_empty_or_checksum_addressr+   9   s    
##$$r   c                 2   t        |       sy| D ]  }t        |      s yt        |      dk7  r y|j                  d      }|j                  d      }t	        d ||fD              r yt        |      s yt        |      s y|D ]  }t        |      r  y  y)AReturns true if 'val' is a valid JSON-RPC structured access list.F   addressstorageKeysc              3   $   K   | ]  }|d u  
 y wr   r   ).0_s     r    	<genexpr>z0is_rpc_structured_access_list.<locals>.<genexpr>K   s     :QqDy:s   T)r   r	   lengetanyr   r(   )r   dr/   storage_keysstorage_keys        r    is_rpc_structured_access_listr;   @   s     qzq6Q;%%	"uu]+:7L"9::'"L)' 	K,[9	  r   c                     t        |       sy| D ]F  }t        |      s yt        |      dk7  r y|\  }}t        |      s y|D ]  }t        |      r  y H y)<Returns true if 'val' is a valid rlp-structured access list.Fr.   T)r   r5   r   r(   )r   itemr/   r9   r:   s        r    is_rlp_structured_access_listr?   W   si     
D!t9> $'"' 	K,[9	
 r   c                    t        |       syt        |       dk(  ry| D ]  }t        |      s yt        |      dk7  r y|j                  d      }|j                  d      }|j                  d      }|j                  d      }|j                  d      }|j                  d	      }| yt	        |      s y| yt	        |      s yt        |      s y| y|d
vr y| yt	        |      s y| yt	        |      r y y)r-   Fr      chainIdr/   nonceyParityrs)r      0x00x1T)r   r5   r	   r6   r(   r   )r   r8   chain_idr/   rC   y_paritysigner_rsigner_ss           r    $is_rpc_structured_authorization_listrN   i   s	   
3x1}  qzq6Q;55#%%	"g55#55:55:(2=(/'"//(2(2A B r   c                 ,   t        |       sy| D ]  }t        |      s yt        |      dk7  r y|\  }}}}}}| yt        |      s y| yt        |      s yt        |      s y| y|dvr y| yt        |      s y| yt        |      r y y)r=   FrA   )rH   rI   r   rG   T)r   r5   r(   r   )r   r>   rJ   r/   rC   rK   rL   rM   s           r    $is_rlp_structured_authorization_listrP      s     D!t9>AE>'5(Hh(2=(/'"//(2(278 r   item_bytes_sizecan_be_emptyc                     t        |       sy|st        |       dk(  ryt        d | D              syt        fd| D              syy)NFr   c              3   L   K   | ]  }t        |      xs t        |        y wr   )r   r
   )r2   r>   s     r    r4   z1is_sequence_of_bytes_or_hexstr.<locals>.<genexpr>   s      CTx~040Cs   "$c              3   L   K   | ]  }t        t        |            k(    y wr   )r5   r   )r2   r>   rQ   s     r    r4   z1is_sequence_of_bytes_or_hexstr.<locals>.<genexpr>   s$      /37HTN./s   !$T)r   r5   all)r"   rQ   rR   s    ` r    is_sequence_of_bytes_or_hexstrrW      sS     CJ!OCUCC"3 /;@/ , r   c                      y)Nr   r   r   s    r    <lambda>rY      s    r   )	rC   gasPricegastor"   datavrE   rF   c                 B    t        | t        t        t        t        f      S r   )r&   intr'   bytes	bytearrayr   s    r    rY   rY      s    
3c5)(DE r   c                 $    | d u xs t        |       S r   )r(   r   s    r    rY   rY      s    3$;H*CC*H r   )rC   rZ   r[   r\   r"   r]   rB   c                  t    t        j                  dd      } | dvrt        d|  d      t        t        |       S )NETH_ACCOUNT_KDFscrypt)pbkdf2rf   zInvalid KDF type: z%. Must be one of 'pbkdf2' or 'scrypt')osgetenv
ValueErrorr   r   )os_kdfs    r    validate_and_set_default_kdfrl      sE    YY((3F)) (MN
 	
   r   )NF)+rh   typingr   r   r   eth_keyfile.keyfiler   	eth_utilsr   r   r	   r
   eth_utils.curriedr   r   r   r   r   r   r   r   r   r   eth_utils.toolzr   r   hexbytesr   r*   boolr!   r$   r(   r+   r;   r?   rN   rP   r`   rW   LEGACY_TRANSACTION_FORMATTERSLEGACY_TRANSACTION_VALID_VALUESrl   r   r   r    <module>rv      s   	     (   BC BD B3 4 %c %d %s t .s t $'c 'd 'T c  d  H LQ!)#EI	 * 6"f% 
!h/0x o&	
 6"(#	v		v		v	! & ')$
&&EH# !g !r   