§
    ÌtºfzJ  ã                   ó<  — d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ erFerDd d
lmZ d dlmZmZmZmZ d dlmZmZ d dlmZmZ d dlmZm Z m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' d dlm(Z( de j)        v o e*e j)        d         ¦  «        d k    Z+ej,        j-        dk    Z. e
e j)         /                    dd¦  «         d¦  «         e
e+ d¦  «         e
eoe d¦  «         G d„ de¦  «        ¦   «         ¦   «         ¦   «         Z0dS )é    N)ÚrandintÚrandom)Úa2b_hex)ÚList)ÚskipIf)ÚinlineCallbacks)ÚTestCase)ÚHAS_CRYPTOSIGN)ÚHAS_XBR)Úencode_typed_data)ÚecsignÚecrecover_to_pubÚchecksum_encodeÚsha3)Úv_r_s_to_signatureÚsignature_to_v_r_s)Úsign_typed_dataÚrecover_typed_data)Úmake_w3ÚEthereumKeyÚmnemonic_to_private_key)Ú_create_eip712_member_register)Ú_create_eip712_market_create)ÚSecurityModuleMemory)ÚCryptosignKeyÚWEB3_INFURA_PROJECT_IDé
   ÚUSE_TWISTEDFzonly for Twistedz*env var WEB3_INFURA_PROJECT_ID not definedz.package autobahn[encryption,xbr] not installedc                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Z	d„ Z
d„ Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚTestSecurityModulec                 ó0  — dt           j                             dd¦  «        ddœ| _        t	          | j        ¦  «        | _        d| _        g d¢| _        g d¢| _        t          | j        d	         d
d …         ¦  «        }t          | j        d         d
d …         ¦  «        }t          | j        d
         d
