
    (i                     D   d dl 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dl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 ddlmZ ddlmZ ddlmZ ddlm Z m!Z! erd dl"m#Z#m$Z$ d dl%m&Z& dee	   ddde!ded   fdZ'dee	   ddde dedeeedf   f   fdZ(g dZ)y )!    )TYPE_CHECKINGAnyCallable	CoroutineSequence   )AttributeDictMiddleware)
MiddlewareWeb3Middleware)BufferedGasEstimateMiddleware)LocalFilterMiddleware)FormattingMiddlewareBuilder)GasPriceStrategyMiddleware)ENSNameToAddressMiddleware)ExtraDataToPOAMiddleware)PythonicMiddleware)SignAndSendRawMiddlewareBuilder)StalecheckMiddlewareBuilder)ValidationMiddleware   )AsyncMakeRequestFnMakeRequestFn)	AsyncWeb3Web3)RPCResponse
middlewarew3r   provider_request_fnreturn).r   c                 X    |}t        |       D ]  } ||      j                  |      } |S )
    Returns a callable function which takes method and params as positional arguments
    and passes these args through the request processors, makes the request, and passes
    the response through the response processors.
    )reversedwrap_make_request)r   r   r   accumulator_fnmws        I/var/www/br/venv/lib/python3.12/site-packages/web3/middleware/__init__.pycombine_middlewarer'   >   s;     )Nz" BB11.AB     async_w3zAsyncWeb3[Any].r   c                 x   K   |}t        |       D ]#  } ||      }|j                  |       d{   }% |S 7 w)r!   N)r"   async_wrap_make_request)r   r)   r   r$   r%   initializeds         r&   async_combine_middlewarer-   O   sM      )Nz" Sl*BB>RRS  Ss   -:8	:)r	   r
   r   r   r   r   r   r   r   r   r   r   r   N)*typingr   r   r   r   r   attrdictr	   baser
   r   buffered_gas_estimater   filterr   
formattingr   gas_price_strategyr   namesr   proof_of_authorityr   pythonicr   signingr   
stalecheckr   
validationr   typesr   r   web3r   r   
web3.typesr   r'   r-   __all__ r(   r&   <module>r@      s     
$ '  !	"$ , c9S#}4556	$r(   