§
    Ìtºf’>  ã                   óB  — d dl Z d dlZd dlmZmZmZmZ d dlmZm	Z	 d dl
Z
d dlZd dlmZ d dlmZ 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d	lmZ d
ededededededede fd„Z!ded
edededededededefd„Z"d
ededededededededefd„Z# G d„ de¦  «        Z$dS )é    N)ÚDictÚAnyÚOptionalÚList)Úa2b_hexÚb2a_hex)Úencode_typed_data)Ú_URI_PAT_REALM_NAME_ETH)ÚEthereumKeyé   )ÚsignÚrecoverÚis_chain_idÚ
is_addressÚis_cs_pubkeyÚis_block_numberÚis_signatureÚis_eth_privkey)ÚEIP712CertificateÚchainIdÚverifyingContractÚ	validFromÚdelegateÚcsPubKeyÚbootedAtÚmetaÚreturnc                 ó’  — t          | ¦  «        sJ ‚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œdddœgdœddddœ| ||||||pddœdœ}|S )zâ
    Delegate certificate: dynamic/one-time, off-chain.

    :param chainId:
    :param verifyingContract:
    :param validFrom:
    :param delegate:
    :param csPubKey:
    :param bootedAt:
    :param meta:
    :return:
    NÚnameÚstring)r   ÚtypeÚversionr   Úuint256r   Úaddressr   r   r   Úbytes32r   Úuint64r   )ÚEIP712DomainÚEIP712DelegateCertificater(   ÚWMPÚ1)r   r"   Ú ©r   r   r   r   r   r   r   )ÚtypesÚprimaryTypeÚdomainÚmessage)r   r   r   r   r!   ÚintÚstr)r   r   r   r   r   r   r   Údatas           úh/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/xbr/_eip712_delegate_certificate.pyÚ"create_eip712_delegate_certificater5   -   s¡  € õ& �wÑÔÐÐÐÝÐ'Ñ(Ô(Ð(Ð(Ð(Ý˜9Ñ%Ô%Ð%Ð%Ð%Ý�hÑÔÐÐÐÝ˜Ñ!Ô!Ð!Ð!Ð!Ý�‰>Œ>�SÒ Ð Ð Ð Øˆ<�4 ™:œ:­Ò,Ð,Ð,Ð,ð #Ø$ðð ð
 &Ø$ðð ð	ð &Ø%ðð ð
 0Ø%ðð ð
 (Ø%ðð ð
 'Ø%ðð ð
 'Ø%ðð ð
 'Ø$ðð ð
 #Ø$ðð ð3*ð)
ð )
ðT 3àØð
ð 
ð
 Ø!2Ø"Ø Ø Ø Ø�J˜Bð
ð 
ða9ð 9€Dðv €Kó    Úeth_privkeyc           	      ón   — t          | ¦  «        sJ ‚t          |||||||¦  «        }t          | |¦  «        S )a]  
    Sign the given data using a EIP712 based signature with the provided private key.

    :param eth_privkey: Signing key.
    :param chainId:
    :param verifyingContract:
    :param validFrom:
    :param delegate:
    :param csPubKey:
    :param bootedAt:
    :param meta:
    :return: The signature according to EIP712 (32+32+1 raw bytes).
    )r   r5   r   )	r7   r   r   r   r   r   r   r   r3   s	            r4   Ú sign_eip712_delegate_certificater9   †   sJ   € õ* ˜+Ñ&Ô&Ð&Ð&Ð&å-¨gÐ7HÈ)ÐU]Ø.6¸À$ñHô H€Då�˜TÑ"Ô"Ð"r6   Ú	signaturec           	      ón   — t          |¦  «        sJ ‚t          | ||||||¦  «        }t          ||¦  «        S )aI  
    Recover the signer address the given EIP712 signature was signed with.

    :param chainId:
    :param verifyingContract:
    :param validFrom:
    :param delegate:
    :param csPubKey:
    :param bootedAt:
    :param signature:
    :param meta:
    :return: The (computed) signer address the signature was signed with.
    )r   r5   r   )	r   r   r   r   r   r   r   r:   r3   s	            r4   Ú#recover_eip712_delegate_certificater<   ¢   sJ   € õ* ˜	Ñ"Ô"Ð"Ð"Ð"å-¨gÐ7HÈ)ÐU]Ø.6¸À$ñHô H€Då�4˜Ñ#Ô#Ð#r6   c                   ó  ‡ — e Zd ZdZ	 ddedededededed	ed
