ccxt 4.3.84 → 4.3.86

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 (71) hide show
  1. package/README.md +7 -5
  2. package/dist/ccxt.browser.min.js +15 -15
  3. package/dist/cjs/ccxt.js +7 -1
  4. package/dist/cjs/src/abstract/hashkey.js +9 -0
  5. package/dist/cjs/src/base/Exchange.js +1 -1
  6. package/dist/cjs/src/base/errors.js +8 -1
  7. package/dist/cjs/src/binance.js +4 -2
  8. package/dist/cjs/src/bitfinex.js +2 -2
  9. package/dist/cjs/src/bitmex.js +4 -0
  10. package/dist/cjs/src/bybit.js +15 -14
  11. package/dist/cjs/src/cryptocom.js +117 -2
  12. package/dist/cjs/src/hashkey.js +4328 -0
  13. package/dist/cjs/src/hyperliquid.js +85 -65
  14. package/dist/cjs/src/indodax.js +37 -9
  15. package/dist/cjs/src/kraken.js +29 -1
  16. package/dist/cjs/src/krakenfutures.js +12 -10
  17. package/dist/cjs/src/kucoinfutures.js +5 -0
  18. package/dist/cjs/src/mexc.js +2 -2
  19. package/dist/cjs/src/pro/ascendex.js +45 -5
  20. package/dist/cjs/src/pro/binance.js +1 -1
  21. package/dist/cjs/src/pro/bingx.js +13 -12
  22. package/dist/cjs/src/pro/bitget.js +113 -4
  23. package/dist/cjs/src/pro/hashkey.js +839 -0
  24. package/dist/cjs/src/pro/hyperliquid.js +123 -0
  25. package/dist/cjs/src/pro/mexc.js +13 -7
  26. package/dist/cjs/src/pro/okx.js +25 -4
  27. package/dist/cjs/src/pro/woo.js +1 -0
  28. package/dist/cjs/src/pro/woofipro.js +1 -0
  29. package/dist/cjs/src/pro/xt.js +1 -0
  30. package/js/ccxt.d.ts +9 -3
  31. package/js/ccxt.js +7 -3
  32. package/js/src/abstract/cryptocom.d.ts +2 -0
  33. package/js/src/abstract/hashkey.d.ts +70 -0
  34. package/js/src/abstract/hashkey.js +11 -0
  35. package/js/src/abstract/kucoinfutures.d.ts +2 -0
  36. package/js/src/base/Exchange.js +1 -1
  37. package/js/src/base/errorHierarchy.d.ts +1 -0
  38. package/js/src/base/errorHierarchy.js +1 -0
  39. package/js/src/base/errors.d.ts +5 -1
  40. package/js/src/base/errors.js +8 -2
  41. package/js/src/binance.js +4 -2
  42. package/js/src/bitfinex.js +2 -2
  43. package/js/src/bitmex.js +4 -0
  44. package/js/src/bybit.js +16 -15
  45. package/js/src/cryptocom.d.ts +5 -1
  46. package/js/src/cryptocom.js +117 -2
  47. package/js/src/hashkey.d.ts +178 -0
  48. package/js/src/hashkey.js +4329 -0
  49. package/js/src/hyperliquid.d.ts +3 -0
  50. package/js/src/hyperliquid.js +85 -65
  51. package/js/src/indodax.js +37 -9
  52. package/js/src/kraken.js +29 -1
  53. package/js/src/krakenfutures.js +12 -10
  54. package/js/src/kucoinfutures.js +5 -0
  55. package/js/src/mexc.js +2 -2
  56. package/js/src/pro/ascendex.d.ts +2 -0
  57. package/js/src/pro/ascendex.js +45 -5
  58. package/js/src/pro/binance.js +1 -1
  59. package/js/src/pro/bingx.js +13 -12
  60. package/js/src/pro/bitget.d.ts +4 -0
  61. package/js/src/pro/bitget.js +113 -4
  62. package/js/src/pro/hashkey.d.ts +34 -0
  63. package/js/src/pro/hashkey.js +840 -0
  64. package/js/src/pro/hyperliquid.d.ts +7 -1
  65. package/js/src/pro/hyperliquid.js +123 -0
  66. package/js/src/pro/mexc.js +13 -7
  67. package/js/src/pro/okx.js +25 -4
  68. package/js/src/pro/woo.js +1 -0
  69. package/js/src/pro/woofipro.js +1 -0
  70. package/js/src/pro/xt.js +1 -0
  71. package/package.json +1 -1
