
    (iP1                        d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZmZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d dlmZm Z m!Z! d d	l"m#Z# d d
l$m%Z%m&Z& d dl'm(Z(m)Z) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 erd dl1m2Z2 dedede	fdZ3e 	 dde4dddede
e   de,f
d       Z5dee-ge.f   dede-ge.f   fdZ6dee-ge.f   dede-ge.f   fdZ7e dddededef   dededef   f   fd       Z8de/dede/f   fd Z9dddede4fd!Z:e d"ee;   dede.f   dede.f   fd#       Z< e<e      Z= e<e      Z> e<e      Z? e<e@      ZAeAe=dddede0fd$              ZBeAe=dddede0fd%              ZCdddedeDfd&ZEdddedee+   fd'ZFdefd(ZGe7dddefd)       ZHe: eeee e6 ej                  d                   d* e9d+       e9d,       e9d       d-i d. e9d/      d0 e9d,      d1 e9d2      d3 e5d4      d5 e9d6      d7 e9d6      d8 e9d6      d9 e5d:      d; e ej                  d<       e5d=d>d?i@            dA e5dB      dC e5dD      dEe3dF e5dG      dH e= eeJ ej                  dI       e5dJ                  dK e= eeJ ej                  dI       e5d=                  dL e= eeJ ej                  dM       e5dJ                  dN e= eeJ ej                  dM       e5d=                  i dO e5dP      dQe3dRe3dS e5dT      dU e5dV      dW e5dW      dXe3dY e5dZ      d[ e= e5dJ            d\ e= e5d=            d] e> e5d^            d_eBd`eCda e> e e ee ej                  d>             e9d             e5db                  dce3dde3dee3e3e3e3eE e5df       e5dg       e!e ee e5dh             e9d,             e? e5di             e? e5dj            eFe3e3e3dke3e3e3e3dle3e3e3e3e3e3e3e3dmi dne3doe3dpe3dqe3dre3dse3dte3due3dve3dwe3dxe3dye3dze3d{e3d|e3d}e3d~e3e3e3e3e3e3e3e3e3dd e5d      ie3e3e3d e5d       e5d       e5d      dd	ZKy)    N)TYPE_CHECKINGAnyCallableListNoReturnOptionalTupleType)abi)BlockNotFoundFilterNotFoundTransactionFailedTransactionNotFound)
HexAddressHexStr)
decode_hex
encode_hexis_nullkeccak)apply_formatter_if)composecurryexcepts)Web3)OFFCHAIN_LOOKUP_FIELDSPANIC_ERROR_CODES)ContractPanicErrorOffchainLookup)
LogReceiptRPCResponseTParamsTReturnTValue	TxReceipt)EthereumTesterargskwargsreturnc                      t        d      )NzRPC method not implemented)NotImplementedError)r&   r'   s     S/var/www/br/venv/lib/python3.12/site-packages/web3/providers/eth_tester/defaults.pynot_implementedr,   F   s    
:
;;    fn_name
eth_testerr%   fn_args	fn_kwargsc                 x   |i }	  t        ||       |i |S # t        $ r}|j                  d   }t        |t              r|dd dk(  rt        j                  |      }|dd  }t        j                  t        t        j                               |      }t        t        t        j                         |            }	t        |	t!        j"                  |            |dd dk(  rOt        j                  |      }|d	d  j%                         }
t'        t(        |
   t!        j"                  |            |d }~ww xY w)
Nr      
   zUo\x180\   )data   zNH{q)getattrr   r&   
isinstancestrastliteral_evalr   decodelistr   valuesdictzipkeysr   r   to_hexhexr   r   )r.   r/   r0   r1   epossible_dataparsed_data_as_bytesdata_payloadabi_decoded_dataoffchain_lookup_payloadpanic_error_codes              r+   call_eth_testerrM   J   sL    	+wz7+WB	BB q	mS)Qr"l2 (+'7'7'F$3B  $'::/6689<$  +/.3357GH+' %+$++>R2S  q#v-'*'7'7'F$#7#<#@#@#B (%&67%9: 
 ;s    
D9DD44D9fnc                 0     dddt         dt        f fd}|S )Nr/   r%   paramsr(   c                      |      S N r/   rP   rN   s     r+   innerz!without_eth_tester.<locals>.inner{   s    &zr-   )r!   r"   rN   rU   s   ` r+   without_eth_testerrW   v   s%    
* G   Lr-   c                 0     dddt         dt        f fd}|S )Nr/   r%   rP   r(   c                      |       S rR   rS   rT   s     r+   rU   zwithout_params.<locals>.inner   s    *~r-   )r   r"   rV   s   ` r+   without_paramsrZ      s%    
* C G  Lr-   rP   preprocessor_fn.c                     |  ||      fS rR   rS   )r/   rP   r[   s      r+   preprocess_paramsr]      s     v...r-   valuec                 8     dt         dt         dt        f fd}|S )Nr&   r'   r(   c                      S rR   rS   )r&   r'   r^   s     r+   rU   zstatic_return.<locals>.inner   s    r-   )r   r#   )r^   rU   s   ` r+   static_returnra      s$    S C F  Lr-   c           
          ddl m} t        j                  }d| dt        j                   d|j
                   d|j                   d|j                   
