
    (it                     ~    d dl mZmZmZ d dlmZ d dlmZ d dl	mZ d dl
mZ d dlmZ erd dlmZmZ  G d de      Zy	)
    )TYPE_CHECKINGAnycast)assoc)get_buffered_gas_estimate)Web3Middleware)RPCEndpoint)	AsyncWeb3Web3c                   8    e Zd ZdZdddedefdZdddedefdZy)	BufferedGasEstimateMiddlewarez\
    Includes a gas estimate for all transactions that do not already have a gas value.
    methodr	   paramsreturnc                     |dk(  r@|d   }d|vr7t        |dt        t        t        d| j                        |                  }|f}||fS )Neth_sendTransactionr   gasr   )r   hexr   r   _w3)selfr   r   transactions       V/var/www/br/venv/lib/python3.12/site-packages/web3/middleware/buffered_gas_estimate.pyrequest_processorz/BufferedGasEstimateMiddleware.request_processor$   sZ    ** )KK'#1$vtxx2H+VW
 &v~    c                    K   |dk(  rJ|d   }d|vrAt        t        d| j                        |       d {   }t        |dt	        |            }|f}||fS 7 !w)Nr   r   r   zAsyncWeb3[Any])async_get_buffered_gas_estimater   r   r   r   )r   r   r   r   gas_estimates        r   async_request_processorz5BufferedGasEstimateMiddleware.async_request_processor2   sk     ** )KK'%D)4884k&   $KL8IJ%v~ s   2AA"AN)__name__
__module____qualname____doc__r   r   r    r   r   r   r      s<    
 
s 
s 
	M 	3 	SV 	r   r   N)typingr   r   r   eth_utils.toolzr   web3._utils.async_transactionsr   r   web3._utils.transactionsweb3.middleware.baser   
web3.typesr	   	web3.mainr
   r   r   r#   r   r   <module>r+      s>     N r   