
    'i                     j   d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZ eZ	 eeef   Z	  G d de      Z G d d	e      Z G d
 de      Z G d ded      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zeeeeef   Z	 eeeef   Z	  G d de      Zee   Zy)z1
Types for Contract ABIs and related components.
    )Sequence)AnyLiteral	TypedDictUnion)NotRequired)HexStrc                   F    e Zd ZU dZeed<   	 ee   ed<   	 eed       ed<   y)ABIComponentz;
    TypedDict representing an `ABIElement` component.
    typename
componentsN)__name__
__module____qualname____doc__str__annotations__r   r        ?/var/www/br/venv/lib/python3.12/site-packages/eth_typing/abi.pyr   r      s2     I 
c
 H^4558r   r   c                       e Zd ZU dZeed<   y)ABIComponentIndexedzC
    TypedDict representing an indexed `ABIElement` component.
    indexedN)r   r   r   r   boolr   r   r   r   r   r   *   s     M;r   r   c                   X    e Zd ZU dZeed<   	 ed   ed<   	 ee   ed<   	 ee	d      ed<   y)	ABIEventz8
    TypedDict to represent the `ABI` for an event.
    r   eventr   	anonymousr   inputsN)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   3   sA     I 
'
4  G!6788)r   r   c                   :    e Zd ZU dZed   ed<   	 eed<   	 eed<   y)ABIFunctionTypez
    TypedDict representing the `ABI` for all function types.

    This is the base type for functions.
    Please use ABIFunction, ABIConstructor, ABIFallback or ABIReceive instead.
    )pureview
nonpayablepayablestateMutabilityr&   constantN)r   r   r   r   r   r   r   r   r   r   r"   r"   B   s.     DEE.M Nr   r"   F)totalc                   ^    e Zd ZU dZed   ed<   	 eed<   	 eed      ed<   	 eed      ed<   y)	ABIFunctionz:
    TypedDict representing the `ABI` for a function.
    functionr   r   r   r    outputsN	r   r   r   r   r   r   r   r   r   r   r   r   r+   r+   X   sE     *

I011$.122%r   r+   c                   :    e Zd ZU dZed   ed<   	 eed      ed<   y)ABIConstructorzF
    TypedDict representing the `ABI` for a constructor function.
    constructorr   r   r    N)r   r   r   r   r   r   r   r   r   r   r   r0   r0   g   s*     -
  +011$r   r0   c                   "    e Zd ZU dZed   ed<   y)ABIFallbackzC
    TypedDict representing the `ABI` for a fallback function.
    fallbackr   Nr   r   r   r   r   r   r   r   r   r3   r3   r   s     *
(r   r3   c                   "    e Zd ZU dZed   ed<   y)
ABIReceivezB
    TypedDict representing the `ABI` for a receive function.
    receiver   Nr5   r   r   r   r7   r7   {   s     )
'r   r7   c                   F    e Zd ZU dZed   ed<   	 eed<   	 eed      ed<   y)ABIErrorz8
    TypedDict representing the `ABI` for an error.
    errorr   r   r   r    Nr.   r   r   r   r:   r:      s2     '

I011!r   r:   c                   >    e Zd ZU dZeed<   	 eed<   	 eedf   ed<   y)ABIElementInfozn
    TypedDict to represent properties of an `ABIElement`, including the abi,
    selector and arguments.
    abiselector.	argumentsN)	r   r   r   r   
ABIElementr   r	   tupler   r   r   r   r=   r=      s+    
 
O(1S#X(r   r=   N)r   collections.abcr   typingr   r   r   r   typing_extensionsr   eth_typing.encodingr	   r   TypeStrbytes	bytearray	Decodabler   r   r   r"   r+   r0   r3   r7   r:   ABICallablerA   r=   ABIr   r   r   <module>rM      s      +%"#	  
99 
9<, <*y *iu ,&/ &%_ %)/ )( (
"y 
" KjHI
 ;(23
 S)Y ) zr   