(self, trade: dict, market: Market = None)
| 742 | return self.parse_trades(rows, market, since, limit) |
| 743 | |
| 744 | def parse_trade(self, trade: dict, market: Market = None) -> Trade: |
| 745 | # |
| 746 | # public/market_trades |
| 747 | # |
| 748 | # { |
| 749 | # "symbol": "SPOT_BTC_USDT", |
| 750 | # "side": "SELL", |
| 751 | # "source": 0, |
| 752 | # "executedPrice": "108741.01", |
| 753 | # "executedQuantity": "0.02477", |
| 754 | # "executedTimestamp": 1751513940144 |
| 755 | # } |
| 756 | # |
| 757 | # fetchOrderTrades, fetchOrder |
| 758 | # |
| 759 | # { |
| 760 | # "id": 1734947821, |
| 761 | # "symbol": "SPOT_LTC_USDT", |
| 762 | # "orderId": 60780383217, |
| 763 | # "executedPrice": 87.86, |
| 764 | # "executedQuantity": 0.1, |
| 765 | # "fee": 0.0001, |
| 766 | # "realizedPnl": null, |
| 767 | # "feeAsset": "LTC", |
| 768 | # "orderTag": "default", |
| 769 | # "side": "BUY", |
| 770 | # "executedTimestamp": "1752055173.630", |
| 771 | # "isMaker": 0 |
| 772 | # } |
| 773 | # |
| 774 | isFromFetchOrder = ('id' in trade) |
| 775 | timestampString = self.safe_string_2(trade, 'executed_timestamp', 'executedTimestamp') |
| 776 | timestamp = None |
| 777 | if timestampString is not None: |
| 778 | if timestampString.find('.') > -1: |
| 779 | timestamp = self.safe_timestamp_2(trade, 'executed_timestamp', 'executedTimestamp') |
| 780 | else: |
| 781 | timestamp = self.safe_integer(trade, 'executedTimestamp') |
| 782 | marketId = self.safe_string(trade, 'symbol') |
| 783 | market = self.safe_market(marketId, market) |
| 784 | symbol = market['symbol'] |
| 785 | price = self.safe_string_2(trade, 'executed_price', 'executedPrice') |
| 786 | amount = self.safe_string_2(trade, 'executed_quantity', 'executedQuantity') |
| 787 | order_id = self.safe_string_2(trade, 'order_id', 'orderId') |
| 788 | fee = self.parse_token_and_fee_temp(trade, ['fee_asset', 'feeAsset'], ['fee']) |
| 789 | feeCost = self.safe_string(fee, 'cost') |
| 790 | if (fee is not None) and (feeCost is not None): |
| 791 | fee['cost'] = feeCost |
| 792 | cost = Precise.string_mul(price, amount) |
| 793 | side = self.safe_string_lower(trade, 'side') |
| 794 | id = self.safe_string(trade, 'id') |
| 795 | takerOrMaker = None |
| 796 | if isFromFetchOrder: |
| 797 | isMaker = self.safe_string_2(trade, 'is_maker', 'isMaker') == '1' |
| 798 | takerOrMaker = 'maker' if isMaker else 'taker' |
| 799 | return self.safe_trade({ |
| 800 | 'id': id, |
| 801 | 'timestamp': timestamp, |
nothing calls this directly
no test coverage detected