
    8'h                     h   d dl Z 	 d dlmZ dZerd dl	Z	 e	j                          d dlmZ d dlmZ d dlmZ d dlZd d	lmZ d d
lmZmZmZmZ d dlmZmZmZ  G d dej:                        Z G d dej<                        Z G d dej>                        Z G d dej@                        Z  ejB                  e        ejB                  e        ejB                  e         ejB                  e        yy# e$ r7Ze j                  j                  dj                  e             dZY dZ[dZ[ww xY w)    N)xbrTz,WARNING: could not import autobahn.xbr - {}
F)deferToThread)LoopingCall)ensureDeferred)hl)	IProviderISeller	IConsumerIBuyer)_seller_buyer_blockchainc                   2    e Zd Z ej                         ZeZy)SimpleBlockchainN)__name__
__module____qualname__txaiomake_loggerlogr   backgroundCaller     P/var/www/html/trade_iq/venv/lib/python3.12/site-packages/autobahn/twisted/xbr.pyr   r   2   s    e!(r   r   c                   N     e Zd Z ej                         Zd fd	Zd Zd Z xZ	S )	KeySeriesc                 T    t         |   ||||       d| _        d | _        d | _        y )NF)super__init__running	_run_loop_started)selfapi_idpriceinterval	on_rotate	__class__s        r   r   zKeySeries.__init__9   s+    GVUHi@ DL!DN DMr   c           	      x   K    j                   J  j                  j                  dt         j                        t        t        j                   j                                     d _        t         fd       _          j                   j                   j                         _         j                  S w)z\
            Start offering and selling data encryption keys in the background.
            zGStarting key rotation every {interval} seconds for api_id="{api_id}" ..)bytes)r&   r$   Tc                  6    t         j                               S N)r   _rotater#   s   r   <lambda>z!KeySeries.start.<locals>.<lambda>J   s    1O r   )r!   r   infor   	_intervaluuidUUID_api_idr    r   startr"   r.   s   `r   r5   zKeySeries.start?   s      >>)))HHMMc#%dnn#5bQUQ]Q]A^>_  a  DL()OPDN NN00@DM== s   B7B:c                     | j                   s.t        dj                  | j                  j                              | j                   j                          d| _         | j                  S )zE
            Stop offering/selling data encryption keys.
            z&cannot stop {} - not currently runningN)r!   RuntimeErrorformatr(   r   stopr"   r.   s    r   r9   zKeySeries.stopO   sP     >>"#K#R#RSWSaSaSjSj#kllNN!!DN== r   r,   )
r   r   r   r   r   r   r   r5   r9   __classcell__)r(   s   @r   r   r   6   s"    e!	!	! 
	!r   r   c                   6    e Zd ZdZ ej
                         ZeZy)SimpleSellerz
        Simple XBR seller component. This component can be used by a XBR seller delegate to
        handle the automated selling of data encryption keys to the XBR market maker.
        N)r   r   r   __doc__r   r   r   r   r   r   r   r<   r<   [   s    	  e!	r   r<   c                   .    e Zd Z ej                         Zy)SimpleBuyerN)r   r   r   r   r   r   r   r   r   r?   r?   c   s    e!r   r?   )"sysautobahnr   HAS_XBRImportErrorestderrwriter8   r   use_twistedtwisted.internet.threadsr   twisted.internet.taskr   twisted.internet.deferr   r2   autobahn.xbr._utilr   autobahn.xbr._interfacesr   r	   r
   r   autobahn.xbrr   r   r   r   r   r<   r?   registerr   r   r   <module>rO      s  6 G E615%NN99);77 )#!G%% #!Jw++ "f(( " G\"I|$FOOK I{#I   JJDKKANOGs   C5 5D1:,D,,D1