ccxt 4.4.58__py2.py3-none-any.whl → 4.4.59__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.
- ccxt/__init__.py +1 -3
- ccxt/ace.py +2 -2
- ccxt/alpaca.py +4 -4
- ccxt/ascendex.py +3 -3
- ccxt/async_support/__init__.py +1 -3
- ccxt/async_support/ace.py +2 -2
- ccxt/async_support/alpaca.py +4 -4
- ccxt/async_support/ascendex.py +3 -3
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bequant.py +2 -1
- ccxt/async_support/bigone.py +5 -5
- ccxt/async_support/binance.py +3 -3
- ccxt/async_support/binancecoinm.py +2 -1
- ccxt/async_support/binanceus.py +2 -1
- ccxt/async_support/binanceusdm.py +2 -1
- ccxt/async_support/bingx.py +3 -3
- ccxt/async_support/bit2c.py +9 -9
- ccxt/async_support/bitbank.py +2 -2
- ccxt/async_support/bitbns.py +2 -2
- ccxt/async_support/bitcoincom.py +2 -1
- ccxt/async_support/bitfinex.py +2 -2
- ccxt/async_support/bitfinex1.py +2 -2
- ccxt/async_support/bitflyer.py +2 -2
- ccxt/async_support/bitget.py +4 -4
- ccxt/async_support/bithumb.py +2 -2
- ccxt/async_support/bitmart.py +137 -86
- ccxt/async_support/bitmex.py +2 -2
- ccxt/async_support/bitopro.py +2 -2
- ccxt/async_support/bitpanda.py +2 -1
- ccxt/async_support/bitrue.py +3 -3
- ccxt/async_support/bitso.py +2 -2
- ccxt/async_support/bitstamp.py +2 -2
- ccxt/async_support/bitteam.py +2 -2
- ccxt/async_support/bitvavo.py +3 -3
- ccxt/async_support/bl3p.py +2 -2
- ccxt/async_support/blockchaincom.py +2 -2
- ccxt/async_support/blofin.py +2 -2
- ccxt/async_support/btcalpha.py +2 -2
- ccxt/async_support/btcbox.py +2 -2
- ccxt/async_support/btcmarkets.py +3 -3
- ccxt/async_support/btcturk.py +2 -2
- ccxt/async_support/bybit.py +4 -4
- ccxt/async_support/cex.py +3 -3
- ccxt/async_support/coinbase.py +4 -4
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +3 -3
- ccxt/async_support/coinbaseinternational.py +3 -4
- ccxt/async_support/coincatch.py +3 -3
- ccxt/async_support/coincheck.py +2 -2
- ccxt/async_support/coinex.py +3 -3
- ccxt/async_support/coinlist.py +3 -3
- ccxt/async_support/coinmate.py +2 -2
- ccxt/async_support/coinmetro.py +2 -2
- ccxt/async_support/coinone.py +2 -2
- ccxt/async_support/coinsph.py +3 -3
- ccxt/async_support/coinspot.py +2 -2
- ccxt/async_support/cryptocom.py +2 -2
- ccxt/async_support/currencycom.py +3 -3
- ccxt/async_support/defx.py +3 -3
- ccxt/async_support/delta.py +3 -3
- ccxt/async_support/deribit.py +3 -3
- ccxt/async_support/digifinex.py +3 -3
- ccxt/async_support/ellipx.py +1 -1
- ccxt/async_support/exmo.py +2 -2
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/gate.py +3 -3
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +2 -2
- ccxt/async_support/hashkey.py +2 -2
- ccxt/async_support/hitbtc.py +3 -3
- ccxt/async_support/hollaex.py +2 -2
- ccxt/async_support/htx.py +3 -3
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/huobijp.py +3 -3
- ccxt/async_support/hyperliquid.py +83 -3
- ccxt/async_support/idex.py +3 -3
- ccxt/async_support/independentreserve.py +2 -2
- ccxt/async_support/indodax.py +3 -3
- ccxt/async_support/kraken.py +3 -3
- ccxt/async_support/krakenfutures.py +2 -2
- ccxt/async_support/kucoin.py +3 -3
- ccxt/async_support/kucoinfutures.py +3 -3
- ccxt/async_support/kuna.py +3 -3
- ccxt/async_support/latoken.py +3 -3
- ccxt/async_support/lbank.py +3 -3
- ccxt/async_support/luno.py +2 -2
- ccxt/async_support/mercado.py +2 -2
- ccxt/async_support/mexc.py +3 -3
- ccxt/async_support/myokx.py +2 -1
- ccxt/async_support/ndax.py +2 -2
- ccxt/async_support/novadax.py +3 -3
- ccxt/async_support/oceanex.py +3 -3
- ccxt/async_support/okcoin.py +3 -3
- ccxt/async_support/okx.py +3 -4
- ccxt/async_support/onetrading.py +3 -3
- ccxt/async_support/oxfun.py +2 -2
- ccxt/async_support/p2b.py +2 -2
- ccxt/async_support/paradex.py +3 -3
- ccxt/async_support/paymium.py +2 -2
- ccxt/async_support/phemex.py +2 -2
- ccxt/async_support/poloniex.py +3 -3
- ccxt/async_support/poloniexfutures.py +3 -3
- ccxt/async_support/probit.py +3 -3
- ccxt/async_support/timex.py +3 -3
- ccxt/async_support/tokocrypto.py +3 -3
- ccxt/async_support/tradeogre.py +2 -2
- ccxt/async_support/upbit.py +2 -2
- ccxt/async_support/vertex.py +4 -4
- ccxt/async_support/wavesexchange.py +2 -3
- ccxt/async_support/whitebit.py +3 -3
- ccxt/async_support/woo.py +3 -4
- ccxt/async_support/woofipro.py +3 -4
- ccxt/async_support/xt.py +3 -3
- ccxt/async_support/yobit.py +2 -2
- ccxt/async_support/zaif.py +2 -2
- ccxt/async_support/zonda.py +2 -2
- ccxt/base/errors.py +6 -0
- ccxt/base/exchange.py +4 -3
- ccxt/bequant.py +2 -1
- ccxt/bigone.py +5 -5
- ccxt/binance.py +3 -3
- ccxt/binancecoinm.py +2 -1
- ccxt/binanceus.py +2 -1
- ccxt/binanceusdm.py +2 -1
- ccxt/bingx.py +3 -3
- ccxt/bit2c.py +9 -9
- ccxt/bitbank.py +2 -2
- ccxt/bitbns.py +2 -2
- ccxt/bitcoincom.py +2 -1
- ccxt/bitfinex.py +2 -2
- ccxt/bitfinex1.py +2 -2
- ccxt/bitflyer.py +2 -2
- ccxt/bitget.py +4 -4
- ccxt/bithumb.py +2 -2
- ccxt/bitmart.py +137 -86
- ccxt/bitmex.py +2 -2
- ccxt/bitopro.py +2 -2
- ccxt/bitpanda.py +2 -1
- ccxt/bitrue.py +3 -3
- ccxt/bitso.py +2 -2
- ccxt/bitstamp.py +2 -2
- ccxt/bitteam.py +2 -2
- ccxt/bitvavo.py +3 -3
- ccxt/bl3p.py +2 -2
- ccxt/blockchaincom.py +2 -2
- ccxt/blofin.py +2 -2
- ccxt/btcalpha.py +2 -2
- ccxt/btcbox.py +2 -2
- ccxt/btcmarkets.py +3 -3
- ccxt/btcturk.py +2 -2
- ccxt/bybit.py +4 -4
- ccxt/cex.py +3 -3
- ccxt/coinbase.py +4 -4
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +3 -3
- ccxt/coinbaseinternational.py +3 -4
- ccxt/coincatch.py +3 -3
- ccxt/coincheck.py +2 -2
- ccxt/coinex.py +3 -3
- ccxt/coinlist.py +3 -3
- ccxt/coinmate.py +2 -2
- ccxt/coinmetro.py +2 -2
- ccxt/coinone.py +2 -2
- ccxt/coinsph.py +3 -3
- ccxt/coinspot.py +2 -2
- ccxt/cryptocom.py +2 -2
- ccxt/currencycom.py +3 -3
- ccxt/defx.py +3 -3
- ccxt/delta.py +3 -3
- ccxt/deribit.py +3 -3
- ccxt/digifinex.py +3 -3
- ccxt/ellipx.py +1 -1
- ccxt/exmo.py +2 -2
- ccxt/fmfwio.py +2 -1
- ccxt/gate.py +3 -3
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +2 -2
- ccxt/hashkey.py +2 -2
- ccxt/hitbtc.py +3 -3
- ccxt/hollaex.py +2 -2
- ccxt/htx.py +3 -3
- ccxt/huobi.py +2 -1
- ccxt/huobijp.py +3 -3
- ccxt/hyperliquid.py +83 -3
- ccxt/idex.py +3 -3
- ccxt/independentreserve.py +2 -2
- ccxt/indodax.py +3 -3
- ccxt/kraken.py +3 -3
- ccxt/krakenfutures.py +2 -2
- ccxt/kucoin.py +3 -3
- ccxt/kucoinfutures.py +3 -3
- ccxt/kuna.py +3 -3
- ccxt/latoken.py +3 -3
- ccxt/lbank.py +3 -3
- ccxt/luno.py +2 -2
- ccxt/mercado.py +2 -2
- ccxt/mexc.py +3 -3
- ccxt/myokx.py +2 -1
- ccxt/ndax.py +2 -2
- ccxt/novadax.py +3 -3
- ccxt/oceanex.py +3 -3
- ccxt/okcoin.py +3 -3
- ccxt/okx.py +3 -4
- ccxt/onetrading.py +3 -3
- ccxt/oxfun.py +2 -2
- ccxt/p2b.py +2 -2
- ccxt/paradex.py +3 -3
- ccxt/paymium.py +2 -2
- ccxt/phemex.py +2 -2
- ccxt/poloniex.py +3 -3
- ccxt/poloniexfutures.py +3 -3
- ccxt/pro/__init__.py +1 -3
- ccxt/pro/alpaca.py +2 -2
- ccxt/pro/ascendex.py +2 -2
- ccxt/pro/bequant.py +2 -1
- ccxt/pro/binance.py +2 -3
- ccxt/pro/binancecoinm.py +2 -1
- ccxt/pro/binanceus.py +3 -2
- ccxt/pro/binanceusdm.py +2 -1
- ccxt/pro/bingx.py +2 -2
- ccxt/pro/bitcoincom.py +2 -1
- ccxt/pro/bitfinex.py +2 -2
- ccxt/pro/bitfinex1.py +2 -2
- ccxt/pro/bitget.py +2 -3
- ccxt/pro/bithumb.py +2 -2
- ccxt/pro/bitmart.py +2 -2
- ccxt/pro/bitmex.py +2 -2
- ccxt/pro/bitopro.py +2 -2
- ccxt/pro/bitpanda.py +2 -1
- ccxt/pro/bitrue.py +2 -2
- ccxt/pro/bitstamp.py +2 -2
- ccxt/pro/bitvavo.py +2 -2
- ccxt/pro/blockchaincom.py +2 -2
- ccxt/pro/blofin.py +1 -1
- ccxt/pro/bybit.py +2 -3
- ccxt/pro/cex.py +2 -2
- ccxt/pro/coinbase.py +2 -2
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +2 -2
- ccxt/pro/coinbaseinternational.py +2 -2
- ccxt/pro/coincatch.py +2 -3
- ccxt/pro/coincheck.py +2 -2
- ccxt/pro/coinex.py +2 -2
- ccxt/pro/coinone.py +2 -2
- ccxt/pro/cryptocom.py +2 -3
- ccxt/pro/currencycom.py +2 -2
- ccxt/pro/defx.py +2 -3
- ccxt/pro/deribit.py +2 -2
- ccxt/pro/exmo.py +2 -2
- ccxt/pro/gate.py +2 -3
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +2 -2
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +2 -2
- ccxt/pro/hollaex.py +2 -2
- ccxt/pro/htx.py +2 -2
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/huobijp.py +2 -2
- ccxt/pro/hyperliquid.py +2 -3
- ccxt/pro/idex.py +2 -2
- ccxt/pro/independentreserve.py +2 -2
- ccxt/pro/kraken.py +2 -2
- ccxt/pro/krakenfutures.py +2 -2
- ccxt/pro/kucoin.py +2 -3
- ccxt/pro/kucoinfutures.py +2 -3
- ccxt/pro/lbank.py +2 -2
- ccxt/pro/luno.py +2 -2
- ccxt/pro/mexc.py +2 -2
- ccxt/pro/myokx.py +2 -1
- ccxt/pro/ndax.py +2 -2
- ccxt/pro/okcoin.py +2 -2
- ccxt/pro/okx.py +2 -3
- ccxt/pro/onetrading.py +2 -2
- ccxt/pro/oxfun.py +2 -2
- ccxt/pro/p2b.py +2 -2
- ccxt/pro/paradex.py +2 -2
- ccxt/pro/phemex.py +2 -2
- ccxt/pro/poloniex.py +2 -2
- ccxt/pro/poloniexfutures.py +2 -2
- ccxt/pro/probit.py +2 -2
- ccxt/pro/upbit.py +2 -2
- ccxt/pro/vertex.py +2 -2
- ccxt/pro/wazirx.py +2 -2
- ccxt/pro/whitebit.py +2 -2
- ccxt/pro/woo.py +2 -2
- ccxt/pro/woofipro.py +2 -2
- ccxt/pro/xt.py +2 -2
- ccxt/probit.py +3 -3
- ccxt/timex.py +3 -3
- ccxt/tokocrypto.py +3 -3
- ccxt/tradeogre.py +2 -2
- ccxt/upbit.py +2 -2
- ccxt/vertex.py +4 -4
- ccxt/wavesexchange.py +2 -3
- ccxt/whitebit.py +3 -3
- ccxt/woo.py +3 -4
- ccxt/woofipro.py +3 -4
- ccxt/xt.py +3 -3
- ccxt/yobit.py +2 -2
- ccxt/zaif.py +2 -2
- ccxt/zonda.py +2 -2
- {ccxt-4.4.58.dist-info → ccxt-4.4.59.dist-info}/METADATA +30 -33
- {ccxt-4.4.58.dist-info → ccxt-4.4.59.dist-info}/RECORD +306 -309
- ccxt/abstract/wazirx.py +0 -30
- ccxt/async_support/wazirx.py +0 -1336
- ccxt/wazirx.py +0 -1336
- {ccxt-4.4.58.dist-info → ccxt-4.4.59.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.58.dist-info → ccxt-4.4.59.dist-info}/WHEEL +0 -0
- {ccxt-4.4.58.dist-info → ccxt-4.4.59.dist-info}/top_level.txt +0 -0
ccxt/async_support/bitmart.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bitmart import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, BorrowInterest, Currencies, Currency, DepositAddress, FundingHistory, Int, IsolatedBorrowRate, IsolatedBorrowRates, LedgerEntry, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, Trade, TradingFeeInterface, Transaction, MarketInterface, TransferEntry
|
9
|
+
from ccxt.base.types import Any, Balances, BorrowInterest, Currencies, Currency, DepositAddress, FundingHistory, Int, IsolatedBorrowRate, IsolatedBorrowRates, LedgerEntry, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, Trade, TradingFeeInterface, Transaction, MarketInterface, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -32,7 +32,7 @@ from ccxt.base.precise import Precise
|
|
32
32
|
|
33
33
|
class bitmart(Exchange, ImplicitAPI):
|
34
34
|
|
35
|
-
def describe(self):
|
35
|
+
def describe(self) -> Any:
|
36
36
|
return self.deep_extend(super(bitmart, self).describe(), {
|
37
37
|
'id': 'bitmart',
|
38
38
|
'name': 'BitMart',
|
@@ -544,9 +544,10 @@ class bitmart(Exchange, ImplicitAPI):
|
|
544
544
|
'TRU': 'Truebit', # conflict with TrueFi
|
545
545
|
},
|
546
546
|
'options': {
|
547
|
-
'defaultNetwork': 'ERC20',
|
548
547
|
'defaultNetworks': {
|
549
|
-
'USDT': '
|
548
|
+
'USDT': 'TRC20',
|
549
|
+
'BTC': 'BTC',
|
550
|
+
'ETH': 'ERC20',
|
550
551
|
},
|
551
552
|
'timeDifference': 0, # the difference between system clock and exchange clock
|
552
553
|
'adjustForTimeDifference': False, # controls the adjustment logic upon instantiation
|
@@ -588,7 +589,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
588
589
|
'KSM': 'KSM',
|
589
590
|
'ZEC': 'ZEC',
|
590
591
|
'NAS': 'NAS',
|
591
|
-
|
592
|
+
'POLYGON': 'MATIC',
|
592
593
|
'HRC20': 'HECO',
|
593
594
|
'XDC': 'XDC',
|
594
595
|
'ONE': 'ONE',
|
@@ -597,7 +598,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
597
598
|
'ICP': 'Computer',
|
598
599
|
'XTZ': 'XTZ',
|
599
600
|
'MINA': 'MINA',
|
600
|
-
|
601
|
+
'BEP20': 'BSC_BNB',
|
601
602
|
'THETA': 'THETA',
|
602
603
|
'AKT': 'AKT',
|
603
604
|
'AR': 'AR',
|
@@ -701,6 +702,12 @@ class bitmart(Exchange, ImplicitAPI):
|
|
701
702
|
# undetermined chains:
|
702
703
|
# LEX(for LexThum), TAYCAN(for TRICE), SFL(probably TAYCAN), OMNIA(for APEX), NAC(for NAC), KAG(Kinesis), CEM(crypto emergency), XVM(for Venidium), NEVM(for NEVM), IGT20(for IGNITE), FILM(FILMCredits), CC(CloudCoin), MERGE(MERGE), LTNM(Bitcoin latinum), PLUGCN( PlugChain), DINGO(dingo), LED(LEDGIS), AVAT(AVAT), VSOL(Vsolidus), EPIC(EPIC cash), NFC(netflowcoin), mrx(Metrix Coin), Idena(idena network), PKT(PKT Cash), BondDex(BondDex), XBN(XBN), KALAM(Kalamint), REV(RChain), KRC20(MyDeFiPet), ARC20(Hurricane Token), GMD(Coop network), BERS(Berith), ZEBI(Zebi), BRC(Baer Chain), DAPS(DAPS Coin), APL(Gold Secured Currency), NDAU(NDAU), WICC(WICC), UPG(Unipay God), TSL(TreasureSL), MXW(Maxonrow), CLC(Cifculation), SMH(SMH Coin), XIN(CPCoin), RDD(ReddCoin), OK(Okcash), KAR(KAR), CCX(ConcealNetwork),
|
703
704
|
},
|
705
|
+
'networksById': {
|
706
|
+
'ETH': 'ERC20',
|
707
|
+
'Ethereum': 'ERC20',
|
708
|
+
'USDT': 'OMNI', # the default USDT network for bitmart is OMNI
|
709
|
+
'Bitcoin': 'BTC',
|
710
|
+
},
|
704
711
|
'defaultType': 'spot', # 'spot', 'swap'
|
705
712
|
'fetchBalance': {
|
706
713
|
'type': 'spot', # 'spot', 'swap', 'account'
|
@@ -860,7 +867,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
860
867
|
},
|
861
868
|
})
|
862
869
|
|
863
|
-
async def fetch_time(self, params={}):
|
870
|
+
async def fetch_time(self, params={}) -> Int:
|
864
871
|
"""
|
865
872
|
fetches the current integer timestamp in milliseconds from the exchange server
|
866
873
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -1175,61 +1182,129 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1175
1182
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1176
1183
|
:returns dict: an associative dictionary of currencies
|
1177
1184
|
"""
|
1178
|
-
response = await self.
|
1185
|
+
response = await self.publicGetAccountV1Currencies(params)
|
1179
1186
|
#
|
1180
1187
|
# {
|
1181
|
-
# "message":"OK",
|
1188
|
+
# "message": "OK",
|
1182
1189
|
# "code":1000,
|
1183
|
-
# "trace":"
|
1184
|
-
# "data":{
|
1185
|
-
# "currencies":[
|
1186
|
-
# {
|
1187
|
-
#
|
1188
|
-
#
|
1190
|
+
# "trace": "9eaec51cd80d46d48a1c6b447206c4d6.71.17392193317851454",
|
1191
|
+
# "data": {
|
1192
|
+
# "currencies": [
|
1193
|
+
# {
|
1194
|
+
# "currency": "BTC",
|
1195
|
+
# "name": "Bitcoin",
|
1196
|
+
# "contract_address": null,
|
1197
|
+
# "network": "BTC",
|
1198
|
+
# "withdraw_enabled": True,
|
1199
|
+
# "deposit_enabled": True,
|
1200
|
+
# "withdraw_minsize": "0.0003",
|
1201
|
+
# "withdraw_minfee": "9.74"
|
1202
|
+
# }
|
1189
1203
|
# ]
|
1190
1204
|
# }
|
1191
1205
|
# }
|
1192
1206
|
#
|
1193
1207
|
data = self.safe_dict(response, 'data', {})
|
1194
1208
|
currencies = self.safe_list(data, 'currencies', [])
|
1195
|
-
result
|
1209
|
+
result = {}
|
1196
1210
|
for i in range(0, len(currencies)):
|
1197
1211
|
currency = currencies[i]
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1212
|
+
fullId = self.safe_string(currency, 'currency')
|
1213
|
+
currencyId = fullId
|
1214
|
+
networkId = self.safe_string(currency, 'network')
|
1215
|
+
if fullId.find('NFT') < 0:
|
1216
|
+
parts = fullId.split('-')
|
1217
|
+
currencyId = self.safe_string(parts, 0)
|
1218
|
+
second = self.safe_string(parts, 1)
|
1219
|
+
if second is not None:
|
1220
|
+
networkId = second.upper()
|
1221
|
+
currencyCode = self.safe_currency_code(currencyId)
|
1222
|
+
entry = self.safe_dict(result, currencyCode)
|
1223
|
+
if entry is None:
|
1224
|
+
entry = {
|
1225
|
+
'info': currency,
|
1226
|
+
'id': currencyId,
|
1227
|
+
'code': currencyCode,
|
1228
|
+
'precision': None,
|
1229
|
+
'name': self.safe_string(currency, 'name'),
|
1230
|
+
'deposit': None,
|
1231
|
+
'withdraw': None,
|
1232
|
+
'active': None,
|
1233
|
+
'networks': {},
|
1234
|
+
}
|
1235
|
+
networkCode = self.network_id_to_code(networkId)
|
1236
|
+
withdraw = self.safe_bool(currency, 'withdraw_enabled')
|
1237
|
+
deposit = self.safe_bool(currency, 'deposit_enabled')
|
1238
|
+
entry['networks'][networkCode] = {
|
1239
|
+
'info': currency,
|
1240
|
+
'id': networkId,
|
1241
|
+
'code': networkCode,
|
1242
|
+
'withdraw': withdraw,
|
1243
|
+
'deposit': deposit,
|
1244
|
+
'active': withdraw and deposit,
|
1245
|
+
'fee': self.safe_number(currency, 'withdraw_minfee'), # todo check
|
1214
1246
|
'limits': {
|
1215
|
-
'
|
1216
|
-
|
1247
|
+
'withdraw': {
|
1248
|
+
'min': self.safe_number(currency, 'withdraw_minsize'),
|
1249
|
+
'max': None,
|
1250
|
+
},
|
1251
|
+
'deposit': {
|
1252
|
+
'min': None,
|
1253
|
+
'max': None,
|
1254
|
+
},
|
1217
1255
|
},
|
1218
1256
|
}
|
1257
|
+
result[currencyCode] = entry
|
1258
|
+
keys = list(result.keys())
|
1259
|
+
for i in range(0, len(keys)):
|
1260
|
+
key = keys[i]
|
1261
|
+
currency = result[key]
|
1262
|
+
result[key] = self.safe_currency_structure(currency)
|
1219
1263
|
return result
|
1220
1264
|
|
1265
|
+
def get_currency_id_from_code_and_network(self, currencyCode: Str, networkCode: Str) -> Str:
|
1266
|
+
if networkCode is None:
|
1267
|
+
networkCode = self.default_network_code(currencyCode) # use default network code if not provided
|
1268
|
+
currency = self.currency(currencyCode)
|
1269
|
+
id = currency['id']
|
1270
|
+
idFromNetwork: Str = None
|
1271
|
+
networks = self.safe_dict(currency, 'networks', {})
|
1272
|
+
networkInfo: dict = {}
|
1273
|
+
if networkCode is None:
|
1274
|
+
# network code is not provided and there is no default network code
|
1275
|
+
network = self.safe_dict(networks, currencyCode) # trying to find network that has the same code
|
1276
|
+
if network is None:
|
1277
|
+
# use the first network in the networks list if there is no network code with the same code
|
1278
|
+
keys = list(networks.keys())
|
1279
|
+
length = len(keys)
|
1280
|
+
if length > 0:
|
1281
|
+
network = self.safe_value(networks, keys[0])
|
1282
|
+
networkInfo = self.safe_dict(network, 'info', {})
|
1283
|
+
idFromNetwork = self.safe_string(networkInfo, 'currency') # use currency name from network
|
1284
|
+
else:
|
1285
|
+
providedOrDefaultNetwork = self.safe_dict(networks, networkCode)
|
1286
|
+
if providedOrDefaultNetwork is not None:
|
1287
|
+
networkInfo = self.safe_dict(providedOrDefaultNetwork, 'info', {})
|
1288
|
+
idFromNetwork = self.safe_string(networkInfo, 'currency') # use currency name from network
|
1289
|
+
else:
|
1290
|
+
id += '-' + self.network_code_to_id(networkCode, currencyCode) # use concatenated currency id and network code if network is not found
|
1291
|
+
return idFromNetwork if (idFromNetwork is not None) else id
|
1292
|
+
|
1221
1293
|
async def fetch_transaction_fee(self, code: str, params={}):
|
1222
1294
|
"""
|
1223
1295
|
@deprecated
|
1224
1296
|
please use fetchDepositWithdrawFee instead
|
1225
1297
|
:param str code: unified currency code
|
1226
1298
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1299
|
+
:param str [params.network]: the network code of the currency
|
1227
1300
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
1228
1301
|
"""
|
1229
1302
|
await self.load_markets()
|
1230
1303
|
currency = self.currency(code)
|
1304
|
+
network: Str = None
|
1305
|
+
network, params = self.handle_network_code_and_params(params)
|
1231
1306
|
request: dict = {
|
1232
|
-
'currency': currency['
|
1307
|
+
'currency': self.get_currency_id_from_code_and_network(currency['code'], network),
|
1233
1308
|
}
|
1234
1309
|
response = await self.privateGetAccountV1WithdrawCharge(self.extend(request, params))
|
1235
1310
|
#
|
@@ -1281,12 +1356,14 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1281
1356
|
fetch the fee for deposits and withdrawals
|
1282
1357
|
:param str code: unified currency code
|
1283
1358
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1359
|
+
:param str [params.network]: the network code of the currency
|
1284
1360
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
1285
1361
|
"""
|
1286
1362
|
await self.load_markets()
|
1287
|
-
|
1363
|
+
network: Str = None
|
1364
|
+
network, params = self.handle_network_code_and_params(params)
|
1288
1365
|
request: dict = {
|
1289
|
-
'currency':
|
1366
|
+
'currency': self.get_currency_id_from_code_and_network(code, network),
|
1290
1367
|
}
|
1291
1368
|
response = await self.privateGetAccountV1WithdrawCharge(self.extend(request, params))
|
1292
1369
|
#
|
@@ -3418,24 +3495,11 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3418
3495
|
"""
|
3419
3496
|
await self.load_markets()
|
3420
3497
|
currency = self.currency(code)
|
3421
|
-
|
3498
|
+
network: Str = None
|
3499
|
+
network, params = self.handle_network_code_and_params(params)
|
3422
3500
|
request: dict = {
|
3423
|
-
'currency':
|
3501
|
+
'currency': self.get_currency_id_from_code_and_network(code, network),
|
3424
3502
|
}
|
3425
|
-
if code == 'USDT':
|
3426
|
-
defaultNetworks = self.safe_value(self.options, 'defaultNetworks')
|
3427
|
-
defaultNetwork = self.safe_string_upper(defaultNetworks, code)
|
3428
|
-
networks = self.safe_dict(self.options, 'networks', {})
|
3429
|
-
networkInner = self.safe_string_upper(params, 'network', defaultNetwork) # self line allows the user to specify either ERC20 or ETH
|
3430
|
-
networkInner = self.safe_string(networks, networkInner, networkInner) # handle ERC20>ETH alias
|
3431
|
-
if networkInner is not None:
|
3432
|
-
request['currency'] = currencyId + '-' + networkInner # when network the currency need to be changed to currency + '-' + network https://developer-pro.bitmart.com/en/account/withdraw_apply.html on the end of page
|
3433
|
-
params = self.omit(params, 'network')
|
3434
|
-
else:
|
3435
|
-
networkCode = None
|
3436
|
-
networkCode, params = self.handle_network_code_and_params(params)
|
3437
|
-
if networkCode is not None:
|
3438
|
-
request['currency'] = currencyId + '-' + self.network_code_to_id(networkCode)
|
3439
3503
|
response = await self.privateGetAccountV1DepositAddress(self.extend(request, params))
|
3440
3504
|
#
|
3441
3505
|
# {
|
@@ -3463,23 +3527,20 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3463
3527
|
# }
|
3464
3528
|
#
|
3465
3529
|
currencyId = self.safe_string(depositAddress, 'currency')
|
3530
|
+
network = self.safe_string(depositAddress, 'chain')
|
3531
|
+
if currencyId.find('NFT') < 0:
|
3532
|
+
parts = currencyId.split('-')
|
3533
|
+
currencyId = self.safe_string(parts, 0)
|
3534
|
+
secondPart = self.safe_string(parts, 1)
|
3535
|
+
if secondPart is not None:
|
3536
|
+
network = secondPart
|
3466
3537
|
address = self.safe_string(depositAddress, 'address')
|
3467
|
-
chain = self.safe_string(depositAddress, 'chain')
|
3468
|
-
network = None
|
3469
3538
|
currency = self.safe_currency(currencyId, currency)
|
3470
|
-
if chain is not None:
|
3471
|
-
parts = chain.split('-')
|
3472
|
-
partsLength = len(parts)
|
3473
|
-
networkId = self.safe_string(parts, partsLength - 1)
|
3474
|
-
if networkId == self.safe_string(currency, 'name'):
|
3475
|
-
network = self.safe_string(currency, 'code')
|
3476
|
-
else:
|
3477
|
-
network = self.network_id_to_code(networkId)
|
3478
3539
|
self.check_address(address)
|
3479
3540
|
return {
|
3480
3541
|
'info': depositAddress,
|
3481
3542
|
'currency': self.safe_string(currency, 'code'),
|
3482
|
-
'network': network,
|
3543
|
+
'network': self.network_id_to_code(network),
|
3483
3544
|
'address': address,
|
3484
3545
|
'tag': self.safe_string(depositAddress, 'address_memo'),
|
3485
3546
|
}
|
@@ -3492,29 +3553,23 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3492
3553
|
:param str address: the address to withdraw to
|
3493
3554
|
:param str tag:
|
3494
3555
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3556
|
+
:param str [params.network]: the network name for self withdrawal
|
3495
3557
|
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
3496
3558
|
"""
|
3497
3559
|
tag, params = self.handle_withdraw_tag_and_params(tag, params)
|
3498
3560
|
self.check_address(address)
|
3499
3561
|
await self.load_markets()
|
3500
3562
|
currency = self.currency(code)
|
3563
|
+
network: Str = None
|
3564
|
+
network, params = self.handle_network_code_and_params(params)
|
3501
3565
|
request: dict = {
|
3502
|
-
'currency':
|
3566
|
+
'currency': self.get_currency_id_from_code_and_network(code, network),
|
3503
3567
|
'amount': amount,
|
3504
3568
|
'destination': 'To Digital Address', # To Digital Address, To Binance, To OKEX
|
3505
3569
|
'address': address,
|
3506
3570
|
}
|
3507
3571
|
if tag is not None:
|
3508
3572
|
request['address_memo'] = tag
|
3509
|
-
if code == 'USDT':
|
3510
|
-
defaultNetworks = self.safe_value(self.options, 'defaultNetworks')
|
3511
|
-
defaultNetwork = self.safe_string_upper(defaultNetworks, code)
|
3512
|
-
networks = self.safe_dict(self.options, 'networks', {})
|
3513
|
-
network = self.safe_string_upper(params, 'network', defaultNetwork) # self line allows the user to specify either ERC20 or ETH
|
3514
|
-
network = self.safe_string(networks, network, network) # handle ERC20>ETH alias
|
3515
|
-
if network is not None:
|
3516
|
-
request['currency'] = request['currency'] + '-' + network # when network the currency need to be changed to currency + '-' + network https://developer-pro.bitmart.com/en/account/withdraw_apply.html on the end of page
|
3517
|
-
params = self.omit(params, 'network')
|
3518
3573
|
response = await self.privatePostAccountV1WithdrawApply(self.extend(request, params))
|
3519
3574
|
#
|
3520
3575
|
# {
|
@@ -3547,16 +3602,6 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3547
3602
|
if code is not None:
|
3548
3603
|
currency = self.currency(code)
|
3549
3604
|
request['currency'] = currency['id']
|
3550
|
-
if code == 'USDT':
|
3551
|
-
defaultNetworks = self.safe_value(self.options, 'defaultNetworks')
|
3552
|
-
defaultNetwork = self.safe_string_upper(defaultNetworks, code)
|
3553
|
-
networks = self.safe_dict(self.options, 'networks', {})
|
3554
|
-
network = self.safe_string_upper(params, 'network', defaultNetwork) # self line allows the user to specify either ERC20 or ETH
|
3555
|
-
network = self.safe_string(networks, network, network) # handle ERC20>ETH alias
|
3556
|
-
if network is not None:
|
3557
|
-
request['currency'] = request['currency'] + '-' + network # when network the currency need to be changed to currency + '-' + network https://developer-pro.bitmart.com/en/account/withdraw_apply.html on the end of page
|
3558
|
-
currency['code'] = request['currency'] # update currency code to filter
|
3559
|
-
params = self.omit(params, 'network')
|
3560
3605
|
response = await self.privateGetAccountV2DepositWithdrawHistory(self.extend(request, params))
|
3561
3606
|
#
|
3562
3607
|
# {
|
@@ -3734,6 +3779,11 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3734
3779
|
amount = self.safe_number(transaction, 'arrival_amount')
|
3735
3780
|
timestamp = self.safe_integer(transaction, 'apply_time')
|
3736
3781
|
currencyId = self.safe_string(transaction, 'currency')
|
3782
|
+
networkId: Str = None
|
3783
|
+
if currencyId.find('NFT') < 0:
|
3784
|
+
parts = currencyId.split('-')
|
3785
|
+
currencyId = self.safe_string(parts, 0)
|
3786
|
+
networkId = self.safe_string(parts, 1)
|
3737
3787
|
code = self.safe_currency_code(currencyId, currency)
|
3738
3788
|
status = self.parse_transaction_status(self.safe_string(transaction, 'status'))
|
3739
3789
|
feeCost = self.safe_number(transaction, 'fee')
|
@@ -3751,7 +3801,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3751
3801
|
'id': id,
|
3752
3802
|
'currency': code,
|
3753
3803
|
'amount': amount,
|
3754
|
-
'network':
|
3804
|
+
'network': self.network_id_to_code(networkId),
|
3755
3805
|
'address': address,
|
3756
3806
|
'addressFrom': None,
|
3757
3807
|
'addressTo': None,
|
@@ -4929,6 +4979,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
4929
4979
|
else:
|
4930
4980
|
direction = 'in'
|
4931
4981
|
currencyId = self.safe_string(item, 'asset')
|
4982
|
+
currency = self.safe_currency(currencyId, currency)
|
4932
4983
|
timestamp = self.safe_integer(item, 'time')
|
4933
4984
|
type = self.safe_string(item, 'type')
|
4934
4985
|
return self.safe_ledger_entry({
|
@@ -4939,7 +4990,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
4939
4990
|
'referenceAccount': None,
|
4940
4991
|
'referenceId': self.safe_string(item, 'tradeId'),
|
4941
4992
|
'type': self.parse_ledger_entry_type(type),
|
4942
|
-
'currency':
|
4993
|
+
'currency': currency['code'],
|
4943
4994
|
'amount': self.parse_number(amount),
|
4944
4995
|
'timestamp': timestamp,
|
4945
4996
|
'datetime': self.iso8601(timestamp),
|
ccxt/async_support/bitmex.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bitmex import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, LedgerEntry, Leverage, Leverages, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, Transaction
|
9
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, LedgerEntry, Leverage, Leverages, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -25,7 +25,7 @@ from ccxt.base.precise import Precise
|
|
25
25
|
|
26
26
|
class bitmex(Exchange, ImplicitAPI):
|
27
27
|
|
28
|
-
def describe(self):
|
28
|
+
def describe(self) -> Any:
|
29
29
|
return self.deep_extend(super(bitmex, self).describe(), {
|
30
30
|
'id': 'bitmex',
|
31
31
|
'name': 'BitMEX',
|
ccxt/async_support/bitopro.py
CHANGED
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bitopro import ImplicitAPI
|
8
8
|
import hashlib
|
9
9
|
import math
|
10
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
10
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
13
13
|
from ccxt.base.errors import AuthenticationError
|
@@ -21,7 +21,7 @@ from ccxt.base.precise import Precise
|
|
21
21
|
|
22
22
|
class bitopro(Exchange, ImplicitAPI):
|
23
23
|
|
24
|
-
def describe(self):
|
24
|
+
def describe(self) -> Any:
|
25
25
|
return self.deep_extend(super(bitopro, self).describe(), {
|
26
26
|
'id': 'bitopro',
|
27
27
|
'name': 'BitoPro',
|
ccxt/async_support/bitpanda.py
CHANGED
@@ -5,11 +5,12 @@
|
|
5
5
|
|
6
6
|
from ccxt.async_support.onetrading import onetrading
|
7
7
|
from ccxt.abstract.bitpanda import ImplicitAPI
|
8
|
+
from ccxt.base.types import Any
|
8
9
|
|
9
10
|
|
10
11
|
class bitpanda(onetrading, ImplicitAPI):
|
11
12
|
|
12
|
-
def describe(self):
|
13
|
+
def describe(self) -> Any:
|
13
14
|
return self.deep_extend(super(bitpanda, self).describe(), {
|
14
15
|
'id': 'bitpanda',
|
15
16
|
'alias': True,
|
ccxt/async_support/bitrue.py
CHANGED
@@ -8,7 +8,7 @@ from ccxt.abstract.bitrue import ImplicitAPI
|
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
10
|
import json
|
11
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
11
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
14
|
from ccxt.base.errors import AuthenticationError
|
@@ -34,7 +34,7 @@ from ccxt.base.precise import Precise
|
|
34
34
|
|
35
35
|
class bitrue(Exchange, ImplicitAPI):
|
36
36
|
|
37
|
-
def describe(self):
|
37
|
+
def describe(self) -> Any:
|
38
38
|
return self.deep_extend(super(bitrue, self).describe(), {
|
39
39
|
'id': 'bitrue',
|
40
40
|
'name': 'Bitrue',
|
@@ -657,7 +657,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
657
657
|
'info': response,
|
658
658
|
}
|
659
659
|
|
660
|
-
async def fetch_time(self, params={}):
|
660
|
+
async def fetch_time(self, params={}) -> Int:
|
661
661
|
"""
|
662
662
|
fetches the current integer timestamp in milliseconds from the exchange server
|
663
663
|
|
ccxt/async_support/bitso.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bitso import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFees, Transaction
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFees, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -21,7 +21,7 @@ from ccxt.base.precise import Precise
|
|
21
21
|
|
22
22
|
class bitso(Exchange, ImplicitAPI):
|
23
23
|
|
24
|
-
def describe(self):
|
24
|
+
def describe(self) -> Any:
|
25
25
|
return self.deep_extend(super(bitso, self).describe(), {
|
26
26
|
'id': 'bitso',
|
27
27
|
'name': 'Bitso',
|
ccxt/async_support/bitstamp.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bitstamp import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -26,7 +26,7 @@ from ccxt.base.precise import Precise
|
|
26
26
|
|
27
27
|
class bitstamp(Exchange, ImplicitAPI):
|
28
28
|
|
29
|
-
def describe(self):
|
29
|
+
def describe(self) -> Any:
|
30
30
|
return self.deep_extend(super(bitstamp, self).describe(), {
|
31
31
|
'id': 'bitstamp',
|
32
32
|
'name': 'Bitstamp',
|
ccxt/async_support/bitteam.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bitteam import ImplicitAPI
|
8
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
8
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
9
9
|
from typing import List
|
10
10
|
from ccxt.base.errors import ExchangeError
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
@@ -21,7 +21,7 @@ from ccxt.base.precise import Precise
|
|
21
21
|
|
22
22
|
class bitteam(Exchange, ImplicitAPI):
|
23
23
|
|
24
|
-
def describe(self):
|
24
|
+
def describe(self) -> Any:
|
25
25
|
return self.deep_extend(super(bitteam, self).describe(), {
|
26
26
|
'id': 'bitteam',
|
27
27
|
'name': 'BIT.TEAM',
|
ccxt/async_support/bitvavo.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bitvavo import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
9
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -31,7 +31,7 @@ from ccxt.base.precise import Precise
|
|
31
31
|
|
32
32
|
class bitvavo(Exchange, ImplicitAPI):
|
33
33
|
|
34
|
-
def describe(self):
|
34
|
+
def describe(self) -> Any:
|
35
35
|
return self.deep_extend(super(bitvavo, self).describe(), {
|
36
36
|
'id': 'bitvavo',
|
37
37
|
'name': 'Bitvavo',
|
@@ -382,7 +382,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
382
382
|
# Prices submit with a precision larger than 5 will be cut by the API.
|
383
383
|
return self.decimal_to_precision(price, TRUNCATE, 8, DECIMAL_PLACES)
|
384
384
|
|
385
|
-
async def fetch_time(self, params={}):
|
385
|
+
async def fetch_time(self, params={}) -> Int:
|
386
386
|
"""
|
387
387
|
fetches the current integer timestamp in milliseconds from the exchange server
|
388
388
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
ccxt/async_support/bl3p.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bl3p import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currency, IndexType, Int, Market, Num, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, IndexType, Int, Market, Num, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
12
12
|
from ccxt.base.precise import Precise
|
@@ -14,7 +14,7 @@ from ccxt.base.precise import Precise
|
|
14
14
|
|
15
15
|
class bl3p(Exchange, ImplicitAPI):
|
16
16
|
|
17
|
-
def describe(self):
|
17
|
+
def describe(self) -> Any:
|
18
18
|
return self.deep_extend(super(bl3p, self).describe(), {
|
19
19
|
'id': 'bl3p',
|
20
20
|
'name': 'BL3P',
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.blockchaincom import ImplicitAPI
|
8
|
-
from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
8
|
+
from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
9
9
|
from typing import List
|
10
10
|
from ccxt.base.errors import ExchangeError
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
@@ -18,7 +18,7 @@ from ccxt.base.precise import Precise
|
|
18
18
|
|
19
19
|
class blockchaincom(Exchange, ImplicitAPI):
|
20
20
|
|
21
|
-
def describe(self):
|
21
|
+
def describe(self) -> Any:
|
22
22
|
return self.deep_extend(super(blockchaincom, self).describe(), {
|
23
23
|
'id': 'blockchaincom',
|
24
24
|
'secret': None,
|
ccxt/async_support/blofin.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.blofin import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, LedgerEntry, Leverage, Leverages, MarginMode, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, Trade, TradingFeeInterface, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, Int, LedgerEntry, Leverage, Leverages, MarginMode, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, Trade, TradingFeeInterface, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -22,7 +22,7 @@ from ccxt.base.precise import Precise
|
|
22
22
|
|
23
23
|
class blofin(Exchange, ImplicitAPI):
|
24
24
|
|
25
|
-
def describe(self):
|
25
|
+
def describe(self) -> Any:
|
26
26
|
return self.deep_extend(super(blofin, self).describe(), {
|
27
27
|
'id': 'blofin',
|
28
28
|
'name': 'BloFin',
|
ccxt/async_support/btcalpha.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.btcalpha import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currency, IndexType, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, IndexType, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import InsufficientFunds
|
@@ -17,7 +17,7 @@ from ccxt.base.precise import Precise
|
|
17
17
|
|
18
18
|
class btcalpha(Exchange, ImplicitAPI):
|
19
19
|
|
20
|
-
def describe(self):
|
20
|
+
def describe(self) -> Any:
|
21
21
|
return self.deep_extend(super(btcalpha, self).describe(), {
|
22
22
|
'id': 'btcalpha',
|
23
23
|
'name': 'BTC-Alpha',
|
ccxt/async_support/btcbox.py
CHANGED
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.btcbox import ImplicitAPI
|
8
8
|
import hashlib
|
9
9
|
import json
|
10
|
-
from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
10
|
+
from ccxt.base.types import Any, Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
13
13
|
from ccxt.base.errors import AuthenticationError
|
@@ -23,7 +23,7 @@ from ccxt.base.precise import Precise
|
|
23
23
|
|
24
24
|
class btcbox(Exchange, ImplicitAPI):
|
25
25
|
|
26
|
-
def describe(self):
|
26
|
+
def describe(self) -> Any:
|
27
27
|
return self.deep_extend(super(btcbox, self).describe(), {
|
28
28
|
'id': 'btcbox',
|
29
29
|
'name': 'BtcBox',
|