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
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)
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)
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, )
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, )
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, )