eee                  fˆ fd„Z	de
defd„Zde
defd„Zdefd„Zddededefd„Zdedefd„Zddedeee
f         fd„Zedd„¦   «         Zdedefd„Zedd„¦   «         Zˆ xZS )r(   )	r   r   r   r   r   r   r   Ú
signaturesÚhashNr   r   r   r   r   r   r   r>   c	           	      óæ   •— t          ¦   «                              |||¦  «         || _        || _        || _        || _        || _        t          |||||||¦  «        }	t          |	¦  «        | _	        d S ©N)
ÚsuperÚ__init__r   r   r   r   r>   r5   r	   r?   )Úselfr   r   r   r   r   r   r   r>   Úeip712Ú	__class__s             €r4   rC   z"EIP712DelegateCertificate.__init__Î   s{   ø€ å‰Œ×Ò˜Ð"3°YÑ?Ô?Ð?Ø ˆŒØ ˆŒØ ˆŒØˆŒ	Ø$ˆŒÝ3°GØ4EØ4=Ø4<Ø4<Ø4<Ø48ñ:ô :ˆõ & fÑ-Ô-ˆŒ	ˆ	ˆ	r6   Úotherr   c                 ó²  — t          || j        ¦  «        sdS t                               | |¦  «        sdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j        | j        k    rdS |j	        | j	        k    rdS |j
        | j
        k    rdS |j        | j        k    rdS |j        | j        k    rdS dS )NFT)Ú
isinstancerF   r(   Ú__eq__r   r   r   r   r   r   r   r>   r?   ©rD   rG   s     r4   rJ   z EIP712DelegateCertificate.__eq__ß   sô   € Ý˜% ¤Ñ0Ô0ð 	Ø�5Ý(×/Ò/°°eÑ<Ô<ð 	Ø�5ØŒ=˜DœLÒ(Ð(Ø�5ØÔ" dÔ&<Ò<Ð<Ø�5ØŒ?˜dœnÒ,Ð,Ø�5ØŒ>˜Tœ]Ò*Ð*Ø�5ØŒ>˜Tœ]Ò*Ð*Ø�5ØŒ>˜Tœ]Ò*Ð*Ø�5ØŒ:˜œÒ"Ð"Ø�5ØÔ˜tœÒ.Ð.Ø�5ØŒ:˜œÒ"Ð"Ø�5Øˆtr6   c                 ó.   — |                       |¦  «         S rA   )rJ   rK   s     r4   Ú__ne__z EIP712DelegateCertificate.__ne__ø   s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r6   c                 óN   — t          j        |                      ¦   «         ¦  «        S rA   )ÚpprintÚpformatÚmarshal)rD   s    r4   Ú__str__z!EIP712DelegateCertificate.__str__û   s   € ÝŒ~˜dŸlšl™nœnÑ-Ô-Ð-r6   FÚkeyÚbinaryc           	      ó    — t          | j        | j        | j        | j        | j        | j        | j        ¦  «        }|                     ||¬¦  «        S )N©rT   )	r5   r   r   r   r   r   r   r   Úsign_typed_data)rD   rS   rT   rE   s       r4   r   zEIP712DelegateCertificate.signþ   sO   € Ý3°D´LØ48Ô4JØ48´NØ48´MØ48´MØ48´MØ48´Iñ?ô ?ˆð ×"Ò" 6°&Ð"Ñ9Ô9Ð9r6   r:   c           
      ót   — t          | j        | j        | j        | j        | j        | j        | j        |¦  «        S rA   )r<   r   r   r   r   r   r   r   )rD   r:   s     r4   r   z!EIP712DelegateCertificate.recover  s:   € Ý2°4´<Ø37Ô3IØ37´>Ø37´=Ø37´=Ø37´=Ø37´9Ø3<ñ>ô >ð 	>r6   c           	      ó  — t          | j        | j        | j        | j        | j        | j        | j        ¬¦  «        }|sÎ|d         d         r+t          j	         
                    |d         d         ¦  «        nd |d         d<   |d         d         r+t          j	         
                    |d         d         ¦  «        nd |d         d<   |d         d         r-t          |d         d         ¦  «                             ¦   «         nd |d         d<   |S )Nr,   r0   r   r   r   )r5   r   r   r   r   r   r   r   Úweb3ÚWeb3ÚtoChecksumAddressr   Údecode)rD   rT   Úobjs      r4   rQ   z!EIP712DelegateCertificate.marshal  s,  € Ý0¸¼ØCGÔCYØ;?¼>Ø:>¼-Ø:>¼-Ø:>¼-Ø6:´iðAñ Aô Aˆð ð 	~Øvyð  {Dô  wEð  FYô  wZð  3dµ$´)×2MÒ2MÈcÐR[ÌnÐ]pÔNqÑ2rÔ2rÐ2rð  `dˆC�	ŒNÐ.Ñ/ØdgÐhqÔdrÐs}Ôd~ð  *I­¬×)DÒ)DÀSÈÄ^ÐT^ÔE_Ñ)`Ô)`Ð)`ð  EIˆC�	ŒN˜:Ñ&ØY\Ð]fÔYgÐhrÔYsÐ)}­°°Y´À
