ccxt 4.4.97__py2.py3-none-any.whl → 4.4.99__py2.py3-none-any.whl

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 (77) hide show
  1. ccxt/__init__.py +4 -1
  2. ccxt/abstract/bitget.py +6 -0
  3. ccxt/abstract/hibachi.py +26 -0
  4. ccxt/async_support/__init__.py +4 -1
  5. ccxt/async_support/base/exchange.py +1 -1
  6. ccxt/async_support/binance.py +7 -6
  7. ccxt/async_support/bitget.py +2032 -559
  8. ccxt/async_support/bybit.py +5 -1
  9. ccxt/async_support/coinex.py +64 -3
  10. ccxt/async_support/coinmetro.py +2 -3
  11. ccxt/async_support/cryptocom.py +2 -1
  12. ccxt/async_support/gate.py +1 -2
  13. ccxt/async_support/hibachi.py +2080 -0
  14. ccxt/async_support/ndax.py +8 -0
  15. ccxt/async_support/novadax.py +34 -0
  16. ccxt/async_support/okx.py +2 -0
  17. ccxt/base/decimal_to_precision.py +7 -9
  18. ccxt/base/errors.py +6 -6
  19. ccxt/base/exchange.py +1 -1
  20. ccxt/binance.py +7 -6
  21. ccxt/bitget.py +2032 -559
  22. ccxt/bybit.py +5 -1
  23. ccxt/coinex.py +64 -3
  24. ccxt/coinmetro.py +2 -3
  25. ccxt/cryptocom.py +2 -1
  26. ccxt/gate.py +1 -2
  27. ccxt/hibachi.py +2079 -0
  28. ccxt/ndax.py +8 -0
  29. ccxt/novadax.py +34 -0
  30. ccxt/okx.py +2 -0
  31. ccxt/pro/__init__.py +2 -1
  32. ccxt/pro/alpaca.py +2 -2
  33. ccxt/pro/apex.py +2 -2
  34. ccxt/pro/ascendex.py +2 -2
  35. ccxt/pro/binance.py +2 -4
  36. ccxt/pro/bitget.py +3 -3
  37. ccxt/pro/bithumb.py +2 -2
  38. ccxt/pro/bitmart.py +2 -2
  39. ccxt/pro/bitmex.py +3 -3
  40. ccxt/pro/bitstamp.py +3 -3
  41. ccxt/pro/bittrade.py +2 -2
  42. ccxt/pro/bitvavo.py +4 -2
  43. ccxt/pro/bybit.py +4 -4
  44. ccxt/pro/cex.py +3 -2
  45. ccxt/pro/coinbaseexchange.py +4 -4
  46. ccxt/pro/coinbaseinternational.py +2 -2
  47. ccxt/pro/coincatch.py +1 -1
  48. ccxt/pro/coinone.py +2 -2
  49. ccxt/pro/cryptocom.py +2 -2
  50. ccxt/pro/derive.py +2 -2
  51. ccxt/pro/gate.py +3 -3
  52. ccxt/pro/hollaex.py +2 -2
  53. ccxt/pro/htx.py +3 -3
  54. ccxt/pro/hyperliquid.py +2 -2
  55. ccxt/pro/kraken.py +2 -2
  56. ccxt/pro/krakenfutures.py +4 -3
  57. ccxt/pro/kucoin.py +3 -2
  58. ccxt/pro/kucoinfutures.py +3 -2
  59. ccxt/pro/modetrade.py +2 -2
  60. ccxt/pro/okcoin.py +2 -2
  61. ccxt/pro/okx.py +5 -5
  62. ccxt/pro/onetrading.py +2 -2
  63. ccxt/pro/p2b.py +2 -2
  64. ccxt/pro/paradex.py +2 -2
  65. ccxt/pro/poloniex.py +2 -2
  66. ccxt/pro/probit.py +2 -2
  67. ccxt/pro/vertex.py +2 -2
  68. ccxt/pro/whitebit.py +2 -2
  69. ccxt/pro/woo.py +2 -2
  70. ccxt/pro/woofipro.py +2 -2
  71. ccxt/test/tests_async.py +1 -1
  72. ccxt/test/tests_sync.py +1 -1
  73. {ccxt-4.4.97.dist-info → ccxt-4.4.99.dist-info}/METADATA +7 -6
  74. {ccxt-4.4.97.dist-info → ccxt-4.4.99.dist-info}/RECORD +77 -74
  75. {ccxt-4.4.97.dist-info → ccxt-4.4.99.dist-info}/LICENSE.txt +0 -0
  76. {ccxt-4.4.97.dist-info → ccxt-4.4.99.dist-info}/WHEEL +0 -0
  77. {ccxt-4.4.97.dist-info → ccxt-4.4.99.dist-info}/top_level.txt +0 -0
