o
    ¼>hE  ã                   @   sÖ   d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
 dededededed	ed
edee defdd„Zdedededededed	ed
edee defdd„Zdededededed	ed
edee dedefdd„ZdS )é    )ÚOptionalé   )ÚsignÚrecoverÚ
is_addressÚ
is_bytes16Úis_block_numberÚis_chain_idÚis_eth_privkeyÚis_signatureÚchainIdÚverifyingContractÚmemberÚ	publishedÚ	catalogIdÚapiIdÚschemaÚmetaÚreturnc           	      C   sì   t | ƒsJ ‚t|ƒsJ ‚t|ƒsJ ‚t|ƒsJ ‚t|ƒsJ ‚t|ƒs$J ‚t|ƒtks,J ‚t|ƒtks4J ‚dddœdddœgdddœdddœd	ddœd
ddœdddœdddœdddœdddœgdœddddœ| |||||||poddœdœ}|S )zº

    :param chainId:
    :param verifyingContract:
    :param member:
    :param published:
    :param catalogId:
    :param apiId:
    :param schema:
    :param meta:
    :return:
    ÚnameÚstring)r   ÚtypeÚversionr   Úuint256r   Úaddressr   r   r   Úbytes16r   r   r   )ÚEIP712DomainÚEIP712ApiPublishr   ÚXBRÚ1)r   r   Ú )r   r   r   r   r   r   r   r   )ÚtypesÚprimaryTypeÚdomainÚmessage)r	   r   r   r   r   Ústr)	r   r   r   r   r   r   r   r   Údata© r'   ú€/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/xbr/_eip712_api_publish.pyÚ_create_eip712_api_publish    sp   þþûþþþþþþþþãõ.þøÌ@r)   Úeth_privkeyc	           
   	   C   s,   t | ƒsJ ‚t||||||||ƒ}	t| |	ƒS )zÏ

    :param eth_privkey: Ethereum address of buyer (a raw 20 bytes Ethereum address).
    :type eth_privkey: bytes

    :return: The signature according to EIP712 (32+32+1 raw bytes).
    :rtype: bytes
    )r
   r)   r   )
r*   r   r   r   r   r   r   r   r   r&   r'   r'   r(   Úsign_eip712_api_publishz   s
   
ÿ
r+   Ú	signaturec	           
   	   C   s,   t |ƒsJ ‚t| |||||||ƒ}	t|	|ƒS )z­
    Recover the signer address the given EIP712 signature was signed with.

    :return: The (computed) signer address the signature was signed with.
    :rtype: bytes
    )r   r)   r   )
r   r   r   r   r   r   r   r   r,   r&   r'   r'   r(   Úrecover_eip712_api_publish‹   s
   	ÿ
r-   N)Útypingr   Ú_eip712_baser   r   r   r   r   r	   r
   r   ÚintÚbytesr%   Údictr)   r+   r-   r'   r'   r'   r(   Ú<module>   sN   (ÿÿÿÿ
ÿZÿÿÿÿÿ
ÿÿÿÿÿþþ