
    8'h                        d dl Z d dlZ ej                  e j                         G d de             Z ej                  e j                         G d de             Z ej                  e j                         G d de             Z ej                  e j                         G d d	e             Z ej                  e j                         G d
 de             Z	y)    Nc                      e Zd ZdZej
                  d        Zej
                  d        Zej
                  d        Zej
                  d        Z	ej
                  d        Z
ej
                  d        Zej
                  d        Zy	)
IMarketMakerz%
    XBR Market Maker interface.
    c                      y)z3

        :param details:
        :return:
        N )selfdetailss     T/var/www/html/trade_iq/venv/lib/python3.12/site-packages/autobahn/xbr/_interfaces.pystatuszIMarketMaker.status%           c                      y)z`

        :param key_id:
        :param price:
        :param details:
        :return:
        Nr   )r   key_idpricer   s       r	   offerzIMarketMaker.offer-   r   r   c                      yzJ

        :param key_id:
        :param details:
        :return:
        Nr   r   r   r   s      r	   revokezIMarketMaker.revoke7   r   r   c                      yr   r   r   s      r	   quotezIMarketMaker.quote@   r   r   c	                      y)z

        :param channel_id:
        :param channel_seq:
        :param buyer_pubkey:
        :param datakey_id:
        :param amount:
        :param balance:
        :param signature:
        :param details:
        :return:
        Nr   )	r   
channel_idchannel_seqbuyer_pubkey
datakey_idamountbalance	signaturer   s	            r	   buyzIMarketMaker.buyI   r   r   c                      y)zK

        :param address:
        :param details:
        :return:
        Nr   )r   addressr   s      r	   get_payment_channelsz!IMarketMaker.get_payment_channelsX   r   r   c                      y)zN

        :param channel_id:
        :param details:
        :return:
        Nr   )r   r   r   s      r	   get_payment_channelz IMarketMaker.get_payment_channela   r   r   N)__name__
__module____qualname____doc__abcabstractmethodr
   r   r   r   r   r"   r$   r   r   r	   r   r      s     	  	  	  	  	  	  	 r   r   c                   4    e Zd ZdZej
                  d        Zy)	IProviderz!
    XBR Provider interface.
    c                      y)z

        :param key_id:
        :param buyer_pubkey:
        :param amount_paid:
        :param post_balance:
        :param signature:
        :param details:
        :return:
        Nr   )r   r   r   amount_paidpost_balancer   r   s          r	   sellzIProvider.sellq   r   r   N)r%   r&   r'   r(   r)   r*   r0   r   r   r	   r,   r,   k   s!     	
 
r   r,   c                       e Zd ZdZy)	IConsumerz!
    XBR Consumer interface.
    N)r%   r&   r'   r(   r   r   r	   r2   r2      s    r   r2   c                   X    e Zd ZdZej
                  d        Zej
                  d        Zy)ISellerz
    XBR Seller interface.
    c                    K   yw)z3

        :param session:
        :return:
        Nr   r   sessions     r	   startzISeller.start           c                    K   yw)zG

        :param uri:
        :param payload:
        :return:
        Nr   )r   uripayloads      r	   wrapzISeller.wrap   r9   r:   N)r%   r&   r'   r(   r)   r*   r8   r>   r   r   r	   r4   r4      s;     	  	 r   r4   c                   X    e Zd ZdZej
                  d        Zej
                  d        Zy)IBuyerz
    XBR Buyer interface.
    c                    K   yw)z
        Start buying keys over the provided session.

        :param session: WAMP session that allows to talk to the XBR Market Maker.
        Nr   r6   s     r	   r8   zIBuyer.start   r9   r:   c                    K   yw)a  
        Decrypt and deserialize received XBR payload.

        :param key_id: The ID of the datakey the payload is encrypted with.
        :type key_id: bytes

        :param enc_ser: The serializer that was used for serializing the payload. One of ``cbor``, ``json``, ``msgpack``, ``ubjson``.
        :type enc_ser: str

        :param ciphertext: The encrypted payload to unwrap.
        :type ciphertext: bytes

        :returns: The unwrapped application payload.
        :rtype: object
        Nr   )r   r   enc_ser
ciphertexts       r	   unwrapzIBuyer.unwrap   r9   r:   N)r%   r&   r'   r(   r)   r*   r8   rE   r   r   r	   r@   r@      s;     	  	 r   r@   )
r)   sixadd_metaclassABCMetaobjectr   r,   r2   r4   r@   r   r   r	   <module>rJ      s   6  
 3;;H6 H  HV 3;;   & 3;;    3;;f   . 3;;V   r   