ccxt 4.4.25 → 4.4.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/alpaca.js +257 -11
- package/dist/cjs/src/base/Exchange.js +14 -1
- package/dist/cjs/src/binance.js +2 -3
- package/dist/cjs/src/bingx.js +7 -1
- package/dist/cjs/src/bitget.js +2 -2
- package/dist/cjs/src/bitmart.js +3 -3
- package/dist/cjs/src/bybit.js +3 -14
- package/dist/cjs/src/cex.js +40 -0
- package/dist/cjs/src/coinex.js +2 -4
- package/dist/cjs/src/digifinex.js +2 -2
- package/dist/cjs/src/exmo.js +1 -0
- package/dist/cjs/src/gate.js +3 -3
- package/dist/cjs/src/htx.js +2 -3
- package/dist/cjs/src/hyperliquid.js +14 -4
- package/dist/cjs/src/kucoin.js +2 -2
- package/dist/cjs/src/okx.js +3 -2
- package/dist/cjs/src/phemex.js +4 -2
- package/dist/cjs/src/pro/exmo.js +216 -3
- package/dist/cjs/src/whitebit.js +2 -2
- package/dist/cjs/src/xt.js +39 -27
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/alpaca.d.ts +1 -0
- package/js/src/abstract/bingx.d.ts +1 -0
- package/js/src/abstract/okx.d.ts +1 -0
- package/js/src/abstract/phemex.d.ts +1 -0
- package/js/src/alpaca.d.ts +6 -1
- package/js/src/alpaca.js +258 -12
- package/js/src/base/Exchange.d.ts +7 -6
- package/js/src/base/Exchange.js +14 -1
- package/js/src/base/types.d.ts +3 -3
- package/js/src/binance.d.ts +3 -14
- package/js/src/binance.js +2 -3
- package/js/src/bingx.js +7 -1
- package/js/src/bitget.d.ts +3 -13
- package/js/src/bitget.js +2 -2
- package/js/src/bitmart.d.ts +3 -13
- package/js/src/bitmart.js +3 -3
- package/js/src/bybit.d.ts +3 -14
- package/js/src/bybit.js +3 -14
- package/js/src/cex.d.ts +2 -0
- package/js/src/cex.js +40 -0
- package/js/src/coinex.d.ts +3 -15
- package/js/src/coinex.js +2 -4
- package/js/src/digifinex.d.ts +3 -13
- package/js/src/digifinex.js +2 -2
- package/js/src/exmo.js +1 -0
- package/js/src/gate.d.ts +3 -13
- package/js/src/gate.js +3 -3
- package/js/src/htx.d.ts +3 -14
- package/js/src/htx.js +2 -3
- package/js/src/hyperliquid.js +14 -4
- package/js/src/kucoin.d.ts +3 -13
- package/js/src/kucoin.js +2 -2
- package/js/src/okx.d.ts +3 -13
- package/js/src/okx.js +3 -2
- package/js/src/phemex.js +4 -2
- package/js/src/pro/exmo.d.ts +5 -1
- package/js/src/pro/exmo.js +216 -3
- package/js/src/whitebit.d.ts +3 -13
- package/js/src/whitebit.js +2 -2
- package/js/src/woo.d.ts +1 -1
- package/js/src/xt.js +39 -27
- package/package.json +1 -1
package/js/src/pro/exmo.js
CHANGED
|
@@ -20,7 +20,7 @@ export default class exmo extends exmoRest {
|
|
|
20
20
|
'watchTickers': true,
|
|
21
21
|
'watchTrades': true,
|
|
22
22
|
'watchMyTrades': true,
|
|
23
|
-
'watchOrders':
|
|
23
|
+
'watchOrders': true,
|
|
24
24
|
'watchOrderBook': true,
|
|
25
25
|
'watchOHLCV': false,
|
|
26
26
|
},
|
|
@@ -573,6 +573,219 @@ export default class exmo extends exmoRest {
|
|
|
573
573
|
this.handleDelta(bookside, deltas[i]);
|
|
574
574
|
}
|
|
575
575
|
}
|
|
576
|
+
async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
577
|
+
/**
|
|
578
|
+
* @method
|
|
579
|
+
* @name exmo#watchOrders
|
|
580
|
+
* @see https://documenter.getpostman.com/view/10287440/SzYXWKPi#85f7bc03-b1c9-4cd2-bd22-8fd422272825
|
|
581
|
+
* @see https://documenter.getpostman.com/view/10287440/SzYXWKPi#95e4ed18-1791-4e6d-83ad-cbfe9be1051c
|
|
582
|
+
* @description watches information on multiple orders made by the user
|
|
583
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
584
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
585
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
586
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
587
|
+
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
588
|
+
*/
|
|
589
|
+
await this.loadMarkets();
|
|
590
|
+
await this.authenticate(params);
|
|
591
|
+
const [type, query] = this.handleMarketTypeAndParams('watchOrders', undefined, params);
|
|
592
|
+
const url = this.urls['api']['ws'][type];
|
|
593
|
+
let messageHash = undefined;
|
|
594
|
+
if (symbol === undefined) {
|
|
595
|
+
messageHash = 'orders:' + type;
|
|
596
|
+
}
|
|
597
|
+
else {
|
|
598
|
+
const market = this.market(symbol);
|
|
599
|
+
symbol = market['symbol'];
|
|
600
|
+
messageHash = 'orders:' + market['symbol'];
|
|
601
|
+
}
|
|
602
|
+
const message = {
|
|
603
|
+
'method': 'subscribe',
|
|
604
|
+
'topics': [
|
|
605
|
+
type + '/orders',
|
|
606
|
+
],
|
|
607
|
+
'id': this.requestId(),
|
|
608
|
+
};
|
|
609
|
+
const request = this.deepExtend(message, query);
|
|
610
|
+
const orders = await this.watch(url, messageHash, request, messageHash, request);
|
|
611
|
+
return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
|
|
612
|
+
}
|
|
613
|
+
handleOrders(client, message) {
|
|
614
|
+
//
|
|
615
|
+
// spot
|
|
616
|
+
// {
|
|
617
|
+
// "ts": 1574427585174,
|
|
618
|
+
// "event": "snapshot",
|
|
619
|
+
// "topic": "spot/orders",
|
|
620
|
+
// "data": [
|
|
621
|
+
// {
|
|
622
|
+
// "order_id": "14",
|
|
623
|
+
// "client_id":"100500",
|
|
624
|
+
// "created": "1574427585",
|
|
625
|
+
// "pair": "BTC_USD",
|
|
626
|
+
// "price": "7750",
|
|
627
|
+
// "quantity": "0.1",
|
|
628
|
+
// "amount": "775",
|
|
629
|
+
// "original_quantity": "0.1",
|
|
630
|
+
// "original_amount": "775",
|
|
631
|
+
// "type": "sell",
|
|
632
|
+
// "status": "open"
|
|
633
|
+
// }
|
|
634
|
+
// ]
|
|
635
|
+
// }
|
|
636
|
+
//
|
|
637
|
+
// margin
|
|
638
|
+
// {
|
|
639
|
+
// "ts":1624371281773,
|
|
640
|
+
// "event":"snapshot",
|
|
641
|
+
// "topic":"margin/orders",
|
|
642
|
+
// "data":[
|
|
643
|
+
// {
|
|
644
|
+
// "order_id":"692844278081168665",
|
|
645
|
+
// "created":"1624371250919761600",
|
|
646
|
+
// "type":"limit_buy",
|
|
647
|
+
// "previous_type":"limit_buy",
|
|
648
|
+
// "pair":"BTC_USD",
|
|
649
|
+
// "leverage":"2",
|
|
650
|
+
// "price":"10000",
|
|
651
|
+
// "stop_price":"0",
|
|
652
|
+
// "distance":"0",
|
|
653
|
+
// "trigger_price":"10000",
|
|
654
|
+
// "init_quantity":"0.1",
|
|
655
|
+
// "quantity":"0.1",
|
|
656
|
+
// "funding_currency":"USD",
|
|
657
|
+
// "funding_quantity":"1000",
|
|
658
|
+
// "funding_rate":"0",
|
|
659
|
+
// "client_id":"111111",
|
|
660
|
+
// "expire":0,
|
|
661
|
+
// "src":1,
|
|
662
|
+
// "comment":"comment1",
|
|
663
|
+
// "updated":1624371250938136600,
|
|
664
|
+
// "status":"active"
|
|
665
|
+
// }
|
|
666
|
+
// ]
|
|
667
|
+
// }
|
|
668
|
+
//
|
|
669
|
+
const topic = this.safeString(message, 'topic');
|
|
670
|
+
const parts = topic.split('/');
|
|
671
|
+
const type = this.safeString(parts, 0);
|
|
672
|
+
const messageHash = 'orders:' + type;
|
|
673
|
+
const event = this.safeString(message, 'event');
|
|
674
|
+
if (this.orders === undefined) {
|
|
675
|
+
const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
|
|
676
|
+
this.orders = new ArrayCacheBySymbolById(limit);
|
|
677
|
+
}
|
|
678
|
+
const cachedOrders = this.orders;
|
|
679
|
+
let rawOrders = [];
|
|
680
|
+
if (event === 'snapshot') {
|
|
681
|
+
rawOrders = this.safeValue(message, 'data', []);
|
|
682
|
+
}
|
|
683
|
+
else if (event === 'update') {
|
|
684
|
+
const rawOrder = this.safeDict(message, 'data', {});
|
|
685
|
+
rawOrders.push(rawOrder);
|
|
686
|
+
}
|
|
687
|
+
const symbols = {};
|
|
688
|
+
for (let j = 0; j < rawOrders.length; j++) {
|
|
689
|
+
const order = this.parseWsOrder(rawOrders[j]);
|
|
690
|
+
cachedOrders.append(order);
|
|
691
|
+
symbols[order['symbol']] = true;
|
|
692
|
+
}
|
|
693
|
+
const symbolKeys = Object.keys(symbols);
|
|
694
|
+
for (let i = 0; i < symbolKeys.length; i++) {
|
|
695
|
+
const symbol = symbolKeys[i];
|
|
696
|
+
const symbolSpecificMessageHash = 'orders:' + symbol;
|
|
697
|
+
client.resolve(cachedOrders, symbolSpecificMessageHash);
|
|
698
|
+
}
|
|
699
|
+
client.resolve(cachedOrders, messageHash);
|
|
700
|
+
}
|
|
701
|
+
parseWsOrder(order, market = undefined) {
|
|
702
|
+
//
|
|
703
|
+
// {
|
|
704
|
+
// order_id: '43226756791',
|
|
705
|
+
// client_id: 0,
|
|
706
|
+
// created: '1730371416',
|
|
707
|
+
// type: 'market_buy',
|
|
708
|
+
// pair: 'TRX_USD',
|
|
709
|
+
// quantity: '0',
|
|
710
|
+
// original_quantity: '30',
|
|
711
|
+
// status: 'cancelled',
|
|
712
|
+
// last_trade_id: '726480870',
|
|
713
|
+
// last_trade_price: '0.17',
|
|
714
|
+
// last_trade_quantity: '30'
|
|
715
|
+
// }
|
|
716
|
+
//
|
|
717
|
+
const id = this.safeString(order, 'order_id');
|
|
718
|
+
const timestamp = this.safeTimestamp(order, 'created');
|
|
719
|
+
const orderType = this.safeString(order, 'type');
|
|
720
|
+
const side = this.parseSide(orderType);
|
|
721
|
+
const marketId = this.safeString(order, 'pair');
|
|
722
|
+
market = this.safeMarket(marketId, market);
|
|
723
|
+
const symbol = market['symbol'];
|
|
724
|
+
let amount = this.safeString(order, 'quantity');
|
|
725
|
+
if (amount === undefined) {
|
|
726
|
+
const amountField = (side === 'buy') ? 'in_amount' : 'out_amount';
|
|
727
|
+
amount = this.safeString(order, amountField);
|
|
728
|
+
}
|
|
729
|
+
const price = this.safeString(order, 'price');
|
|
730
|
+
const clientOrderId = this.omitZero(this.safeString(order, 'client_id'));
|
|
731
|
+
const triggerPrice = this.omitZero(this.safeString(order, 'stop_price'));
|
|
732
|
+
let type = undefined;
|
|
733
|
+
if ((orderType !== 'buy') && (orderType !== 'sell')) {
|
|
734
|
+
type = orderType;
|
|
735
|
+
}
|
|
736
|
+
let trades = undefined;
|
|
737
|
+
if ('last_trade_id' in order) {
|
|
738
|
+
const trade = this.parseWsTrade(order, market);
|
|
739
|
+
trades = [trade];
|
|
740
|
+
}
|
|
741
|
+
return this.safeOrder({
|
|
742
|
+
'id': id,
|
|
743
|
+
'clientOrderId': clientOrderId,
|
|
744
|
+
'datetime': this.iso8601(timestamp),
|
|
745
|
+
'timestamp': timestamp,
|
|
746
|
+
'lastTradeTimestamp': undefined,
|
|
747
|
+
'status': this.parseStatus(this.safeString(order, 'status')),
|
|
748
|
+
'symbol': symbol,
|
|
749
|
+
'type': type,
|
|
750
|
+
'timeInForce': undefined,
|
|
751
|
+
'postOnly': undefined,
|
|
752
|
+
'side': side,
|
|
753
|
+
'price': price,
|
|
754
|
+
'stopPrice': triggerPrice,
|
|
755
|
+
'triggerPrice': triggerPrice,
|
|
756
|
+
'cost': undefined,
|
|
757
|
+
'amount': this.safeString(order, 'original_quantity'),
|
|
758
|
+
'filled': undefined,
|
|
759
|
+
'remaining': this.safeString(order, 'quantity'),
|
|
760
|
+
'average': undefined,
|
|
761
|
+
'trades': trades,
|
|
762
|
+
'fee': undefined,
|
|
763
|
+
'info': order,
|
|
764
|
+
}, market);
|
|
765
|
+
}
|
|
766
|
+
parseWsTrade(trade, market = undefined) {
|
|
767
|
+
const id = this.safeString(trade, 'order_id');
|
|
768
|
+
const orderType = this.safeString(trade, 'type');
|
|
769
|
+
const side = this.parseSide(orderType);
|
|
770
|
+
const marketId = this.safeString(trade, 'pair');
|
|
771
|
+
market = this.safeMarket(marketId, market);
|
|
772
|
+
const symbol = market['symbol'];
|
|
773
|
+
let type = undefined;
|
|
774
|
+
if ((orderType !== 'buy') && (orderType !== 'sell')) {
|
|
775
|
+
type = orderType;
|
|
776
|
+
}
|
|
777
|
+
return this.safeTrade({
|
|
778
|
+
'id': this.safeString(trade, 'last_trade_id'),
|
|
779
|
+
'symbol': symbol,
|
|
780
|
+
'order': id,
|
|
781
|
+
'type': type,
|
|
782
|
+
'side': side,
|
|
783
|
+
'price': this.safeString(trade, 'last_trade_price'),
|
|
784
|
+
'amount': this.safeString(trade, 'last_trade_quantity'),
|
|
785
|
+
'cost': undefined,
|
|
786
|
+
'fee': undefined,
|
|
787
|
+
}, market);
|
|
788
|
+
}
|
|
576
789
|
handleMessage(client, message) {
|
|
577
790
|
//
|
|
578
791
|
// {
|
|
@@ -613,8 +826,8 @@ export default class exmo extends exmoRest {
|
|
|
613
826
|
'spot/trades': this.handleTrades,
|
|
614
827
|
'margin/trades': this.handleTrades,
|
|
615
828
|
'spot/order_book_updates': this.handleOrderBook,
|
|
616
|
-
|
|
617
|
-
|
|
829
|
+
'spot/orders': this.handleOrders,
|
|
830
|
+
'margin/orders': this.handleOrders,
|
|
618
831
|
'spot/user_trades': this.handleMyTrades,
|
|
619
832
|
'margin/user_trades': this.handleMyTrades,
|
|
620
833
|
};
|
package/js/src/whitebit.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/whitebit.js';
|
|
2
|
-
import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num, Currencies, TradingFees, Dict, int, FundingRate, FundingRates, DepositAddress } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num, Currencies, TradingFees, Dict, int, FundingRate, FundingRates, DepositAddress, BorrowInterest } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class whitebit
|
|
5
5
|
* @augments Exchange
|
|
@@ -57,18 +57,8 @@ export default class whitebit extends Exchange {
|
|
|
57
57
|
parseTransactionStatus(status: Str): string;
|
|
58
58
|
fetchDeposit(id: string, code?: Str, params?: {}): Promise<Transaction>;
|
|
59
59
|
fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
|
|
60
|
-
fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<
|
|
61
|
-
parseBorrowInterest(info: Dict, market?: Market):
|
|
62
|
-
symbol: string;
|
|
63
|
-
marginMode: string;
|
|
64
|
-
currency: string;
|
|
65
|
-
interest: number;
|
|
66
|
-
interestRate: number;
|
|
67
|
-
amountBorrowed: number;
|
|
68
|
-
timestamp: number;
|
|
69
|
-
datetime: string;
|
|
70
|
-
info: Dict;
|
|
71
|
-
};
|
|
60
|
+
fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
|
|
61
|
+
parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
|
|
72
62
|
fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
|
|
73
63
|
fetchFundingRates(symbols?: Strings, params?: {}): Promise<FundingRates>;
|
|
74
64
|
parseFundingRate(contract: any, market?: Market): FundingRate;
|
package/js/src/whitebit.js
CHANGED
|
@@ -2360,15 +2360,15 @@ export default class whitebit extends Exchange {
|
|
|
2360
2360
|
const symbol = this.safeSymbol(marketId, market, '_');
|
|
2361
2361
|
const timestamp = this.safeTimestamp(info, 'modifyDate');
|
|
2362
2362
|
return {
|
|
2363
|
+
'info': info,
|
|
2363
2364
|
'symbol': symbol,
|
|
2364
|
-
'marginMode': 'cross',
|
|
2365
2365
|
'currency': 'USDT',
|
|
2366
2366
|
'interest': this.safeNumber(info, 'unrealizedFunding'),
|
|
2367
2367
|
'interestRate': 0.00098,
|
|
2368
2368
|
'amountBorrowed': this.safeNumber(info, 'amount'),
|
|
2369
|
+
'marginMode': 'cross',
|
|
2369
2370
|
'timestamp': timestamp,
|
|
2370
2371
|
'datetime': this.iso8601(timestamp),
|
|
2371
|
-
'info': info,
|
|
2372
2372
|
};
|
|
2373
2373
|
}
|
|
2374
2374
|
async fetchFundingRate(symbol, params = {}) {
|
package/js/src/woo.d.ts
CHANGED
|
@@ -69,7 +69,7 @@ export default class woo extends Exchange {
|
|
|
69
69
|
parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
|
|
70
70
|
parseTransferStatus(status: Str): Str;
|
|
71
71
|
withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
|
|
72
|
-
repayMargin(code: string, amount:
|
|
72
|
+
repayMargin(code: string, amount: number, symbol?: Str, params?: {}): Promise<any>;
|
|
73
73
|
parseMarginLoan(info: any, currency?: Currency): {
|
|
74
74
|
id: any;
|
|
75
75
|
currency: string;
|
package/js/src/xt.js
CHANGED
|
@@ -1973,6 +1973,17 @@ export default class xt extends Exchange {
|
|
|
1973
1973
|
// "b": true
|
|
1974
1974
|
// }
|
|
1975
1975
|
//
|
|
1976
|
+
// spot: watchTrades
|
|
1977
|
+
//
|
|
1978
|
+
// {
|
|
1979
|
+
// s: 'btc_usdt',
|
|
1980
|
+
// i: '228825383103928709',
|
|
1981
|
+
// t: 1684258222702,
|
|
1982
|
+
// p: '27003.65',
|
|
1983
|
+
// q: '0.000796',
|
|
1984
|
+
// b: true
|
|
1985
|
+
// }
|
|
1986
|
+
//
|
|
1976
1987
|
// spot: watchMyTrades
|
|
1977
1988
|
//
|
|
1978
1989
|
// {
|
|
@@ -1985,17 +1996,6 @@ export default class xt extends Exchange {
|
|
|
1985
1996
|
// "v": "90000" // volume trade amount
|
|
1986
1997
|
// }
|
|
1987
1998
|
//
|
|
1988
|
-
// spot: watchTrades
|
|
1989
|
-
//
|
|
1990
|
-
// {
|
|
1991
|
-
// s: 'btc_usdt',
|
|
1992
|
-
// i: '228825383103928709',
|
|
1993
|
-
// t: 1684258222702,
|
|
1994
|
-
// p: '27003.65',
|
|
1995
|
-
// q: '0.000796',
|
|
1996
|
-
// b: true
|
|
1997
|
-
// }
|
|
1998
|
-
//
|
|
1999
1999
|
// swap and future: fetchTrades
|
|
2000
2000
|
//
|
|
2001
2001
|
// {
|
|
@@ -2075,22 +2075,34 @@ export default class xt extends Exchange {
|
|
|
2075
2075
|
marketType = hasSpotKeys ? 'spot' : 'contract';
|
|
2076
2076
|
}
|
|
2077
2077
|
market = this.safeMarket(marketId, market, '_', marketType);
|
|
2078
|
-
|
|
2079
|
-
let
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2078
|
+
let side = undefined;
|
|
2079
|
+
let takerOrMaker = undefined;
|
|
2080
|
+
const isBuyerMaker = this.safeBool(trade, 'b');
|
|
2081
|
+
if (isBuyerMaker !== undefined) {
|
|
2082
|
+
side = isBuyerMaker ? 'sell' : 'buy';
|
|
2083
|
+
takerOrMaker = 'taker'; // public trades always taker
|
|
2084
|
+
}
|
|
2085
|
+
else {
|
|
2086
|
+
const takerMaker = this.safeStringLower(trade, 'takerMaker');
|
|
2087
|
+
if (takerMaker !== undefined) {
|
|
2088
|
+
takerOrMaker = takerMaker;
|
|
2089
|
+
}
|
|
2090
|
+
else {
|
|
2091
|
+
const isMaker = this.safeBool(trade, 'isMaker');
|
|
2092
|
+
if (isMaker !== undefined) {
|
|
2093
|
+
takerOrMaker = isMaker ? 'maker' : 'taker';
|
|
2094
|
+
}
|
|
2095
|
+
}
|
|
2096
|
+
const orderSide = this.safeStringLower(trade, 'orderSide');
|
|
2097
|
+
if (orderSide !== undefined) {
|
|
2098
|
+
side = orderSide;
|
|
2099
|
+
}
|
|
2100
|
+
else {
|
|
2101
|
+
const bidOrAsk = this.safeString(trade, 'm');
|
|
2102
|
+
if (bidOrAsk !== undefined) {
|
|
2103
|
+
side = (bidOrAsk === 'BID') ? 'buy' : 'sell';
|
|
2104
|
+
}
|
|
2105
|
+
}
|
|
2094
2106
|
}
|
|
2095
2107
|
const timestamp = this.safeIntegerN(trade, ['t', 'time', 'timestamp']);
|
|
2096
2108
|
const quantity = this.safeString2(trade, 'q', 'quantity');
|
package/package.json
CHANGED