Пример #1
0
 def get_quote(self, pair: CurrencyPair, amount: int) -> QuoteData:
     rate = Rate(pair=pair, rate=rates[str(pair)])
     quote_id = QuoteId(uuid4())
     quote = QuoteData(
         quote_id=quote_id,
         rate=rate,
         expires_at=datetime.now() + timedelta(minutes=10),
         amount=amount,
     )
     LpClientMock.QUOTES[quote_id] = quote
     return quote
Пример #2
0
    def get_quote(self, pair: CurrencyPair, amount: int) -> QuoteData:
        data = {
            "base_currency": pair.base.value,
            "quote_currency": pair.quote.value,
            "amount": amount,
        }
        response = requests.post(url=urljoin(self._base_url, "quote"),
                                 json=data)
        raise_if_failed(response, f"Failed to get quote for {data}")

        return QuoteData.from_json(response.text)
Пример #3
0
 def get_quote(self, pair: CurrencyPair, amount: int) -> QuoteData:
     response = requests.post(
         url=urljoin(self._base_url, "quote"),
         json={
             "base_currency": pair.base.value,
             "quote_currency": pair.quote.value,
             "amount": amount,
         },
     )
     response.raise_for_status()
     return QuoteData.from_json(response.text)
Пример #4
0
 def get_quote(pair: CurrencyPair, amount: int) -> QuoteData:
     """
     Get a buy & sell quote for the given currency pair and amount.
     i.e DiemUsd/USD will return the rate that you BUY / SELL
     1 DiemUsd in exchange for USD at some conversion rate.
     :param pair:
     :param amount:
     :return: quote with buy & sell
     """
     storage_quote = create_quote(
         currency_pair=CurrencyPairs.from_pair(pair),
         rate=get_rate(currency_pair=pair).rate,
         amount=amount,
         expires_at=datetime.now() + timedelta(minutes=10),
     )
     return QuoteData(
         quote_id=QuoteId(uuid.UUID(storage_quote.id)),
         rate=Rate(storage_quote.currency_pair.value, storage_quote.rate),
         expires_at=storage_quote.expires_at,
         amount=storage_quote.amount,
     )
Пример #5
0
    def trade_info(trade_id: TradeId) -> TradeData:
        """
        Returns trade execution status for a given trade.
        :param trade_id:
        :return:
        """
        trade = find_trade(trade_id)

        return TradeData(
            trade_id=TradeId(uuid.UUID(trade.id)),
            direction=trade.direction,
            pair=trade.quote.currency_pair.value,
            amount=trade.quote.amount,
            quote=QuoteData(
                quote_id=QuoteId(uuid.UUID(trade.quote.id)),
                rate=Rate(trade.quote.currency_pair.value, trade.quote.rate),
                expires_at=trade.quote.expires_at,
                amount=trade.quote.amount,
            ),
            status=trade.status,
            tx_version=trade.tx_version,
        )
Пример #6
0
        to_xdx_exchange_rate=0.5,
        mint_events_key="",
        burn_events_key="",
        preburn_events_key="",
        cancel_burn_events_key="",
        exchange_rate_update_events_key="",
    ),
]

MOCK_QUOTE = QuoteData(
    quote_id=UUID("f24d20f8-e49c-4303-a736-afec37f7f7f3"),
    rate=Rate(pair=CurrencyPairs.XUS_USD, rate=1040000),
    expires_at=datetime(2020,
                        7,
                        5,
                        16,
                        47,
                        49,
                        452315,
                        tzinfo=timezone(timedelta(seconds=10800), "IDT")),
    amount=100,
)

MOCK_TRADE = TradeId(UUID("f24d20f8-0011-4206-9736-afec37f7f7f3"))

MOCK_LP_DETAILS = LPDetails(
    sub_address="waka" * 8,
    vasp="b" * 32,
    IBAN_number="1" * 64,
)