d …         ¦  «        }t          | j        d         d
d …         ¦  «        }d}d}d}d}t          d¦  «        }	t          d||d||¬¦  «        t          dt          | j        d	         d
d …         ¦  «        t          | j        d         d
d …         ¦  «        d||¬¦  «        t          d||d|	||||ddd¬¦  «        g| _        g d¢| _        g d¢| _        d S )NÚinfurar   Ú Úmainnet)ÚtypeÚkeyÚnetworkzMavocado style uncover thrive same grace crunch want essay reduce current edge)Ú*0xf766Dc789CF04CD18aE75af2c5fAf2DA6650Ff57Ú*0xf5173a6111B2A6B3C20fceD53B2A8405EC142bF6Ú*0xecdb40C2B34f3bA162C413CC53BA3ca99ff8A047Ú*0x2F070c2f49a59159A0346396f1139203355ACA43Ú*0x66290fA8ADcD901Fd994e4f64Cfb53F4c359a326)ÚB0x805f84af7e182359db0610ffb07c801012b699b5610646937704aa5cfc28b15eÚB0x991c8f7609f3236ad5ef6d498b2ec0c9793c2865dd337ddc3033067c1da0e735ÚB0x75848ddb1155cd1cdf6d74a6e7fbed06aeaa21ef2d8a05df7af2d95cdc127672ÚB0x5be599a34927a1110922d7704ba316144b31699d8e7f229e2684d5575a84214eÚB0xc1bb7ce3481e95b28bb8c026667b6009c504c79a98e6c7237ba0788c37b473c9r   é   é   é   Ú.QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81Ú.QmcNsPV7QZFHKb2DNn8GWsU5dtd8zH5DNRa31geC63ceb4Ú.QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4Ú.Qmf412jQZiuVUtdgnB36FXFX7xg5V6KEbSJ4dpQuhkLyfDÚ 5b7ee23c9353479ca49a2461c0a1deb2iš  )ÚchainIdÚverifyingContractÚmemberÚ
registeredÚeulaÚprofileé   i'  i@B éd   )r:   r;   r<   ÚcreatedÚmarketIdÚcoinÚtermsÚmetaÚmakerÚproviderSecurityÚconsumerSecurityÚ	marketFee)Ú@8abee87b2cf457841d173083d5f205183f3e78c6cee30ca77776344e11f612b3Ú@6a4f10dc41080c445a86acaae652ce80878fe768f6b459af08d14465c5310138Ú@f1b80df26ec6cc7dafeb8a5c69de77e8ec5a2c0e93f5d6e475124f18cf4c595f)Ú‚17ed35d8fd41fcb507ae11a3745d9775f37ff1c155257074fe2245cfb186f4336151fd018bf83a5e9902d825b645213a111630f78bbbc3c96f68d60b7e65dafd1cÚ‚1c0fa4d8e2b2d0d0391c4b7c5cf2f494eab5c7074aa46cfd11a2d8a6b8c087030db7a5b74128d9bb04f6baa12abaa45457e0cfe790e9ebbd62721c075d79335e1cÚ‚236660f4cc04df21289538bf15e83d5bd2858b9dad27022d6b83fc3374ce887d5789e1d40126823abf7ccef04d06e4a1717e6b6a00cbfacf5cc2e7b2e4cb384e1c)ÚosÚenvironÚgetÚ
_gw_configr   Ú_w3Ú_seedphraseÚ
_addressesÚ_keysr   r   r   Ú_eip_data_objectsÚ_eip_data_obj_hashesÚ_eip_data_obj_signatures)
ÚselfÚverifying_contractr<   rG   rD   r>   r?   rE   rF   Ú	market_ids
             ú`/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/xbr/test/test_xbr_secmod.pyÚsetUpzTestSecurityModule.setUpB   sò  € àÝ”:—>’>Ð":¸BÑ?Ô?Ø ð
ð 
ˆŒõ
 ˜4œ?Ñ+Ô+ˆŒàjˆÔð
ð 
ð 
ˆŒð
ð 
ð 
ˆŒ
õ % T¤_°QÔ%7¸¸¸Ô%;Ñ<Ô<ÐÝ˜œ¨Ô+¨A¨B¨BÔ/Ñ0Ô0ˆÝ˜œ¨Ô*¨1¨2¨2Ô.Ñ/Ô/ˆÝ�t” qÔ)¨!¨"¨"Ô-Ñ.Ô.ˆà?ˆØBˆØ@ˆØ?ˆåÐ>Ñ?Ô?ˆ	õ +°1ÐHZÐciØ69ÀÈgðWñ Wô Wå*°2ÍÐQUÔQ`ÐabÔQcÐdeÐdfÐdfÔQgÑIhÔIhÝ29¸$¼/È!Ô:LÈQÈRÈRÔ:PÑ2QÔ2QÐ^bÐimØ3:ð<ñ <ô <õ )°ÐFXÐagÐqtØ2;À$ÈeÐZ^ÐfkØ:AÐT[Ðgjðlñ lô lð	"
ˆÔð%
ð %
ð %
ˆÔ!ð
)
ð )
ð )
ˆÔ%Ð%Ð%ó    c                 óì   — t          t          | j        ¦  «        ¦  «        D ]Q}t          j        | j        |¦  «        }|                      |                     d¬¦  «        | j        |         ¦  «         ŒRdS )z7
        Create key from seedphrase and index.
        F©ÚbinaryN)	ÚrangeÚlenrX   r   Úfrom_seedphraserV   ÚassertEqualÚaddressrW   )r\   Úir&   s      r_   Ú!test_ethereum_key_from_seedphrasez4TestSecurityModule.test_ethereum_key_from_seedphrase}   st   € õ •s˜4œ:‘”Ñ'Ô'ð 	Lð 	LˆAÝÔ-¨dÔ.>ÀÑBÔBˆCØ×Ò˜SŸ[š[°˜[Ñ6Ô6¸¼ÈÔ8JÑKÔKÐKÐKð	Lð 	Lra   c                 ód  — t          t          | j        ¦  «        ¦  «        D ]�}t          | j        |         dd…         ¦  «        }t	          j        |¦  «        }|                      |                     d¬¦  «        | j        |         ¦  «         |                      |j	        j
        |¦  «         ŒŽdS )z,
        Create key from raw bytes.
        r2   NFrc   )re   rf   rX   r   r   Ú
