o
    >hT                  
   @   s`  d dl Z z
d dlmZ dZW n ey+ Z ze jde dZW Y dZ[ndZ[ww erd dl	Z	e	
  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 dejZG dd dejZG dd dej Z G dd dej!Z!e"e  e"e  e"e  e"e! e"e! e"e! dS dS )    N)xbrTz,WARNING: could not import autobahn.xbr - {}
F)deferToThread)LoopingCall)ensureDeferred)hl)	IProviderISeller	IConsumerIBuyer	IDelegate)_seller_buyer_blockchainc                   @   s   e Zd Ze ZeZdS )SimpleBlockchainN)__name__
__module____qualname__txaiomake_loggerlogr   backgroundCaller r   r   }/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/twisted/xbr/__init__.pyr   2   s    r   c                       s6   e Zd Ze Zd fdd	Zdd Zdd Z  Z	S )		KeySeriesNc                    s*   t  ||||| d| _d | _d | _d S )NF)super__init__running	_run_loop_started)selfapi_idpriceintervalcount	on_rotate	__class__r   r   r   9   s   
zKeySeries.__init__c                    sd    j du sJ  jjdt jttj jdd d _t	 fdd _  j 
 j _ jS )z\
            Start offering and selling data encryption keys in the background.
            NzGStarting key rotation every {interval} seconds for api_id="{api_id}" ..)bytes)r"   r    Tc                      s   t   S )N)r   _rotater   r   r   r   <lambda>J   s    z!KeySeries.start.<locals>.<lambda>)r   r   infor   	_intervaluuidUUID_api_idr   r   startr   r)   r   r)   r   r0   ?   s   zKeySeries.startc                 C   s.   | j std| 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)   r   r   r   r3   O   s
   
zKeySeries.stop)NNN)
r   r   r   r   r   r   r   r0   r3   __classcell__r   r   r%   r   r   6   s
    r   c                   @   s   e Zd ZdZe ZeZdS )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   r5   [   s    r5   c                   @   s   e Zd Ze ZdS )SimpleBuyerN)r   r   r   r   r   r   r   r   r   r   r7   c   s    r7   )#sysautobahnr   HAS_XBRImportErrorestderrwriter2   r   use_twistedtwisted.internet.threadsr   twisted.internet.taskr   twisted.internet.deferr   r-   autobahn.utilr   autobahn.xbr._interfacesr   r   r	   r
   r   autobahn.xbrr   r   r   r   r   r5   r7   registerr   r   r   r   <module>   s<   %




