
    tfS?                        d dl Z 	 d dlmZ n# e$ r d dlZej        e_        Y nw xY w	 d dlmZ d dlmZ d dl	Z	 e
e	d          s e
e	d          re	j        e	_         e
e	d          s e
e	d          rd e	_         e
e	d	          s
d
 Zee	_         e
e	d          sd dlmZmZmZ d Zee	_        d dlZ e
ej        d          s' e
ej        d          rej        j        ej        _         e
ej        d          s' e
ej        d          rej        j        ej        _         e
ej        d          s' e
ej        d          rej        j        ej        _         e
ej        d          s1 e
ej        j        d          rej        j        j        ej        _        d dl Z  e
e d          s e
e d          re j         e _!        d dl"Z"d dl#m$Z$m%Z%m&Z&m'Z'm(Z( d dl#m)Z)m*Z*m+Z+m,Z,m-Z- d dl#m.Z.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZCmDZDmEZEmFZF d d lGmHZHmIZImJZJmKZK d d!lLmMZMmNZN d d"lOmPZPmQZQ d d#lRmSZSmTZT d d$lUmVZVmWZW d d%lXmYZYmZZZ d d&l[m\Z\m]Z] d d'l^m_Z_m`Z` d d(lambZbmcZc d d)ldmeZemfZf d d*lgmhZhmiZi d d+ljmkZkmlZlmmZmmnZnmoZompZpmqZq d d,lrmsZs d d-ltmuZumvZv d d.lwmxZx d d/lymzZzm{Z{m|Z| d d0l}m~Z~mZmZmZmZmZmZmZmZmZ d d1lmZmZmZ d d2lmZmZ d d3lmZmZ d d4lmZ d5Zda	 da	 da	 da	 da	 d6 Z G d7 d8e          Z G d9 d:e          Z G d; d<e          Z G d= d>e          ZdOdAefdBZdPdCedDefdEZdQdCedFedAe"j        j        fdGZdHedAe"j        j        fdIZdJZdKZdS # eef$ rkZd dlZ e j        ej        ej        L           ej                             ee                     ej                                         dMZdNZY dZ[dS dZ[ww xY w)R    N)HASH)Mnemonic)mnemonic_to_private_key
encode_abiencodeencode_singlec                 0    t          j        | g|g          S )N)eth_abir   )typvals     T/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/xbr/__init__.py<lambda>r   2   s    u1M1M     collapse_typec                 ^    | |z   d                     t          t          |                    z   S )N )joinmaprepr)basesubarrlists      r   r   r   9   s'    #:D'(:(: ; ;;;r   process_type)	TupleType	normalizeparsec                    t          |           }t          |          }t          |           }| |k    r#d                    |t          |                    }t	          |t
                    r"t          d                    |                    |                                 |j        }t	          |t                    r)d
                    t          t          |                    }n't	          |t                    rt          |          }nd}|j        }t	          |t                    r#t          t          t          |                    }ng }|j        ||fS )Nz{} (normalized to {})z1Cannot process type {}: tuple types not supportedxr   )r   r   r   format
isinstancer   
ValueErrorvalidater   tupler   r   strintr   listr   )type_strnormalized_type_strabi_typetype_str_reprr   r   s         r   r   r   E   s=   "+H"5"5011H NNM... 7 > >!,--! !
 (I.. n !T![![\i!l!lmmm,C#u%% hhs3}}--C%% #hh&G'5)) s41122=#w..r   toChecksumAddressto_checksum_addressisChecksumAddressis_checksum_addressisConnectedis_connectedprivateKeyToAccountprivate_key_to_accountmainens)XBR_TOKEN_ABIXBR_NETWORK_ABIXBR_MARKET_ABIXBR_CATALOG_ABIXBR_CHANNEL_ABI)XBR_DEBUG_TOKEN_ADDRXBR_DEBUG_NETWORK_ADDRXBR_DEBUG_MARKET_ADDRXBR_DEBUG_CATALOG_ADDRXBR_DEBUG_CHANNEL_ADDR)XBR_DEBUG_TOKEN_ADDR_SRCXBR_DEBUG_NETWORK_ADDR_SRCXBR_DEBUG_MARKET_ADDR_SRCXBR_DEBUG_CATALOG_ADDR_SRCXBR_DEBUG_CHANNEL_ADDR_SRC)IMarketMaker	IProvider	IConsumerISellerIBuyer	IDelegate)make_w3pack_uint256unpack_uint256)EIP712Certificate)parse_certificate_chain)!sign_eip712_authority_certificate$recover_eip712_authority_certificate#create_eip712_authority_certificateEIP712AuthorityCertificate) sign_eip712_delegate_certificate#recover_eip712_delegate_certificate"create_eip712_delegate_certificateEIP712DelegateCertificate)sign_eip712_member_registerrecover_eip712_member_register)sign_eip712_member_loginrecover_eip712_member_login)sign_eip712_market_createrecover_eip712_market_create)sign_eip712_market_joinrecover_eip712_market_join)sign_eip712_catalog_createrecover_eip712_catalog_create)sign_eip712_api_publishrecover_eip712_api_publish)sign_eip712_consentrecover_eip712_consent)sign_eip712_channel_openrecover_eip712_channel_open)sign_eip712_channel_closerecover_eip712_channel_close)sign_eip712_market_member_login"recover_eip712_market_member_login)
is_addressis_chain_idis_block_numberis_signatureis_cs_pubkey
is_bytes16is_eth_privkey)SimpleBlockchain)SimpleSeller	KeySeries)SimpleBuyer)load_or_create_profile
UserConfigProfile)
	FbsSchema	FbsObjectFbsType
