
    hT                        d dl Z 	 d dlmZ dZer
d 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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jB                        Z! ejD                  e         ejD                  e         ejD                  e         ejD                  e!        ejD                  e!        ejD                  e!       yy# e$ r7Ze j                  j                  dj                  e             dZY dZ[EdZ[ww xY w)    N)xbrTz,WARNING: could not import autobahn.xbr - {}
F)deferToThread)LoopingCall)ensureDeferred)hl)	IProviderISeller	IConsumerIBuyer	IDelegate)_seller_buyer_blockchainc                   2    e Zd Z ej                         ZeZy)SimpleBlockchainN)__name__
__module____qualname__txaiomake_loggerlogr   backgroundCaller     Y/var/www/Befach/backend/env/lib/python3.12/site-packages/autobahn/twisted/xbr/__init__.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                 V    t         |   |||||       d| _        d | _        d | _        y )NF)super__init__running	_run_loop_started)selfapi_idpriceintervalcount	on_rotate	__class__s         r   r    zKeySeries.__init__9   s-    GVUHeYG 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    1Or   )r"   r   infor   	_intervaluuidUUID_api_idr!   r   startr#   r/   s   `r   r6   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   r:   zKeySeries.stopO   sP     >>"#K#R#RSWSaSaSjSj#kllNN!!DN== r   )NNN)
r   r   r   r   r   r   r    r6   r:   __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writer9   r   use_twistedtwisted.internet.threadsr   twisted.internet.taskr   twisted.internet.deferr   r3   autobahn.utilr   autobahn.xbr._interfacesr   r	   r
   r   r   autobahn.xbrr   r   r   r   r   r=   r@   registerr   r   r   <module>rP      s,  6 G E615 YY99);77 )#!G%% #!Jw++ "f(( " G\"I|$I|$FOOK I{#I{#M   JJDKKANOGs   D E!,EE