ccxt 4.1.32 → 4.1.34
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/build.sh +5 -2
- package/dist/ccxt.browser.js +237 -132
- package/dist/ccxt.browser.min.js +9 -9
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +4 -1
- package/dist/cjs/src/base/functions/misc.js +6 -0
- package/dist/cjs/src/binance.js +3 -3
- package/dist/cjs/src/bitforex.js +1 -1
- package/dist/cjs/src/bitmex.js +16 -22
- package/dist/cjs/src/digifinex.js +81 -1
- package/dist/cjs/src/krakenfutures.js +2 -2
- package/dist/cjs/src/pro/bitget.js +1 -1
- package/dist/cjs/src/pro/coinex.js +1 -1
- package/dist/cjs/src/pro/hitbtc.js +4 -6
- package/dist/cjs/src/pro/huobi.js +3 -0
- package/dist/cjs/src/pro/woo.js +5 -2
- package/dist/cjs/src/upbit.js +8 -6
- package/dist/cjs/src/wavesexchange.js +6 -7
- package/dist/cjs/src/woo.js +16 -8
- package/dist/cjs/src/zonda.js +37 -30
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bitbay.d.ts +2 -0
- package/js/src/abstract/digifinex.d.ts +14 -0
- package/js/src/abstract/zonda.d.ts +2 -0
- package/js/src/base/Exchange.d.ts +1 -1
- package/js/src/base/Exchange.js +7 -2
- package/js/src/base/errorHierarchy.d.ts +2 -0
- package/js/src/base/errorHierarchy.js +2 -0
- package/js/src/base/functions/misc.js +6 -0
- package/js/src/binance.js +3 -3
- package/js/src/bitforex.js +1 -1
- package/js/src/bitmex.js +16 -22
- package/js/src/digifinex.d.ts +10 -0
- package/js/src/digifinex.js +81 -1
- package/js/src/krakenfutures.js +2 -2
- package/js/src/pro/bitget.js +1 -1
- package/js/src/pro/coinex.js +1 -1
- package/js/src/pro/hitbtc.js +4 -6
- package/js/src/pro/huobi.js +3 -0
- package/js/src/pro/woo.js +5 -2
- package/js/src/upbit.js +8 -6
- package/js/src/wavesexchange.js +6 -7
- package/js/src/woo.d.ts +1 -0
- package/js/src/woo.js +16 -8
- package/js/src/zonda.js +37 -30
- package/package.json +4 -2
package/dist/cjs/src/zonda.js
CHANGED
|
@@ -101,7 +101,7 @@ class zonda extends zonda$1 {
|
|
|
101
101
|
'3d': '259200',
|
|
102
102
|
'1w': '604800',
|
|
103
103
|
},
|
|
104
|
-
'hostname': '
|
|
104
|
+
'hostname': 'zondacrypto.exchange',
|
|
105
105
|
'urls': {
|
|
106
106
|
'referral': 'https://auth.zondaglobal.com/ref/jHlbB4mIkdS1',
|
|
107
107
|
'logo': 'https://user-images.githubusercontent.com/1294454/159202310-a0e38007-5e7c-4ba9-a32f-c8263a0291fe.jpg',
|
|
@@ -113,7 +113,7 @@ class zonda extends zonda$1 {
|
|
|
113
113
|
'v1_01Private': 'https://api.{hostname}/rest',
|
|
114
114
|
},
|
|
115
115
|
'doc': [
|
|
116
|
-
'https://docs.
|
|
116
|
+
'https://docs.zondacrypto.exchange/',
|
|
117
117
|
'https://github.com/BitBayNet/API',
|
|
118
118
|
],
|
|
119
119
|
'support': 'https://zondaglobal.com/en/helpdesk/zonda-exchange',
|
|
@@ -174,6 +174,8 @@ class zonda extends zonda$1 {
|
|
|
174
174
|
'balances/BITBAY/balance',
|
|
175
175
|
'balances/BITBAY/balance/transfer/{source}/{destination}',
|
|
176
176
|
'fiat_cantor/exchange',
|
|
177
|
+
'api_payments/withdrawals/crypto',
|
|
178
|
+
'api_payments/withdrawals/fiat',
|
|
177
179
|
],
|
|
178
180
|
'delete': [
|
|
179
181
|
'trading/offer/{symbol}/{id}/{side}/{price}',
|
|
@@ -282,6 +284,10 @@ class zonda extends zonda$1 {
|
|
|
282
284
|
'REQUEST_TIMESTAMP_TOO_OLD': errors.InvalidNonce,
|
|
283
285
|
'PERMISSIONS_NOT_SUFFICIENT': errors.PermissionDenied,
|
|
284
286
|
'INVALID_STOP_RATE': errors.InvalidOrder,
|
|
287
|
+
'TIMEOUT': errors.ExchangeError,
|
|
288
|
+
'RESPONSE_TIMEOUT': errors.ExchangeError,
|
|
289
|
+
'ACTION_BLOCKED': errors.PermissionDenied,
|
|
290
|
+
'INVALID_HASH_SIGNATURE': errors.AuthenticationError,
|
|
285
291
|
},
|
|
286
292
|
'commonCurrencies': {
|
|
287
293
|
'GGC': 'Global Game Coin',
|
|
@@ -292,7 +298,7 @@ class zonda extends zonda$1 {
|
|
|
292
298
|
/**
|
|
293
299
|
* @method
|
|
294
300
|
* @name zonda#fetchMarkets
|
|
295
|
-
* @see https://docs.
|
|
301
|
+
* @see https://docs.zondacrypto.exchange/reference/ticker-1
|
|
296
302
|
* @description retrieves data on all markets for zonda
|
|
297
303
|
* @param {object} [params] extra parameters specific to the exchange api endpoint
|
|
298
304
|
* @returns {object[]} an array of objects representing market data
|
|
@@ -395,7 +401,7 @@ class zonda extends zonda$1 {
|
|
|
395
401
|
/**
|
|
396
402
|
* @method
|
|
397
403
|
* @name zonda#fetchOpenOrders
|
|
398
|
-
* @see https://docs.
|
|
404
|
+
* @see https://docs.zondacrypto.exchange/reference/active-orders
|
|
399
405
|
* @description fetch all unfilled currently open orders
|
|
400
406
|
* @param {string} symbol not used by zonda fetchOpenOrders
|
|
401
407
|
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
@@ -463,7 +469,7 @@ class zonda extends zonda$1 {
|
|
|
463
469
|
/**
|
|
464
470
|
* @method
|
|
465
471
|
* @name zonda#fetchMyTrades
|
|
466
|
-
* @see https://docs.
|
|
472
|
+
* @see https://docs.zondacrypto.exchange/reference/transactions-history
|
|
467
473
|
* @description fetch all trades made by the user
|
|
468
474
|
* @param {string} symbol unified market symbol
|
|
469
475
|
* @param {int} [since] the earliest time in ms to fetch trades for
|
|
@@ -528,7 +534,7 @@ class zonda extends zonda$1 {
|
|
|
528
534
|
/**
|
|
529
535
|
* @method
|
|
530
536
|
* @name zonda#fetchBalance
|
|
531
|
-
* @see https://docs.
|
|
537
|
+
* @see https://docs.zondacrypto.exchange/reference/list-of-wallets
|
|
532
538
|
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
533
539
|
* @param {object} [params] extra parameters specific to the zonda api endpoint
|
|
534
540
|
* @returns {object} a [balance structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#balance-structure}
|
|
@@ -541,7 +547,7 @@ class zonda extends zonda$1 {
|
|
|
541
547
|
/**
|
|
542
548
|
* @method
|
|
543
549
|
* @name zonda#fetchOrderBook
|
|
544
|
-
* @see https://docs.
|
|
550
|
+
* @see https://docs.zondacrypto.exchange/reference/orderbook-2
|
|
545
551
|
* @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
546
552
|
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
547
553
|
* @param {int} [limit] the maximum amount of order book entries to return
|
|
@@ -654,7 +660,7 @@ class zonda extends zonda$1 {
|
|
|
654
660
|
* @method
|
|
655
661
|
* @name zonda#fetchTicker
|
|
656
662
|
* @description v1_01PublicGetTradingTickerSymbol retrieves timestamp, datetime, bid, ask, close, last, previousClose, v1_01PublicGetTradingStatsSymbol retrieves high, low, volume and opening price of an asset
|
|
657
|
-
* @see https://docs.
|
|
663
|
+
* @see https://docs.zondacrypto.exchange/reference/market-statistics
|
|
658
664
|
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
659
665
|
* @param {object} [params] extra parameters specific to the zonda api endpoint
|
|
660
666
|
* @param {string} [params.method] v1_01PublicGetTradingTickerSymbol (default) or v1_01PublicGetTradingStatsSymbol
|
|
@@ -727,7 +733,7 @@ class zonda extends zonda$1 {
|
|
|
727
733
|
* @method
|
|
728
734
|
* @name zonda#fetchTickersV2
|
|
729
735
|
* @description v1_01PublicGetTradingTicker retrieves timestamp, datetime, bid, ask, close, last, previousClose for each market, v1_01PublicGetTradingStats retrieves high, low, volume and opening price of each market
|
|
730
|
-
* @see https://docs.
|
|
736
|
+
* @see https://docs.zondacrypto.exchange/reference/market-statistics
|
|
731
737
|
* @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
732
738
|
* @param {object} [params] extra parameters specific to the zonda api endpoint
|
|
733
739
|
* @param {string} [params.method] v1_01PublicGetTradingTicker (default) or v1_01PublicGetTradingStats
|
|
@@ -800,7 +806,7 @@ class zonda extends zonda$1 {
|
|
|
800
806
|
/**
|
|
801
807
|
* @method
|
|
802
808
|
* @name zonda#fetchLedger
|
|
803
|
-
* @see https://docs.
|
|
809
|
+
* @see https://docs.zondacrypto.exchange/reference/operations-history
|
|
804
810
|
* @description fetch the history of changes, actions done by the user or operations that altered balance of the user
|
|
805
811
|
* @param {string} code unified currency code, default is undefined
|
|
806
812
|
* @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
|
|
@@ -1174,7 +1180,7 @@ class zonda extends zonda$1 {
|
|
|
1174
1180
|
/**
|
|
1175
1181
|
* @method
|
|
1176
1182
|
* @name zonda#fetchOHLCV
|
|
1177
|
-
* @see https://docs.
|
|
1183
|
+
* @see https://docs.zondacrypto.exchange/reference/candles-chart
|
|
1178
1184
|
* @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
1179
1185
|
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
1180
1186
|
* @param {string} timeframe the length of time each candle represents
|
|
@@ -1300,7 +1306,7 @@ class zonda extends zonda$1 {
|
|
|
1300
1306
|
/**
|
|
1301
1307
|
* @method
|
|
1302
1308
|
* @name zonda#fetchTrades
|
|
1303
|
-
* @see https://docs.
|
|
1309
|
+
* @see https://docs.zondacrypto.exchange/reference/last-transactions
|
|
1304
1310
|
* @description get the list of most recent trades for a particular symbol
|
|
1305
1311
|
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
1306
1312
|
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
@@ -1353,7 +1359,6 @@ class zonda extends zonda$1 {
|
|
|
1353
1359
|
const isStopLimit = (type === 'stop-limit') || (isLimitOrder && isStopLossPrice);
|
|
1354
1360
|
const isStopMarket = type === 'stop-market' || (isMarketOrder && isStopLossPrice);
|
|
1355
1361
|
const isStopOrder = isStopLimit || isStopMarket;
|
|
1356
|
-
const method = isStopOrder ? 'v1_01PrivatePostTradingStopOfferSymbol' : 'v1_01PrivatePostTradingOfferSymbol';
|
|
1357
1362
|
if (isLimitOrder || isStopLimit) {
|
|
1358
1363
|
request['rate'] = this.priceToPrecision(symbol, price);
|
|
1359
1364
|
request['mode'] = isStopLimit ? 'stop-limit' : 'limit';
|
|
@@ -1364,14 +1369,18 @@ class zonda extends zonda$1 {
|
|
|
1364
1369
|
else {
|
|
1365
1370
|
throw new errors.ExchangeError(this.id + ' createOrder() invalid type');
|
|
1366
1371
|
}
|
|
1372
|
+
params = this.omit(params, ['stopPrice', 'stopLossPrice']);
|
|
1373
|
+
let response = undefined;
|
|
1367
1374
|
if (isStopOrder) {
|
|
1368
1375
|
if (!isStopLossPrice) {
|
|
1369
1376
|
throw new errors.ExchangeError(this.id + ' createOrder() zonda requires `triggerPrice` or `stopPrice` parameter for stop-limit or stop-market orders');
|
|
1370
1377
|
}
|
|
1371
1378
|
request['stopRate'] = this.priceToPrecision(symbol, stopLossPrice);
|
|
1379
|
+
response = await this.v1_01PrivatePostTradingStopOfferSymbol(this.extend(request, params));
|
|
1380
|
+
}
|
|
1381
|
+
else {
|
|
1382
|
+
response = await this.v1_01PrivatePostTradingOfferSymbol(this.extend(request, params));
|
|
1372
1383
|
}
|
|
1373
|
-
params = this.omit(params, ['stopPrice', 'stopLossPrice']);
|
|
1374
|
-
const response = await this[method](this.extend(request, params));
|
|
1375
1384
|
//
|
|
1376
1385
|
// unfilled (open order)
|
|
1377
1386
|
//
|
|
@@ -1455,7 +1464,7 @@ class zonda extends zonda$1 {
|
|
|
1455
1464
|
/**
|
|
1456
1465
|
* @method
|
|
1457
1466
|
* @name zonda#cancelOrder
|
|
1458
|
-
* @see https://docs.
|
|
1467
|
+
* @see https://docs.zondacrypto.exchange/reference/cancel-order
|
|
1459
1468
|
* @description cancels an open order
|
|
1460
1469
|
* @param {string} id order id
|
|
1461
1470
|
* @param {string} symbol unified symbol of the market the order was made in
|
|
@@ -1516,7 +1525,7 @@ class zonda extends zonda$1 {
|
|
|
1516
1525
|
/**
|
|
1517
1526
|
* @method
|
|
1518
1527
|
* @name zonda#fetchDepositAddress
|
|
1519
|
-
* @see https://docs.
|
|
1528
|
+
* @see https://docs.zondacrypto.exchange/reference/deposit-addresses-for-crypto
|
|
1520
1529
|
* @description fetch the deposit address for a currency associated with this account
|
|
1521
1530
|
* @param {string} code unified currency code
|
|
1522
1531
|
* @param {object} [params] extra parameters specific to the zonda api endpoint
|
|
@@ -1550,7 +1559,7 @@ class zonda extends zonda$1 {
|
|
|
1550
1559
|
/**
|
|
1551
1560
|
* @method
|
|
1552
1561
|
* @name zonda#fetchDepositAddresses
|
|
1553
|
-
* @see https://docs.
|
|
1562
|
+
* @see https://docs.zondacrypto.exchange/reference/deposit-addresses-for-crypto
|
|
1554
1563
|
* @description fetch deposit addresses for multiple currencies and chain types
|
|
1555
1564
|
* @param {string[]|undefined} codes zonda does not support filtering filtering by multiple codes and will ignore this parameter.
|
|
1556
1565
|
* @param {object} [params] extra parameters specific to the zonda api endpoint
|
|
@@ -1578,7 +1587,7 @@ class zonda extends zonda$1 {
|
|
|
1578
1587
|
/**
|
|
1579
1588
|
* @method
|
|
1580
1589
|
* @name zonda#transfer
|
|
1581
|
-
* @see https://docs.
|
|
1590
|
+
* @see https://docs.zondacrypto.exchange/reference/internal-transfer
|
|
1582
1591
|
* @description transfer currency internally between wallets on the same account
|
|
1583
1592
|
* @param {string} code unified currency code
|
|
1584
1593
|
* @param {float} amount amount to transfer
|
|
@@ -1690,7 +1699,7 @@ class zonda extends zonda$1 {
|
|
|
1690
1699
|
/**
|
|
1691
1700
|
* @method
|
|
1692
1701
|
* @name zonda#withdraw
|
|
1693
|
-
* @see https://docs.
|
|
1702
|
+
* @see https://docs.zondacrypto.exchange/reference/crypto-withdrawal-1
|
|
1694
1703
|
* @description make a withdrawal
|
|
1695
1704
|
* @param {string} code unified currency code
|
|
1696
1705
|
* @param {float} amount the amount to withdraw
|
|
@@ -1702,26 +1711,24 @@ class zonda extends zonda$1 {
|
|
|
1702
1711
|
[tag, params] = this.handleWithdrawTagAndParams(tag, params);
|
|
1703
1712
|
this.checkAddress(address);
|
|
1704
1713
|
await this.loadMarkets();
|
|
1705
|
-
let
|
|
1714
|
+
let response = undefined;
|
|
1706
1715
|
const currency = this.currency(code);
|
|
1707
1716
|
const request = {
|
|
1708
1717
|
'currency': currency['id'],
|
|
1709
|
-
'
|
|
1718
|
+
'amount': amount,
|
|
1719
|
+
'address': address,
|
|
1720
|
+
// request['balanceId'] = params['balanceId']; // Wallet id used for withdrawal. If not provided, any BITBAY wallet with sufficient funds is used. If BITBAYPAY wallet should be used parameter must be explicitly specified.
|
|
1710
1721
|
};
|
|
1711
1722
|
if (this.isFiat(code)) {
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
// request['express'] = params['express']; // whatever it means, they don't explain
|
|
1715
|
-
// request['bic'] = '';
|
|
1723
|
+
// request['swift'] = params['swift']; // Bank identifier, if required.
|
|
1724
|
+
response = await this.v1_01PrivatePostApiPaymentsWithdrawalsFiat(this.extend(request, params));
|
|
1716
1725
|
}
|
|
1717
1726
|
else {
|
|
1718
|
-
method = 'privatePostTransfer';
|
|
1719
1727
|
if (tag !== undefined) {
|
|
1720
|
-
|
|
1728
|
+
request['tag'] = tag;
|
|
1721
1729
|
}
|
|
1722
|
-
|
|
1730
|
+
response = await this.v1_01PrivatePostApiPaymentsWithdrawalsCrypto(this.extend(request, params));
|
|
1723
1731
|
}
|
|
1724
|
-
const response = await this[method](this.extend(request, params));
|
|
1725
1732
|
//
|
|
1726
1733
|
// {
|
|
1727
1734
|
// "status": "Ok",
|
package/js/ccxt.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
|
|
|
4
4
|
import * as errors from './src/base/errors.js';
|
|
5
5
|
import { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory } from './src/base/types.js';
|
|
6
6
|
import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.1.
|
|
7
|
+
declare const version = "4.1.33";
|
|
8
8
|
import ace from './src/ace.js';
|
|
9
9
|
import alpaca from './src/alpaca.js';
|
|
10
10
|
import ascendex from './src/ascendex.js';
|
package/js/ccxt.js
CHANGED
|
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
|
|
|
38
38
|
import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
39
39
|
//-----------------------------------------------------------------------------
|
|
40
40
|
// this is updated by vss.js when building
|
|
41
|
-
const version = '4.1.
|
|
41
|
+
const version = '4.1.34';
|
|
42
42
|
Exchange.ccxtVersion = version;
|
|
43
43
|
//-----------------------------------------------------------------------------
|
|
44
44
|
import ace from './src/ace.js';
|
|
@@ -39,6 +39,8 @@ interface zonda {
|
|
|
39
39
|
v1_01PrivatePostBalancesBITBAYBalance(params?: {}): Promise<implicitReturnType>;
|
|
40
40
|
v1_01PrivatePostBalancesBITBAYBalanceTransferSourceDestination(params?: {}): Promise<implicitReturnType>;
|
|
41
41
|
v1_01PrivatePostFiatCantorExchange(params?: {}): Promise<implicitReturnType>;
|
|
42
|
+
v1_01PrivatePostApiPaymentsWithdrawalsCrypto(params?: {}): Promise<implicitReturnType>;
|
|
43
|
+
v1_01PrivatePostApiPaymentsWithdrawalsFiat(params?: {}): Promise<implicitReturnType>;
|
|
42
44
|
v1_01PrivateDeleteTradingOfferSymbolIdSidePrice(params?: {}): Promise<implicitReturnType>;
|
|
43
45
|
v1_01PrivateDeleteTradingStopOfferSymbolIdSidePrice(params?: {}): Promise<implicitReturnType>;
|
|
44
46
|
v1_01PrivatePutBalancesBITBAYBalanceId(params?: {}): Promise<implicitReturnType>;
|
|
@@ -65,15 +65,29 @@ interface Exchange {
|
|
|
65
65
|
privateSwapGetAccountFinanceRecord(params?: {}): Promise<implicitReturnType>;
|
|
66
66
|
privateSwapGetAccountTradingFeeRate(params?: {}): Promise<implicitReturnType>;
|
|
67
67
|
privateSwapGetAccountTransferRecord(params?: {}): Promise<implicitReturnType>;
|
|
68
|
+
privateSwapGetAccountFundingFee(params?: {}): Promise<implicitReturnType>;
|
|
68
69
|
privateSwapGetTradeHistoryOrders(params?: {}): Promise<implicitReturnType>;
|
|
69
70
|
privateSwapGetTradeHistoryTrades(params?: {}): Promise<implicitReturnType>;
|
|
70
71
|
privateSwapGetTradeOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
71
72
|
privateSwapGetTradeOrderInfo(params?: {}): Promise<implicitReturnType>;
|
|
72
73
|
privateSwapPostAccountLeverage(params?: {}): Promise<implicitReturnType>;
|
|
74
|
+
privateSwapPostAccountPositionMode(params?: {}): Promise<implicitReturnType>;
|
|
75
|
+
privateSwapPostAccountPositionMargin(params?: {}): Promise<implicitReturnType>;
|
|
73
76
|
privateSwapPostTradeBatchCancelOrder(params?: {}): Promise<implicitReturnType>;
|
|
74
77
|
privateSwapPostTradeBatchOrder(params?: {}): Promise<implicitReturnType>;
|
|
75
78
|
privateSwapPostTradeCancelOrder(params?: {}): Promise<implicitReturnType>;
|
|
76
79
|
privateSwapPostTradeOrderPlace(params?: {}): Promise<implicitReturnType>;
|
|
80
|
+
privateSwapPostFollowSponsorOrder(params?: {}): Promise<implicitReturnType>;
|
|
81
|
+
privateSwapPostFollowCloseOrder(params?: {}): Promise<implicitReturnType>;
|
|
82
|
+
privateSwapPostFollowCancelOrder(params?: {}): Promise<implicitReturnType>;
|
|
83
|
+
privateSwapPostFollowUserCenterCurrent(params?: {}): Promise<implicitReturnType>;
|
|
84
|
+
privateSwapPostFollowUserCenterHistory(params?: {}): Promise<implicitReturnType>;
|
|
85
|
+
privateSwapPostFollowExpertCurrentOpenOrder(params?: {}): Promise<implicitReturnType>;
|
|
86
|
+
privateSwapPostFollowAddAlgo(params?: {}): Promise<implicitReturnType>;
|
|
87
|
+
privateSwapPostFollowCancelAlgo(params?: {}): Promise<implicitReturnType>;
|
|
88
|
+
privateSwapPostFollowAccountAvailable(params?: {}): Promise<implicitReturnType>;
|
|
89
|
+
privateSwapPostFollowPlanTask(params?: {}): Promise<implicitReturnType>;
|
|
90
|
+
privateSwapPostFollowInstrumentList(params?: {}): Promise<implicitReturnType>;
|
|
77
91
|
}
|
|
78
92
|
declare abstract class Exchange extends _Exchange {
|
|
79
93
|
}
|
|
@@ -39,6 +39,8 @@ interface Exchange {
|
|
|
39
39
|
v1_01PrivatePostBalancesBITBAYBalance(params?: {}): Promise<implicitReturnType>;
|
|
40
40
|
v1_01PrivatePostBalancesBITBAYBalanceTransferSourceDestination(params?: {}): Promise<implicitReturnType>;
|
|
41
41
|
v1_01PrivatePostFiatCantorExchange(params?: {}): Promise<implicitReturnType>;
|
|
42
|
+
v1_01PrivatePostApiPaymentsWithdrawalsCrypto(params?: {}): Promise<implicitReturnType>;
|
|
43
|
+
v1_01PrivatePostApiPaymentsWithdrawalsFiat(params?: {}): Promise<implicitReturnType>;
|
|
42
44
|
v1_01PrivateDeleteTradingOfferSymbolIdSidePrice(params?: {}): Promise<implicitReturnType>;
|
|
43
45
|
v1_01PrivateDeleteTradingStopOfferSymbolIdSidePrice(params?: {}): Promise<implicitReturnType>;
|
|
44
46
|
v1_01PrivatePutBalancesBITBAYBalanceId(params?: {}): Promise<implicitReturnType>;
|
|
@@ -257,7 +257,6 @@ export default class Exchange {
|
|
|
257
257
|
urlencodeNested: (object: any) => string;
|
|
258
258
|
parseDate: (x: any) => number;
|
|
259
259
|
ymd: (timestamp: any, infix: any, fullYear?: boolean) => string;
|
|
260
|
-
isArray: (needle: any, haystack: any) => any;
|
|
261
260
|
base64ToString: (string: any) => string;
|
|
262
261
|
crc32: typeof functions.crc32;
|
|
263
262
|
describe(): {
|
|
@@ -523,6 +522,7 @@ export default class Exchange {
|
|
|
523
522
|
valueIsDefined(value: any): boolean;
|
|
524
523
|
arraySlice(array: any, first: any, second?: any): any;
|
|
525
524
|
getProperty(obj: any, property: any, defaultValue?: any): any;
|
|
525
|
+
axolotl(payload: any, hexKey: any, ed25519: any): string;
|
|
526
526
|
handleDeltas(orderbook: any, deltas: any): void;
|
|
527
527
|
handleDelta(bookside: any, delta: any): void;
|
|
528
528
|
getCacheIndex(orderbook: any, deltas: any): number;
|
package/js/src/base/Exchange.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/* eslint-disable */
|
|
9
9
|
import * as functions from './functions.js';
|
|
10
10
|
const { isNode, deepExtend, extend, clone, flatten, unique, indexBy, sortBy, sortBy2, safeFloat2, groupBy, aggregate, uuid, unCamelCase, precisionFromString, Throttler, capitalize, now, decimalToPrecision, safeValue, safeValue2, safeString, safeString2, seconds, milliseconds, binaryToBase16, numberToBE, base16ToBinary, iso8601, omit, isJsonEncodedObject, safeInteger, sum, omitZero, implodeParams, extractParams, json, merge, binaryConcat, hash, ecdsa, arrayConcat, encode, urlencode, hmac, numberToString, parseTimeframe, safeInteger2, safeStringLower, parse8601, yyyymmdd, safeStringUpper, safeTimestamp, binaryConcatArray, uuidv1, numberToLE, ymdhms, stringToBase64, decode, uuid22, safeIntegerProduct2, safeIntegerProduct, safeStringLower2, yymmdd, base58ToBinary, binaryToBase58, safeTimestamp2, rawencode, keysort, inArray, isEmpty, ordered, filterBy, uuid16, safeFloat, base64ToBinary, safeStringUpper2, urlencodeWithArrayRepeat, microseconds, binaryToBase64, strip, toArray, safeFloatN, safeIntegerN, safeIntegerProductN, safeTimestampN, safeValueN, safeStringN, safeStringLowerN, safeStringUpperN, urlencodeNested, parseDate, ymd, base64ToString, crc32, TRUNCATE, ROUND, DECIMAL_PLACES, NO_PADDING, TICK_SIZE, SIGNIFICANT_DIGITS } = functions;
|
|
11
|
-
import { keys as keysFunc, values as valuesFunc,
|
|
11
|
+
import { keys as keysFunc, values as valuesFunc, vwap as vwapFunc } from './functions.js';
|
|
12
12
|
// import exceptions from "./errors.js"
|
|
13
13
|
import { // eslint-disable-line object-curly-newline
|
|
14
14
|
ExchangeError, BadSymbol, NullResponse, InvalidAddress, InvalidOrder, NotSupported, BadResponse, AuthenticationError, DDoSProtection, RequestTimeout, NetworkError, ExchangeNotAvailable, ArgumentsRequired, RateLimitExceeded, BadRequest } from "./errors.js";
|
|
@@ -17,6 +17,9 @@ import { Precise } from './Precise.js';
|
|
|
17
17
|
import WsClient from './ws/WsClient.js';
|
|
18
18
|
import { createFuture } from './ws/Future.js';
|
|
19
19
|
import { OrderBook as WsOrderBook, IndexedOrderBook, CountedOrderBook } from './ws/OrderBook.js';
|
|
20
|
+
// ----------------------------------------------------------------------------
|
|
21
|
+
//
|
|
22
|
+
import { axolotl } from './functions/crypto.js';
|
|
20
23
|
import totp from './functions/totp.js';
|
|
21
24
|
// ----------------------------------------------------------------------------
|
|
22
25
|
/**
|
|
@@ -194,7 +197,6 @@ export default class Exchange {
|
|
|
194
197
|
this.urlencodeNested = urlencodeNested;
|
|
195
198
|
this.parseDate = parseDate;
|
|
196
199
|
this.ymd = ymd;
|
|
197
|
-
this.isArray = inArrayFunc;
|
|
198
200
|
this.base64ToString = base64ToString;
|
|
199
201
|
this.crc32 = crc32;
|
|
200
202
|
Object.assign(this, functions);
|
|
@@ -1075,6 +1077,9 @@ export default class Exchange {
|
|
|
1075
1077
|
getProperty(obj, property, defaultValue = undefined) {
|
|
1076
1078
|
return (property in obj ? obj[property] : defaultValue);
|
|
1077
1079
|
}
|
|
1080
|
+
axolotl(payload, hexKey, ed25519) {
|
|
1081
|
+
return axolotl(payload, hexKey, ed25519);
|
|
1082
|
+
}
|
|
1078
1083
|
/* eslint-enable */
|
|
1079
1084
|
// ------------------------------------------------------------------------
|
|
1080
1085
|
// ########################################################################
|
|
@@ -12,10 +12,12 @@ declare const errorHierarchy: {
|
|
|
12
12
|
BadSymbol: {};
|
|
13
13
|
MarginModeAlreadySet: {};
|
|
14
14
|
NoChange: {};
|
|
15
|
+
InvalidOperation: {};
|
|
15
16
|
};
|
|
16
17
|
BadResponse: {
|
|
17
18
|
NullResponse: {};
|
|
18
19
|
};
|
|
20
|
+
OperationFailed: {};
|
|
19
21
|
InsufficientFunds: {};
|
|
20
22
|
InvalidAddress: {
|
|
21
23
|
AddressPending: {};
|
|
@@ -18,10 +18,12 @@ const errorHierarchy = {
|
|
|
18
18
|
'BadSymbol': {},
|
|
19
19
|
'MarginModeAlreadySet': {},
|
|
20
20
|
'NoChange': {},
|
|
21
|
+
'InvalidOperation': {},
|
|
21
22
|
},
|
|
22
23
|
'BadResponse': {
|
|
23
24
|
'NullResponse': {},
|
|
24
25
|
},
|
|
26
|
+
'OperationFailed': {},
|
|
25
27
|
'InsufficientFunds': {},
|
|
26
28
|
'InvalidAddress': {
|
|
27
29
|
'AddressPending': {},
|
|
@@ -46,6 +46,12 @@ const roundTimeframe = (timeframe, timestamp, direction = ROUND_DOWN) => {
|
|
|
46
46
|
return timestamp - offset + ((direction === ROUND_UP) ? ms : 0);
|
|
47
47
|
};
|
|
48
48
|
const extractParams = (string) => {
|
|
49
|
+
/**
|
|
50
|
+
* @ignore
|
|
51
|
+
* @method
|
|
52
|
+
* @param string usually a url path
|
|
53
|
+
* @returns {[string]} all substrings surrounded by {} from parameter string
|
|
54
|
+
*/
|
|
49
55
|
const re = /{([\w-]+)}/g;
|
|
50
56
|
const matches = [];
|
|
51
57
|
let match = re.exec(string);
|
package/js/src/binance.js
CHANGED
|
@@ -5154,13 +5154,13 @@ export default class binance extends Exchange {
|
|
|
5154
5154
|
* @description cancel multiple orders
|
|
5155
5155
|
* @see https://binance-docs.github.io/apidocs/futures/en/#cancel-multiple-orders-trade
|
|
5156
5156
|
* @see https://binance-docs.github.io/apidocs/delivery/en/#cancel-multiple-orders-trade
|
|
5157
|
-
* @param {[
|
|
5157
|
+
* @param {string[]} ids order ids
|
|
5158
5158
|
* @param {string} [symbol] unified market symbol
|
|
5159
5159
|
* @param {object} [params] extra parameters specific to the bingx api endpoint
|
|
5160
5160
|
*
|
|
5161
5161
|
* EXCHANGE SPECIFIC PARAMETERS
|
|
5162
|
-
* @param {[
|
|
5163
|
-
* @param {[
|
|
5162
|
+
* @param {string[]} [params.origClientOrderIdList] max length 10 e.g. ["my_id_1","my_id_2"], encode the double quotes. No space after comma
|
|
5163
|
+
* @param {int[]} [params.recvWindow]
|
|
5164
5164
|
* @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
5165
5165
|
*/
|
|
5166
5166
|
this.checkRequiredSymbol('cancelOrders', symbol);
|
package/js/src/bitforex.js
CHANGED
|
@@ -660,7 +660,7 @@ export default class bitforex extends Exchange {
|
|
|
660
660
|
* @method
|
|
661
661
|
* @name bitforex#fetchOrder
|
|
662
662
|
* @description fetches information on an order made by the user
|
|
663
|
-
* @see
|
|
663
|
+
* @see https://apidoc.bitforex.com/#order-information-user_data
|
|
664
664
|
* @param {string} symbol unified symbol of the market the order was made in
|
|
665
665
|
* @param {object} [params] extra parameters specific to the bitforex api endpoint
|
|
666
666
|
* @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
package/js/src/bitmex.js
CHANGED
|
@@ -1674,18 +1674,15 @@ export default class bitmex extends Exchange {
|
|
|
1674
1674
|
// "timestamp":"2021-01-02T21:38:49.246Z"
|
|
1675
1675
|
// }
|
|
1676
1676
|
//
|
|
1677
|
-
const status = this.parseOrderStatus(this.safeString(order, 'ordStatus'));
|
|
1678
1677
|
const marketId = this.safeString(order, 'symbol');
|
|
1679
|
-
|
|
1680
|
-
const
|
|
1681
|
-
const lastTradeTimestamp = this.parse8601(this.safeString(order, 'transactTime'));
|
|
1682
|
-
const price = this.safeString(order, 'price');
|
|
1678
|
+
market = this.safeMarket(marketId, market);
|
|
1679
|
+
const symbol = market['symbol'];
|
|
1683
1680
|
const qty = this.safeString(order, 'orderQty');
|
|
1684
1681
|
let cost = undefined;
|
|
1685
1682
|
let amount = undefined;
|
|
1686
|
-
const defaultSubType = this.safeString(this.options, 'defaultSubType', 'linear');
|
|
1687
1683
|
let isInverse = false;
|
|
1688
|
-
if (
|
|
1684
|
+
if (marketId === undefined) {
|
|
1685
|
+
const defaultSubType = this.safeString(this.options, 'defaultSubType', 'linear');
|
|
1689
1686
|
isInverse = (defaultSubType === 'inverse');
|
|
1690
1687
|
}
|
|
1691
1688
|
else {
|
|
@@ -1706,38 +1703,35 @@ export default class bitmex extends Exchange {
|
|
|
1706
1703
|
else {
|
|
1707
1704
|
filled = cumQty;
|
|
1708
1705
|
}
|
|
1709
|
-
const id = this.safeString(order, 'orderID');
|
|
1710
|
-
const type = this.safeStringLower(order, 'ordType');
|
|
1711
|
-
const side = this.safeStringLower(order, 'side');
|
|
1712
|
-
const clientOrderId = this.safeString(order, 'clOrdID');
|
|
1713
|
-
const timeInForce = this.parseTimeInForce(this.safeString(order, 'timeInForce'));
|
|
1714
|
-
const stopPrice = this.safeNumber(order, 'stopPx');
|
|
1715
1706
|
const execInst = this.safeString(order, 'execInst');
|
|
1716
1707
|
let postOnly = undefined;
|
|
1717
1708
|
if (execInst !== undefined) {
|
|
1718
1709
|
postOnly = (execInst === 'ParticipateDoNotInitiate');
|
|
1719
1710
|
}
|
|
1711
|
+
const timestamp = this.parse8601(this.safeString(order, 'timestamp'));
|
|
1712
|
+
const stopPrice = this.safeNumber(order, 'stopPx');
|
|
1713
|
+
const remaining = this.safeString(order, 'leavesQty');
|
|
1720
1714
|
return this.safeOrder({
|
|
1721
1715
|
'info': order,
|
|
1722
|
-
'id':
|
|
1723
|
-
'clientOrderId':
|
|
1716
|
+
'id': this.safeString(order, 'orderID'),
|
|
1717
|
+
'clientOrderId': this.safeString(order, 'clOrdID'),
|
|
1724
1718
|
'timestamp': timestamp,
|
|
1725
1719
|
'datetime': this.iso8601(timestamp),
|
|
1726
|
-
'lastTradeTimestamp':
|
|
1720
|
+
'lastTradeTimestamp': this.parse8601(this.safeString(order, 'transactTime')),
|
|
1727
1721
|
'symbol': symbol,
|
|
1728
|
-
'type':
|
|
1729
|
-
'timeInForce': timeInForce,
|
|
1722
|
+
'type': this.safeStringLower(order, 'ordType'),
|
|
1723
|
+
'timeInForce': this.parseTimeInForce(this.safeString(order, 'timeInForce')),
|
|
1730
1724
|
'postOnly': postOnly,
|
|
1731
|
-
'side': side,
|
|
1732
|
-
'price': price,
|
|
1725
|
+
'side': this.safeStringLower(order, 'side'),
|
|
1726
|
+
'price': this.safeString(order, 'price'),
|
|
1733
1727
|
'stopPrice': stopPrice,
|
|
1734
1728
|
'triggerPrice': stopPrice,
|
|
1735
1729
|
'amount': amount,
|
|
1736
1730
|
'cost': cost,
|
|
1737
1731
|
'average': average,
|
|
1738
1732
|
'filled': filled,
|
|
1739
|
-
'remaining':
|
|
1740
|
-
'status':
|
|
1733
|
+
'remaining': this.convertFromRawQuantity(symbol, remaining),
|
|
1734
|
+
'status': this.parseOrderStatus(this.safeString(order, 'ordStatus')),
|
|
1741
1735
|
'fee': undefined,
|
|
1742
1736
|
'trades': undefined,
|
|
1743
1737
|
}, market);
|
package/js/src/digifinex.d.ts
CHANGED
|
@@ -224,6 +224,16 @@ export default class digifinex extends Exchange {
|
|
|
224
224
|
handleMarginModeAndParams(methodName: any, params?: {}, defaultValue?: any): any[];
|
|
225
225
|
fetchDepositWithdrawFees(codes?: string[], params?: {}): Promise<{}>;
|
|
226
226
|
parseDepositWithdrawFees(response: any, codes?: any, currencyIdKey?: any): {};
|
|
227
|
+
fetchFundingHistory(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").FundingHistory[]>;
|
|
228
|
+
parseIncome(income: any, market?: any): {
|
|
229
|
+
info: any;
|
|
230
|
+
symbol: any;
|
|
231
|
+
code: any;
|
|
232
|
+
timestamp: number;
|
|
233
|
+
datetime: string;
|
|
234
|
+
id: any;
|
|
235
|
+
amount: number;
|
|
236
|
+
};
|
|
227
237
|
sign(path: any, api?: any[], method?: string, params?: {}, headers?: any, body?: any): {
|
|
228
238
|
url: string;
|
|
229
239
|
method: string;
|
package/js/src/digifinex.js
CHANGED
|
@@ -50,7 +50,7 @@ export default class digifinex extends Exchange {
|
|
|
50
50
|
'fetchDeposits': true,
|
|
51
51
|
'fetchDepositWithdrawFee': 'emulated',
|
|
52
52
|
'fetchDepositWithdrawFees': true,
|
|
53
|
-
'fetchFundingHistory':
|
|
53
|
+
'fetchFundingHistory': true,
|
|
54
54
|
'fetchFundingRate': true,
|
|
55
55
|
'fetchFundingRateHistory': true,
|
|
56
56
|
'fetchFundingRates': false,
|
|
@@ -197,6 +197,7 @@ export default class digifinex extends Exchange {
|
|
|
197
197
|
'account/finance_record',
|
|
198
198
|
'account/trading_fee_rate',
|
|
199
199
|
'account/transfer_record',
|
|
200
|
+
'account/funding_fee',
|
|
200
201
|
'trade/history_orders',
|
|
201
202
|
'trade/history_trades',
|
|
202
203
|
'trade/open_orders',
|
|
@@ -204,10 +205,23 @@ export default class digifinex extends Exchange {
|
|
|
204
205
|
],
|
|
205
206
|
'post': [
|
|
206
207
|
'account/leverage',
|
|
208
|
+
'account/position_mode',
|
|
209
|
+
'account/position_margin',
|
|
207
210
|
'trade/batch_cancel_order',
|
|
208
211
|
'trade/batch_order',
|
|
209
212
|
'trade/cancel_order',
|
|
210
213
|
'trade/order_place',
|
|
214
|
+
'follow/sponsor_order',
|
|
215
|
+
'follow/close_order',
|
|
216
|
+
'follow/cancel_order',
|
|
217
|
+
'follow/user_center_current',
|
|
218
|
+
'follow/user_center_history',
|
|
219
|
+
'follow/expert_current_open_order',
|
|
220
|
+
'follow/add_algo',
|
|
221
|
+
'follow/cancel_algo',
|
|
222
|
+
'follow/account_available',
|
|
223
|
+
'follow/plan_task',
|
|
224
|
+
'follow/instrument_list',
|
|
211
225
|
],
|
|
212
226
|
},
|
|
213
227
|
},
|
|
@@ -3813,6 +3827,72 @@ export default class digifinex extends Exchange {
|
|
|
3813
3827
|
}
|
|
3814
3828
|
return depositWithdrawFees;
|
|
3815
3829
|
}
|
|
3830
|
+
async fetchFundingHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
3831
|
+
/**
|
|
3832
|
+
* @method
|
|
3833
|
+
* @name digifinex#fetchFundingHistory
|
|
3834
|
+
* @description fetch the history of funding payments paid and received on this account
|
|
3835
|
+
* @see https://docs.digifinex.com/en-ww/swap/v2/rest.html#funding-fee
|
|
3836
|
+
* @param {string} [symbol] unified market symbol
|
|
3837
|
+
* @param {int} [since] the earliest time in ms to fetch funding history for
|
|
3838
|
+
* @param {int} [limit] the maximum number of funding history structures to retrieve
|
|
3839
|
+
* @param {object} [params] extra parameters specific to the digifinex api endpoint
|
|
3840
|
+
* @param {int} [params.until] timestamp in ms of the latest funding payment
|
|
3841
|
+
* @returns {object} a [funding history structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#funding-history-structure}
|
|
3842
|
+
*/
|
|
3843
|
+
await this.loadMarkets();
|
|
3844
|
+
let request = {};
|
|
3845
|
+
[request, params] = this.handleUntilOption('end_timestamp', request, params);
|
|
3846
|
+
let market = undefined;
|
|
3847
|
+
if (symbol !== undefined) {
|
|
3848
|
+
market = this.market(symbol);
|
|
3849
|
+
request['instrument_id'] = market['id'];
|
|
3850
|
+
}
|
|
3851
|
+
if (limit !== undefined) {
|
|
3852
|
+
request['limit'] = limit;
|
|
3853
|
+
}
|
|
3854
|
+
if (since !== undefined) {
|
|
3855
|
+
request['start_timestamp'] = since;
|
|
3856
|
+
}
|
|
3857
|
+
const response = await this.privateSwapGetAccountFundingFee(this.extend(request, params));
|
|
3858
|
+
//
|
|
3859
|
+
// {
|
|
3860
|
+
// "code": 0,
|
|
3861
|
+
// "data": [
|
|
3862
|
+
// {
|
|
3863
|
+
// "instrument_id": "BTCUSDTPERP",
|
|
3864
|
+
// "currency": "USDT",
|
|
3865
|
+
// "amount": "-0.000342814",
|
|
3866
|
+
// "timestamp": 1698768009440
|
|
3867
|
+
// }
|
|
3868
|
+
// ]
|
|
3869
|
+
// }
|
|
3870
|
+
//
|
|
3871
|
+
const data = this.safeValue(response, 'data', []);
|
|
3872
|
+
return this.parseIncomes(data, market, since, limit);
|
|
3873
|
+
}
|
|
3874
|
+
parseIncome(income, market = undefined) {
|
|
3875
|
+
//
|
|
3876
|
+
// {
|
|
3877
|
+
// "instrument_id": "BTCUSDTPERP",
|
|
3878
|
+
// "currency": "USDT",
|
|
3879
|
+
// "amount": "-0.000342814",
|
|
3880
|
+
// "timestamp": 1698768009440
|
|
3881
|
+
// }
|
|
3882
|
+
//
|
|
3883
|
+
const marketId = this.safeString(income, 'instrument_id');
|
|
3884
|
+
const currencyId = this.safeString(income, 'currency');
|
|
3885
|
+
const timestamp = this.safeInteger(income, 'timestamp');
|
|
3886
|
+
return {
|
|
3887
|
+
'info': income,
|
|
3888
|
+
'symbol': this.safeSymbol(marketId, market, undefined, 'swap'),
|
|
3889
|
+
'code': this.safeCurrencyCode(currencyId),
|
|
3890
|
+
'timestamp': timestamp,
|
|
3891
|
+
'datetime': this.iso8601(timestamp),
|
|
3892
|
+
'id': undefined,
|
|
3893
|
+
'amount': this.safeNumber(income, 'amount'),
|
|
3894
|
+
};
|
|
3895
|
+
}
|
|
3816
3896
|
sign(path, api = [], method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
3817
3897
|
const signed = api[0] === 'private';
|
|
3818
3898
|
const endpoint = api[1];
|