
    tf                         d dl mZ ddl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e         d
efdZdede
dedede
dee         d	ed
efdZde
dedede
ded	ee         ded
efdZdS )    )Optional   )signrecover
is_addressis_block_numberis_chain_idis_eth_privkeyis_signaturechainIdverifyingContractmember
registeredeulaprofilereturnc           
      f   t          |           sJ t          |          sJ t          |          sJ t          |          sJ t          |          t          k    sJ |t          |          t          k    sJ 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gddddd| |||||pddd}|S )z

    :param chainId:
    :param verifyingContract:
    :param member:
    :param registered:
    :param eula:
    :param profile:
    :return:
    Nnamestring)r   typeversionr   uint256r   addressr   r   r   r   )EIP712DomainEIP712MemberRegisterr   XBR1)r   r    )r   r   r   r   r   r   )typesprimaryTypedomainmessage)r	   r   r   r   str)r   r   r   r   r   r   datas          c/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/xbr/_eip712_member_register.py_create_eip712_member_registerr&       sx    w'(((((f:&&&&&::?d7mms2222 #$ 
 &$ 	 &% 
 0% 
 %% 
 )% 
 #$ 
 &$ +%%
 %
L .
 

 !2$}"
 
Y4 4Dl K    eth_privkeyc                 l    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$   s           r%   sign_eip712_member_registerr*   l   sB     +&&&&&)'3DfjZ^`ghhDT"""r'   	signaturec                 l    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$   s           r%   recover_eip712_member_registerr-   }   sB     	""""")'3DfjZ^`ghhD4###r'   N)typingr   _eip712_baser   r   r   r   r	   r
   r   intbytesr#   dictr&   r*   r-    r'   r%   <module>r4      s  6      . . . . . . . . . . . . . . . . . .IC IE ISX Ifi I),I7?}IIMI I I IX#U #S #UZ #di #,/#7?}#OR#W\# # # #"$C $E $SX $fi $),$7?}$QV$[`$ $ $ $ $ $r'   