S )Nr   )__version__zEthereumTester//z/python.)r/   rc   sysversion_infoplatformmajorminormicro)r/   rP   rc   vs       r+   client_versionrm      sN     	A[M3<<.y!''RSTUT[T[S\]]r-   exc_typec                 .    t        | |t        d             S rR   )r   ra   )rn   rN   s     r+   null_if_exceptsrp      s     
d r-   c                 F    |\  }}| j                  |d      }|d   |   }|S NT)full_transactionstransactions)get_block_by_hash)r/   rP   
block_hashtransaction_indexblocktransactions         r+   'get_transaction_by_block_hash_and_indexrz      s:    
 %+!J!((t(LE'(9:Kr-   c                 F    |\  }}| j                  |d      }|d   |   }|S rr   )get_block_by_number)r/   rP   block_numberrw   rx   ry   s         r+   )get_transaction_by_block_number_and_indexr~      s:    
 '-#L#**<4*PE'(9:Kr-   c                 4    |d   } | j                   di |}|S Nr   rS   )create_log_filter)r/   rP   filter_params	filter_ids       r+   r   r      s&    1IM,
,,=}=Ir-   c                 4    |d   } | j                   di |}|S r   )get_logs)r/   rP   r   logss       r+   r   r      s%    1IM://DKr-   c            
      \    t        t        t        d t        d      D                          S )zv
    WARNING: This is not a secure way to generate private keys and should only
    be used for testing purposes.
    c              3   H   K   | ]  }t        j                  d d        yw)r      N)randomrandint).0_s     r+   	<genexpr>z/_generate_random_private_key.<locals>.<genexpr>   s     %PfnnQ&<%Ps    "    )r   bytes	bytearrayrangerS   r-   r+   _generate_random_private_keyr      s#    
 eI%PeBi%PPQRRr-   c                 4    | j                  t                     S rR   )add_accountr   )r/   s    r+   create_new_accountr      s    !!">"@AAr-   )clientVersionsha31F)version	listening	peerCountprotocolVersion?   syncingchainIdl   ypfD] 
feeHistoryget_fee_historymaxPriorityFeePerGasi ʚ;blobBaseFeegasPriceaccountsget_accountsblockNumbernumberr|   r}   latest)r1   
getBalanceget_balancegetStorageAtget_storage_atgetProofgetTransactionCount	get_noncegetBlockTransactionCountByHashrt   ru    getBlockTransactionCountByNumbergetUncleCountByBlockHashunclesgetUncleCountByBlockNumbergetCodeget_codesignsignTransactionsendTransactionsend_transactionsendRawTransactionsend_raw_transactioncallcreateAccessListestimateGasestimate_gasgetBlockByHashgetBlockByNumbergetTransactionByHashget_transaction_by_hash!getTransactionByBlockHashAndIndex#getTransactionByBlockNumberAndIndexgetTransactionReceiptget_transaction_receiptgetUncleByBlockHashAndIndexgetUncleByBlockNumberAndIndexgetCompilerscreate_block_filter!create_pending_transaction_filterdelete_filterget_only_filter_changesget_all_filter_logs)
compileLLLcompileSoliditycompileSerpent	newFilternewBlockFilternewPendingTransactionFilteruninstallFiltergetFilterChangesgetFilterLogsgetLogsgetWork
submitWorksubmitHashrate)	putString	getStringputHexgetHex)add_peerdatadir	node_infopeers
start_httpstart_ws	stop_httpstop_wsbacktraceAtblockProfile
cpuProfile	dumpBlockgtStatsgetBlockRLPgoTracememStatsseedHashSignsetBlockProfileRatesetHeadstacksstartCPUProfilestartGoTracestopCPUProfilestopGoTrace
traceBlock)traceBlockByNumbertraceBlockByHashtraceBlockFromFiletraceTransaction	verbosityvmodulewriteBlockProfilewriteMemProfile
timeTraveltime_travel)contentinspectstatusmine_blocksrevert_to_snapshottake_snapshot)minerevertsnapshot)	web3netethdbadmindebugtestingtxpoolevmrR   )Lr<   operatorr   rf   typingr   r   r   r   r   r   r	   r
   eth_abir   eth_tester.exceptionsr   r   r   r   
eth_typingr   r   	eth_utilsr   r   r   r   eth_utils.curriedr   eth_utils.toolzr   r   r   r  r   "web3._utils.error_formatters_utilsr   r   web3.exceptionsr   r   
web3.typesr   r    r!   r"   r#   r$   r/   r%   r,   r;   rM   rW   rZ   r]   ra   rm   BaseExceptionrp   null_if_block_not_foundnull_if_transaction_not_foundnull_if_filter_not_found
IndexErrornull_if_indexerrorrz   r~   intr   r   r   r   
itemgetterlenAPI_ENDPOINTSrS   r-   r+   <module>r.     s   
   
	 	 	     
<3 <# <( < 
  $	(( ( ( }	(
 ( (V'G#$)723'G#$)723 / /*-/@Hc@R/
Xc3h//0/ / HS&[$9 ^/ ^ ^ ^ =!'/W'=c7l  *-8  /0C D *>: $Z0   *-    *-  "2 C C ) 3 4
;K Sf S B#3 B
 B B (2x22156	
 !%"5)"1%
f=,f='f 	=1f 	o&78	f
 	e 4f 	}U+f 	M%(f 	ON3f 	wH)%.(1K
f 	om4f  	(89!f" 	O#f$ 	{;%f& 	)*A###N3 34+
'f4 	+,C###N3 56-
5fB 	#$;###H- 34%
CfP 	%&=###H- 56'
Qf^ 	?:._f` 	afb 	?cfd 	?+=>eff 	o.DEgfh 	'ifj 	Okfl 	~6mfn 	1/BU2VWofp 	312
qfv 	 =56!
wf| 	,-T}f~ 	./Xf@ 	 !>"G%8X%8%8%HI!$'   9:"
AfR 	&SfT 	(UfV 	WfX &*)&)*?@'6/(
 #0 % 
 556
 212
 "%)KfP %$!!	 $"$ %#$"	 	o 	_	
 	? 	 	? 	O 	 	 	? 	/ 	? 	 	/  	!" 	o#$ .+-+$",*38 	om4 #"!  .!"67#O4Snr-   