Ô1KÑ)LÔ)L×)SÒ)SÑ)UÔ)UÐ)UÐy}ˆC�	ŒN˜:Ñ&Øˆ
r6   c           	      óŒ
  — t          | ¦  «        t          k    r/t          d                     t          | ¦  «        ¦  «        ¦  «        ‚|                      dd ¦  «        }|dk    r"t          d                     |¦  «        ¦  «        ‚|                      dd ¦  «        }t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|D ](}|dvr"t          d                     |¦  «        ¦  «        ‚Œ)|                     d	d ¦  «        }|r(|dk    r"t          d
                     |¦  «        ¦  «        ‚|                     dd ¦  «        }|€t          d¦  «        ‚t          |¦  «        t
          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|                     dd ¦  «        }|€t          d¦  «        ‚t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          j        |¦  «        s"t          d                     |¦  «        ¦  «        ‚t          |dd …         ¦  «        }|                     dd ¦  «        }|€t          d¦  «        ‚t          |¦  «        t
          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|                     dd ¦  «        }|€t          d¦  «        ‚t          |¦  «        t          k    r/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          j        |¦  «        s"t          d                     |¦  «        ¦  «        ‚t          |dd …         ¦  «        }|                     dd ¦  «        }	|	€t          d¦  «        ‚t          |	¦  «        t          k    r/t          d                     t          |	¦  «        ¦  «        ¦  «        ‚t          |	¦  «        dk    r"t          d                     |	¦  «        ¦  «        ‚t          |	¦  «        }	|                     dd ¦  «        }
|
€t          d¦  «        ‚t          |
¦  «        t
          k    r/t          d                      t          |
