(self, order, market=None)
| 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') |
no test coverage detected