@@ -83,6 +83,12 @@ class MarketClosed extends OperationRejected {
83
83
  this.name = 'MarketClosed';
84
84
  }
85
85
  }
86
+ class ManualInteractionNeeded extends OperationRejected {
87
+ constructor(message) {
88
+ super(message);
89
+ this.name = 'ManualInteractionNeeded';
90
+ }
91
+ }
86
92
  class InsufficientFunds extends ExchangeError {
87
93
  constructor(message) {
88
94
  super(message);
@@ -233,5 +239,5 @@ class CancelPending extends OperationFailed {
233
239
  this.name = 'CancelPending';
234
240
  }
235
241
  }
236
- export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, 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 };
237
- export default { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, 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 };
242
+ export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, 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 };
243
+ export default { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, 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 };
package/js/src/binance.js CHANGED
@@ -3855,12 +3855,14 @@ export default class binance extends Exchange {
3855
3855
  const marketId = this.safeString(ticker, 'symbol');
3856
3856
  const symbol = this.safeSymbol(marketId, market, undefined, marketType);
3857
3857
  const last = this.safeString(ticker, 'lastPrice');
3858
+ const wAvg = this.safeString(ticker, 'weightedAvgPrice');
3858
3859
  const isCoinm = ('baseVolume' in ticker);
3859
3860
  let baseVolume = undefined;
3860
3861
  let quoteVolume = undefined;
3861
3862
  if (isCoinm) {
3862
3863
  baseVolume = this.safeString(ticker, 'baseVolume');
3863
- quoteVolume = this.safeString(ticker, 'volume');
3864
+ // 'volume' field in inverse markets is not quoteVolume, but traded amount (per contracts)
3865
+ quoteVolume = Precise.stringMul(baseVolume, wAvg);
3864
3866
  }
3865
3867
  else {
3866
3868
  baseVolume = this.safeString(ticker, 'volume');
@@ -3876,7 +3878,7 @@ export default class binance extends Exchange {
3876
3878
  'bidVolume': this.safeString(ticker, 'bidQty'),
3877
3879
  'ask': this.safeString(ticker, 'askPrice'),
3878
3880
  'askVolume': this.safeString(ticker, 'askQty'),
3879
- 'vwap': this.safeString(ticker, 'weightedAvgPrice'),
3881
+ 'vwap': wAvg,
3880
3882
  'open': this.safeString2(ticker, 'openPrice', 'open'),
3881
3883
  'close': last,
3882
3884
  'last': last,
@@ -854,7 +854,7 @@ export default class bitfinex extends Exchange {
854
854
  * @method
855
855
  * @name bitfinex#fetchTickers
856
856
  * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
857
- * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
857
+ * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
858
858
  * @param {object} [params] extra parameters specific to the exchange API endpoint
859
859
  * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
860
860
  */
@@ -863,7 +863,7 @@ export default class bitfinex extends Exchange {
863
863
  const response = await this.publicGetTickers(params);
864
864
  const result = {};
865
865
  for (let i = 0; i < response.length; i++) {
866
- const ticker = this.parseTicker({ 'result': response[i] });
866
+ const ticker = this.parseTicker(response[i]);
867
867
  const symbol = ticker['symbol'];
868
868
  result[symbol] = ticker;
869
869
  }
package/js/src/bitmex.js CHANGED
@@ -10,6 +10,7 @@ import { TICK_SIZE } from './base/functions/number.js';
10
10
  import { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied, ArgumentsRequired, BadSymbol } from './base/errors.js';
11
11
  import { Precise } from './base/Precise.js';
12
12
  import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
13
+ import { totp } from './base/functions/totp.js';
13
14
  // ---------------------------------------------------------------------------
14
15
  /**
15
16
  * @class bitmex
@@ -2458,6 +2459,9 @@ export default class bitmex extends Exchange {
2458
2459
  // 'otpToken': '123456', // requires if two-factor auth (OTP) is enabled
2459
2460
  // 'fee': 0.001, // bitcoin network fee
2460
2461
  };
2462
+ if (this.twofa !== undefined) {
2463
+ request['otpToken'] = totp(this.twofa);
2464
+ }
2461
2465
  const response = await this.privatePostUserRequestWithdrawal(this.extend(request, params));
2462
2466
  //
2463
2467
  // {
package/js/src/bybit.js CHANGED
@@ -7,7 +7,7 @@
7
7
  // ---------------------------------------------------------------------------
8
8
  import Exchange from './abstract/bybit.js';
9
9
  import { TICK_SIZE } from './base/functions/number.js';
10
- import { AuthenticationError, ExchangeError, ArgumentsRequired, PermissionDenied, InvalidOrder, OrderNotFound, InsufficientFunds, BadRequest, RateLimitExceeded, InvalidNonce, NotSupported, RequestTimeout, MarginModeAlreadySet, NoChange } from './base/errors.js';
10
+ import { AuthenticationError, ExchangeError, ArgumentsRequired, PermissionDenied, InvalidOrder, OrderNotFound, InsufficientFunds, BadRequest, RateLimitExceeded, InvalidNonce, NotSupported, RequestTimeout, MarginModeAlreadySet, NoChange, ManualInteractionNeeded } from './base/errors.js';
11
11
  import { Precise } from './base/Precise.js';
12
12
  import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
13
13
  import { rsa } from './base/functions/rsa.js';
@@ -756,8 +756,11 @@ export default class bybit extends Exchange {
756
756
  '140069': PermissionDenied,
757
757
  '140070': InvalidOrder,
758
758
  '170001': ExchangeError,
759
- '170007': RequestTimeout,
760
759
  '170005': InvalidOrder,
760
+ '170007': RequestTimeout,
761
+ '170010': InvalidOrder,
762
+ '170011': InvalidOrder,
763
+ '170019': InvalidOrder,
761
764
  '170031': ExchangeError,
762
765
  '170032': ExchangeError,
763
766
  '170033': InsufficientFunds,
@@ -770,6 +773,7 @@ export default class bybit extends Exchange {
770
773
  '170116': InvalidOrder,
771
774
  '170117': InvalidOrder,
772
775
  '170121': InvalidOrder,
776
+ '170124': InvalidOrder,
773
777
  '170130': BadRequest,
774
778
  '170131': InsufficientFunds,
775
779
  '170132': InvalidOrder,
@@ -780,7 +784,6 @@ export default class bybit extends Exchange {
780
784
  '170137': InvalidOrder,
781
785
  '170139': InvalidOrder,
782
786
  '170140': InvalidOrder,
783
- '170124': InvalidOrder,
784
787
  '170141': InvalidOrder,
785
788
  '170142': InvalidOrder,
786
789
  '170143': InvalidOrder,
@@ -805,6 +808,15 @@ export default class bybit extends Exchange {
805
808
  '170198': InvalidOrder,
806
809
  '170199': InvalidOrder,
807
810
  '170200': InvalidOrder,
811
+ '170201': PermissionDenied,
812
+ '170202': InvalidOrder,
813
+ '170203': InvalidOrder,
814
+ '170204': InvalidOrder,
815
+ '170206': InvalidOrder,
816
+ '170210': InvalidOrder,
817
+ '170213': OrderNotFound,
818
+ '170217': InvalidOrder,
819
+ '170218': InvalidOrder,
808
820
  '170221': BadRequest,
809
821
  '170222': RateLimitExceeded,
810
822
  '170223': InsufficientFunds,
@@ -814,18 +826,7 @@ export default class bybit extends Exchange {
814
826
  '170228': InvalidOrder,
815
827
  '170229': InvalidOrder,
816
828
  '170234': ExchangeError,
817
- '170210': InvalidOrder,
818
- '170213': OrderNotFound,
819
- '170217': InvalidOrder,
820
- '170218': InvalidOrder,
821
- '170010': InvalidOrder,
822
- '170011': InvalidOrder,
823
- '170019': InvalidOrder,
824
- '170201': PermissionDenied,
825
- '170202': InvalidOrder,
826
- '170203': InvalidOrder,
827
- '170204': InvalidOrder,
828
- '170206': InvalidOrder,
829
+ '170241': ManualInteractionNeeded,
829
830
  '175000': InvalidOrder,
830
831
  '175001': InvalidOrder,
831
832
  '175002': InvalidOrder,
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/cryptocom.js';
2
- import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, Str, Ticker, OrderRequest, Balances, Transaction, OrderBook, Tickers, Strings, Currency, Market, Num, Account, CancellationRequest, Dict, int } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, Str, Ticker, OrderRequest, Balances, Transaction, OrderBook, Tickers, Strings, Currency, Market, Num, Account, CancellationRequest, Dict, int, TradingFeeInterface, TradingFees } from './base/types.js';
3
3
  /**
4
4
  * @class cryptocom
5
5
  * @augments Exchange
@@ -90,6 +90,10 @@ export default class cryptocom extends Exchange {
90
90
  nonce(): number;
91
91
  paramsToString(object: any, level: any): any;
92
92
  closePosition(symbol: string, side?: OrderSide, params?: {}): Promise<Order>;
93
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
94
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
95
+ parseTradingFees(response: any): Dict;
96
+ parseTradingFee(fee: Dict, market?: Market): TradingFeeInterface;
93
97
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
94
98
  url: string;
95
99
  method: string;
@@ -94,8 +94,8 @@ export default class cryptocom extends Exchange {
94
94
  'fetchTickers': true,
95
95
  'fetchTime': false,
96
96
  'fetchTrades': true,
97
- 'fetchTradingFee': false,
98
- 'fetchTradingFees': false,
97
+ 'fetchTradingFee': true,
98
+ 'fetchTradingFees': true,
99
99
  'fetchTransactionFees': false,
100
100
  'fetchTransactions': false,
101
101
  'fetchTransfers': false,
@@ -196,6 +196,8 @@ export default class cryptocom extends Exchange {
196
196
  'private/get-accounts': 10 / 3,
197
197
  'private/get-withdrawal-history': 10 / 3,
198
198
  'private/get-deposit-history': 10 / 3,
199
+ 'private/get-fee-rate': 2,
200
+ 'private/get-instrument-fee-rate': 2,
199
201
  'private/staking/stake': 2,
200
202
  'private/staking/unstake': 2,
201
203
  'private/staking/get-staking-position': 2,
@@ -3022,6 +3024,119 @@ export default class cryptocom extends Exchange {
3022
3024
  const result = this.safeDict(response, 'result');
3023
3025
  return this.parseOrder(result, market);
3024
3026
  }
3027
+ async fetchTradingFee(symbol, params = {}) {
3028
+ /**
3029
+ * @method
3030
+ * @name cryptocom#fetchTradingFee
3031
+ * @description fetch the trading fees for a market
3032
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-get-instrument-fee-rate
3033
+ * @param {string} symbol unified market symbol
3034
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
3035
+ * @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
3036
+ */
3037
+ await this.loadMarkets();
3038
+ const market = this.market(symbol);
3039
+ const request = {
3040
+ 'instrument_name': market['id'],
3041
+ };
3042
+ const response = await this.v1PrivatePostPrivateGetInstrumentFeeRate(this.extend(request, params));
3043
+ //
3044
+ // {
3045
+ // "id": 1,
3046
+ // "code": 0,
3047
+ // "method": "private/staking/unstake",
3048
+ // "result": {
3049
+ // "staking_id": "1",
3050
+ // "instrument_name": "SOL.staked",
3051
+ // "status": "NEW",
3052
+ // "quantity": "1",
3053
+ // "underlying_inst_name": "SOL",
3054
+ // "reason": "NO_ERROR"
3055
+ // }
3056
+ // }
3057
+ //
3058
+ const data = this.safeDict(response, 'result', {});
3059
+ return this.parseTradingFee(data, market);
3060
+ }
3061
+ async fetchTradingFees(params = {}) {
3062
+ /**
3063
+ * @method
3064
+ * @name cryptocom#fetchTradingFees
3065
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-get-fee-rate
3066
+ * @description fetch the trading fees for multiple markets
3067
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
3068
+ * @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
3069
+ */
3070
+ await this.loadMarkets();
3071
+ const response = await this.v1PrivatePostPrivateGetFeeRate(params);
3072
+ //
3073
+ // {
3074
+ // "id": 1,
3075
+ // "method": "/private/get-fee-rate",
3076
+ // "code": 0,
3077
+ // "result": {
3078
+ // "spot_tier": "3",
3079
+ // "deriv_tier": "3",
3080
+ // "effective_spot_maker_rate_bps": "6.5",
3081
+ // "effective_spot_taker_rate_bps": "6.9",
3082
+ // "effective_deriv_maker_rate_bps": "1.1",
3083
+ // "effective_deriv_taker_rate_bps": "3"
3084
+ // }
3085
+ // }
3086
+ //
3087
+ const result = this.safeDict(response, 'result', {});
3088
+ return this.parseTradingFees(result);
3089
+ }
3090
+ parseTradingFees(response) {
3091
+ //
3092
+ // {
3093
+ // "spot_tier": "3",
3094
+ // "deriv_tier": "3",
3095
+ // "effective_spot_maker_rate_bps": "6.5",
3096
+ // "effective_spot_taker_rate_bps": "6.9",
3097
+ // "effective_deriv_maker_rate_bps": "1.1",
3098
+ // "effective_deriv_taker_rate_bps": "3"
3099
+ // }
3100
+ //
3101
+ const result = {};
3102
+ result['info'] = response;
3103
+ for (let i = 0; i < this.symbols.length; i++) {
3104
+ const symbol = this.symbols[i];
3105
+ const market = this.market(symbol);
3106
+ const isSwap = market['swap'];
3107
+ const takerFeeKey = isSwap ? 'effective_deriv_taker_rate_bps' : 'effective_spot_taker_rate_bps';
3108
+ const makerFeeKey = isSwap ? 'effective_deriv_maker_rate_bps' : 'effective_spot_maker_rate_bps';
3109
+ const tradingFee = {
3110
+ 'info': response,
3111
+ 'symbol': symbol,
3112
+ 'maker': this.parseNumber(Precise.stringDiv(this.safeString(response, makerFeeKey), '10000')),
3113
+ 'taker': this.parseNumber(Precise.stringDiv(this.safeString(response, takerFeeKey), '10000')),
3114
+ 'percentage': undefined,
3115
+ 'tierBased': undefined,
3116
+ };
3117
+ result[symbol] = tradingFee;
3118
+ }
3119
+ return result;
3120
+ }
3121
+ parseTradingFee(fee, market = undefined) {
3122
+ //
3123
+ // {
3124
+ // "instrument_name": "BTC_USD",
3125
+ // "effective_maker_rate_bps": "6.5",
3126
+ // "effective_taker_rate_bps": "6.9"
3127
+ // }
3128
+ //
3129
+ const marketId = this.safeString(fee, 'instrument_name');
3130
+ const symbol = this.safeSymbol(marketId, market);
3131
+ return {
3132
+ 'info': fee,
3133
+ 'symbol': symbol,
3134
+ 'maker': this.parseNumber(Precise.stringDiv(this.safeString(fee, 'effective_maker_rate_bps'), '10000')),
3135
+ 'taker': this.parseNumber(Precise.stringDiv(this.safeString(fee, 'effective_taker_rate_bps'), '10000')),
3136
+ 'percentage': undefined,
3137
+ 'tierBased': undefined,
3138
+ };
3139
+ }
3025
3140
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
3026
3141
  const type = this.safeString(api, 0);
3027
3142
  const access = this.safeString(api, 1);
@@ -0,0 +1,178 @@
1
+ import Exchange from './abstract/hashkey.js';
2
+ import type { Account, Balances, Currencies, Currency, Dict, FundingRateHistory, LastPrice, LastPrices, Leverage, LeverageTier, LeverageTiers, Int, Market, Num, OHLCV, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry } from './base/types.js';
3
+ /**
4
+ * @class hashkey
5
+ * @augments Exchange
6
+ */
7
+ export default class hashkey extends Exchange {
8
+ describe(): any;
9
+ fetchTime(params?: {}): Promise<Int>;
10
+ fetchStatus(params?: {}): Promise<{
11
+ status: string;
12
+ updated: any;
13
+ eta: any;
14
+ url: any;
15
+ info: any;
16
+ }>;
17
+ fetchMarkets(params?: {}): Promise<Market[]>;
18
+ parseMarket(market: Dict): Market;
19
+ fetchCurrencies(params?: {}): Promise<Currencies>;
20
+ parseCurrencyType(type: any): string;
21
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
22
+ fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
23
+ fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
24
+ parseTrade(trade: Dict, market?: Market): Trade;
25
+ fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
26
+ parseOHLCV(ohlcv: any, market?: Market): OHLCV;
27
+ fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
28
+ fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
29
+ parseTicker(ticker: any, market?: Market): Ticker;
30
+ fetchLastPrices(symbols?: Strings, params?: {}): Promise<LastPrices>;
31
+ parseLastPrice(entry: any, market?: Market): LastPrice;
32
+ fetchBalance(params?: {}): Promise<Balances>;
33
+ parseBalance(balance: any): Balances;
34
+ parseSwapBalance(balance: any): Balances;
35
+ fetchDepositAddress(code: string, params?: {}): Promise<{
36
+ currency: string;
37
+ address: string;
38
+ tag: string;
39
+ network: any;
40
+ info: any;
41
+ }>;
42
+ parseDepositAddress(depositAddress: any, currency?: Currency): {
43
+ currency: string;
44
+ address: string;
45
+ tag: string;
46
+ network: any;
47
+ info: any;
48
+ };
49
+ fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
50
+ fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
51
+ withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
52
+ parseTransaction(transaction: any, currency?: Currency): Transaction;
53
+ parseTransactionStatus(status: any): string;
54
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
55
+ parseTransfer(transfer: any, currency?: Currency): {
56
+ id: string;
57
+ timestamp: number;
58
+ datetime: string;
59
+ currency: string;
60
+ amount: any;
61
+ fromAccount: any;
62
+ toAccount: any;
63
+ status: string;
64
+ info: any;
65
+ };
66
+ fetchAccounts(params?: {}): Promise<Account[]>;
67
+ parseAccount(account: any): {
68
+ id: string;
69
+ type: string;
70
+ code: any;
71
+ info: any;
72
+ };
73
+ parseAccountType(type: any): string;
74
+ encodeAccountType(type: any): number;
75
+ encodeFlowType(type: any): number;
76
+ fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
77
+ parseLedgerEntryType(type: any): string;
78
+ parseLedgerEntry(item: Dict, currency?: Currency): {
79
+ id: string;
80
+ info: Dict;
81
+ timestamp: number;
82
+ datetime: string;
83
+ account: string;
84
+ direction: string;
85
+ referenceId: any;
86
+ referenceAccount: any;
87
+ type: string;
88
+ currency: string;
89
+ symbol: any;
90
+ amount: number;
91
+ before: any;
92
+ after: number;
93
+ status: string;
94
+ fee: any;
95
+ };
96
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
97
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
98
+ createSpotOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
99
+ createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Dict;
100
+ createSpotOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Dict;
101
+ createSwapOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Dict;
102
+ createSwapOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
103
+ createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
104
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
105
+ cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
106
+ cancelOrders(ids: string[], symbol?: Str, params?: {}): Promise<Order[]>;
107
+ fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
108
+ fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
109
+ fetchOpenSpotOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
110
+ fetchOpenSwapOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
111
+ fetchCanceledAndClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
112
+ checkTypeParam(methodName: any, params: any): void;
113
+ handleTriggerOptionAndParams(params: object, methodName: string, defaultValue?: any): any[];
114
+ parseOrder(order: Dict, market?: Market): Order;
115
+ parseOrderSideAndReduceOnly(unparsed: any): any[];
116
+ parseOrderStatus(status: any): string;
117
+ parseOrderTypeTimeInForceAndPostOnly(type: any, timeInForce: any): any[];
118
+ parseOrderType(type: any): string;
119
+ fetchFundingRate(symbol: string, params?: {}): Promise<{
120
+ info: any;
121
+ symbol: string;
122
+ markPrice: any;
123
+ indexPrice: any;
124
+ interestRate: any;
125
+ estimatedSettlePrice: any;
126
+ timestamp: any;
127
+ datetime: any;
128
+ fundingRate: number;
129
+ fundingTimestamp: any;
130
+ fundingDatetime: any;
131
+ nextFundingRate: any;
132
+ nextFundingTimestamp: number;
133
+ nextFundingDatetime: string;
134
+ previousFundingRate: any;
135
+ previousFundingTimestamp: any;
136
+ previousFundingDatetime: any;
137
+ }>;
138
+ fetchFundingRates(symbols?: Strings, params?: {}): Promise<any>;
139
+ parseFundingRate(contract: any, market?: Market): {
140
+ info: any;
141
+ symbol: string;
142
+ markPrice: any;
143
+ indexPrice: any;
144
+ interestRate: any;
145
+ estimatedSettlePrice: any;
146
+ timestamp: any;
147
+ datetime: any;
148
+ fundingRate: number;
149
+ fundingTimestamp: any;
150
+ fundingDatetime: any;
151
+ nextFundingRate: any;
152
+ nextFundingTimestamp: number;
153
+ nextFundingDatetime: string;
154
+ previousFundingRate: any;
155
+ previousFundingTimestamp: any;
156
+ previousFundingDatetime: any;
157
+ };
158
+ fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
159
+ fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
160
+ fetchPositionsForSymbol(symbol: string, params?: {}): Promise<Position[]>;
161
+ parsePosition(position: Dict, market?: Market): Position;
162
+ fetchLeverage(symbol: string, params?: {}): Promise<Leverage>;
163
+ parseLeverage(leverage: Dict, market?: Market): Leverage;
164
+ setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<Leverage>;
165
+ fetchLeverageTiers(symbols?: Strings, params?: {}): Promise<LeverageTiers>;
166
+ parseMarketLeverageTiers(info: any, market?: Market): LeverageTier[];
167
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
168
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
169
+ parseTradingFee(fee: Dict, market?: Market): TradingFeeInterface;
170
+ sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
171
+ url: string;
172
+ method: string;
173
+ body: any;
174
+ headers: any;
175
+ };
176
+ customUrlencode(params?: Dict): Str;
177
+ handleErrors(code: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
178
+ }