ccxt 4.5.0 → 4.5.2
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 +110 -112
- package/dist/ccxt.browser.min.js +5 -5
- package/dist/cjs/ccxt.js +1 -9
- package/dist/cjs/src/ascendex.js +1 -1
- package/dist/cjs/src/base/Exchange.js +13 -0
- package/dist/cjs/src/binance.js +20 -14
- package/dist/cjs/src/bitget.js +1 -1
- package/dist/cjs/src/coinbase.js +46 -34
- package/dist/cjs/src/gate.js +39 -18
- package/dist/cjs/src/gemini.js +1 -1
- package/dist/cjs/src/hibachi.js +1 -1
- package/dist/cjs/src/hyperliquid.js +16 -2
- package/dist/cjs/src/indodax.js +11 -12
- package/dist/cjs/src/kraken.js +1 -12
- package/dist/cjs/src/krakenfutures.js +25 -25
- package/dist/cjs/src/mexc.js +2 -1
- package/dist/cjs/src/okx.js +2 -2
- package/dist/cjs/src/poloniex.js +1 -1
- package/dist/cjs/src/pro/bitget.js +352 -75
- package/dist/cjs/src/pro/bitmart.js +1 -1
- package/dist/cjs/src/pro/bybit.js +8 -15
- package/dist/cjs/src/pro/gate.js +6 -1
- package/dist/cjs/src/pro/gemini.js +7 -2
- package/dist/cjs/src/pro/hyperliquid.js +9 -1
- package/dist/cjs/src/pro/kraken.js +5 -6
- package/dist/cjs/src/pro/lbank.js +55 -1
- package/dist/cjs/src/pro/mexc.js +1 -1
- package/dist/cjs/src/timex.js +35 -0
- package/dist/cjs/src/tradeogre.js +32 -0
- package/dist/cjs/src/wavesexchange.js +33 -0
- package/dist/cjs/src/zonda.js +12 -0
- package/js/ccxt.d.ts +2 -11
- package/js/ccxt.js +2 -8
- package/js/src/ascendex.js +1 -1
- package/js/src/base/Exchange.d.ts +1 -0
- package/js/src/base/Exchange.js +14 -1
- package/js/src/binance.d.ts +1 -1
- package/js/src/binance.js +20 -14
- package/js/src/bitget.js +1 -1
- package/js/src/coinbase.js +46 -34
- package/js/src/gate.d.ts +2 -1
- package/js/src/gate.js +39 -18
- package/js/src/gemini.js +1 -1
- package/js/src/hibachi.js +1 -1
- package/js/src/hyperliquid.d.ts +1 -0
- package/js/src/hyperliquid.js +16 -2
- package/js/src/indodax.js +11 -12
- package/js/src/kraken.d.ts +0 -1
- package/js/src/kraken.js +1 -12
- package/js/src/krakenfutures.d.ts +24 -24
- package/js/src/krakenfutures.js +25 -25
- package/js/src/mexc.js +2 -1
- package/js/src/okx.js +2 -2
- package/js/src/poloniex.js +1 -1
- package/js/src/pro/bitget.d.ts +12 -2
- package/js/src/pro/bitget.js +358 -75
- package/js/src/pro/bitmart.js +1 -1
- package/js/src/pro/bybit.js +8 -15
- package/js/src/pro/gate.d.ts +5 -0
- package/js/src/pro/gate.js +6 -1
- package/js/src/pro/gemini.d.ts +1 -1
- package/js/src/pro/gemini.js +7 -2
- package/js/src/pro/hyperliquid.js +9 -1
- package/js/src/pro/kraken.js +5 -6
- package/js/src/pro/lbank.d.ts +11 -1
- package/js/src/pro/lbank.js +55 -1
- package/js/src/pro/mexc.js +1 -1
- package/js/src/timex.js +35 -0
- package/js/src/tradeogre.js +32 -0
- package/js/src/wavesexchange.js +33 -0
- package/js/src/zonda.js +12 -0
- package/package.json +2 -1
- package/js/src/abstract/ellipx.d.ts +0 -28
- package/js/src/abstract/ellipx.js +0 -11
- package/js/src/abstract/vertex.d.ts +0 -22
- package/js/src/abstract/vertex.js +0 -11
- package/js/src/ellipx.d.ts +0 -237
- package/js/src/ellipx.js +0 -2071
- package/js/src/pro/vertex.d.ts +0 -104
- package/js/src/pro/vertex.js +0 -999
- package/js/src/vertex.d.ts +0 -346
- package/js/src/vertex.js +0 -3146
|
@@ -102,7 +102,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
102
102
|
},
|
|
103
103
|
'www': 'https://futures.kraken.com/',
|
|
104
104
|
'doc': [
|
|
105
|
-
'https://docs.
|
|
105
|
+
'https://docs.kraken.com/api/docs/futures-api/trading/market-data/',
|
|
106
106
|
],
|
|
107
107
|
'fees': 'https://support.kraken.com/hc/en-us/articles/360022835771-Transaction-fees-and-rebates-for-Kraken-Futures',
|
|
108
108
|
'referral': undefined,
|
|
@@ -365,7 +365,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
365
365
|
* @method
|
|
366
366
|
* @name krakenfutures#fetchMarkets
|
|
367
367
|
* @description Fetches the available trading markets from the exchange, Multi-collateral markets are returned as linear markets, but can be settled in multiple currencies
|
|
368
|
-
* @see https://docs.
|
|
368
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-instruments
|
|
369
369
|
* @param {object} [params] exchange specific params
|
|
370
370
|
* @returns An array of market structures
|
|
371
371
|
*/
|
|
@@ -540,7 +540,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
540
540
|
/**
|
|
541
541
|
* @method
|
|
542
542
|
* @name krakenfutures#fetchOrderBook
|
|
543
|
-
* @see https://docs.
|
|
543
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-orderbook
|
|
544
544
|
* @description Fetches a list of open orders in a market
|
|
545
545
|
* @param {string} symbol Unified market symbol
|
|
546
546
|
* @param {int} [limit] Not used by krakenfutures
|
|
@@ -591,7 +591,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
591
591
|
* @method
|
|
592
592
|
* @name krakenfutures#fetchTickers
|
|
593
593
|
* @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
594
|
-
* @see https://docs.
|
|
594
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-tickers
|
|
595
595
|
* @param {string[]} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
596
596
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
597
597
|
* @returns {object} an array of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
@@ -710,7 +710,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
710
710
|
/**
|
|
711
711
|
* @method
|
|
712
712
|
* @name krakenfutures#fetchOHLCV
|
|
713
|
-
* @see https://docs.
|
|
713
|
+
* @see https://docs.kraken.com/api/docs/futures-api/charts/candles
|
|
714
714
|
* @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
715
715
|
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
716
716
|
* @param {string} timeframe the length of time each candle represents
|
|
@@ -793,8 +793,8 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
793
793
|
/**
|
|
794
794
|
* @method
|
|
795
795
|
* @name krakenfutures#fetchTrades
|
|
796
|
-
* @see https://docs.
|
|
797
|
-
* @see https://docs.
|
|
796
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-history
|
|
797
|
+
* @see https://docs.kraken.com/api/docs/futures-api/history/get-public-execution-events
|
|
798
798
|
* @description Fetch a history of filled trades that this account has made
|
|
799
799
|
* @param {string} symbol Unified CCXT market symbol
|
|
800
800
|
* @param {int} [since] Timestamp in ms of earliest trade. Not used by krakenfutures except in combination with params.until
|
|
@@ -1239,7 +1239,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1239
1239
|
/**
|
|
1240
1240
|
* @method
|
|
1241
1241
|
* @name krakenfutures#editOrder
|
|
1242
|
-
* @see https://docs.
|
|
1242
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/edit-order-spring
|
|
1243
1243
|
* @description Edit an open order on the exchange
|
|
1244
1244
|
* @param {string} id order id
|
|
1245
1245
|
* @param {string} symbol Not used by Krakenfutures
|
|
@@ -1271,7 +1271,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1271
1271
|
/**
|
|
1272
1272
|
* @method
|
|
1273
1273
|
* @name krakenfutures#cancelOrder
|
|
1274
|
-
* @see https://docs.
|
|
1274
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/cancel-order
|
|
1275
1275
|
* @description Cancel an open order on the exchange
|
|
1276
1276
|
* @param {string} id Order id
|
|
1277
1277
|
* @param {string} symbol Not used by Krakenfutures
|
|
@@ -1293,7 +1293,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1293
1293
|
* @method
|
|
1294
1294
|
* @name krakenfutures#cancelOrders
|
|
1295
1295
|
* @description cancel multiple orders
|
|
1296
|
-
* @see https://docs.
|
|
1296
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/send-batch-order
|
|
1297
1297
|
* @param {string[]} ids order ids
|
|
1298
1298
|
* @param {string} [symbol] unified market symbol
|
|
1299
1299
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
@@ -1356,7 +1356,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1356
1356
|
/**
|
|
1357
1357
|
* @method
|
|
1358
1358
|
* @name krakenfutures#cancelAllOrders
|
|
1359
|
-
* @see https://docs.
|
|
1359
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/cancel-all-orders
|
|
1360
1360
|
* @description Cancels all orders on the exchange, including trigger orders
|
|
1361
1361
|
* @param {str} symbol Unified market symbol
|
|
1362
1362
|
* @param {dict} [params] Exchange specific params
|
|
@@ -1413,7 +1413,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1413
1413
|
* @method
|
|
1414
1414
|
* @name krakenfutures#cancelAllOrdersAfter
|
|
1415
1415
|
* @description dead man's switch, cancel all orders after the given timeout
|
|
1416
|
-
* @see https://docs.
|
|
1416
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/cancel-all-orders-after
|
|
1417
1417
|
* @param {number} timeout time in milliseconds, 0 represents cancel the timer
|
|
1418
1418
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1419
1419
|
* @returns {object} the api result
|
|
@@ -1439,7 +1439,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1439
1439
|
/**
|
|
1440
1440
|
* @method
|
|
1441
1441
|
* @name krakenfutures#fetchOpenOrders
|
|
1442
|
-
* @see https://docs.
|
|
1442
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-open-orders
|
|
1443
1443
|
* @description Gets all open orders, including trigger orders, for an account from the exchange api
|
|
1444
1444
|
* @param {string} symbol Unified market symbol
|
|
1445
1445
|
* @param {int} [since] Timestamp (ms) of earliest order. (Not used by kraken api but filtered internally by CCXT)
|
|
@@ -1502,7 +1502,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1502
1502
|
/**
|
|
1503
1503
|
* @method
|
|
1504
1504
|
* @name krakenfutures#fetchCanceledOrders
|
|
1505
|
-
* @see https://docs.
|
|
1505
|
+
* @see https://docs.kraken.com/api/docs/futures-api/history/get-order-events
|
|
1506
1506
|
* @description Gets all canceled orders, including trigger orders, for an account from the exchange api
|
|
1507
1507
|
* @param {string} symbol Unified market symbol
|
|
1508
1508
|
* @param {int} [since] Timestamp (ms) of earliest order.
|
|
@@ -1991,7 +1991,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
1991
1991
|
* @method
|
|
1992
1992
|
* @name krakenfutures#fetchMyTrades
|
|
1993
1993
|
* @description fetch all trades made by the user
|
|
1994
|
-
* @see https://docs.
|
|
1994
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-fills
|
|
1995
1995
|
* @param {string} symbol unified market symbol
|
|
1996
1996
|
* @param {int} [since] *not used by the api* the earliest time in ms to fetch trades for
|
|
1997
1997
|
* @param {int} [limit] the maximum number of trades structures to retrieve
|
|
@@ -2032,7 +2032,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2032
2032
|
/**
|
|
2033
2033
|
* @method
|
|
2034
2034
|
* @name krakenfutures#fetchBalance
|
|
2035
|
-
* @see https://docs.
|
|
2035
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-accounts
|
|
2036
2036
|
* @description Fetch the balance for a sub-account, all sub-account balances are inside 'info' in the response
|
|
2037
2037
|
* @param {object} [params] Exchange specific parameters
|
|
2038
2038
|
* @param {string} [params.type] The sub-account type to query the balance of, possible values include 'flex', 'cash'/'main'/'funding', or a market symbol * defaults to 'flex' *
|
|
@@ -2256,7 +2256,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2256
2256
|
* @method
|
|
2257
2257
|
* @name krakenfutures#fetchFundingRates
|
|
2258
2258
|
* @description fetch the current funding rates for multiple markets
|
|
2259
|
-
* @see https://docs.
|
|
2259
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-tickers
|
|
2260
2260
|
* @param {string[]} symbols unified market symbols
|
|
2261
2261
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2262
2262
|
* @returns {Order[]} an array of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
|
|
@@ -2342,7 +2342,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2342
2342
|
* @method
|
|
2343
2343
|
* @name krakenfutures#fetchFundingRateHistory
|
|
2344
2344
|
* @description fetches historical funding rate prices
|
|
2345
|
-
* @see https://docs.
|
|
2345
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/historical-funding-rates
|
|
2346
2346
|
* @param {string} symbol unified symbol of the market to fetch the funding rate history for
|
|
2347
2347
|
* @param {int} [since] timestamp in ms of the earliest funding rate to fetch
|
|
2348
2348
|
* @param {int} [limit] the maximum amount of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-history-structure} to fetch
|
|
@@ -2393,7 +2393,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2393
2393
|
/**
|
|
2394
2394
|
* @method
|
|
2395
2395
|
* @name krakenfutures#fetchPositions
|
|
2396
|
-
* @see https://docs.
|
|
2396
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-open-positions
|
|
2397
2397
|
* @description Fetches current contract trading positions
|
|
2398
2398
|
* @param {string[]} symbols List of unified symbols
|
|
2399
2399
|
* @param {object} [params] Not used by krakenfutures
|
|
@@ -2490,7 +2490,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2490
2490
|
* @method
|
|
2491
2491
|
* @name krakenfutures#fetchLeverageTiers
|
|
2492
2492
|
* @description retrieve information on the maximum leverage, and maintenance margin for trades of varying trade sizes
|
|
2493
|
-
* @see https://docs.
|
|
2493
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-instruments
|
|
2494
2494
|
* @param {string[]|undefined} symbols list of unified market symbols
|
|
2495
2495
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2496
2496
|
* @returns {object} a dictionary of [leverage tiers structures]{@link https://docs.ccxt.com/#/?id=leverage-tiers-structure}, indexed by market symbols
|
|
@@ -2680,8 +2680,8 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2680
2680
|
/**
|
|
2681
2681
|
* @method
|
|
2682
2682
|
* @name krakenfutures#transfer
|
|
2683
|
-
* @see https://docs.
|
|
2684
|
-
* @see https://docs.
|
|
2683
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/transfer
|
|
2684
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/sub-account-transfer
|
|
2685
2685
|
* @description transfers currencies between sub-accounts
|
|
2686
2686
|
* @param {string} code Unified currency code
|
|
2687
2687
|
* @param {float} amount Size of the transfer
|
|
@@ -2730,7 +2730,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2730
2730
|
* @method
|
|
2731
2731
|
* @name krakenfutures#setLeverage
|
|
2732
2732
|
* @description set the level of leverage for a market
|
|
2733
|
-
* @see https://docs.
|
|
2733
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/set-leverage-setting
|
|
2734
2734
|
* @param {float} leverage the rate of leverage
|
|
2735
2735
|
* @param {string} symbol unified market symbol
|
|
2736
2736
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
@@ -2754,7 +2754,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2754
2754
|
* @method
|
|
2755
2755
|
* @name krakenfutures#fetchLeverages
|
|
2756
2756
|
* @description fetch the set leverage for all contract and margin markets
|
|
2757
|
-
* @see https://docs.
|
|
2757
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-leverage-setting
|
|
2758
2758
|
* @param {string[]} [symbols] a list of unified market symbols
|
|
2759
2759
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2760
2760
|
* @returns {object} a list of [leverage structures]{@link https://docs.ccxt.com/#/?id=leverage-structure}
|
|
@@ -2781,7 +2781,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2781
2781
|
* @method
|
|
2782
2782
|
* @name krakenfutures#fetchLeverage
|
|
2783
2783
|
* @description fetch the set leverage for a market
|
|
2784
|
-
* @see https://docs.
|
|
2784
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-leverage-setting
|
|
2785
2785
|
* @param {string} symbol unified market symbol
|
|
2786
2786
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2787
2787
|
* @returns {object} a [leverage structure]{@link https://docs.ccxt.com/#/?id=leverage-structure}
|
package/dist/cjs/src/mexc.js
CHANGED
|
@@ -668,6 +668,7 @@ class mexc extends mexc$1["default"] {
|
|
|
668
668
|
'BNB Smart Chain(BEP20-RACAV1)': 'BSC',
|
|
669
669
|
'BNB Smart Chain(BEP20-RACAV2)': 'BSC',
|
|
670
670
|
'BNB Smart Chain(BEP20)': 'BSC',
|
|
671
|
+
'Ethereum(ERC20)': 'ERC20',
|
|
671
672
|
// TODO: uncomment below after deciding unified name
|
|
672
673
|
// 'PEPE COIN BSC':
|
|
673
674
|
// 'SMART BLOCKCHAIN':
|
|
@@ -5200,7 +5201,7 @@ class mexc extends mexc$1["default"] {
|
|
|
5200
5201
|
// positionShowStatus: 'CLOSED'
|
|
5201
5202
|
// }
|
|
5202
5203
|
//
|
|
5203
|
-
market = this.safeMarket(this.safeString(position, 'symbol'), market);
|
|
5204
|
+
market = this.safeMarket(this.safeString(position, 'symbol'), market, undefined, 'swap');
|
|
5204
5205
|
const symbol = market['symbol'];
|
|
5205
5206
|
const contracts = this.safeString(position, 'holdVol');
|
|
5206
5207
|
const entryPrice = this.safeNumber(position, 'openAvgPrice');
|
package/dist/cjs/src/okx.js
CHANGED
|
@@ -1219,7 +1219,7 @@ class okx extends okx$1["default"] {
|
|
|
1219
1219
|
'FUTURES': 'FUTURES',
|
|
1220
1220
|
'OPTION': 'OPTION',
|
|
1221
1221
|
},
|
|
1222
|
-
'brokerId': '
|
|
1222
|
+
'brokerId': '6b9ad766b55dBCDE',
|
|
1223
1223
|
},
|
|
1224
1224
|
'features': {
|
|
1225
1225
|
'default': {
|
|
@@ -6315,7 +6315,7 @@ class okx extends okx$1["default"] {
|
|
|
6315
6315
|
this.checkRequiredCredentials();
|
|
6316
6316
|
// inject id in implicit api call
|
|
6317
6317
|
if (method === 'POST' && (path === 'trade/batch-orders' || path === 'trade/order-algo' || path === 'trade/order')) {
|
|
6318
|
-
const brokerId = this.safeString(this.options, 'brokerId', '
|
|
6318
|
+
const brokerId = this.safeString(this.options, 'brokerId', '6b9ad766b55dBCDE');
|
|
6319
6319
|
if (Array.isArray(params)) {
|
|
6320
6320
|
for (let i = 0; i < params.length; i++) {
|
|
6321
6321
|
const entry = params[i];
|
package/dist/cjs/src/poloniex.js
CHANGED
|
@@ -2647,7 +2647,7 @@ class poloniex extends poloniex$1["default"] {
|
|
|
2647
2647
|
// "scale" : "-1",
|
|
2648
2648
|
// "asks" : [ "23139.82", "0.317981", "23140", "0.191091", "23170.06", "0.01", "23200", "0.107758", "23230.55", "0.01", "23247.2", "0.154", "23254", "0.005121", "23263", "0.038", "23285.4", "0.308", "23300", "0.108896" ],
|
|
2649
2649
|
// "bids" : [ "23139.74", "0.432092", "23139.73", "0.198592", "23123.21", "0.000886", "23123.2", "0.308", "23121.4", "0.154", "23105", "0.000789", "23100", "0.078175", "23069.1", "0.026276", "23068.83", "0.001329", "23051", "0.000048" ],
|
|
2650
|
-
// "ts" :
|
|
2650
|
+
// "ts" : 1659695219512
|
|
2651
2651
|
// }
|
|
2652
2652
|
//
|
|
2653
2653
|
const timestamp = this.safeInteger(response, 'time');
|