ccxt 4.5.17 → 4.5.18

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.
Files changed (44) hide show
  1. package/README.md +8 -5
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +6 -1
  4. package/dist/cjs/src/abstract/deepcoin.js +11 -0
  5. package/dist/cjs/src/apex.js +33 -15
  6. package/dist/cjs/src/base/Exchange.js +3 -3
  7. package/dist/cjs/src/base/ws/Client.js +8 -7
  8. package/dist/cjs/src/bigone.js +20 -0
  9. package/dist/cjs/src/binanceus.js +31 -1
  10. package/dist/cjs/src/blofin.js +4 -1
  11. package/dist/cjs/src/bybit.js +3 -0
  12. package/dist/cjs/src/deepcoin.js +3024 -0
  13. package/dist/cjs/src/pro/ascendex.js +2 -2
  14. package/dist/cjs/src/pro/binance.js +100 -3
  15. package/dist/cjs/src/pro/binanceus.js +19 -0
  16. package/dist/cjs/src/pro/blofin.js +11 -2
  17. package/dist/cjs/src/pro/deepcoin.js +1225 -0
  18. package/dist/cjs/src/pro/kraken.js +5 -1
  19. package/js/ccxt.d.ts +8 -2
  20. package/js/ccxt.js +6 -2
  21. package/js/src/abstract/bybit.d.ts +3 -0
  22. package/js/src/abstract/deepcoin.d.ts +60 -0
  23. package/js/src/abstract/deepcoin.js +11 -0
  24. package/js/src/apex.d.ts +2 -0
  25. package/js/src/apex.js +33 -15
  26. package/js/src/base/Exchange.js +3 -3
  27. package/js/src/base/ws/Client.js +8 -7
  28. package/js/src/bigone.js +20 -0
  29. package/js/src/binanceus.js +31 -1
  30. package/js/src/blofin.js +4 -1
  31. package/js/src/bybit.js +3 -0
  32. package/js/src/deepcoin.d.ts +498 -0
  33. package/js/src/deepcoin.js +3022 -0
  34. package/js/src/pro/ascendex.d.ts +1 -1
  35. package/js/src/pro/ascendex.js +2 -2
  36. package/js/src/pro/binance.d.ts +35 -1
  37. package/js/src/pro/binance.js +97 -3
  38. package/js/src/pro/binanceus.js +19 -0
  39. package/js/src/pro/blofin.d.ts +5 -0
  40. package/js/src/pro/blofin.js +11 -2
  41. package/js/src/pro/deepcoin.d.ts +169 -0
  42. package/js/src/pro/deepcoin.js +1224 -0
  43. package/js/src/pro/kraken.js +5 -1
  44. package/package.json +1 -1
