Skip to content

Commit

Permalink
Add fetchMyTrades to Huobi Pro
Browse files Browse the repository at this point in the history
  • Loading branch information
joncinque committed Jul 17, 2018
1 parent a9cc695 commit 7006a1f
Showing 1 changed file with 43 additions and 11 deletions.
54 changes: 43 additions & 11 deletions js/huobipro.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ module.exports = class huobipro extends Exchange {
'CORS': false,
'fetchDepositAddress': true,
'fetchOHLCV': true,
'fetchOrder': true,
'fetchOrders': true,
'fetchOpenOrders': true,
'fetchClosedOrders': true,
'fetchOrder': true,
'fetchOrders': false,
'fetchTradingLimits': true,
'fetchMyTrades': true,
'withdraw': true,
'fetchCurrencies': true,
},
Expand Down Expand Up @@ -316,22 +317,53 @@ module.exports = class huobipro extends Exchange {
return this.parseTicker (response['tick'], market);
}

parseTrade (trade, market) {
let timestamp = trade['ts'];
parseTrade (trade, market = undefined) {
let symbol = undefined;
if (typeof market === 'undefined') {
if ('symbol' in trade) {
let marketId = trade['symbol'];
if (marketId in this.markets_by_id)
market = this.markets_by_id[marketId];
}
}
if (market)
symbol = market['symbol'];
let timestamp = this.safeInteger (trade, 'ts');
timestamp = this.safeInteger (trade, 'created-at', timestamp);
let order = this.safeString (trade, 'order-id');
let side = trade['direction'];
let type = undefined;
if ('type' in trade) {
[ side, type ] = trade['type'].split ('-');
}
let amount = this.safeFloat (trade, 'amount');
amount = this.safeFloat (trade, 'filled-amount', amount);
return {
'info': trade,
'id': trade['id'].toString (),
'order': undefined,
'id': this.safeString (trade, 'id'),
'order': order,
'timestamp': timestamp,
'datetime': this.iso8601 (timestamp),
'symbol': market['symbol'],
'type': undefined,
'side': trade['direction'],
'price': trade['price'],
'amount': trade['amount'],
'symbol': symbol,
'type': type,
'side': side,
'price': this.safeFloat (trade, 'price'),
'amount': amount,
};
}

async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) {
await this.loadMarkets ();
let response = await this.privateGetOrderMatchresults (params);
let trades = this.parseTrades (response['data'], undefined, since, limit);
if (typeof symbol !== 'undefined') {
if (!(symbol in this.markets))
throw new ExchangeError (this.id + ' has no symbol ' + symbol);
trades = this.filterBySymbol (trades, symbol);
}
return trades;
}

async fetchTrades (symbol, since = undefined, limit = 1000, params = {}) {
await this.loadMarkets ();
let market = this.market (symbol);
Expand Down

0 comments on commit 7006a1f

Please sign in to comment.