o
    >hS?                  
   @   s  d dl Z zd dlmZ W n ey   d dlZeje_Y nw z: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sMe
e	drMdd	 e	_e
e	d
sYdd
 Zee	_e
e	dsod dlmZmZmZ dd Zee	_d dlZe
ejdse
ejdrejjej_e
ejdse
ejdrejjej_e
ejdse
ejdrejjej_e
ejdse
ejjdrejjjej_d dl Z e
e dse
e dre 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 d0lymzZzm{Z{m|Z| d d1l}m~Z~mZmZmZmZmZmZmZmZmZ d d2lmZmZmZ d d3lmZmZ d d4lmZmZ d d5lmZ d6Zda	 da	 da	 da	 da	 d7d8 ZG d9d: d:eZG d;d< d<eZG d=d> d>eZG d?d@ d@eZdUdCefdDdEZdVdFedGefdHdIZdWdFedJedCe"jjfdKdLZdMedCe"jjfdNdOZdPZdQZW dS  eefy Z z%d dlZe jejejdR ejee ej  dSZdTZW Y dZ[dS dZ[ww )X    N)HASH)Mnemonic)mnemonic_to_private_key
encode_abiencodeencode_singlec                 C   s   t | g|gS )N)eth_abir   )typval r   u/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/xbr/__init__.py<lambda>2   s    r   collapse_typec                 C   s   | | d tt| S )N )joinmaprepr)basesubarrlistr   r   r   r   9   s   process_type)	TupleType	normalizeparsec                 C   s   t | }t|}t| }| |krd|t|}t|tr$td||  |j}t|t	r9d
tt|}nt|trCt|}nd}|j}t|t	rUt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   r   r   r   r   E   s,   




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                 C   sT   | j jttda| j jttda| j jtt	da
| j jttda| j jttdadS )z|
        The XBR library must be initialized (once) first by setting the Web3 provider
        using this function.
        )addressabiN)ethcontractr6   r1   xbrtokenr7   r2   
xbrnetworkr8   r3   	xbrmarketr9   r4   
xbrcatalogr:   r5   
xbrchannel)_w3r   r   r   setProvider   s
   r   c                   @   s(   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BLOCKEDr   r   r   r   r      s    r   c                   @   s    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   c                   @   s    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   c                   @   s&   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      s    r      englishreturnc                 C      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languager   r   r   generate_seedphrase  s   r   
seedphraser   c                 C   r   )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   r   r   r   check_seedphrase!  s   r   indexc                 C   s.   ddl m} d|}t| |d}||}|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   r.   zm/44'/60'/0'/0/{})str_derivation_path)web3.middleware.signingr.   r   r   )r   r   r.   derivation_pathkeyaccountr   r   r   account_from_seedphrase+  s
   
r   ethkeyc                 C   s(   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   r.   len)r   r.   r   r   r   r   account_from_ethkey:  s   r   z
            _ ._  _ , _ ._
            (_ ' ( `  )_  .__)
        ( (  (    )   `)  ) _)
        (__ (_   (_ . _) _) ,__)
            `~~`\ ' . /`~~`
                ;   ;
                /   \
    _____________/_ __ \_____________

    )[HAS_XBRr1   r2   r3   r4   r5   r   r   r   r   r   r   rF   rG   rH   r   r   r   
ASCII_BOMBrI   rN   rR   rJ   rM   rK   rL   rQ   rO   rP   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rl   rk   rj   rh   rm   ri   rg   rr   rs   rt   r   r   r   r   r   rp   rn   ro   rq   r@   rA   rB   rC   rD   rE   r~   ru   rz   rw   rv   ry   r{   rx   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)   r,   r+   
middlewaresigningr.   r-   r0   r/   eth_accountautobahn.xbr._abir1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   autobahn.xbr._interfacesr@   rA   rB   rC   rD   rE   autobahn.xbr._utilrF   rG   rH    autobahn.xbr._eip712_certificaterI   &autobahn.xbr._eip712_certificate_chainrJ   *autobahn.xbr._eip712_authority_certificaterK   rL   rM   rN   )autobahn.xbr._eip712_delegate_certificaterO   rP   rQ   rR   $autobahn.xbr._eip712_member_registerrS   rT   !autobahn.xbr._eip712_member_loginrU   rV   "autobahn.xbr._eip712_market_createrW   rX    autobahn.xbr._eip712_market_joinrY   rZ   #autobahn.xbr._eip712_catalog_creater[   r\    autobahn.xbr._eip712_api_publishr]   r^   autobahn.xbr._eip712_consentr_   r`   !autobahn.xbr._eip712_channel_openra   rb   "autobahn.xbr._eip712_channel_closerc   rd   (autobahn.xbr._eip712_market_member_loginre   rf   autobahn.xbr._eip712_baserg   rh   ri   rj   rk   rl   rm   autobahn.xbr._blockchainrn   autobahn.xbr._sellerro   rp   autobahn.xbr._buyerrq   autobahn.xbr._configrr   rs   rt   autobahn.xbr._schemaru   rv   rw   rx   ry   rz   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   r   <module>   s   


  $0	

i