from_bytesrh   ri   rW   Ú_keyr&   )r\   rj   Úkey_rawr&   s       r_   Útest_ethereum_key_from_bytesz/TestSecurityModule.test_ethereum_key_from_bytes…   s¡   € õ •s˜4œ:‘”Ñ'Ô'ð 	4ð 	4ˆAÝ˜dœj¨œm¨A¨B¨BÔ/Ñ0Ô0ˆGÝÔ(¨Ñ1Ô1ˆCØ×Ò˜SŸ[š[°˜[Ñ6Ô6¸¼ÈÔ8JÑKÔKÐKØ×Ò˜SœXœ\¨7Ñ3Ô3Ð3Ð3ð		4ð 	4ra   c                 óú  — t          | j        d         dd…         ¦  «        }t          t          | j        ¦  «        ¦  «        D ]¶}| j        |         }t          |¦  «        }|                      |t          | j        |         ¦  «        ¦  «         t          ||¦  «        }t          |Ž }|                      t          |¦  «        d¦  «         |                      |t          | j
        |         ¦  «        ¦  «         Œ·dS )úS
        Test using py_eth_sig_utils by doing individual steps / manually.
        r   r2   NéA   )r   rX   re   rf   rY   r   rh   rZ   r   r   r[   )r\   ro   rj   ÚdataÚmsg_hashÚsignature_vrsÚ	signatures          r_   Ú)test_ethereum_sign_typed_data_pesu_manualz<TestSecurityModule.test_ethereum_sign_typed_data_pesu_manual�   sö   € õ ˜$œ* Qœ-¨¨¨Ô+Ñ,Ô,ˆå•s˜4Ô1Ñ2Ô2Ñ3Ô3ð 	Sð 	SˆAØÔ)¨!Ô,ˆDõ )¨Ñ.Ô.ˆHà×Ò˜X¥w¨tÔ/HÈÔ/KÑ'LÔ'LÑMÔMÐMõ # 8¨WÑ5Ô5ˆMõ +¨MÐ:ˆIð ×Ò�S ™^œ^¨RÑ0Ô0Ð0Ø×Ò˜Y­°Ô0MÈaÔ0PÑ(QÔ(QÑRÔRÐRÐRð+	Sð 	Sra   c                 ó€  — t          | j        d         dd…         ¦  «        }t          t          | j        ¦  «        ¦  «        D ]y}| j        |         }t          ||¦  «        }t          |Ž }|                      t          |¦  «        d¦  «         |                      |t          | j        |         ¦  «        ¦  «         ŒzdS )úH
        Test using py_eth_sig_utils with high level functions.
        r   r2   Nrs   )	r   rX   re   rf   rY   r   r   rh   r[   )r\   ro   rj   rt   rv   rw   s         r_   Ú,test_ethereum_sign_typed_data_pesu_highlevelz?TestSecurityModule.test_ethereum_sign_typed_data_pesu_highlevel¬   s½   € õ ˜$œ* Qœ-¨¨¨Ô+Ñ,Ô,ˆÝ•s˜4Ô1Ñ2Ô2Ñ3Ô3ð 	Sð 	SˆAØÔ)¨!Ô,ˆDå+¨D°'Ñ:Ô:ˆMÝ*¨MÐ:ˆIð ×Ò�S ™^œ^¨RÑ0Ô0Ð0Ø×Ò˜Y­°Ô0MÈaÔ0PÑ(QÔ(QÑRÔRÐRÐRð	Sð 	Sra   c              #   ób  K  — t          | j        d         dd…         ¦  «        }t          j        |¦  «        }t	          t          | j        ¦  «        ¦  «        D ]T}| j        |         }|                     |¦  «        V —}|                      |t          | j	        |         ¦  «        ¦  «         ŒUdS )ú;
        Test using autobahn with async functions.
        r   r2   N)
r   rX   r   rm   re   rf   rY   r   rh   r[   )r\   ro   r&   rj   rt   rw   s         r_   Ú&test_ethereum_sign_typed_data_ab_asyncz9TestSecurityModule.test_ethereum_sign_typed_data_ab_async»   s³   è è € õ
 ˜$œ* Qœ-¨¨¨Ô+Ñ,Ô,ˆÝÔ$ WÑ-Ô-ˆÝ•s˜4Ô1Ñ2Ô2Ñ3Ô3ð 	Sð 	SˆAØÔ)¨!Ô,ˆDØ!×1Ò1°$Ñ7Ô7Ð7Ð7ˆIØ×Ò˜Y­°Ô0MÈaÔ0PÑ(QÔ(QÑRÔRÐRÐRð	Sð 	Sra   c                 ó€  — t          t          | j        ¦  «        ¦  «        D ]›}| j        |         }t          |¦  «        }t	          | j        |         ¦  «        }t          |¦  «        }t          |g|¢R Ž }t          |¦  «        dd…         }t          |¦  «        }|  
                    || j        d         ¦  «         ŒœdS )rr   iìÿÿÿNr   )re   rf   rY   r   r   r[   r   r   r   r   rh   rW   )	r\   rj   rt   ru   rw   rv   Ú
