
    (i                     x    d dl mZmZ d dlmZmZmZ d dlZd dlm	Z	 d dl
mZmZ dededefd	Zded
ededefdZy)    )ChecksumAddress
HexAddress)keccakto_bytesto_checksum_addressN)Web3ValidationError)HexStrNoncesendernoncereturnc                     t        t        j                  t        |       |g            j	                         dd }t        |      S )z\
    Determine the resulting `CREATE` opcode contract address for a sender and a nonce.
    hexstrN)r   rlpencoder   hexr   )r   r   contract_addresss      C/var/www/br/venv/lib/python3.12/site-packages/web3/utils/address.pyget_create_addressr      s@     cjj(&*A5)IJKOOQRURVW/00    salt	init_codec                 $   t        t        |            dk7  r"t        dt        t        |             d      t        dt        |       z   t        |      z   t        t        |            z         j	                         dd }t        |      S )zh
    Determine the resulting `CREATE2` opcode contract address for a sender, salt and
    bytecode.
    r       z`salt` must be 32 bytes, z != 32   r   N)lenr   r   r   r   r   )r   r   r   r   s       r   get_create2_addressr      s     84 !R'!'HD,A(B'C6J
 	
 
&
!	"
$
	  +
,	-
 
ceCD /00r   )
eth_typingr   r   	eth_utilsr   r   r   r   web3.exceptionsr   
web3.typesr	   r
   r   r    r   r   <module>r%      sb    
 1z 1% 1O 111$11711r   