¦  «        ¦  «        ¦  «        ‚|                     d!d ¦  «        }|€t          d"¦  «        ‚t          |¦  «        t          k    r/t          d#                     t          |¦  «        ¦  «        ¦  «        ‚t          |||||	|
|¬$¦  «        } | S )%Nz=invalid type {} for object in EIP712DelegateCertificate.parser.   r(   z?invalid primaryType "{}" - expected "EIP712DelegateCertificate"r0   z-invalid type {} for EIP712DelegateCertificate)r!   r   r   r   r   r   r   r   z3invalid attribute "{}" in EIP712DelegateCertificater!   z1unexpected type "{}" in EIP712DelegateCertificater   z,missing chainId in EIP712DelegateCertificatez8invalid type {} for chainId in EIP712DelegateCertificater   z6missing verifyingContract in EIP712DelegateCertificatezBinvalid type {} for verifyingContract in EIP712DelegateCertificatezEinvalid value "{}" for verifyingContract in EIP712DelegateCertificateé   r   z.missing validFrom in EIP712DelegateCertificatez:invalid type {} for validFrom in EIP712DelegateCertificater   z-missing delegate in EIP712DelegateCertificatez9invalid type {} for delegate in EIP712DelegateCertificater   z-missing csPubKey in EIP712DelegateCertificatez9invalid type {} for csPubKey in EIP712DelegateCertificateé@   z<invalid value "{}" for csPubKey in EIP712DelegateCertificater   z-missing bootedAt in EIP712DelegateCertificatez9invalid type {} for bootedAt in EIP712DelegateCertificater   z)missing meta in EIP712DelegateCertificatez5invalid type {} for meta in EIP712DelegateCertificater,   )r!   ÚdictÚ
ValueErrorÚformatÚgetr1   r2   r
   Úmatchr   Úlenr(   )r^   r.   r3   ÚkÚ_typer   r   r   r   r   r   r   s               r4   ÚparsezEIP712DelegateCertificate.parse   sþ  € å�‰9Œ9�ÒÐÝÐ\×cÒcÕdhÐilÑdmÔdmÑnÔnÑoÔoÐoà—g’g˜m¨TÑ2Ô2ˆØÐ5Ò5Ð5ÝÐ^×eÒeÐfqÑrÔrÑsÔsÐsð �wŠw�y $Ñ'Ô'ˆÝ�‰:Œ:�ÒÐÝÐL×SÒSÕTXÐY]ÑT^ÔT^Ñ_Ô_Ñ`Ô`Ð`Øð 	bð 	bˆAØÐyÐyÐyÝ Ð!V×!]Ò!]Ð^_Ñ!`Ô!`ÑaÔaÐað zð —’˜ Ñ&Ô&ˆØð 	`�UÐ9Ò9Ð9ÝÐP×WÒWÐX]Ñ^Ô^Ñ_Ô_Ð_à—(’(˜9 dÑ+Ô+ˆØˆ?ÝÐKÑLÔLÐLÝ�‰=Œ=�CÒÐÝÐW×^Ò^Õ_cÐdkÑ_lÔ_lÑmÔmÑnÔnÐnà ŸHšHÐ%8¸$Ñ?Ô?ÐØÐ$ÝÐUÑVÔVÐVÝÐ!Ñ"Ô"¥cÒ)Ð)ÝØT×[Ò[Õ\`ÐarÑ\sÔ\sÑtÔtñvô vð vå&Ô,Ð->Ñ?Ô?ð 	sÝØW×^Ò^Ð_pÑqÔqñsô sð så#Ð$5°a°b°bÔ$9Ñ:Ô:Ðà—H’H˜[¨$Ñ/Ô/ˆ	ØÐÝÐMÑNÔNÐNÝ�	‰?Œ?�cÒ!Ð!ÝÐY×`Ò`ÕaeÐfoÑapÔapÑqÔqÑrÔrÐrà—8’8˜J¨Ñ-Ô-ˆØÐÝÐLÑMÔMÐMÝ�‰>Œ>�SÒ Ð ÝÐX×_Ò_Õ`dÐemÑ`nÔ`nÑoÔoÑpÔpÐpÝ&Ô,¨XÑ6Ô6ð 	wÝÐd×kÒkÐltÑuÔuÑvÔvÐvÝ˜8 A B Bœ<Ñ(Ô(ˆà—8’8˜J¨Ñ-Ô-ˆØÐÝÐLÑMÔMÐMÝ�‰>Œ>�SÒ Ð ÝÐX×_Ò_Õ`dÐemÑ`nÔ`nÑoÔoÑpÔpÐpÝˆx‰=Œ=˜BÒÐÝÐ[×bÒbÐckÑlÔlÑmÔmÐmÝ˜8Ñ$Ô$ˆà—8’8˜J¨Ñ-Ô-ˆØÐÝÐLÑMÔMÐMÝ�‰>Œ>�SÒ Ð ÝÐX×_Ò_Õ`dÐemÑ`nÔ`nÑoÔoÑpÔpÐpà�xŠx˜ Ñ%Ô%ˆØˆ<ÝÐHÑIÔIÐIÝ�‰:Œ:�ÒÐÝÐT×[Ò[Õ\`ÐaeÑ\fÔ\fÑgÔgÑhÔhÐhå'°ÐK\ÐhqØ19ÀHÐW_Ðfjðlñ lô lˆàˆ
r6   Úfilenamec                 ó  — | j         |                      d¬¦  «        | j        pg g}t          |d¦  «        5 }t	          j        |¦  «        }|                     |¦  «         ddd¦  «         n# 1 swxY w Y   t          |¦  «        S )zÓ
        Save certificate to file. File format (serialized as CBOR):

            [cert_hash: bytes, cert_eip712: Dict[str, Any], cert_signatures: List[bytes]]

        :param filename:
        :return:
        TrV   ÚwbN)r?   rQ   r>   ÚopenÚcbor2ÚdumpsÚwriterg   )rD   rk   Úcert_objÚfr3   s        r4   ÚsavezEIP712DelegateCertificate.saveo  sµ   € ð ”I˜tŸ|š|°4˜|Ñ8Ô8¸$¼/Ð:OÈRÐPˆÝ�(˜DÑ!Ô!ð 	 QÝ”;˜xÑ(Ô(ˆDØ�GŠG�D‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �4‰yŒyÐs   ¶*A,Á,A0Á3A0c                 ó�  — t           j                             | ¦  «        s"t          d                     | ¦  «        ¦  «        ‚t          | d¦  «        5 }t          j        |                     ¦   «         ¦  «        \  }}}t           
                    |d¬¦  «        }||j        k    sJ ‚||_        |cd d d ¦  «         S # 1 swxY w Y   d S )NzFcannot create EIP712DelegateCertificate from filename "{}": not a fileÚrbTrV   )ÚosÚpathÚisfileÚRuntimeErrorrd   rn   ro   ÚloadsÚreadr(   rj   r?   r>   )rk   rs   Ú	cert_hashÚcert_eip712Úcert_signaturesÚcerts         r4   ÚloadzEIP712DelegateCertificate.load~  sû   € åŒw�~Š~˜hÑ'Ô'ð 	zÝÐg×nÒnÐowÑxÔxÑyÔyÐyÝ�(˜DÑ!Ô!ð 	 QÝ6;´kÀ!Ç&Â&Á(Ä(Ñ6KÔ6KÑ3ˆI�{ OÝ,×2Ò2°;ÀtÐ2ÑLÔLˆDØ ¤	Ò)Ð)Ð)Ð)Ø-ˆDŒOØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁAB;Â;B?ÃB?rA   )F)r   r(   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r1   Úbytesr2   r   r   rC   r   ÚboolrJ   rM   rR   r   r   r   r   rQ   Ústaticmethodrj   rt   r�   Ú__classcell__)rF   s   @r4   r(   r(   ¾   sÛ  ø€ € € € € ð€Ið  PTð.ð . ð .¸ð .È#ð .ÐY^ð .Ðjoð .Øð.Ø&)ð.Ø7?ÀÀUÄÔ7Lð.ð .ð .ð .ð .ð .ð"˜Cð  Dð ð ð ð ð2&˜Cð & Dð &ð &ð &ð &ð.˜ð .ð .ð .ð .ð:ð :˜ð :¨Tð :¸eð :ð :ð :ð :ð> ð >¨5ð >ð >ð >ð >ðð ˜dð ¨t°C¸°H¬~ð ð ð ð ð ðLð Lð Lñ „\ðLð\˜Sð  Sð ð ð ð ð ðð ð ñ „\ðð ð ð ð r6   r(   )%rw   rO   Útypingr   r   r   r   Úbinasciir   r   rZ   ro   Úpy_eth_sig_utils.eip712r	   Úautobahn.wamp.messager
   Úautobahn.xbr._secmodr   Ú_eip712_baser   r   r   r   r   r   r   r   Ú_eip712_certificater   r1   r†   r2   rb   r5   r9   r<   r(   © r6   r4   ú<module>r’      s‹  ðð6 
€	€	€	Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à €€€Ø €€€à 5Ð 5Ð 5Ð 5Ð 5Ð 5à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2à 2Ð 2Ð 2Ð 2Ð 2Ð 2ðV°ð VØ:?ðVà25ðVð 27ðVð 27ð	Vð
 25ðVð .1ðVð 6:ðVð Vð Vð Vðr#°%ð #Ø.1ð#à8=ð#ð 14ð#ð 05ð	#ð
 05ð#ð 03ð#ð ,/ð#ð 49ð#ð #ð #ð #ð8$°ð $Ø;@ð$à36ð$ð 38ð$ð 38ð	$ð
 36ð$ð /2ð$ð 49ð$ð >Cð$ð $ð $ð $ð8Ið Ið Ið Ið IÐ 1ñ Iô Ið Ið Ið Ir6   