public_keyÚaddress_bytesri   s	            r_   Ú+test_ethereum_verify_typed_data_pesu_manualz>TestSecurityModule.test_ethereum_verify_typed_data_pesu_manualÇ   sÆ   € õ •s˜4Ô1Ñ2Ô2Ñ3Ô3ð 	:ð 	:ˆAØÔ)¨!Ô,ˆDõ )¨Ñ.Ô.ˆHå Ô =¸aÔ @ÑAÔAˆIÝ.¨yÑ9Ô9ˆMå)¨(ÐC°]ÐCÐCÐCˆJÝ  Ñ,Ô,¨S¨T¨TÔ2ˆMÝ% mÑ4Ô4ˆGà×Ò˜W d¤o°aÔ&8Ñ9Ô9Ð9Ð9ð	:ð 	:ra   c                 ó  — t          t          | j        ¦  «        ¦  «        D ]f}| j        |         }t          | j        |         ¦  «        }t          |¦  «        }t          |g|¢R Ž }|                      || j        d         ¦  «         ŒgdS )rz   r   N)	re   rf   rY   r   r[   r   r   rh   rW   )r\   rj   rt   rw   rv   ri   s         r_   Ú.test_ethereum_verify_typed_data_pesu_highlevelzATestSecurityModule.test_ethereum_verify_typed_data_pesu_highlevelÚ   s”   € õ •s˜4Ô1Ñ2Ô2Ñ3Ô3ð 	:ð 	:ˆAØÔ)¨!Ô,ˆDå Ô =¸aÔ @ÑAÔAˆIÝ.¨yÑ9Ô9ˆMå(¨Ð>°Ð>Ð>Ð>ˆGà×Ò˜W d¤o°aÔ&8Ñ9Ô9Ð9Ð9ð	:ð 	:ra   c              #   ó8  K  — t          j        | j        d         ¦  «        }t          t	          | j        ¦  «        ¦  «        D ]V}| j        |         }t          | j        |         ¦  «        }|                     ||¦  «        V —}|  	                    |¦  «         ŒWdS )r}   r   N)
r   Úfrom_addressrW   re   rf   rY   r   r[   Úverify_typed_dataÚ
assertTrue)r\   r&   rj   rt   rw   Ú	sig_valids         r_   Ú(test_ethereum_verify_typed_data_ab_asyncz;TestSecurityModule.test_ethereum_verify_typed_data_ab_asyncè   s�   è è € õ
 Ô& t¤°qÔ'9Ñ:Ô:ˆÝ•s˜4Ô1Ñ2Ô2Ñ3Ô3ð 	'ð 	'ˆAØÔ)¨!Ô,ˆDÝ Ô =¸aÔ @ÑAÔAˆIØ!×3Ò3°D¸)ÑDÔDÐDÐDˆIØ�OŠO˜IÑ&Ô&Ð&Ð&ð		'ð 	'ra   c           	   #   óÞ  K  — t          j        | j        dd¦  «        }|                     ¦   «         V — |                      t          |¦  «        d¦  «         |                     ¦   «         D ]�\  }}|                      t          |t          ¦  «        pt          |t          ¦  «        d                     t          |¦  «        ¦  «        ¦  «         ||         }|                      ||¦  «         Œ‚dS )zç
        This tests:

        * :meth:`SecurityModuleMemory.from_seedphrase`
        * :meth:`SecurityModuleMemory.__len__`
        * :meth:`SecurityModuleMemory.__iter__`
        * :meth:`SecurityModuleMemory.__getitem__`
        é   r   z.unexpected type {} returned in security moduleN)r   rg   rV   Úopenrh   rf   Úitemsrˆ   Ú
isinstancer   r   Úformatr%   )r\   Úsmrj   r&   Úkey_s        r_   Útest_secmod_iterablez'TestSecurityModule.test_secmod_iterableô   sâ   è è € õ "Ô1°$Ô2BÀAÀqÑIÔIˆØ�gŠg‰iŒiˆˆˆà×Ò�˜R™œ "Ñ%Ô%Ð%à—h’h‘j”jð 	(ð 	(‰FˆAˆsØ�OŠO�J s­KÑ8Ô8ÐZ½JÀsÍMÑ<ZÔ<ZØL×SÒSÕTXÐY\ÑT]ÔT]Ñ^Ô^ñ`ô `ð `à�a”5ˆDØ×Ò˜T 3Ñ'Ô'Ð'Ð'ð		(ð 	(ra   c              #   óò  K  — t          ¦   «         }|                     ¦   «         V — |                      t          |¦  «        d¦  «         t	          d¦  «        D �]ù}|                     d¦  «        V —}|                      ||dz  ¦  «         |                      t          |¦  «        |dz  dz   ¦  «         ||         }|                      t          |t          ¦  «        ¦  «         |                      |j	        |¦  «         |                      |j
        |dz  ¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                     d¦  «        V —}|                      ||dz  dz   ¦  «         |                      t          |¦  «        |dz  dz   ¦  «         ||         }|                      t          |t          ¦  «        ¦  «         |                      |j	        |¦  «         |                      |j
        |dz  dz   ¦  «         |                      |j        d¦  «         |                      |j        d¦  «         �Œû|                      t          |¦  «        d¦  «         d	S )