FbsRPCCallFbsEnum
FbsServiceFbsEnumValueFbsAttributeFbsFieldFbsRepository)stretch_argon2_secretexpand_argon2_secretpkm_from_argon2_secret)FederatedRealmSeeder)EthereumKeySecurityModuleMemory)UserKeyTc                    | j                             t          t                    a| j                             t
          t                    a| j                             t          t                    a
| j                             t          t                    a| j                             t          t                    adS )z|
        The XBR library must be initialized (once) first by setting the Web3 provider
        using this function.
        )addressabiN)ethcontractr:   r5   xbrtokenr;   r6   
xbrnetworkr<   r7   	xbrmarketr=   r8   
xbrcatalogr>   r9   
xbrchannel)_w3s    r   setProviderr      s     7##,@m#TT W%%.D/%ZZ
 G$$-B$WW	 W%%.D/%ZZ
 W%%.D/%ZZ


r   c                   *    e Zd ZdZdZdZdZdZdZdZ	dS )	MemberLevelz,
        XBR Network member levels.
        r                  N)
__name__
__module____qualname____doc__NONEACTIVEVERIFIEDRETIREDPENALTYBLOCKED r   r   r   r      s8        	 	 r   r   c                   "    e Zd ZdZdZdZdZdZdS )NodeTypez'
        XBR Cloud node types.
        r   r   r   r   N)r   r   r   r   r   MASTERCOREEDGEr   r   r   r   r      s.        	 	 r   r   c                   "    e Zd ZdZdZ	 dZ	 dZdS )ChannelTypez
        Type of a XBR off-chain channel: paying channel (for provider delegates selling data services) or payment channel (for consumer delegates buying data services).
        r   r   r   N)r   r   r   r   r   PAYMENTPAYINGr   r   r   r   r      s=        	 	 	 	 	 	r   r   c                   (    e Zd ZdZdZ	 dZ	 dZ	 dZdS )	ActorTypez(
        XBR Market Actor type.
        r   r   r   r   N)r   r   r   r   r   PROVIDERCONSUMERPROVIDER_CONSUMERr   r   r   r   r      sJ        	 	 	 	 	 	 	r   r      englishreturnc                 F    t          |                              |           S )a  
        Generate a new BIP-39 mnemonic seed phrase for use in Ethereum (Metamask, etc).

        See:
        * https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
        * https://github.com/trezor/python-mnemonic

        :param strength: Strength of seed phrase in bits, one of the following ``[128, 160, 192, 224, 256]``,
            generating seed phrase of 12 - 24 words inlength.

        :return: Newly generated seed phrase (in english).
        )r   generate)strengthlanguages     r   generate_seedphraser     s      !!**8444r   
seedphraser   c                 F    t          |                              |           S )z
        Check a BIP-39 mnemonic seed phrase.

        :param seedphrase: The BIP-39 seedphrase from which to derive the account.
        :param language: The BIP-39 user language to generate the seedphrase for.
        :return:
        )r   check)r   r   s     r   check_seedphraser   !  s      !!''
