MCPcopy Create free account
hub / github.com/ccxt/ccxt / parse_order

Method parse_order

python/ccxt/foxbit.py:1682–1733  ·  view source on GitHub ↗
(self, order, market=None)

Source from the content-addressed store, hash-verified

1680 return self.safe_string(statuses, status, status)
1681
1682 def parse_order(self, order, market=None) -> Order:
1683 symbol = self.safe_string(order, 'market_symbol')
1684 if market is None and symbol is not None:
1685 market = self.market(symbol)
1686 if market is not None:
1687 symbol = market['symbol']
1688 timestamp = self.parse_date(self.safe_string(order, 'created_at'))
1689 price = self.safe_string(order, 'price')
1690 filled = self.safe_string(order, 'quantity_executed')
1691 remaining = self.safe_string(order, 'quantity')
1692 # TODO: validate logic of amount here, should self be calculated?
1693 amount = None
1694 if remaining is not None and filled is not None:
1695 amount = Precise.string_add(remaining, filled)
1696 cost = self.safe_string(order, 'funds_received')
1697 if not cost:
1698 priceAverage = self.safe_string(order, 'price_avg')
1699 priceToCalculate = self.safe_string(order, 'price', priceAverage)
1700 cost = Precise.string_mul(priceToCalculate, amount)
1701 side = self.safe_string_lower(order, 'side')
1702 feeCurrency = self.safe_string_upper(market, 'quoteId')
1703 if side == 'buy':
1704 feeCurrency = self.safe_string_upper(market, 'baseId')
1705 return self.safe_order({
1706 'id': self.safe_string(order, 'id'),
1707 'info': order,
1708 'clientOrderId': self.safe_string(order, 'client_order_id'),
1709 'timestamp': timestamp,
1710 'datetime': self.iso8601(timestamp),
1711 'lastTradeTimestamp': None,
1712 'status': self.parse_order_status(self.safe_string(order, 'state')),
1713 'symbol': self.safe_string(market, 'symbol'),
1714 'type': self.safe_string(order, 'type'),
1715 'timeInForce': self.safe_string(order, 'time_in_force'),
1716 'postOnly': self.safe_bool(order, 'post_only'),
1717 'reduceOnly': None,
1718 'side': side,
1719 'price': self.parse_number(price),
1720 'triggerPrice': self.safe_number(order, 'stop_price'),
1721 'takeProfitPrice': None,
1722 'stopLossPrice': None,
1723 'cost': self.parse_number(cost),
1724 'average': self.safe_number(order, 'price_avg'),
1725 'amount': self.parse_number(amount),
1726 'filled': self.parse_number(filled),
1727 'remaining': self.parse_number(remaining),
1728 'trades': None,
1729 'fee': {
1730 'currency': feeCurrency,
1731 'cost': self.safe_number(order, 'fee_paid'),
1732 },
1733 })
1734
1735 def parse_deposit_address(self, depositAddress, currency: Currency = None):
1736 network = self.safe_dict(depositAddress, 'network')

Callers 4

create_orderMethod · 0.95
cancel_orderMethod · 0.95
fetch_orderMethod · 0.95
edit_orderMethod · 0.95

Calls 13

parse_order_statusMethod · 0.95
safe_stringMethod · 0.80
parse_dateMethod · 0.80
string_addMethod · 0.80
string_mulMethod · 0.80
safe_string_lowerMethod · 0.80
safe_string_upperMethod · 0.80
safe_orderMethod · 0.80
safe_boolMethod · 0.80
parse_numberMethod · 0.80
safe_numberMethod · 0.80
marketMethod · 0.45

Tested by

no test coverage detected