zP
        This tests:

        * :meth:`SecurityModuleMemory.create_key`
        r   r4   Úethereumr2   r3   TÚ
cryptosigné   N)r   r�   rh   rf   re   Ú
create_keyrˆ   r�   r   Úsecurity_moduleÚkey_noÚkey_typeÚcan_signr   )r\   r‘   rj   Úidxr&   s        r_   Útest_secmod_create_keyz)TestSecurityModule.test_secmod_create_key	  s@  è è € õ "Ñ#Ô#ˆØ�gŠg‰iŒiˆˆˆà×Ò�˜R™œ !Ñ$Ô$Ð$å�q‘”ð 	1ñ 	1ˆAØŸš jÑ1Ô1Ð1Ð1ˆCØ×Ò˜S ! a¡%Ñ(Ô(Ð(Ø×Ò�S ™WœW a¨!¡e¨a¡iÑ0Ô0Ð0Ø�S”'ˆCØ�OŠO�J s­KÑ8Ô8Ñ9Ô9Ð9Ø×Ò˜SÔ0°"Ñ5Ô5Ð5Ø×Ò˜SœZ¨¨Q©Ñ/Ô/Ð/Ø×Ò˜Sœ\¨:Ñ6Ô6Ð6Ø×Ò˜Sœ\¨4Ñ0Ô0Ð0àŸš lÑ3Ô3Ð3Ð3ˆCØ×Ò˜S ! a¡%¨!¡)Ñ,Ô,Ð,Ø×Ò�S ™WœW a¨!¡e¨a¡iÑ0Ô0Ð0Ø�S”'ˆCØ�OŠO�J s­MÑ:Ô:Ñ;Ô;Ð;Ø×Ò˜SÔ0°"Ñ5Ô5Ð5Ø×Ò˜SœZ¨¨Q©°©Ñ3Ô3Ð3Ø×Ò˜Sœ\¨<Ñ8Ô8Ð8Ø×Ò˜Sœ\¨4Ñ0Ô0Ð0Ñ0à×Ò�˜R™œ !Ñ$Ô$Ð$Ð$Ð$ra   c              #   óÆ  K  — t          ¦   «         }|                     ¦   «         V — |                      t          |¦  «        d¦  «         d}g }t	          |¦  «        D ]`}t          ¦   «         dk    r|                     d¦  «        V — n|                     d¦  «        V — ||         }|                     |¦  «         Œa|                      t          |¦  «        d¦  «         t	          |¦  «        D ]p}|                      ||v ¦  «         | 	                    |¦  «        V — |  
                    ||v ¦  «         |                      t          |¦  «        ||z
  dz
  ¦  «         ŒqdS )z‚
        This tests:

        * :meth:`SecurityModuleMemory.create_key`
        * :meth:`SecurityModuleMemory.delete_key`
        r   r   g      à?r•   r–   r3   N)r   r�   rh   rf   re   r   r˜   Úappendrˆ   Ú
