
    (iZ                         d dl mZmZ d dlmZmZmZmZmZm	Z	 d dl
mZ d dlmZmZ d dlmZ dedefdZdedefd	Zdedefd
Zedededededee   f
d       Zy)    )AnyOptional)is_bytesis_hex
is_integer	is_stringis_textremove_0x_prefix)curry)Web3TypeErrorWeb3ValueError)RPCEndpointvaluereturnc                     t        |       r| }|dv S t        |       r| j                  d      }|dv S t        |       ryt	        d|       )Nzlatin-1Fzunrecognized block reference: >   safelatestpendingearliest	finalized)r	   r   decoder   r   )r   
value_texts     C/var/www/br/venv/lib/python3.12/site-packages/web3/_utils/blocks.pyis_predefined_block_numberr      sc    u~
 OOO 
%
 \\),
 OOO 
E	<UIFGG    c                 b    t        |       syt        t        |             dk(  xr t        |       S )NF@   )r   lenr
   r   )r   s    r   is_hex_encoded_block_hashr   ,   s,    U&'2-?&-?r   c                     t        |       syt        |       ry	 t        | d      }d|cxk  xr ddz  k  S c S # t        $ r Y yw xY w)NF   r         )r   r   int
ValueError)r   value_as_ints     r   is_hex_encoded_block_numberr'   2   sX    U	"5	)5"~ %q#v%%%%  s   9 	AAif_hash	if_numberif_predefinedc                     t        |       r|S t        | t              r|S t        |       r|S t	        |       rd| cxk  r	ddz  k  r|S  t        |       r|S t        d|        )Nr   r"   r#   z=Value did not match any of the recognized block identifiers: )r   
isinstancebytesr   r   r'   r   )r   r(   r)   r*   s       r   "select_method_for_block_identifierr.   >   sv     "%(	E5	!	"5	)	E	U 3QV 3 !4	$U	+KE7S
 	
r   N)typingr   r   	eth_utilsr   r   r   r   r	   r
   eth_utils.toolzr   web3.exceptionsr   r   
web3.typesr   boolr   r   r'   r.    r   r   <module>r6      s   
 
Pc Pd P"@S @T @	&s 	&t 	& 

$
1<
MX
k
 
r   