
    LfY                         d dl Z d dlmZmZ d dlmZmZmZ d dlZddZ	d Z
d Zd Zd Zdd	eeef   d
edeee   eeef   f   fdZddeee   eeef   f   deeef   fdZy)    N)a2b_hexb2a_hex)UnionDictListc                    | | d   dk(  rt        j                         }|S | d   dk(  rK| j                  di       }t        j                  t         j                  j                  | d   |            }|S | d   dk(  r| j                  di       }| d	   }d
j	                  | d   |      }t        j                  t         j                  j                  ||            }| j                  dd      dk(  r#ddlm} |j                  j                  |d       |S | d   dk(  r
t               | d   dk(  r
t               t        dj	                  | d               )z
    Create a Web3 instance configured and ready-to-use gateway to the blockchain.

    :param gateway_config: Blockchain gateway configuration.
    :type gateway_config: dict

    :return: Configured Web3 instance.
    :rtype: :class:`web3.Web3`
    Ntypeautouserhttp_optionshttp)request_kwargsinfurakeyzhttps://{}.infura.io/v3/{}networkrinkebyr   )geth_poa_middleware)layer
cloudflarezksyncz$invalid blockchain gateway type "{}")web3Web3getHTTPProviderformatweb3.middlewarer   middleware_onioninjectNotImplementedErrorRuntimeError)gateway_configw3r   
project_idhttp_urlr   s         M/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/autobahn/xbr/_util.pymake_w3r&   "   sm    !76!AYY[F IC 
	6	)'++NB?YYtyy--nV.DUc-de> I; 
	8	+'++NB?#E*
 066~i7PR\]YYtyy--h~-VW i.);; &&':!&D I 
	<	/!## 
	8	+!## AHHX^I_`aa    c                 .   | 1t        |       t        k(  sJ dj                  t        |                    | r?t        |       t        k(  r-t        |       dk(  sJ dj                  t        |                    | rt        j
                  j                  |       S y)Ndata must by bytes, was {}   z)data must be bytes[16], but was bytes[{}]r   )r	   bytesr   lenr   r   toIntdatas    r%   unpack_uint128r0   S   s    <4:._0L0S0STXY]T^0__.T
e#4yB] K R RSVW[S\ ]]yyt$$r'   c                     | !t        |       t        k(  r| dk\  r| ddz  k  sJ | r3t        j                  j	                  |       }ddt        |      z
  z  |z   S y)Nr             r*   s                   )r	   intr   r   toBytesr,   valuer/   s     r%   pack_uint128r9   ^   sZ    =T%[C/EQJ51c6>RRyy  '"s4y.)D00r'   c                 @   | 1t        |       t        k(  sJ dj                  t        |                    | r?t        |       t        k(  r-t        |       dk(  sJ dj                  t        |                    | r(t	        t
        j                  j                  |             S y)Nr)       z)data must be bytes[32], but was bytes[{}]r   )r	   r+   r   r,   r5   r   r   r-   r.   s    r%   unpack_uint256r<   h   s    <4:._0L0S0STXY]T^0__.T
e#4yB] K R RSVW[S\ ]]499??4())r'   c                     | 5t        |       t        k(  r| dk\  r| ddz  k  sJ dj                  |              | r3t        j                  j                  |       }ddt        |      z
  z  |z   S y)Nr   r2      z!value must be uint256, but was {}r4   r;   s                                    )r	   r5   r   r   r   r6   r,   r7   s     r%   pack_uint256r?   s   sz    =T%[C/EQJ51c6>  FTwT~T~  @E  UF  FRyy  '"s4y.)D00r'   r8   return_dictreturnc                    t        |       t        k(  r,| j                  d      rt        | dd       }n@t        |       }n4t        |       t        k(  r| }nJ dj                  t        |                    t        |      dk(  sJ g }t        d      D ]9  }|j                  t        j                  d|d|d	z  z   d	|d	z  z          d          ; |r|d   |d
   |d   |d   |d	   d}|S |}|S )z=

    :param value:
    :param return_dict:
    :return:
    0xr2   Nzinvalid type {} for value      <Ir            )w0w1w2r"   w4)r	   str
startswithr   r+   r   r,   rangeappendstructunpack)r8   r@   value_byteswipacked_values         r%   pack_ethadrrX   }   s    E{cD!!%),K!%.K	e	E188eEEu{r!!!
A1X K	t[QU1q1u9%EFqIJK d!A$ad!A$aPQdS  r'   rW   c           
         g }t        |       t        k(  rHt        d      D ]9  }|j                  t	        j
                  d| dj                  |                      ; nRt        |       t        k(  r9t        d      D ]*  }|j                  t	        j
                  d| |                , nJ d       |rHt        j                  j                  dt        dj                  |            j                         z         S dj                  |      S )zC

    :param packed_value:
    :param return_str:
    :return:
    rE   rF   zw{}zshould not arrive hererC   r'   )r	   dictrP   rQ   rR   packr   listr   r   toChecksumAddressr   joindecode)rW   
return_strrU   rV   s       r%   unpack_ethadrra      s     	ALT!q 	GAHHV[[|ELLO'DEF	G	l	t	#q 	9AHHV[[|A78	9 	/..uyy**4'#((1+2F2M2M2O+OPPxx{r'   )N)F)rR   binasciir   r   typingr   r   r   r   r&   r0   r9   r<   r?   r+   rN   boolr5   rX   ra    r'   r%   <module>rf      s   6  % $ $ .buUCZ( t dSViY]^acf^fYgNgHh <d3ic3h&? @ W\]bdg]gWh r'   