delete_keyÚassertFalse)r\   r‘   ÚnÚkeysrj   r&   s         r_   Útest_secmod_delete_keyz)TestSecurityModule.test_secmod_delete_key,  se  è è € õ "Ñ#Ô#ˆØ�gŠg‰iŒiˆˆˆà×Ò�˜R™œ !Ñ$Ô$Ð$àˆØˆå�q‘”ð 	ð 	ˆAÝ‰xŒx˜"Š}ˆ}Ø—m’m JÑ/Ô/Ð/Ð/Ð/Ð/à—m’m LÑ1Ô1Ð1Ð1Ð1Ø�Q”%ˆCØ�KŠK˜ÑÔÐÐØ×Ò�˜R™œ "Ñ%Ô%Ð%å�q‘”ð 	1ð 	1ˆAØ�OŠO˜A ˜GÑ$Ô$Ð$Ø—-’- Ñ"Ô"Ð"Ð"Ð"Ø×Ò˜Q "˜WÑ%Ô%Ð%Ø×Ò�S ™WœW a¨!¡e¨a¡iÑ0Ô0Ð0Ð0ð		1ð 	1ra   c              #   ó.  K  — t          ¦   «         }|                     ¦   «         V — d}|                     |¦  «        V —}|                      |d¦  «         |                     t	          dd¦  «        ¦  «        V — |                      |d¦  «         t          d¦  «        D ]t}t          d¦  «        D ]b}|                     |¦  «        V —}|                      ||dz   ¦  «         |                     |¦  «        V —}|                      ||dz   ¦  «         ŒcŒudS )zº
        This tests:

        * :meth:`SecurityModuleMemory.__init__`
        * :meth:`SecurityModuleMemory.get_counter`
        * :meth:`SecurityModuleMemory.increment_counter`
        r   rA   r   r3   N)r   r�   Úget_counterrh   r   re   Úincrement_counter)r\   r‘   ÚcounterÚvaluerj   s        r_   Útest_secmod_countersz'TestSecurityModule.test_secmod_countersK  s2  è è € õ "Ñ#Ô#ˆØ�gŠg‰iŒiˆˆˆð ˆð —n’n WÑ-Ô-Ð-Ð-ˆØ×Ò˜ Ñ"Ô"Ð"à�nŠn�W Q¨™_œ_Ñ-Ô-Ð-Ð-Ð-Ø×Ò˜ Ñ"Ô"Ð"õ ˜R‘y”yð 	/ð 	/ˆGÝ˜3‘Z”Zð /ð /�Ø ×2Ò2°7Ñ;Ô;Ð;Ð;�Ø× Ò  ¨¨A©Ñ.Ô.Ð.à Ÿnšn¨WÑ5Ô5Ð5Ð5�Ø× Ò  ¨¨A©Ñ.Ô.Ð.Ð.ð/ð	/ð 	/ra   c                 óÈ  — d}g d¢}g }t          d¦  «        D ]}d                     |¦  «        }t          ||¦  «        }t          |¦  «        t          k    sJ ‚t          |¦  «        dk    sJ ‚t          j        |¦  «        }|                     |¦  «         Œ€t          d¦  «        D ]:}||          	                    d¬¦  «        }|  
                    |||         ¦  «         Œ;d S )NúNmyth like bonus scare over problem client lizard pioneer submit female collect)Ú@30b2e1af1406c5f5254ddc456a045808796d13417f3b56500b0321a908cd89caÚ@262b6812802deac81dd2be53d69cb32a05eb9296265e9698f02772867ede002fÚ@2d2ae42f8927b6c20fe4463151c3468367852c370a3b7db73ef10f97ce262739Ú@fab0eab3e14b24288b816dd590f21f90700a96306648cb2a031c7451dc5ee616Ú@1ce310832e5acb0359516400a881cf41d94ca60d9a529ce48a1b5f857cde0aa8rŒ   zm/44'/655'/0'/0/{}é    Frc   )re   r�   r   r%   Úbytesrf   r   rm   r    r€   rh   )	r\   Ú