ccxt/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.97'
25
+ __version__ = '4.4.99'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -55,6 +55,7 @@ from ccxt.base.errors import NoChange # noqa: F4
55
55
  from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
56
56
  from ccxt.base.errors import MarketClosed # noqa: F401
57
57
  from ccxt.base.errors import ManualInteractionNeeded # noqa: F401
58
+ from ccxt.base.errors import RestrictedLocation # noqa: F401
58
59
  from ccxt.base.errors import InsufficientFunds # noqa: F401
59
60
  from ccxt.base.errors import InvalidAddress # noqa: F401
60
61
  from ccxt.base.errors import AddressPending # noqa: F401
@@ -144,6 +145,7 @@ from ccxt.gate import gate # noqa: F4
144
145
  from ccxt.gateio import gateio # noqa: F401
145
146
  from ccxt.gemini import gemini # noqa: F401
146
147
  from ccxt.hashkey import hashkey # noqa: F401
148
+ from ccxt.hibachi import hibachi # noqa: F401
147
149
  from ccxt.hitbtc import hitbtc # noqa: F401
148
150
  from ccxt.hollaex import hollaex # noqa: F401
149
151
  from ccxt.htx import htx # noqa: F401
@@ -252,6 +254,7 @@ exchanges = [
252
254
  'gateio',
253
255
  'gemini',
254
256
  'hashkey',
257
+ 'hibachi',
255
258
  'hitbtc',
256
259
  'hollaex',
257
260
  'htx',
ccxt/abstract/bitget.py CHANGED
@@ -525,6 +525,7 @@ class ImplicitAPI:
525
525
  private_common_get_v2_common_trade_rate = privateCommonGetV2CommonTradeRate = Entry('v2/common/trade-rate', ['private', 'common'], 'GET', {'cost': 2})
526
526
  private_uta_get_v3_account_assets = privateUtaGetV3AccountAssets = Entry('v3/account/assets', ['private', 'uta'], 'GET', {'cost': 1})
527
527
  private_uta_get_v3_account_settings = privateUtaGetV3AccountSettings = Entry('v3/account/settings', ['private', 'uta'], 'GET', {'cost': 1})
528
+ private_uta_get_v3_account_deposit_records = privateUtaGetV3AccountDepositRecords = Entry('v3/account/deposit-records', ['private', 'uta'], 'GET', {'cost': 2})
528
529
  private_uta_get_v3_account_financial_records = privateUtaGetV3AccountFinancialRecords = Entry('v3/account/financial-records', ['private', 'uta'], 'GET', {'cost': 1})
529
530
  private_uta_get_v3_account_repayable_coins = privateUtaGetV3AccountRepayableCoins = Entry('v3/account/repayable-coins', ['private', 'uta'], 'GET', {'cost': 2})
530
531
  private_uta_get_v3_account_payment_coins = privateUtaGetV3AccountPaymentCoins = Entry('v3/account/payment-coins', ['private', 'uta'], 'GET', {'cost': 2})
@@ -543,7 +544,9 @@ class ImplicitAPI:
543
544
  private_uta_get_v3_position_history_position = privateUtaGetV3PositionHistoryPosition = Entry('v3/position/history-position', ['private', 'uta'], 'GET', {'cost': 1})
544
545
  private_uta_get_v3_trade_order_info = privateUtaGetV3TradeOrderInfo = Entry('v3/trade/order-info', ['private', 'uta'], 'GET', {'cost': 1})
545
546
  private_uta_get_v3_trade_unfilled_orders = privateUtaGetV3TradeUnfilledOrders = Entry('v3/trade/unfilled-orders', ['private', 'uta'], 'GET', {'cost': 1})
547
+ private_uta_get_v3_trade_unfilled_strategy_orders = privateUtaGetV3TradeUnfilledStrategyOrders = Entry('v3/trade/unfilled-strategy-orders', ['private', 'uta'], 'GET', {'cost': 1})
546
548
  private_uta_get_v3_trade_history_orders = privateUtaGetV3TradeHistoryOrders = Entry('v3/trade/history-orders', ['private', 'uta'], 'GET', {'cost': 1})
549
+ private_uta_get_v3_trade_history_strategy_orders = privateUtaGetV3TradeHistoryStrategyOrders = Entry('v3/trade/history-strategy-orders', ['private', 'uta'], 'GET', {'cost': 1})
547
550
  private_uta_get_v3_trade_fills = privateUtaGetV3TradeFills = Entry('v3/trade/fills', ['private', 'uta'], 'GET', {'cost': 1})
548
551
  private_uta_get_v3_user_sub_list = privateUtaGetV3UserSubList = Entry('v3/user/sub-list', ['private', 'uta'], 'GET', {'cost': 2})
549
552
  private_uta_get_v3_user_sub_api_list = privateUtaGetV3UserSubApiList = Entry('v3/user/sub-api-list', ['private', 'uta'], 'GET', {'cost': 2})
@@ -555,8 +558,11 @@ class ImplicitAPI:
555
558
  private_uta_post_v3_account_max_open_available = privateUtaPostV3AccountMaxOpenAvailable = Entry('v3/account/max-open-available', ['private', 'uta'], 'POST', {'cost': 4})
556
559
  private_uta_post_v3_ins_loan_bind_uid = privateUtaPostV3InsLoanBindUid = Entry('v3/ins-loan/bind-uid', ['private', 'uta'], 'POST', {'cost': 6.6667})
557
560
  private_uta_post_v3_trade_place_order = privateUtaPostV3TradePlaceOrder = Entry('v3/trade/place-order', ['private', 'uta'], 'POST', {'cost': 2})
561
+ private_uta_post_v3_trade_place_strategy_order = privateUtaPostV3TradePlaceStrategyOrder = Entry('v3/trade/place-strategy-order', ['private', 'uta'], 'POST', {'cost': 2})
558
562
  private_uta_post_v3_trade_modify_order = privateUtaPostV3TradeModifyOrder = Entry('v3/trade/modify-order', ['private', 'uta'], 'POST', {'cost': 2})
563
+ private_uta_post_v3_trade_modify_strategy_order = privateUtaPostV3TradeModifyStrategyOrder = Entry('v3/trade/modify-strategy-order', ['private', 'uta'], 'POST', {'cost': 2})
559
564
  private_uta_post_v3_trade_cancel_order = privateUtaPostV3TradeCancelOrder = Entry('v3/trade/cancel-order', ['private', 'uta'], 'POST', {'cost': 2})
565
+ private_uta_post_v3_trade_cancel_strategy_order = privateUtaPostV3TradeCancelStrategyOrder = Entry('v3/trade/cancel-strategy-order', ['private', 'uta'], 'POST', {'cost': 2})
560
566
  private_uta_post_v3_trade_place_batch = privateUtaPostV3TradePlaceBatch = Entry('v3/trade/place-batch', ['private', 'uta'], 'POST', {'cost': 4})
561
567
  private_uta_post_v3_trade_batch_modify_order = privateUtaPostV3TradeBatchModifyOrder = Entry('v3/trade/batch-modify-order', ['private', 'uta'], 'POST', {'cost': 2})
562
568
  private_uta_post_v3_trade_cancel_batch = privateUtaPostV3TradeCancelBatch = Entry('v3/trade/cancel-batch', ['private', 'uta'], 'POST', {'cost': 4})
@@ -0,0 +1,26 @@
1
+ from ccxt.base.types import Entry
2
+
3
+
4
+ class ImplicitAPI:
5
+ public_get_market_exchange_info = publicGetMarketExchangeInfo = Entry('market/exchange-info', 'public', 'GET', {'cost': 1})
6
+ public_get_market_data_trades = publicGetMarketDataTrades = Entry('market/data/trades', 'public', 'GET', {'cost': 1})
7
+ public_get_market_data_prices = publicGetMarketDataPrices = Entry('market/data/prices', 'public', 'GET', {'cost': 1})
8
+ public_get_market_data_stats = publicGetMarketDataStats = Entry('market/data/stats', 'public', 'GET', {'cost': 1})
9
+ public_get_market_data_klines = publicGetMarketDataKlines = Entry('market/data/klines', 'public', 'GET', {'cost': 1})
10
+ public_get_market_data_orderbook = publicGetMarketDataOrderbook = Entry('market/data/orderbook', 'public', 'GET', {'cost': 1})
11
+ public_get_market_data_open_interest = publicGetMarketDataOpenInterest = Entry('market/data/open-interest', 'public', 'GET', {'cost': 1})
12
+ public_get_market_data_funding_rates = publicGetMarketDataFundingRates = Entry('market/data/funding-rates', 'public', 'GET', {'cost': 1})
13
+ public_get_exchange_utc_timestamp = publicGetExchangeUtcTimestamp = Entry('exchange/utc-timestamp', 'public', 'GET', {'cost': 1})
14
+ private_get_capital_deposit_info = privateGetCapitalDepositInfo = Entry('capital/deposit-info', 'private', 'GET', {'cost': 1})
15
+ private_get_capital_history = privateGetCapitalHistory = Entry('capital/history', 'private', 'GET', {'cost': 1})
16
+ private_get_trade_account_trading_history = privateGetTradeAccountTradingHistory = Entry('trade/account/trading_history', 'private', 'GET', {'cost': 1})
17
+ private_get_trade_account_info = privateGetTradeAccountInfo = Entry('trade/account/info', 'private', 'GET', {'cost': 1})
18
+ private_get_trade_order = privateGetTradeOrder = Entry('trade/order', 'private', 'GET', {'cost': 1})
19
+ private_get_trade_account_trades = privateGetTradeAccountTrades = Entry('trade/account/trades', 'private', 'GET', {'cost': 1})
20
+ private_get_trade_orders = privateGetTradeOrders = Entry('trade/orders', 'private', 'GET', {'cost': 1})
21
+ private_put_trade_order = privatePutTradeOrder = Entry('trade/order', 'private', 'PUT', {'cost': 1})
22
+ private_delete_trade_order = privateDeleteTradeOrder = Entry('trade/order', 'private', 'DELETE', {'cost': 1})
23
+ private_delete_trade_orders = privateDeleteTradeOrders = Entry('trade/orders', 'private', 'DELETE', {'cost': 1})
24
+ private_post_trade_order = privatePostTradeOrder = Entry('trade/order', 'private', 'POST', {'cost': 1})
25
+ private_post_trade_orders = privatePostTradeOrders = Entry('trade/orders', 'private', 'POST', {'cost': 1})
26
+ private_post_capital_withdraw = privatePostCapitalWithdraw = Entry('capital/withdraw', 'private', 'POST', {'cost': 1})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.97'
7
+ __version__ = '4.4.99'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -34,6 +34,7 @@ from ccxt.base.errors import NoChange # noqa: F4
34
34
  from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
35
35
  from ccxt.base.errors import MarketClosed # noqa: F401
36
36
  from ccxt.base.errors import ManualInteractionNeeded # noqa: F401
37
+ from ccxt.base.errors import RestrictedLocation # noqa: F401
37
38
  from ccxt.base.errors import InsufficientFunds # noqa: F401
38
39
  from ccxt.base.errors import InvalidAddress # noqa: F401
39
40
  from ccxt.base.errors import AddressPending # noqa: F401
@@ -124,6 +125,7 @@ from ccxt.async_support.gate import gate
124
125
  from ccxt.async_support.gateio import gateio # noqa: F401
125
126
  from ccxt.async_support.gemini import gemini # noqa: F401
126
127
  from ccxt.async_support.hashkey import hashkey # noqa: F401
128
+ from ccxt.async_support.hibachi import hibachi # noqa: F401
127
129
  from ccxt.async_support.hitbtc import hitbtc # noqa: F401
128
130
  from ccxt.async_support.hollaex import hollaex # noqa: F401
129
131
  from ccxt.async_support.htx import htx # noqa: F401
@@ -232,6 +234,7 @@ exchanges = [
232
234
  'gateio',
233
235
  'gemini',
234
236
  'hashkey',
237
+ 'hibachi',
235
238
  'hitbtc',
236
239
  'hollaex',
237
240
  'htx',
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.97'
5
+ __version__ = '4.4.99'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -2732,12 +2732,13 @@ class binance(Exchange, ImplicitAPI):
2732
2732
  return market
2733
2733
  return markets[0]
2734
2734
  elif (symbol.find('/') > -1) and (symbol.find(':') < 0):
2735
- # support legacy symbols
2736
- base, quote = symbol.split('/')
2737
- settle = base if (quote == 'USD') else quote
2738
- futuresSymbol = symbol + ':' + settle
2739
- if futuresSymbol in self.markets:
2740
- return self.markets[futuresSymbol]
2735
+ if (defaultType is not None) and (defaultType != 'spot'):
2736
+ # support legacy symbols
2737
+ base, quote = symbol.split('/')
2738
+ settle = base if (quote == 'USD') else quote
2739
+ futuresSymbol = symbol + ':' + settle
2740
+ if futuresSymbol in self.markets:
2741
+ return self.markets[futuresSymbol]
2741
2742
  elif (symbol.find('-C') > -1) or (symbol.find('-P') > -1): # both exchange-id and unified symbols are supported self way regardless of the defaultType
2742
2743
  return self.create_expired_option_market(symbol)
2743
2744
  raise BadSymbol(self.id + ' does not have market symbol ' + symbol)