@@ -613,7 +613,11 @@ class kraken extends kraken$1["default"] {
613
613
  //
614
614
  const data = this.safeList(message, 'data', []);
615
615
  const first = data[0];
616
- const symbol = this.safeString(first, 'symbol');
616
+ const marketId = this.safeString(first, 'symbol');
617
+ const symbol = this.safeSymbol(marketId);
618
+ if (!(symbol in this.ohlcvs)) {
619
+ this.ohlcvs[symbol] = {};
620
+ }
617
621
  const interval = this.safeInteger(first, 'interval');
618
622
  const timeframe = this.findTimeframe(interval);
619
623
  const messageHash = this.getMessageHash('ohlcv', undefined, symbol);
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 type { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarketMarginModes, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, LongShortRatio, OrderBooks, OpenInterests, ConstructorArgs } from './src/base/types.js';
6
6
  import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
7
- declare const version = "4.5.16";
7
+ declare const version = "4.5.17";
8
8
  import alpaca from './src/alpaca.js';
9
9
  import apex from './src/apex.js';
10
10
  import arkham from './src/arkham.js';
@@ -55,6 +55,7 @@ import coinsph from './src/coinsph.js';
55
55
  import coinspot from './src/coinspot.js';
56
56
  import cryptocom from './src/cryptocom.js';
57
57
  import cryptomus from './src/cryptomus.js';
58
+ import deepcoin from './src/deepcoin.js';
58
59
  import defx from './src/defx.js';
59
60
  import delta from './src/delta.js';
60
61
  import deribit from './src/deribit.js';
@@ -145,6 +146,7 @@ import coincheckPro from './src/pro/coincheck.js';
145
146
  import coinexPro from './src/pro/coinex.js';
146
147
  import coinonePro from './src/pro/coinone.js';
147
148
  import cryptocomPro from './src/pro/cryptocom.js';
149
+ import deepcoinPro from './src/pro/deepcoin.js';
148
150
  import defxPro from './src/pro/defx.js';
149
151
  import deribitPro from './src/pro/deribit.js';
150
152
  import derivePro from './src/pro/derive.js';
@@ -235,6 +237,7 @@ declare const exchanges: {
235
237
  coinspot: typeof coinspot;
236
238
  cryptocom: typeof cryptocom;
237
239
  cryptomus: typeof cryptomus;
240
+ deepcoin: typeof deepcoin;
238
241
  defx: typeof defx;
239
242
  delta: typeof delta;
240
243
  deribit: typeof deribit;
@@ -327,6 +330,7 @@ declare const pro: {
327
330
  coinex: typeof coinexPro;
328
331
  coinone: typeof coinonePro;
329
332
  cryptocom: typeof cryptocomPro;
333
+ deepcoin: typeof deepcoinPro;
330
334
  defx: typeof defxPro;
331
335
  deribit: typeof deribitPro;
332
336
  derive: typeof derivePro;
@@ -407,6 +411,7 @@ declare const ccxt: {
407
411
  coinex: typeof coinexPro;
408
412
  coinone: typeof coinonePro;
409
413
  cryptocom: typeof cryptocomPro;
414
+ deepcoin: typeof deepcoinPro;
410
415
  defx: typeof defxPro;
411
416
  deribit: typeof deribitPro;
412
417
  derive: typeof derivePro;
@@ -498,6 +503,7 @@ declare const ccxt: {
498
503
  coinspot: typeof coinspot;
499
504
  cryptocom: typeof cryptocom;
500
505
  cryptomus: typeof cryptomus;
506
+ deepcoin: typeof deepcoin;
501
507
  defx: typeof defx;
502
508
  delta: typeof delta;
503
509
  deribit: typeof deribit;
@@ -555,5 +561,5 @@ declare const ccxt: {
555
561
  zaif: typeof zaif;
556
562
  zonda: typeof zonda;
557
563
  } & typeof functions & typeof errors;
558
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, ConstructorArgs, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketMarginModes, MarketInterface, Trade, Order, OrderBook, OrderBooks, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, OpenInterests, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, LongShortRatio, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, alpaca, apex, arkham, ascendex, backpack, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, defx, delta, deribit, derive, digifinex, exmo, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, novadax, oceanex, okx, okxus, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, timex, tokocrypto, toobit, upbit, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
564
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, ConstructorArgs, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketMarginModes, MarketInterface, Trade, Order, OrderBook, OrderBooks, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, OpenInterests, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, LongShortRatio, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, alpaca, apex, arkham, ascendex, backpack, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, deepcoin, defx, delta, deribit, derive, digifinex, exmo, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, novadax, oceanex, okx, okxus, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, timex, tokocrypto, toobit, upbit, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
559
565
  export default ccxt;
package/js/ccxt.js CHANGED
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
38
38
  import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
39
39
  //-----------------------------------------------------------------------------
40
40
  // this is updated by vss.js when building
41
- const version = '4.5.16';
41
+ const version = '4.5.17';
42
42
  Exchange.ccxtVersion = version;
43
43
  //-----------------------------------------------------------------------------
44
44
  import alpaca from './src/alpaca.js';
@@ -91,6 +91,7 @@ import coinsph from './src/coinsph.js';
91
91
  import coinspot from './src/coinspot.js';
92
92
  import cryptocom from './src/cryptocom.js';
93
93
  import cryptomus from './src/cryptomus.js';
94
+ import deepcoin from './src/deepcoin.js';
94
95
  import defx from './src/defx.js';
95
96
  import delta from './src/delta.js';
96
97
  import deribit from './src/deribit.js';
@@ -182,6 +183,7 @@ import coincheckPro from './src/pro/coincheck.js';
182
183
  import coinexPro from './src/pro/coinex.js';
183
184
  import coinonePro from './src/pro/coinone.js';
184
185
  import cryptocomPro from './src/pro/cryptocom.js';
186
+ import deepcoinPro from './src/pro/deepcoin.js';
185
187
  import defxPro from './src/pro/defx.js';
186
188
  import deribitPro from './src/pro/deribit.js';
187
189
  import derivePro from './src/pro/derive.js';
@@ -272,6 +274,7 @@ const exchanges = {
272
274
  'coinspot': coinspot,
273
275
  'cryptocom': cryptocom,
274
276
  'cryptomus': cryptomus,
277
+ 'deepcoin': deepcoin,
275
278
  'defx': defx,
276
279
  'delta': delta,
277
280
  'deribit': deribit,
@@ -364,6 +367,7 @@ const pro = {
364
367
  'coinex': coinexPro,
365
368
  'coinone': coinonePro,
366
369
  'cryptocom': cryptocomPro,
370
+ 'deepcoin': deepcoinPro,
367
371
  'defx': defxPro,
368
372
  'deribit': deribitPro,
369
373
  'derive': derivePro,
@@ -416,6 +420,6 @@ pro.exchanges = Object.keys(pro);
416
420
  pro['Exchange'] = Exchange; // now the same for rest and ts
417
421
  //-----------------------------------------------------------------------------
418
422
  const ccxt = Object.assign({ version, Exchange, Precise, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, functions, errors);
419
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, alpaca, apex, arkham, ascendex, backpack, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, defx, delta, deribit, derive, digifinex, exmo, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, novadax, oceanex, okx, okxus, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, timex, tokocrypto, toobit, upbit, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
423
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, alpaca, apex, arkham, ascendex, backpack, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, deepcoin, defx, delta, deribit, derive, digifinex, exmo, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, novadax, oceanex, okx, okxus, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, timex, tokocrypto, toobit, upbit, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
420
424
  export default ccxt;
421
425
  //-----------------------------------------------------------------------------
@@ -198,8 +198,11 @@ interface Exchange {
198
198
  privateGetV5BrokerEarningsInfo(params?: {}): Promise<implicitReturnType>;
199
199
  privateGetV5BrokerAccountInfo(params?: {}): Promise<implicitReturnType>;
200
200
  privateGetV5BrokerAssetQuerySubMemberDepositRecord(params?: {}): Promise<implicitReturnType>;
201
+ privateGetV5EarnProduct(params?: {}): Promise<implicitReturnType>;
201
202
  privateGetV5EarnOrder(params?: {}): Promise<implicitReturnType>;
202
203
  privateGetV5EarnPosition(params?: {}): Promise<implicitReturnType>;
204
+ privateGetV5EarnYield(params?: {}): Promise<implicitReturnType>;
205
+ privateGetV5EarnHourlyYield(params?: {}): Promise<implicitReturnType>;
203
206
  privatePostSpotV3PrivateOrder(params?: {}): Promise<implicitReturnType>;
204
207
  privatePostSpotV3PrivateCancelOrder(params?: {}): Promise<implicitReturnType>;
205
208
  privatePostSpotV3PrivateCancelOrders(params?: {}): Promise<implicitReturnType>;
@@ -0,0 +1,60 @@
1
+ import { implicitReturnType } from '../base/types.js';
2
+ import { Exchange as _Exchange } from '../base/Exchange.js';
3
+ interface Exchange {
4
+ publicGetDeepcoinMarketBooks(params?: {}): Promise<implicitReturnType>;
5
+ publicGetDeepcoinMarketCandles(params?: {}): Promise<implicitReturnType>;
6
+ publicGetDeepcoinMarketInstruments(params?: {}): Promise<implicitReturnType>;
7
+ publicGetDeepcoinMarketTickers(params?: {}): Promise<implicitReturnType>;
8
+ publicGetDeepcoinMarketIndexCandles(params?: {}): Promise<implicitReturnType>;
9
+ publicGetDeepcoinMarketTrades(params?: {}): Promise<implicitReturnType>;
10
+ publicGetDeepcoinMarketMarkPriceCandles(params?: {}): Promise<implicitReturnType>;
11
+ publicGetDeepcoinMarketStepMargin(params?: {}): Promise<implicitReturnType>;
12
+ privateGetDeepcoinAccountBalances(params?: {}): Promise<implicitReturnType>;
13
+ privateGetDeepcoinAccountBills(params?: {}): Promise<implicitReturnType>;
14
+ privateGetDeepcoinAccountPositions(params?: {}): Promise<implicitReturnType>;
15
+ privateGetDeepcoinTradeFills(params?: {}): Promise<implicitReturnType>;
16
+ privateGetDeepcoinTradeOrderByID(params?: {}): Promise<implicitReturnType>;
17
+ privateGetDeepcoinTradeFinishOrderByID(params?: {}): Promise<implicitReturnType>;
18
+ privateGetDeepcoinTradeOrdersHistory(params?: {}): Promise<implicitReturnType>;
19
+ privateGetDeepcoinTradeV2OrdersPending(params?: {}): Promise<implicitReturnType>;
20
+ privateGetDeepcoinTradeFundingRate(params?: {}): Promise<implicitReturnType>;
21
+ privateGetDeepcoinTradeFundRateCurrentFundingRate(params?: {}): Promise<implicitReturnType>;
22
+ privateGetDeepcoinTradeFundRateHistory(params?: {}): Promise<implicitReturnType>;
23
+ privateGetDeepcoinTradeTriggerOrdersPending(params?: {}): Promise<implicitReturnType>;
24
+ privateGetDeepcoinTradeTriggerOrdersHistory(params?: {}): Promise<implicitReturnType>;
25
+ privateGetDeepcoinCopytradingSupportContracts(params?: {}): Promise<implicitReturnType>;
26
+ privateGetDeepcoinCopytradingLeaderPosition(params?: {}): Promise<implicitReturnType>;
27
+ privateGetDeepcoinCopytradingEstimateProfit(params?: {}): Promise<implicitReturnType>;
28
+ privateGetDeepcoinCopytradingHistoryProfit(params?: {}): Promise<implicitReturnType>;
29
+ privateGetDeepcoinCopytradingFollowerRank(params?: {}): Promise<implicitReturnType>;
30
+ privateGetDeepcoinInternalTransferSupport(params?: {}): Promise<implicitReturnType>;
31
+ privateGetDeepcoinInternalTransferHistoryOrder(params?: {}): Promise<implicitReturnType>;
32
+ privateGetDeepcoinRebateConfig(params?: {}): Promise<implicitReturnType>;
33
+ privateGetDeepcoinAgentsUsers(params?: {}): Promise<implicitReturnType>;
34
+ privateGetDeepcoinAgentsUsersRebateList(params?: {}): Promise<implicitReturnType>;
35
+ privateGetDeepcoinAgentsUsersRebates(params?: {}): Promise<implicitReturnType>;
36
+ privateGetDeepcoinAssetDepositList(params?: {}): Promise<implicitReturnType>;
37
+ privateGetDeepcoinAssetWithdrawList(params?: {}): Promise<implicitReturnType>;
38
+ privateGetDeepcoinAssetRechargeChainList(params?: {}): Promise<implicitReturnType>;
39
+ privateGetDeepcoinListenkeyAcquire(params?: {}): Promise<implicitReturnType>;
40
+ privateGetDeepcoinListenkeyExtend(params?: {}): Promise<implicitReturnType>;
41
+ privatePostDeepcoinAccountSetLeverage(params?: {}): Promise<implicitReturnType>;
42
+ privatePostDeepcoinTradeOrder(params?: {}): Promise<implicitReturnType>;
43
+ privatePostDeepcoinTradeReplaceOrder(params?: {}): Promise<implicitReturnType>;
44
+ privatePostDeepcoinTradeCancelOrder(params?: {}): Promise<implicitReturnType>;
45
+ privatePostDeepcoinTradeBatchCancelOrder(params?: {}): Promise<implicitReturnType>;
46
+ privatePostDeepcoinTradeCancelTriggerOrder(params?: {}): Promise<implicitReturnType>;
47
+ privatePostDeepcoinTradeSwapCancelAll(params?: {}): Promise<implicitReturnType>;
48
+ privatePostDeepcoinTradeTriggerOrder(params?: {}): Promise<implicitReturnType>;
49
+ privatePostDeepcoinTradeBatchClosePosition(params?: {}): Promise<implicitReturnType>;
50
+ privatePostDeepcoinTradeReplaceOrderSltp(params?: {}): Promise<implicitReturnType>;
51
+ privatePostDeepcoinTradeClosePositionByIds(params?: {}): Promise<implicitReturnType>;
52
+ privatePostDeepcoinCopytradingLeaderSettings(params?: {}): Promise<implicitReturnType>;
53
+ privatePostDeepcoinCopytradingSetContracts(params?: {}): Promise<implicitReturnType>;
54
+ privatePostDeepcoinInternalTransfer(params?: {}): Promise<implicitReturnType>;
55
+ privatePostDeepcoinRebateConfig(params?: {}): Promise<implicitReturnType>;
56
+ privatePostDeepcoinAssetTransfer(params?: {}): Promise<implicitReturnType>;
57
+ }
58
+ declare abstract class Exchange extends _Exchange {
59
+ }
60
+ export default Exchange;
@@ -0,0 +1,11 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
7
+ // -------------------------------------------------------------------------------
8
+ import { Exchange as _Exchange } from '../base/Exchange.js';
9
+ class Exchange extends _Exchange {
10
+ }
11
+ export default Exchange;
package/js/src/apex.d.ts CHANGED
@@ -162,6 +162,8 @@ export default class apex extends Exchange {
162
162
  * @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
163
163
  * @param {object} [params] extra parameters specific to the exchange API endpoint
164
164
  * @param {float} [params.triggerPrice] The price a trigger order is triggered at
165
+ * @param {float} [params.stopLossPrice] The price a stop loss order is triggered at
166
+ * @param {float} [params.takeProfitPrice] The price a take profit order is triggered at
165
167
  * @param {string} [params.timeInForce] "GTC", "IOC", or "POST_ONLY"
166
168
  * @param {bool} [params.postOnly] true or false
167
169
  * @param {bool} [params.reduceOnly] Ensures that the executed order does not flip the opened position.
package/js/src/apex.js CHANGED
@@ -1231,14 +1231,14 @@ export default class apex extends Exchange {
1231
1231
  }
1232
1232
  parseOrderType(type) {
1233
1233
  const types = {
1234
- 'LIMIT': 'LIMIT',
1235
- 'MARKET': 'MARKET',
1236
- 'STOP_LIMIT': 'STOP_LIMIT',
1237
- 'STOP_MARKET': 'STOP_MARKET',
1238
- 'TAKE_PROFIT_LIMIT': 'TAKE_PROFIT_LIMIT',
1239
- 'TAKE_PROFIT_MARKET': 'TAKE_PROFIT_MARKET',
1234
+ 'LIMIT': 'limit',
1235
+ 'MARKET': 'market',
1236
+ 'STOP_LIMIT': 'limit',
1237
+ 'STOP_MARKET': 'market',
1238
+ 'TAKE_PROFIT_LIMIT': 'limit',
1239
+ 'TAKE_PROFIT_MARKET': 'market',
1240
1240
  };
1241
- return this.safeStringUpper(types, type, type);
1241
+ return this.safeString(types, type, type);
1242
1242
  }
1243
1243
  safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
1244
1244
  if (market === undefined && marketId !== undefined) {
@@ -1303,6 +1303,8 @@ export default class apex extends Exchange {
1303
1303
  * @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1304
1304
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1305
1305
  * @param {float} [params.triggerPrice] The price a trigger order is triggered at
1306
+ * @param {float} [params.stopLossPrice] The price a stop loss order is triggered at
1307
+ * @param {float} [params.takeProfitPrice] The price a take profit order is triggered at
1306
1308
  * @param {string} [params.timeInForce] "GTC", "IOC", or "POST_ONLY"
1307
1309
  * @param {bool} [params.postOnly] true or false
1308
1310
  * @param {bool} [params.reduceOnly] Ensures that the executed order does not flip the opened position.
@@ -1312,7 +1314,7 @@ export default class apex extends Exchange {
1312
1314
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1313
1315
  await this.loadMarkets();
1314
1316
  const market = this.market(symbol);
1315
- const orderType = type.toUpperCase();
1317
+ let orderType = type.toUpperCase();
1316
1318
  const orderSide = side.toUpperCase();
1317
1319
  const orderSize = this.amountToPrecision(symbol, amount);
1318
1320
  let orderPrice = '0';
@@ -1320,11 +1322,21 @@ export default class apex extends Exchange {
1320
1322
  orderPrice = this.priceToPrecision(symbol, price);
1321
1323
  }
1322
1324
  const fees = this.safeDict(this.fees, 'swap', {});
1323
- const taker = this.safeNumber(fees, 'taker', 0.0005);
1324
- const maker = this.safeNumber(fees, 'maker', 0.0002);
1325
- const limitFee = this.decimalToPrecision(Precise.stringAdd(Precise.stringMul(Precise.stringMul(orderPrice, orderSize), taker.toString()), market['precision']['price'].toString()), TRUNCATE, market['precision']['price'], this.precisionMode, this.paddingMode);
1325
+ const taker = this.safeString(fees, 'taker', '0.0005');
1326
+ const maker = this.safeString(fees, 'maker', '0.0002');
1327
+ const limitFee = this.decimalToPrecision(Precise.stringAdd(Precise.stringMul(Precise.stringMul(orderPrice, orderSize), taker), this.numberToString(market['precision']['price'])), TRUNCATE, market['precision']['price'], this.precisionMode, this.paddingMode);
1326
1328
  const timeNow = this.milliseconds();
1327
- // const triggerPrice = this.safeString2 (params, 'triggerPrice', 'stopPrice');
1329
+ let triggerPrice = this.safeString(params, 'triggerPrice');
1330
+ const stopLossPrice = this.safeString(params, 'stopLossPrice');
1331
+ const takeProfitPrice = this.safeString(params, 'takeProfitPrice');
1332
+ if (stopLossPrice !== undefined) {
1333
+ orderType = (orderType === 'MARKET') ? 'STOP_MARKET' : 'STOP_LIMIT';
1334
+ triggerPrice = stopLossPrice;
1335
+ }
1336
+ else if (takeProfitPrice !== undefined) {
1337
+ orderType = (orderType === 'MARKET') ? 'TAKE_PROFIT_MARKET' : 'TAKE_PROFIT_LIMIT';
1338
+ triggerPrice = takeProfitPrice;
1339
+ }
1328
1340
  const isMarket = orderType === 'MARKET';
1329
1341
  if (isMarket && (price === undefined)) {
1330
1342
  throw new ArgumentsRequired(this.id + ' createOrder() requires a price argument for market orders');
@@ -1349,7 +1361,7 @@ export default class apex extends Exchange {
1349
1361
  if (clientOrderId === undefined) {
1350
1362
  clientOrderId = this.generateRandomClientIdOmni(accountId);
1351
1363
  }
1352
- params = this.omit(params, ['clientId', 'clientOrderId', 'client_order_id']);
1364
+ params = this.omit(params, ['clientId', 'clientOrderId', 'client_order_id', 'stopLossPrice', 'takeProfitPrice', 'triggerPrice']);
1353
1365
  const orderToSign = {
1354
1366
  'accountId': accountId,
1355
1367
  'slotId': clientOrderId,
@@ -1358,9 +1370,12 @@ export default class apex extends Exchange {
1358
1370
  'size': orderSize,
1359
1371
  'price': orderPrice,
1360
1372
  'direction': orderSide,
1361
- 'makerFeeRate': maker.toString(),
1362
- 'takerFeeRate': taker.toString(),
1373
+ 'makerFeeRate': maker,
1374
+ 'takerFeeRate': taker,
1363
1375
  };
1376
+ if (triggerPrice !== undefined) {
1377
+ orderToSign['triggerPrice'] = this.priceToPrecision(symbol, triggerPrice);
1378
+ }
1364
1379
  const signature = await this.getZKContractSignatureObj(this.remove0xPrefix(this.getSeeds()), orderToSign);
1365
1380
  const request = {
1366
1381
  'symbol': market['id'],
@@ -1374,6 +1389,9 @@ export default class apex extends Exchange {
1374
1389
  'clientId': clientOrderId,
1375
1390
  'brokerId': this.safeString(this.options, 'brokerId', '6956'),
1376
1391
  };
1392
+ if (triggerPrice !== undefined) {
1393
+ request['triggerPrice'] = this.priceToPrecision(symbol, triggerPrice);
1394
+ }
1377
1395
  request['signature'] = signature;
1378
1396
  const response = await this.privatePostV3Order(this.extend(request, params));
1379
1397
  const data = this.safeDict(response, 'data', {});
@@ -1862,7 +1862,7 @@ export default class Exchange {
1862
1862
  }
1863
1863
  }
1864
1864
  getCacheIndex(orderbook, deltas) {
1865
- // return the first index of the cache that can be applied to the orderbook or -1 if not possible
1865
+ // return the first index of the cache that can be applied to the orderbook or -1 if not possible.
1866
1866
  return -1;
1867
1867
  }
1868
1868
  arraysConcat(arraysOfArrays) {
@@ -3639,7 +3639,7 @@ export default class Exchange {
3639
3639
  fee = this.parseFeeNumeric(fee);
3640
3640
  }
3641
3641
  if (!feesDefined) {
3642
- // just set it directly, no further processing needed
3642
+ // just set it directly, no further processing needed.
3643
3643
  fees = [fee];
3644
3644
  }
3645
3645
  // 'fees' were set, so reparse them
@@ -7787,7 +7787,7 @@ export default class Exchange {
7787
7787
  }
7788
7788
  }
7789
7789
  }
7790
- else if (topic === 'ticker' && (this.tickers !== undefined)) {
7790
+ else if ((topic === 'ticker' || topic === 'markPrice') && (this.tickers !== undefined)) {
7791
7791
  const tickerSymbols = Object.keys(this.tickers);
7792
7792
  for (let i = 0; i < tickerSymbols.length; i++) {
7793
7793
  const tickerSymbol = tickerSymbols[i];
@@ -153,6 +153,7 @@ export default class Client {
153
153
  if (this.ping) {
154
154
  message = this.ping(this);
155
155
  }
156
+ this.log(new Date(), 'OnPingInterval', this.url);
156
157
  if (message) {
157
158
  this.send(message).catch((error) => {
158
159
  this.onError(error);
@@ -175,7 +176,7 @@ export default class Client {
175
176
  }
176
177
  onOpen() {
177
178
  if (this.verbose) {
178
- this.log(new Date(), 'onOpen');
179
+ this.log(new Date(), 'onOpen', '|', this.url);
179
180
  }
180
181
  this.connectionEstablished = milliseconds();
181
182
  this.isConnected = true;
@@ -190,18 +191,18 @@ export default class Client {
190
191
  // however, some devs may want to track connection states in their app
191
192
  onPing() {
192
193
  if (this.verbose) {
193
- this.log(new Date(), 'onPing');
194
+ this.log(new Date(), 'onPing', '|', this.url);
194
195
  }
195
196
  }
196
197
  onPong() {
197
198
  this.lastPong = milliseconds();
198
199
  if (this.verbose) {
199
- this.log(new Date(), 'onPong');
200
+ this.log(new Date(), 'onPong', '|', this.url);
200
201
  }
201
202
  }
202
203
  onError(error) {
203
204
  if (this.verbose) {
204
- this.log(new Date(), 'onError', error.message);
205
+ this.log(new Date(), 'onError', error.message, '|', this.url);
205
206
  }
206
207
  if (!(error instanceof BaseError)) {
207
208
  // in case of ErrorEvent from node_modules/ws/lib/event-target.js
@@ -214,7 +215,7 @@ export default class Client {
214
215
  /* eslint-disable no-shadow */
215
216
  onClose(event) {
216
217
  if (this.verbose) {
217
- this.log(new Date(), 'onClose', event);
218
+ this.log(new Date(), 'onClose', event, '|', this.url);
218
219
  }
219
220
  if (!this.error) {
220
221
  // todo: exception types for server-side disconnects
@@ -232,7 +233,7 @@ export default class Client {
232
233
  // but may be used to read protocol-level data like cookies, headers, etc
233
234
  onUpgrade(message) {
234
235
  if (this.verbose) {
235
- this.log(new Date(), 'onUpgrade');
236
+ this.log(new Date(), 'onUpgrade', '|', this.url);
236
237
  }
237
238
  }
238
239
  async send(message) {
@@ -298,7 +299,7 @@ export default class Client {
298
299
  }
299
300
  }
300
301
  catch (e) {
301
- this.log(new Date(), 'onMessage JSON.parse', e);
302
+ this.log(new Date(), 'onMessage JSON.parse', e, '|', this.url);
302
303
  // reset with a json encoding error ?
303
304
  }
304
305
  try {
package/js/src/bigone.js CHANGED
@@ -31,6 +31,9 @@ export default class bigone extends Exchange {
31
31
  'swap': true,
32
32
  'future': undefined,
33
33
  'option': false,
34
+ 'borrowCrossMargin': false,
35
+ 'borrowIsolatedMargin': false,
36
+ 'borrowMargin': false,
34
37
  'cancelAllOrders': true,
35
38
  'cancelOrder': true,
36
39
  'createMarketBuyOrderWithCost': true,
@@ -41,8 +44,17 @@ export default class bigone extends Exchange {
41
44
  'createStopLimitOrder': true,
42
45
  'createStopMarketOrder': true,
43
46
  'createStopOrder': true,
47
+ 'fetchAllGreeks': false,
44
48
  'fetchBalance': true,
49
+ 'fetchBorrowInterest': false,
50
+ 'fetchBorrowRate': false,
51
+ 'fetchBorrowRateHistories': false,
52
+ 'fetchBorrowRateHistory': false,
53
+ 'fetchBorrowRates': false,
54
+ 'fetchBorrowRatesPerSymbol': false,
45
55
  'fetchClosedOrders': true,
56
+ 'fetchCrossBorrowRate': false,
57
+ 'fetchCrossBorrowRates': false,
46
58
  'fetchCurrencies': true,
47
59
  'fetchDepositAddress': true,
48
60
  'fetchDepositAddresses': false,
@@ -52,10 +64,15 @@ export default class bigone extends Exchange {
52
64
  'fetchFundingRate': false,
53
65
  'fetchFundingRateHistory': false,
54
66
  'fetchFundingRates': false,
67
+ 'fetchGreeks': false,
68
+ 'fetchIsolatedBorrowRate': false,
69
+ 'fetchIsolatedBorrowRates': false,
55
70
  'fetchMarkets': true,
56
71
  'fetchMyTrades': true,
57
72
  'fetchOHLCV': true,
58
73
  'fetchOpenOrders': true,
74
+ 'fetchOption': false,
75
+ 'fetchOptionChain': false,
59
76
  'fetchOrder': true,
60
77
  'fetchOrderBook': true,
61
78
  'fetchOrders': true,
@@ -66,7 +83,10 @@ export default class bigone extends Exchange {
66
83
  'fetchTradingFee': false,
67
84
  'fetchTradingFees': false,
68
85
  'fetchTransactionFees': false,
86
+ 'fetchVolatilityHistory': false,
69
87
  'fetchWithdrawals': true,
88
+ 'repayCrossMargin': false,
89
+ 'repayIsolatedMargin': false,
70
90
  'transfer': true,
71
91
  'withdraw': true,
72
92
  },
@@ -53,34 +53,64 @@ export default class binanceus extends binance {
53
53
  'spot': true,
54
54
  'margin': false,
55
55
  'swap': false,
56
- 'future': undefined,
56
+ 'future': false,
57
57
  'option': false,
58
58
  'addMargin': false,
59
+ 'borrowCrossMargin': false,
60
+ 'borrowIsolatedMargin': false,
61
+ 'borrowMargin': false,
59
62
  'closeAllPositions': false,
60
63
  'closePosition': false,
61
64
  'createReduceOnlyOrder': false,
65
+ 'createStopLossOrder': false,
66
+ 'createTakeProfitOrder': false,
67
+ 'fetchAllGreeks': false,
62
68
  'fetchBorrowInterest': false,
63
69
  'fetchBorrowRate': false,
64
70
  'fetchBorrowRateHistories': false,
65
71
  'fetchBorrowRateHistory': false,
66
72
  'fetchBorrowRates': false,
67
73
  'fetchBorrowRatesPerSymbol': false,
74
+ 'fetchCrossBorrowRate': false,
75
+ 'fetchCrossBorrowRates': false,
68
76
  'fetchFundingHistory': false,
77
+ 'fetchFundingInterval': false,
78
+ 'fetchFundingIntervals': false,
69
79
  'fetchFundingRate': false,
70
80
  'fetchFundingRateHistory': false,
71
81
  'fetchFundingRates': false,
82
+ 'fetchGreeks': false,
72
83
  'fetchIndexOHLCV': false,
84
+ 'fetchIsolatedBorrowRate': false,
85
+ 'fetchIsolatedBorrowRates': false,
73
86
  'fetchIsolatedPositions': false,
74
87
  'fetchLeverage': false,
75
88
  'fetchLeverageTiers': false,
89
+ 'fetchLongShortRatio': false,
90
+ 'fetchLongShortRatioHistory': false,
76
91
  'fetchMarketLeverageTiers': false,
77
92
  'fetchMarkOHLCV': false,
93
+ 'fetchMarkPrice': false,
94
+ 'fetchMarkPrices': false,
95
+ 'fetchMySettlementHistory': false,
78
96
  'fetchOpenInterestHistory': false,
97
+ 'fetchOpenInterests': false,
98
+ 'fetchOption': false,
99
+ 'fetchOptionChain': false,
79
100
  'fetchPosition': false,
101
+ 'fetchPositionHistory': false,
102
+ 'fetchPositionMode': false,
80
103
  'fetchPositions': false,
104
+ 'fetchPositionsForSymbol': false,
105
+ 'fetchPositionsHistory': false,
81
106
  'fetchPositionsRisk': false,
82
107
  'fetchPremiumIndexOHLCV': false,
108
+ 'fetchSettlementHistory': false,
109
+ 'fetchUnderlyingAssets': false,
110
+ 'fetchVolatilityHistory': false,
83
111
  'reduceMargin': false,
112
+ 'repayCrossMargin': false,
113
+ 'repayIsolatedMargin': false,
84
114
  'setLeverage': false,
85
115
  'setMargin': false,
86
116
  'setMarginMode': false,
package/js/src/blofin.js CHANGED
@@ -1284,11 +1284,14 @@ export default class blofin extends Exchange {
1284
1284
  timeInForce = 'IOC';
1285
1285
  type = 'limit';
1286
1286
  }
1287
+ else if (type === 'conditional') {
1288
+ type = 'trigger';
1289
+ }
1287
1290
  const marketId = this.safeString(order, 'instId');
1288
1291
  market = this.safeMarket(marketId, market);
1289
1292
  const symbol = this.safeSymbol(marketId, market, '-');
1290
1293
  const filled = this.safeString(order, 'filledSize');
1291
- const price = this.safeString2(order, 'px', 'price');
1294
+ const price = this.safeStringN(order, ['px', 'price', 'orderPrice']);
1292
1295
  const average = this.safeString(order, 'averagePrice');
1293
1296
  const status = this.parseOrderStatus(this.safeString(order, 'state'));
1294
1297
  const feeCostString = this.safeString(order, 'fee');
package/js/src/bybit.js CHANGED
@@ -420,8 +420,11 @@ export default class bybit extends Exchange {
420
420
  'v5/broker/account-info': 5,
421
421
  'v5/broker/asset/query-sub-member-deposit-record': 10,
422
422
  // earn
423
+ 'v5/earn/product': 5,
423
424
  'v5/earn/order': 5,
424
425
  'v5/earn/position': 5,
426
+ 'v5/earn/yield': 5,
427
+ 'v5/earn/hourly-yield': 5,
425
428
  },
426
429
  'post': {
427
430
  // spot