seedphraseÚ	pubs_keysr¤   rj   Úderivation_pathro   r&   Úpub_keys	            r_   Ú#test_cryptosign_key_from_seedphrasez6TestSecurityModule.test_cryptosign_key_from_seedphrasej  s  € àeˆ
ð 
ð  
ð  
ˆ	ð %'ˆÝ�q‘”ð 	ð 	ˆAð
 3×9Ò9¸!Ñ<Ô<ˆOõ .¨j¸/ÑJÔJˆGÝ˜‘=”=¥EÒ)Ð)Ð)Ð)Ý�w‘<”< 2Ò%Ð%Ð%Ð%õ  Ô*¨7Ñ3Ô3ˆCØ�KŠK˜ÑÔÐÐõ �q‘”ð 	4ð 	4ˆAØ˜1”g×(Ò(°Ð(Ñ6Ô6ˆGØ×Ò˜W i°¤lÑ3Ô3Ð3Ð3ð	4ð 	4ra   c           	   #   óö  K  — d}t          j        |¦  «        }|                     ¦   «         V — |                      t	          |¦  «        d¦  «         |                      t          |d         t          ¦  «        d                     t          |d         ¦  «        ¦  «        ¦  «         |                      t          |d         t          ¦  «        d                     t          |d         ¦  «        ¦  «        ¦  «         |                     ¦   «         V — t          j        |dd¬¦  «        }|                     ¦   «         V — |                      t	          |¦  «        d	¦  «         t          d¦  «        D ]0}|                      t          ||         t          ¦  «        ¦  «         Œ1t          dd	¦  «        D ]0}|                      t          ||         t          ¦  «        ¦  «         Œ1|                     ¦   «         V — d S )
Nr­   r2   r   úunexpected type {} at index 0r3   úunexpected type {} at index 1rŒ   )Únum_eth_keysÚnum_cs_keysr   )r   rg   r�   rh   rf   rˆ   r�   r   r�   r%   r   Úclosere   )r\   rµ   r‘   rj   s       r_   Útest_secmod_from_seedphrasez.TestSecurityModule.test_secmod_from_seedphraseŽ  s²  è è € ð fˆ
å!Ô1°*Ñ=Ô=ˆØ�gŠg‰iŒiˆˆˆØ×Ò�˜R™œ !Ñ$Ô$Ð$Ø�Š�
 2 a¤5­+Ñ6Ô6Ð8W×8^Ò8^Õ_cÐdfÐghÔdiÑ_jÔ_jÑ8kÔ8kÑlÔlÐlØ�Š�
 2 a¤5­-Ñ8Ô8Ð:Y×:`Ò:`ÕaeÐfhÐijÔfkÑalÔalÑ:mÔ:mÑnÔnÐnØ�hŠh‰jŒjÐÐÐå!Ô1°*È1ÐZ[Ð\Ñ\Ô\ˆØ�gŠg‰iŒiˆˆˆØ×Ò�˜R™œ "Ñ%Ô%Ð%Ý�q‘”ð 	<ð 	<ˆAØ�OŠO�J r¨!¤u­kÑ:Ô:Ñ;Ô;Ð;Ð;Ý�q˜"‘”ð 	>ð 	>ˆAØ�OŠO�J r¨!¤u­mÑ<Ô<Ñ=Ô=Ð=Ð=Ø�hŠh‰jŒjÐÐÐÐÐra   c           	   #   ó  K  — t          j        dd¦  «        }t          j        |¦  «        }|                     ¦   «         V — |                      t          |¦  «        d¦  «         |                      t          |d         t          ¦  «        d 
                    t          |d         ¦  «        ¦  «        ¦  «         |                      t          |d         t          ¦  «        d 
                    t          |d         ¦  «        ¦  «        ¦  «         |d         }|d         }|                      |                     d¬	¦  «        d