333r   indexc                 t    ddl m} d                    |          }t          | |          } ||          }|S )a'  
        Create an account from the given BIP-39 mnemonic seed phrase.

        :param seedphrase: The BIP-39 seedphrase from which to derive the account.
        :param index: The account index in account hierarchy defined by the seedphrase.
        :return: The new Eth account object
        r   r2   zm/44'/60'/0'/0/{})str_derivation_path)web3.middleware.signingr2   r   r   )r   r   r2   derivation_pathkeyaccounts         r   account_from_seedphraser   +  sQ     	CBBBBB-44U;;%joVVV((--r   ethkeyc                 R    ddl m} t          |           dk    sJ  ||           }|S )z
        Create an account from the private key seed.

        :param ethkey: The Ethereum private key seed (32 octets).
        :return: The new Eth account object
        r   r       )r   r2   len)r   r2   r   s      r   account_from_ethkeyr   :  sC     	CBBBBB6{{b    ((00r   z
            _ ._  _ , _ ._
            (_ ' ( `  )_  .__)
        ( (  (    )   `)  ) _)
        (__ (_   (_ . _) _) ,__)
            `~~`\ ' . /`~~`
                ;   ;
                /   \
    _____________/_ __ \_____________

    )[HAS_XBRr5   r6   r7   r8   r9   r   r   r   r   r   r   rJ   rK   rL   r   r   r   
ASCII_BOMBrM   rR   rV   rN   rQ   rO   rP   rU   rS   rT   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rp   ro   rn   rl   rq   rm   rk   rv   rw   rx   r   r   r   r   r   rt   rr   rs   ru   rD   rE   rF   rG   rH   rI   r   ry   r~   r{   rz   r}   r   r|   r   r   r   r   r   r   r   r   r   )fileF)r   )r   r   )r   )r   )	traceback_hashlibr   ImportErrorHashmnemonicr   autobahn.xbr._mnemonicr   r
   hasattrr   r   r   r   eth_abi.grammarr   r   r   r   web3Web3r,   r+   r.   r-   r0   r/   
middlewaresigningr2   r1   r4   r3   eth_accountautobahn.xbr._abir5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   autobahn.xbr._interfacesrD   rE   rF   rG   rH   rI   autobahn.xbr._utilrJ   rK   rL    autobahn.xbr._eip712_certificaterM   &autobahn.xbr._eip712_certificate_chainrN   *autobahn.xbr._eip712_authority_certificaterO   rP   rQ   rR   )autobahn.xbr._eip712_delegate_certificaterS   rT   rU   rV   $autobahn.xbr._eip712_member_registerrW   rX   !autobahn.xbr._eip712_member_loginrY   rZ   "autobahn.xbr._eip712_market_creater[   r\    autobahn.xbr._eip712_market_joinr]   r^   #autobahn.xbr._eip712_catalog_creater_   r`    autobahn.xbr._eip712_api_publishra   rb   autobahn.xbr._eip712_consentrc   rd   !autobahn.xbr._eip712_channel_openre   rf   "autobahn.xbr._eip712_channel_closerg   rh   (autobahn.xbr._eip712_market_member_loginri   rj   autobahn.xbr._eip712_baserk   rl   rm   rn   ro   rp   rq   autobahn.xbr._blockchainrr   autobahn.xbr._sellerrs   rt   autobahn.xbr._buyerru   autobahn.xbr._configrv   rw   rx   autobahn.xbr._schemary   rz   r{   r|   r}   r~   r   r   r   r   autobahn.xbr._walletr   r   r   autobahn.xbr._frealmr   r   autobahn.xbr._secmodr   r   autobahn.xbr._userkeyr   r   r   r   r   r   r   r   objectr   r   r   r   r$   r   r   r%   r   Accountr   bytesr   r   __all__FileNotFoundErroresysprint_tb__traceback__stderrwriteflushr   r   r   <module>r     su	  6    " " " "OOOMHMMM"
]!!!!!!>>>>>> NNN77L)) ,gggx.H.H ,$^77O,, N(1K1K N M M
 77O,, .	< 	< 	< !.77N++ ',	
 	
 	
 	
 	
 	
 	
 	
 	
 	
	/ 	/ 	/@  , KKK749122 DwwtyJ_7`7` D&*i&C	#749122 DwwtyJ_7`7` D&*i&C	#749m,, 7N1S1S 7 $	 6	749344 WAXZr9s9s W(,(?(V	%JJJ73 GGC$7$7 7rrrrrrrrrrrrrr V  V  V  V  V  V  V  V  V  V  V  V  V  V j  j  j  j  j  j  j  j  j  j  j  j  j  jggggggggggggggggHHHHHHHHHHBBBBBBNNNNNNn n n n n n n n n n n nk k k k k k k k k k k kppppppppggggggggjjjjjjjjddddddddmmmmmmmmddddddddXXXXXXXXggggggggjjjjjjjj+ + + + + + + +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1999999<<<<<<<<//////PPPPPPPPPP* * * * * * * * * * * * * * * * * * * * * * * *hhhhhhhhhh;;;;;;;;FFFFFFFF------GH J I J J[ [ [4	 	 	 	 	f 	 	 	    6       f   (    F   25 5 5 5 5 54 4S 4C 4 4 4 4 C  KDWD_    E k.A.I    
JgGGGR 	&'   JJJIqSZ8888JSSVVJGGGGGGGGs%    %%MM6 6O(=A O##O(