ccxt 4.3.18__py2.py3-none-any.whl → 4.3.20__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 +3 -1
- ccxt/abstract/bitget.py +3 -0
- ccxt/abstract/bybit.py +1 -0
- ccxt/abstract/okx.py +1 -0
- ccxt/abstract/woofipro.py +119 -0
- ccxt/ace.py +1 -1
- ccxt/ascendex.py +7 -8
- ccxt/async_support/__init__.py +3 -1
- ccxt/async_support/ace.py +1 -1
- ccxt/async_support/ascendex.py +7 -8
- ccxt/async_support/base/exchange.py +25 -2
- ccxt/async_support/bigone.py +4 -4
- ccxt/async_support/binance.py +9 -9
- ccxt/async_support/bingx.py +4 -4
- ccxt/async_support/bit2c.py +1 -1
- ccxt/async_support/bitbank.py +1 -1
- ccxt/async_support/bitbns.py +1 -1
- ccxt/async_support/bitfinex.py +28 -4
- ccxt/async_support/bitfinex2.py +62 -54
- ccxt/async_support/bitflyer.py +1 -1
- ccxt/async_support/bitget.py +11 -11
- ccxt/async_support/bithumb.py +1 -1
- ccxt/async_support/bitmart.py +8 -8
- ccxt/async_support/bitmex.py +2 -2
- ccxt/async_support/bitopro.py +1 -1
- ccxt/async_support/bitrue.py +3 -3
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitstamp.py +3 -5
- ccxt/async_support/bitteam.py +1 -1
- ccxt/async_support/bitvavo.py +1 -1
- ccxt/async_support/bl3p.py +1 -1
- ccxt/async_support/blockchaincom.py +1 -1
- ccxt/async_support/blofin.py +3 -3
- ccxt/async_support/btcalpha.py +1 -1
- ccxt/async_support/btcbox.py +1 -1
- ccxt/async_support/btcmarkets.py +1 -1
- ccxt/async_support/btcturk.py +1 -1
- ccxt/async_support/bybit.py +44 -17
- ccxt/async_support/cex.py +1 -1
- ccxt/async_support/coinbase.py +2 -2
- ccxt/async_support/coinbasepro.py +1 -1
- ccxt/async_support/coincheck.py +1 -1
- ccxt/async_support/coinex.py +358 -543
- ccxt/async_support/coinlist.py +6 -7
- ccxt/async_support/coinmate.py +1 -1
- ccxt/async_support/coinmetro.py +1 -1
- ccxt/async_support/coinone.py +1 -1
- ccxt/async_support/coinsph.py +1 -1
- ccxt/async_support/coinspot.py +1 -1
- ccxt/async_support/cryptocom.py +1 -1
- ccxt/async_support/currencycom.py +2 -2
- ccxt/async_support/delta.py +4 -4
- ccxt/async_support/deribit.py +8 -8
- ccxt/async_support/digifinex.py +5 -5
- ccxt/async_support/exmo.py +1 -1
- ccxt/async_support/gate.py +5 -5
- ccxt/async_support/gemini.py +1 -1
- ccxt/async_support/hitbtc.py +3 -3
- ccxt/async_support/hollaex.py +4 -4
- ccxt/async_support/htx.py +2 -2
- ccxt/async_support/huobijp.py +1 -1
- ccxt/async_support/idex.py +1 -1
- ccxt/async_support/independentreserve.py +1 -1
- ccxt/async_support/indodax.py +2 -2
- ccxt/async_support/kraken.py +2 -2
- ccxt/async_support/krakenfutures.py +3 -3
- ccxt/async_support/kucoin.py +3 -3
- ccxt/async_support/kucoinfutures.py +3 -3
- ccxt/async_support/kuna.py +1 -1
- ccxt/async_support/latoken.py +6 -6
- ccxt/async_support/lbank.py +1 -1
- ccxt/async_support/luno.py +1 -1
- ccxt/async_support/lykke.py +1 -1
- ccxt/async_support/mercado.py +1 -1
- ccxt/async_support/mexc.py +7 -7
- ccxt/async_support/ndax.py +1 -1
- ccxt/async_support/novadax.py +3 -4
- ccxt/async_support/okcoin.py +3 -3
- ccxt/async_support/okx.py +27 -10
- ccxt/async_support/onetrading.py +1 -1
- ccxt/async_support/paymium.py +3 -3
- ccxt/async_support/phemex.py +19 -11
- ccxt/async_support/poloniex.py +3 -4
- ccxt/async_support/poloniexfutures.py +1 -1
- ccxt/async_support/probit.py +1 -1
- ccxt/async_support/timex.py +1 -1
- ccxt/async_support/tokocrypto.py +1 -1
- ccxt/async_support/upbit.py +1 -1
- ccxt/async_support/wavesexchange.py +3 -3
- ccxt/async_support/wazirx.py +1 -1
- ccxt/async_support/whitebit.py +2 -2
- ccxt/async_support/woo.py +25 -10
- ccxt/async_support/woofipro.py +2524 -0
- ccxt/async_support/yobit.py +1 -1
- ccxt/async_support/zaif.py +1 -1
- ccxt/async_support/zonda.py +3 -3
- ccxt/base/exchange.py +64 -16
- ccxt/base/types.py +20 -0
- ccxt/bigone.py +4 -4
- ccxt/binance.py +9 -9
- ccxt/bingx.py +4 -4
- ccxt/bit2c.py +1 -1
- ccxt/bitbank.py +1 -1
- ccxt/bitbns.py +1 -1
- ccxt/bitfinex.py +28 -4
- ccxt/bitfinex2.py +62 -54
- ccxt/bitflyer.py +1 -1
- ccxt/bitget.py +11 -11
- ccxt/bithumb.py +1 -1
- ccxt/bitmart.py +8 -8
- ccxt/bitmex.py +2 -2
- ccxt/bitopro.py +1 -1
- ccxt/bitrue.py +3 -3
- ccxt/bitso.py +1 -1
- ccxt/bitstamp.py +3 -5
- ccxt/bitteam.py +1 -1
- ccxt/bitvavo.py +1 -1
- ccxt/bl3p.py +1 -1
- ccxt/blockchaincom.py +1 -1
- ccxt/blofin.py +3 -3
- ccxt/btcalpha.py +1 -1
- ccxt/btcbox.py +1 -1
- ccxt/btcmarkets.py +1 -1
- ccxt/btcturk.py +1 -1
- ccxt/bybit.py +44 -17
- ccxt/cex.py +1 -1
- ccxt/coinbase.py +2 -2
- ccxt/coinbasepro.py +1 -1
- ccxt/coincheck.py +1 -1
- ccxt/coinex.py +358 -543
- ccxt/coinlist.py +6 -7
- ccxt/coinmate.py +1 -1
- ccxt/coinmetro.py +1 -1
- ccxt/coinone.py +1 -1
- ccxt/coinsph.py +1 -1
- ccxt/coinspot.py +1 -1
- ccxt/cryptocom.py +1 -1
- ccxt/currencycom.py +2 -2
- ccxt/delta.py +4 -4
- ccxt/deribit.py +8 -8
- ccxt/digifinex.py +5 -5
- ccxt/exmo.py +1 -1
- ccxt/gate.py +5 -5
- ccxt/gemini.py +1 -1
- ccxt/hitbtc.py +3 -3
- ccxt/hollaex.py +4 -4
- ccxt/htx.py +2 -2
- ccxt/huobijp.py +1 -1
- ccxt/idex.py +1 -1
- ccxt/independentreserve.py +1 -1
- ccxt/indodax.py +2 -2
- ccxt/kraken.py +2 -2
- ccxt/krakenfutures.py +3 -3
- ccxt/kucoin.py +3 -3
- ccxt/kucoinfutures.py +3 -3
- ccxt/kuna.py +1 -1
- ccxt/latoken.py +6 -6
- ccxt/lbank.py +1 -1
- ccxt/luno.py +1 -1
- ccxt/lykke.py +1 -1
- ccxt/mercado.py +1 -1
- ccxt/mexc.py +7 -7
- ccxt/ndax.py +1 -1
- ccxt/novadax.py +3 -4
- ccxt/okcoin.py +3 -3
- ccxt/okx.py +27 -10
- ccxt/onetrading.py +1 -1
- ccxt/paymium.py +3 -3
- ccxt/phemex.py +19 -11
- ccxt/poloniex.py +3 -4
- ccxt/poloniexfutures.py +1 -1
- ccxt/pro/__init__.py +3 -1
- ccxt/pro/bitget.py +127 -190
- ccxt/pro/coinbaseinternational.py +11 -4
- ccxt/pro/htx.py +12 -6
- ccxt/pro/okx.py +79 -1
- ccxt/pro/woofipro.py +1183 -0
- ccxt/probit.py +1 -1
- ccxt/test/test_async.py +31 -1
- ccxt/test/test_sync.py +31 -1
- ccxt/timex.py +1 -1
- ccxt/tokocrypto.py +1 -1
- ccxt/upbit.py +1 -1
- ccxt/wavesexchange.py +3 -3
- ccxt/wazirx.py +1 -1
- ccxt/whitebit.py +2 -2
- ccxt/woo.py +25 -10
- ccxt/woofipro.py +2524 -0
- ccxt/yobit.py +1 -1
- ccxt/zaif.py +1 -1
- ccxt/zonda.py +3 -3
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.dist-info}/METADATA +8 -6
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.dist-info}/RECORD +195 -191
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.dist-info}/WHEEL +0 -0
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.dist-info}/top_level.txt +0 -0
ccxt/bitfinex2.py
CHANGED
@@ -936,9 +936,9 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
936
936
|
# same message v1
|
937
937
|
self.throw_exactly_matched_exception(self.exceptions['exact'], message, self.id + ' ' + message)
|
938
938
|
raise ExchangeError(self.id + ' ' + message)
|
939
|
-
return self.parse_transfer(response, currency)
|
939
|
+
return self.parse_transfer({'result': response}, currency)
|
940
940
|
|
941
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
941
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
942
942
|
#
|
943
943
|
# transfer
|
944
944
|
#
|
@@ -962,12 +962,13 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
962
962
|
# "1.0 Tether USDt transfered from Exchange to Margin"
|
963
963
|
# ]
|
964
964
|
#
|
965
|
-
|
966
|
-
|
965
|
+
result = self.safe_list(transfer, 'result')
|
966
|
+
timestamp = self.safe_integer(result, 0)
|
967
|
+
info = self.safe_value(result, 4)
|
967
968
|
fromAccount = self.safe_string(info, 1)
|
968
969
|
toAccount = self.safe_string(info, 2)
|
969
970
|
currencyId = self.safe_string(info, 5)
|
970
|
-
status = self.safe_string(
|
971
|
+
status = self.safe_string(result, 6)
|
971
972
|
return {
|
972
973
|
'id': None,
|
973
974
|
'timestamp': timestamp,
|
@@ -977,10 +978,10 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
977
978
|
'currency': self.safe_currency_code(currencyId, currency),
|
978
979
|
'fromAccount': fromAccount,
|
979
980
|
'toAccount': toAccount,
|
980
|
-
'info':
|
981
|
+
'info': result,
|
981
982
|
}
|
982
983
|
|
983
|
-
def parse_transfer_status(self, status):
|
984
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
984
985
|
statuses = {
|
985
986
|
'SUCCESS': 'ok',
|
986
987
|
'ERROR': 'failed',
|
@@ -1051,71 +1052,77 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
1051
1052
|
result['asks'] = self.sort_by(result['asks'], 0)
|
1052
1053
|
return result
|
1053
1054
|
|
1054
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
1055
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
1055
1056
|
#
|
1056
1057
|
# on trading pairs(ex. tBTCUSD)
|
1057
1058
|
#
|
1058
|
-
#
|
1059
|
-
#
|
1060
|
-
#
|
1061
|
-
#
|
1062
|
-
#
|
1063
|
-
#
|
1064
|
-
#
|
1065
|
-
#
|
1066
|
-
#
|
1067
|
-
#
|
1068
|
-
#
|
1069
|
-
#
|
1070
|
-
#
|
1059
|
+
# {
|
1060
|
+
# 'result': [
|
1061
|
+
# SYMBOL,
|
1062
|
+
# BID,
|
1063
|
+
# BID_SIZE,
|
1064
|
+
# ASK,
|
1065
|
+
# ASK_SIZE,
|
1066
|
+
# DAILY_CHANGE,
|
1067
|
+
# DAILY_CHANGE_RELATIVE,
|
1068
|
+
# LAST_PRICE,
|
1069
|
+
# VOLUME,
|
1070
|
+
# HIGH,
|
1071
|
+
# LOW
|
1072
|
+
# ]
|
1073
|
+
# }
|
1074
|
+
#
|
1071
1075
|
#
|
1072
1076
|
# on funding currencies(ex. fUSD)
|
1073
1077
|
#
|
1074
|
-
#
|
1075
|
-
#
|
1076
|
-
#
|
1077
|
-
#
|
1078
|
-
#
|
1079
|
-
#
|
1080
|
-
#
|
1081
|
-
#
|
1082
|
-
#
|
1083
|
-
#
|
1084
|
-
#
|
1085
|
-
#
|
1086
|
-
#
|
1087
|
-
#
|
1088
|
-
#
|
1089
|
-
#
|
1090
|
-
#
|
1091
|
-
#
|
1092
|
-
#
|
1078
|
+
# {
|
1079
|
+
# 'result': [
|
1080
|
+
# SYMBOL,
|
1081
|
+
# FRR,
|
1082
|
+
# BID,
|
1083
|
+
# BID_PERIOD,
|
1084
|
+
# BID_SIZE,
|
1085
|
+
# ASK,
|
1086
|
+
# ASK_PERIOD,
|
1087
|
+
# ASK_SIZE,
|
1088
|
+
# DAILY_CHANGE,
|
1089
|
+
# DAILY_CHANGE_RELATIVE,
|
1090
|
+
# LAST_PRICE,
|
1091
|
+
# VOLUME,
|
1092
|
+
# HIGH,
|
1093
|
+
# LOW,
|
1094
|
+
# _PLACEHOLDER,
|
1095
|
+
# _PLACEHOLDER,
|
1096
|
+
# FRR_AMOUNT_AVAILABLE
|
1097
|
+
# ]
|
1098
|
+
# }
|
1093
1099
|
#
|
1100
|
+
result = self.safe_list(ticker, 'result')
|
1094
1101
|
symbol = self.safe_symbol(None, market)
|
1095
|
-
length = len(
|
1096
|
-
last = self.safe_string(
|
1097
|
-
percentage = self.safe_string(
|
1102
|
+
length = len(result)
|
1103
|
+
last = self.safe_string(result, length - 4)
|
1104
|
+
percentage = self.safe_string(result, length - 5)
|
1098
1105
|
return self.safe_ticker({
|
1099
1106
|
'symbol': symbol,
|
1100
1107
|
'timestamp': None,
|
1101
1108
|
'datetime': None,
|
1102
|
-
'high': self.safe_string(
|
1103
|
-
'low': self.safe_string(
|
1104
|
-
'bid': self.safe_string(
|
1105
|
-
'bidVolume': self.safe_string(
|
1106
|
-
'ask': self.safe_string(
|
1107
|
-
'askVolume': self.safe_string(
|
1109
|
+
'high': self.safe_string(result, length - 2),
|
1110
|
+
'low': self.safe_string(result, length - 1),
|
1111
|
+
'bid': self.safe_string(result, length - 10),
|
1112
|
+
'bidVolume': self.safe_string(result, length - 9),
|
1113
|
+
'ask': self.safe_string(result, length - 8),
|
1114
|
+
'askVolume': self.safe_string(result, length - 7),
|
1108
1115
|
'vwap': None,
|
1109
1116
|
'open': None,
|
1110
1117
|
'close': last,
|
1111
1118
|
'last': last,
|
1112
1119
|
'previousClose': None,
|
1113
|
-
'change': self.safe_string(
|
1120
|
+
'change': self.safe_string(result, length - 6),
|
1114
1121
|
'percentage': Precise.string_mul(percentage, '100'),
|
1115
1122
|
'average': None,
|
1116
|
-
'baseVolume': self.safe_string(
|
1123
|
+
'baseVolume': self.safe_string(result, length - 3),
|
1117
1124
|
'quoteVolume': None,
|
1118
|
-
'info':
|
1125
|
+
'info': result,
|
1119
1126
|
}, market)
|
1120
1127
|
|
1121
1128
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
@@ -1180,7 +1187,7 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
1180
1187
|
marketId = self.safe_string(ticker, 0)
|
1181
1188
|
market = self.safe_market(marketId)
|
1182
1189
|
symbol = market['symbol']
|
1183
|
-
result[symbol] = self.parse_ticker(ticker, market)
|
1190
|
+
result[symbol] = self.parse_ticker({'result': ticker}, market)
|
1184
1191
|
return self.filter_by_array_tickers(result, 'symbol', symbols)
|
1185
1192
|
|
1186
1193
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
@@ -1197,7 +1204,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
1197
1204
|
'symbol': market['id'],
|
1198
1205
|
}
|
1199
1206
|
ticker = self.publicGetTickerSymbol(self.extend(request, params))
|
1200
|
-
|
1207
|
+
result = {'result': ticker}
|
1208
|
+
return self.parse_ticker(result, market)
|
1201
1209
|
|
1202
1210
|
def parse_trade(self, trade, market: Market = None) -> Trade:
|
1203
1211
|
#
|
ccxt/bitflyer.py
CHANGED
@@ -358,7 +358,7 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
358
358
|
orderbook = self.publicGetGetboard(self.extend(request, params))
|
359
359
|
return self.parse_order_book(orderbook, market['symbol'], None, 'bids', 'asks', 'price', 'size')
|
360
360
|
|
361
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
361
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
362
362
|
symbol = self.safe_symbol(None, market)
|
363
363
|
timestamp = self.parse8601(self.safe_string(ticker, 'timestamp'))
|
364
364
|
last = self.safe_string(ticker, 'ltp')
|
ccxt/bitget.py
CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bitget import ImplicitAPI
|
8
8
|
import hashlib
|
9
9
|
import json
|
10
|
-
from ccxt.base.types import Balances, Conversion, CrossBorrowRate, Currencies, Currency, FundingHistory, Int, IsolatedBorrowRate, Leverage, Liquidation, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
10
|
+
from ccxt.base.types import Balances, Conversion, CrossBorrowRate, Currencies, Currency, FundingHistory, Int, IsolatedBorrowRate, Leverage, Liquidation, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry, TransferEntries
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
13
13
|
from ccxt.base.errors import AuthenticationError
|
@@ -331,6 +331,9 @@ class bitget(Exchange, ImplicitAPI):
|
|
331
331
|
'v2/spot/account/subaccount-assets': 2,
|
332
332
|
'v2/spot/account/bills': 2,
|
333
333
|
'v2/spot/account/transferRecords': 1,
|
334
|
+
'v2/account/funding-assets': 2,
|
335
|
+
'v2/account/bot-assets': 2,
|
336
|
+
'v2/account/all-account-balance': 20,
|
334
337
|
'v2/spot/wallet/deposit-address': 2,
|
335
338
|
'v2/spot/wallet/deposit-records': 2,
|
336
339
|
'v2/spot/wallet/withdrawal-records': 2,
|
@@ -2492,7 +2495,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
2492
2495
|
timestamp = self.safe_integer(data, 'ts')
|
2493
2496
|
return self.parse_order_book(data, market['symbol'], timestamp)
|
2494
2497
|
|
2495
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
2498
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
2496
2499
|
#
|
2497
2500
|
# spot: fetchTicker, fetchTickers
|
2498
2501
|
#
|
@@ -2565,10 +2568,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
2565
2568
|
#
|
2566
2569
|
marketId = self.safe_string(ticker, 'symbol')
|
2567
2570
|
close = self.safe_string(ticker, 'lastPr')
|
2568
|
-
|
2569
|
-
timestamp = None
|
2570
|
-
if timestampString is not None:
|
2571
|
-
timestamp = self.parse_to_int(timestampString)
|
2571
|
+
timestamp = self.safe_integer_omit_zero(ticker, 'ts') # exchange bitget provided 0
|
2572
2572
|
change = self.safe_string(ticker, 'change24h')
|
2573
2573
|
open24 = self.safe_string(ticker, 'open24')
|
2574
2574
|
open = self.safe_string(ticker, 'open')
|
@@ -6589,7 +6589,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6589
6589
|
data = self.safe_dict(response, 'data', {})
|
6590
6590
|
return self.parse_leverage(data, market)
|
6591
6591
|
|
6592
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
6592
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
6593
6593
|
return {
|
6594
6594
|
'info': leverage,
|
6595
6595
|
'symbol': market['symbol'],
|
@@ -6801,7 +6801,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6801
6801
|
'info': interest,
|
6802
6802
|
}, market)
|
6803
6803
|
|
6804
|
-
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
6804
|
+
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
6805
6805
|
"""
|
6806
6806
|
fetch a history of internal transfers made on an account
|
6807
6807
|
:see: https://www.bitget.com/api-doc/spot/account/Get-Account-TransferRecords
|
@@ -6902,7 +6902,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6902
6902
|
data['ts'] = self.safe_integer(response, 'requestTime')
|
6903
6903
|
return self.parse_transfer(data, currency)
|
6904
6904
|
|
6905
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
6905
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
6906
6906
|
#
|
6907
6907
|
# transfer
|
6908
6908
|
#
|
@@ -6947,7 +6947,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6947
6947
|
'status': self.parse_transfer_status(status),
|
6948
6948
|
}
|
6949
6949
|
|
6950
|
-
def parse_transfer_status(self, status):
|
6950
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
6951
6951
|
statuses = {
|
6952
6952
|
'successful': 'ok',
|
6953
6953
|
}
|
@@ -8066,7 +8066,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
8066
8066
|
dataList = self.safe_list(data, 'dataList', [])
|
8067
8067
|
return self.parse_conversions(dataList, code, 'fromCoin', 'toCoin', since, limit)
|
8068
8068
|
|
8069
|
-
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
8069
|
+
def parse_conversion(self, conversion: dict, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
8070
8070
|
#
|
8071
8071
|
# fetchConvertQuote
|
8072
8072
|
#
|
ccxt/bithumb.py
CHANGED
@@ -355,7 +355,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
355
355
|
timestamp = self.safe_integer(data, 'timestamp')
|
356
356
|
return self.parse_order_book(data, symbol, timestamp, 'bids', 'asks', 'price', 'quantity')
|
357
357
|
|
358
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
358
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
359
359
|
#
|
360
360
|
# fetchTicker, fetchTickers
|
361
361
|
#
|
ccxt/bitmart.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bitmart import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, IsolatedBorrowRates, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, IsolatedBorrowRates, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry, TransferEntries
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -1121,7 +1121,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1121
1121
|
data = response['data']
|
1122
1122
|
return self.parse_deposit_withdraw_fee(data)
|
1123
1123
|
|
1124
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
1124
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
1125
1125
|
#
|
1126
1126
|
# spot(REST)
|
1127
1127
|
#
|
@@ -2424,7 +2424,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2424
2424
|
elif isMarketOrder:
|
2425
2425
|
# for market buy it requires the amount of quote currency to spend
|
2426
2426
|
if side == 'buy':
|
2427
|
-
notional = self.
|
2427
|
+
notional = self.safe_string_2(params, 'cost', 'notional')
|
2428
2428
|
params = self.omit(params, 'cost')
|
2429
2429
|
createMarketBuyOrderRequiresPrice = True
|
2430
2430
|
createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
|
@@ -2434,9 +2434,9 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2434
2434
|
else:
|
2435
2435
|
amountString = self.number_to_string(amount)
|
2436
2436
|
priceString = self.number_to_string(price)
|
2437
|
-
notional =
|
2437
|
+
notional = Precise.string_mul(amountString, priceString)
|
2438
2438
|
else:
|
2439
|
-
notional = amount if (notional is None) else notional
|
2439
|
+
notional = self.number_to_string(amount) if (notional is None) else notional
|
2440
2440
|
request['notional'] = self.decimal_to_precision(notional, TRUNCATE, market['precision']['price'], self.precisionMode)
|
2441
2441
|
elif side == 'sell':
|
2442
2442
|
request['size'] = self.amount_to_precision(symbol, amount)
|
@@ -3549,7 +3549,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3549
3549
|
'status': self.parse_transfer_status(self.safe_string_2(response, 'code', 'message')),
|
3550
3550
|
})
|
3551
3551
|
|
3552
|
-
def parse_transfer_status(self, status):
|
3552
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
3553
3553
|
statuses = {
|
3554
3554
|
'1000': 'ok',
|
3555
3555
|
'OK': 'ok',
|
@@ -3571,7 +3571,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3571
3571
|
}
|
3572
3572
|
return self.safe_string(types, type, type)
|
3573
3573
|
|
3574
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
3574
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
3575
3575
|
#
|
3576
3576
|
# margin
|
3577
3577
|
#
|
@@ -3610,7 +3610,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3610
3610
|
'status': self.parse_transfer_status(self.safe_string(transfer, 'state')),
|
3611
3611
|
}
|
3612
3612
|
|
3613
|
-
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
3613
|
+
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
3614
3614
|
"""
|
3615
3615
|
fetch a history of internal transfers made on an account, only transfers between spot and swap are supported
|
3616
3616
|
:see: https://developer-pro.bitmart.com/en/futures/#get-transfer-list-signed
|
ccxt/bitmex.py
CHANGED
@@ -1340,7 +1340,7 @@ class bitmex(Exchange, ImplicitAPI):
|
|
1340
1340
|
result[symbol] = ticker
|
1341
1341
|
return self.filter_by_array_tickers(result, 'symbol', symbols)
|
1342
1342
|
|
1343
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
1343
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
1344
1344
|
# see response sample under "fetchMarkets" because same endpoint is being used here
|
1345
1345
|
marketId = self.safe_string(ticker, 'symbol')
|
1346
1346
|
symbol = self.safe_symbol(marketId, market)
|
@@ -2016,7 +2016,7 @@ class bitmex(Exchange, ImplicitAPI):
|
|
2016
2016
|
leverages = self.fetch_positions(symbols, params)
|
2017
2017
|
return self.parse_leverages(leverages, symbols, 'symbol')
|
2018
2018
|
|
2019
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
2019
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
2020
2020
|
marketId = self.safe_string(leverage, 'symbol')
|
2021
2021
|
return {
|
2022
2022
|
'info': leverage,
|
ccxt/bitopro.py
CHANGED
ccxt/bitrue.py
CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bitrue import ImplicitAPI
|
8
8
|
import hashlib
|
9
9
|
import json
|
10
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
10
|
+
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry, TransferEntries
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
13
13
|
from ccxt.base.errors import AuthenticationError
|
@@ -1146,7 +1146,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1146
1146
|
orderbook['nonce'] = self.safe_integer(response, 'lastUpdateId')
|
1147
1147
|
return orderbook
|
1148
1148
|
|
1149
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
1149
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
1150
1150
|
#
|
1151
1151
|
# fetchBidsAsks
|
1152
1152
|
#
|
@@ -2727,7 +2727,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
2727
2727
|
'status': 'ok',
|
2728
2728
|
}
|
2729
2729
|
|
2730
|
-
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
2730
|
+
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
2731
2731
|
"""
|
2732
2732
|
fetch a history of internal transfers made on an account
|
2733
2733
|
:see: https://www.bitrue.com/api-docs#get-future-account-transfer-history-list-user_data-hmac-sha256
|
ccxt/bitso.py
CHANGED
@@ -550,7 +550,7 @@ class bitso(Exchange, ImplicitAPI):
|
|
550
550
|
timestamp = self.parse8601(self.safe_string(orderbook, 'updated_at'))
|
551
551
|
return self.parse_order_book(orderbook, market['symbol'], timestamp, 'bids', 'asks', 'price', 'amount')
|
552
552
|
|
553
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
553
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
554
554
|
#
|
555
555
|
# {
|
556
556
|
# "high":"37446.85",
|
ccxt/bitstamp.py
CHANGED
@@ -721,7 +721,7 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
721
721
|
orderbook['nonce'] = microtimestamp
|
722
722
|
return orderbook
|
723
723
|
|
724
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
724
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
725
725
|
#
|
726
726
|
# {
|
727
727
|
# "timestamp": "1686068944",
|
@@ -2020,10 +2020,8 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
2020
2020
|
"""
|
2021
2021
|
self.load_markets()
|
2022
2022
|
currency = self.currency(code)
|
2023
|
-
amount = self.currency_to_precision(code, amount)
|
2024
|
-
amount = self.parse_to_numeric(amount)
|
2025
2023
|
request = {
|
2026
|
-
'amount': amount,
|
2024
|
+
'amount': self.parse_to_numeric(self.currency_to_precision(code, amount)),
|
2027
2025
|
'currency': currency['id'].upper(),
|
2028
2026
|
}
|
2029
2027
|
response = None
|
@@ -2061,7 +2059,7 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
2061
2059
|
'status': self.parse_transfer_status(status),
|
2062
2060
|
}
|
2063
2061
|
|
2064
|
-
def parse_transfer_status(self, status):
|
2062
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
2065
2063
|
statuses = {
|
2066
2064
|
'ok': 'ok',
|
2067
2065
|
'error': 'failed',
|
ccxt/bitteam.py
CHANGED
@@ -1482,7 +1482,7 @@ class bitteam(Exchange, ImplicitAPI):
|
|
1482
1482
|
pair = self.safe_dict(result, 'pair', {})
|
1483
1483
|
return self.parse_ticker(pair, market)
|
1484
1484
|
|
1485
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
1485
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
1486
1486
|
#
|
1487
1487
|
# fetchTicker
|
1488
1488
|
# {
|
ccxt/bitvavo.py
CHANGED
@@ -591,7 +591,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
591
591
|
#
|
592
592
|
return self.parse_ticker(response, market)
|
593
593
|
|
594
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
594
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
595
595
|
#
|
596
596
|
# fetchTicker
|
597
597
|
#
|
ccxt/bl3p.py
CHANGED
@@ -178,7 +178,7 @@ class bl3p(Exchange, ImplicitAPI):
|
|
178
178
|
orderbook = self.safe_dict(response, 'data')
|
179
179
|
return self.parse_order_book(orderbook, market['symbol'], None, 'bids', 'asks', 'price_int', 'amount_int')
|
180
180
|
|
181
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
181
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
182
182
|
#
|
183
183
|
# {
|
184
184
|
# "currency":"BTC",
|
ccxt/blockchaincom.py
CHANGED
@@ -392,7 +392,7 @@ class blockchaincom(Exchange, ImplicitAPI):
|
|
392
392
|
response = self.publicGetL2Symbol(self.extend(request, params))
|
393
393
|
return self.parse_order_book(response, market['symbol'], None, 'bids', 'asks', 'px', 'qty')
|
394
394
|
|
395
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
395
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
396
396
|
#
|
397
397
|
# {
|
398
398
|
# "symbol": "BTC-USD",
|
ccxt/blofin.py
CHANGED
@@ -491,7 +491,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
491
491
|
timestamp = self.safe_integer(first, 'ts')
|
492
492
|
return self.parse_order_book(first, symbol, timestamp)
|
493
493
|
|
494
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
494
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
495
495
|
timestamp = self.safe_integer(ticker, 'ts')
|
496
496
|
marketId = self.safe_string(ticker, 'instId')
|
497
497
|
market = self.safe_market(marketId, market, '-')
|
@@ -1643,7 +1643,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
1643
1643
|
data = self.safe_dict(response, 'data', {})
|
1644
1644
|
return self.parse_transfer(data, currency)
|
1645
1645
|
|
1646
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
1646
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
1647
1647
|
id = self.safe_string(transfer, 'transferId')
|
1648
1648
|
return {
|
1649
1649
|
'info': transfer,
|
@@ -1859,7 +1859,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
1859
1859
|
data = self.safe_dict(response, 'data', {})
|
1860
1860
|
return self.parse_leverage(data, market)
|
1861
1861
|
|
1862
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
1862
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
1863
1863
|
marketId = self.safe_string(leverage, 'instId')
|
1864
1864
|
leverageValue = self.safe_integer(leverage, 'leverage')
|
1865
1865
|
return {
|
ccxt/btcalpha.py
CHANGED
@@ -302,7 +302,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
302
302
|
#
|
303
303
|
return self.parse_ticker(response, market)
|
304
304
|
|
305
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
305
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
306
306
|
#
|
307
307
|
# {
|
308
308
|
# "timestamp": "1674658.445272",
|
ccxt/btcbox.py
CHANGED
@@ -181,7 +181,7 @@ class btcbox(Exchange, ImplicitAPI):
|
|
181
181
|
response = self.publicGetDepth(self.extend(request, params))
|
182
182
|
return self.parse_order_book(response, market['symbol'])
|
183
183
|
|
184
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
184
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
185
185
|
symbol = self.safe_symbol(None, market)
|
186
186
|
last = self.safe_string(ticker, 'last')
|
187
187
|
return self.safe_ticker({
|
ccxt/btcmarkets.py
CHANGED
@@ -572,7 +572,7 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
572
572
|
orderbook['nonce'] = self.safe_integer(response, 'snapshotId')
|
573
573
|
return orderbook
|
574
574
|
|
575
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
575
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
576
576
|
#
|
577
577
|
# fetchTicker
|
578
578
|
#
|
ccxt/btcturk.py
CHANGED
@@ -354,7 +354,7 @@ class btcturk(Exchange, ImplicitAPI):
|
|
354
354
|
timestamp = self.safe_integer(data, 'timestamp')
|
355
355
|
return self.parse_order_book(data, market['symbol'], timestamp, 'bids', 'asks', 0, 1)
|
356
356
|
|
357
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
357
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
358
358
|
#
|
359
359
|
# {
|
360
360
|
# "pair": "BTCTRY",
|