¦  «         |                      |                     d¬	¦  «        d¦  «         |                     ¦   «         V — d S )NÚautobahnzxbr/test/profile/config.inir2   r   r»   r3   r¼   Frc   Ú*0xe59C7418403CF1D973485B36660728a5f4A8fF9cÚ@15cfa4acef5cc312e0b9ba77634849d0a8c6222a546f90eb5123667935d2f561)Úpkg_resourcesÚresource_filenamer   Úfrom_configr�   rh   rf   rˆ   r�   r   r�   r%   r   ri   r€   r¿   )r\   Úconfigr‘   Úkey1Úkey2s        r_   Útest_secmod_from_configz*TestSecurityModule.test_secmod_from_config£  sP  è è € åÔ0°Ð=ZÑ[Ô[ˆå!Ô-¨fÑ5Ô5ˆØ�gŠg‰iŒiˆˆˆØ×Ò�˜R™œ !Ñ$Ô$Ð$à�Š�
 2 a¤5­+Ñ6Ô6Ð8W×8^Ò8^Õ_cÐdfÐghÔdiÑ_jÔ_jÑ8kÔ8kÑlÔlÐlØ�Š�
 2 a¤5­-Ñ8Ô8Ð:Y×:`Ò:`ÕaeÐfhÐijÔfkÑalÔalÑ:mÔ:mÑnÔnÐnà˜qœEˆØ  œeˆð 	×Ò˜Ÿš¨U˜Ñ3Ô3Ð5aÑbÔbÐbØ×Ò˜Ÿš°˜Ñ6Ô6Ð8zÑ{Ô{Ð{à�hŠh‰jŒjÐÐÐÐÐra   c           	   #   ó  K  — t          j        dd¦  «        }t          j        |¦  «        }|                     ¦   «         V — |                      t          |¦  «        d¦  «         |                      t          |d         t          ¦  «        d 
                    t          |d         ¦  «        ¦  «        ¦  «         |                      t          |d         t          ¦  «        d 
                    t          |d         ¦  «        ¦  «        ¦  «         |d         }|d         }|                      |                     d¬	¦  «        d
¦  «         |                      |                     d¬	¦  «        d¦  «         |                     ¦   «         V — d S )NrÂ   zxbr/test/profile/default.privr2   r   r»   r3   r¼   Frc   rÃ   rÄ   )rÅ   rÆ   r   Úfrom_keyfiler�   rh   rf   rˆ   r�   r   r�   r%   r   ri   r€   r¿   )r\   Úkeyfiler‘   rÉ   rÊ   s        r_   Útest_secmod_from_keyfilez+TestSecurityModule.test_secmod_from_keyfile¸  sP  è è € åÔ1°*Ð>]Ñ^Ô^ˆå!Ô.¨wÑ7Ô7ˆØ�gŠg‰iŒiˆˆˆØ×Ò�˜R™œ !Ñ$Ô$Ð$à�Š�
 2 a¤5­+Ñ6Ô6Ð8W×8^Ò8^Õ_cÐdfÐghÔdiÑ_jÔ_jÑ8kÔ8kÑlÔlÐlØ�Š�
 2 a¤5­-Ñ8Ô8Ð:Y×:`Ò:`ÕaeÐfhÐijÔfkÑalÔalÑ:mÔ:mÑnÔnÐnà˜qœEˆØ  œeˆð 	×Ò˜Ÿš¨U˜Ñ3Ô3Ð5aÑbÔbÐbØ×Ò˜Ÿš°˜Ñ6Ô6Ð8zÑ{Ô{Ð{à�hŠh‰jŒjÐÐÐÐÐra   N)Ú__name__Ú
__module__Ú__qualname__r`   rk   rp   rx   r{   r   r~   r‚   r„   rŠ   r“   rž   r¥   r«   r¹   rÀ   rË   rÏ   © ra   r_   r    r    =   sŽ  € € € € € ð
9
ð 9
ð 9
ðvLð Lð Lð4ð 4ð 4ðSð Sð Sð:Sð Sð Sð ð	Sð 	Sñ „_ð	Sð:ð :ð :ð&:ð :ð :ð ð	'ð 	'ñ „_ð	'ð ð(ð (ñ „_ð(ð( ð %ð  %ñ „_ð %ðD ð1ð 1ñ „_ð1ð< ð/ð /ñ „_ð/ð<"4ð "4ð "4ðH ðð ñ „_ðð( ðð ñ „_ðð( ðð ñ „_ðð ð ra   r    )1rQ   ÚsysrÅ   r   r   Úbinasciir   Útypingr   Úunittestr   Útwisted.internet.deferr   Útwisted.trial.unittestr	   Úautobahn.wamp.cryptosignr
   Úautobahn.xbrr   Úpy_eth_sig_utils.eip712r   Úpy_eth_sig_utils.utilsr   r   r   r   Úpy_eth_sig_utils.signingr   r   r   r   r   r   r   Ú$autobahn.xbr._eip712_member_registerr   Ú"autobahn.xbr._eip712_market_creater   Úautobahn.xbr._secmodr   r   rR   rf   Ú
HAS_INFURAÚversion_infoÚminorÚ
IS_CPY_310rS   r    rÓ   ra   r_   ú<module>ræ      s{  ðð6 
€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø +Ð +Ð +Ð +Ð +Ð +à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø  Ð  Ð  Ð  Ð  Ð  à
ð 
7ˆ~ð 
7Ø9Ð9Ð9Ð9Ð9Ð9ØVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVØOÐOÐOÐOÐOÐOÐOÐOØLÐLÐLÐLÐLÐLÐLÐLàJÐJÐJÐJÐJÐJÐJÐJÐJÐJØSÐSÐSÐSÐSÐSØOÐOÐOÐOÐOÐOØ9Ð9Ð9Ð9Ð9Ð9Ø6Ð6Ð6Ð6Ð6Ð6ð &¨¬Ð3Ðe¸¸¸B¼JÐG_Ô<`Ñ8aÔ8aÐdeÒ8e€
ð ÔÔ# rÒ)€
ð €ˆBŒJ�NŠN˜=¨%Ñ0Ô0Ð0Ð2DÑEÔEØ€ˆJˆÐDÑEÔEØ€ˆWÐ'˜Ð(Ð*ZÑ[Ô[ðKð Kð Kð Kð K˜ñ Kô Kñ \Ô[ñ FÔEñ FÔEðKð Kð Kra   