ccxt 4.3.18__py2.py3-none-any.whl → 4.3.19__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/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 +23 -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 +8 -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 +9 -8
- 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 +320 -520
- 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 +5 -5
- 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 +62 -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 +8 -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 +9 -8
- ccxt/cex.py +1 -1
- ccxt/coinbase.py +2 -2
- ccxt/coinbasepro.py +1 -1
- ccxt/coincheck.py +1 -1
- ccxt/coinex.py +320 -520
- 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 +5 -5
- 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/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.19.dist-info}/METADATA +8 -6
- {ccxt-4.3.18.dist-info → ccxt-4.3.19.dist-info}/RECORD +193 -189
- {ccxt-4.3.18.dist-info → ccxt-4.3.19.dist-info}/WHEEL +0 -0
- {ccxt-4.3.18.dist-info → ccxt-4.3.19.dist-info}/top_level.txt +0 -0
ccxt/async_support/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
|
async 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
|
async 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 = await 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/async_support/bitflyer.py
CHANGED
@@ -358,7 +358,7 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
358
358
|
orderbook = await 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/async_support/bitget.py
CHANGED
@@ -8,7 +8,7 @@ from ccxt.abstract.bitget import ImplicitAPI
|
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
10
|
import json
|
11
|
-
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
|
11
|
+
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
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
14
|
from ccxt.base.errors import AuthenticationError
|
@@ -2493,7 +2493,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
2493
2493
|
timestamp = self.safe_integer(data, 'ts')
|
2494
2494
|
return self.parse_order_book(data, market['symbol'], timestamp)
|
2495
2495
|
|
2496
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
2496
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
2497
2497
|
#
|
2498
2498
|
# spot: fetchTicker, fetchTickers
|
2499
2499
|
#
|
@@ -2566,10 +2566,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
2566
2566
|
#
|
2567
2567
|
marketId = self.safe_string(ticker, 'symbol')
|
2568
2568
|
close = self.safe_string(ticker, 'lastPr')
|
2569
|
-
|
2570
|
-
timestamp = None
|
2571
|
-
if timestampString is not None:
|
2572
|
-
timestamp = self.parse_to_int(timestampString)
|
2569
|
+
timestamp = self.safe_integer_omit_zero(ticker, 'ts') # exchange bitget provided 0
|
2573
2570
|
change = self.safe_string(ticker, 'change24h')
|
2574
2571
|
open24 = self.safe_string(ticker, 'open24')
|
2575
2572
|
open = self.safe_string(ticker, 'open')
|
@@ -6590,7 +6587,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6590
6587
|
data = self.safe_dict(response, 'data', {})
|
6591
6588
|
return self.parse_leverage(data, market)
|
6592
6589
|
|
6593
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
6590
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
6594
6591
|
return {
|
6595
6592
|
'info': leverage,
|
6596
6593
|
'symbol': market['symbol'],
|
@@ -6802,7 +6799,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6802
6799
|
'info': interest,
|
6803
6800
|
}, market)
|
6804
6801
|
|
6805
|
-
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
6802
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
6806
6803
|
"""
|
6807
6804
|
fetch a history of internal transfers made on an account
|
6808
6805
|
:see: https://www.bitget.com/api-doc/spot/account/Get-Account-TransferRecords
|
@@ -6903,7 +6900,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6903
6900
|
data['ts'] = self.safe_integer(response, 'requestTime')
|
6904
6901
|
return self.parse_transfer(data, currency)
|
6905
6902
|
|
6906
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
6903
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
6907
6904
|
#
|
6908
6905
|
# transfer
|
6909
6906
|
#
|
@@ -6948,7 +6945,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6948
6945
|
'status': self.parse_transfer_status(status),
|
6949
6946
|
}
|
6950
6947
|
|
6951
|
-
def parse_transfer_status(self, status):
|
6948
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
6952
6949
|
statuses = {
|
6953
6950
|
'successful': 'ok',
|
6954
6951
|
}
|
@@ -8067,7 +8064,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
8067
8064
|
dataList = self.safe_list(data, 'dataList', [])
|
8068
8065
|
return self.parse_conversions(dataList, code, 'fromCoin', 'toCoin', since, limit)
|
8069
8066
|
|
8070
|
-
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
8067
|
+
def parse_conversion(self, conversion: dict, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
8071
8068
|
#
|
8072
8069
|
# fetchConvertQuote
|
8073
8070
|
#
|
ccxt/async_support/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/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, 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
|
-
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
3613
|
+
async 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/async_support/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 = await 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/async_support/bitopro.py
CHANGED
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 Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry, TransferEntries
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
14
|
from ccxt.base.errors import AuthenticationError
|
@@ -1147,7 +1147,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1147
1147
|
orderbook['nonce'] = self.safe_integer(response, 'lastUpdateId')
|
1148
1148
|
return orderbook
|
1149
1149
|
|
1150
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
1150
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
1151
1151
|
#
|
1152
1152
|
# fetchBidsAsks
|
1153
1153
|
#
|
@@ -2728,7 +2728,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
2728
2728
|
'status': 'ok',
|
2729
2729
|
}
|
2730
2730
|
|
2731
|
-
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
2731
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
2732
2732
|
"""
|
2733
2733
|
fetch a history of internal transfers made on an account
|
2734
2734
|
:see: https://www.bitrue.com/api-docs#get-future-account-transfer-history-list-user_data-hmac-sha256
|
ccxt/async_support/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/async_support/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
|
await 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/async_support/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/async_support/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/async_support/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",
|
@@ -392,7 +392,7 @@ class blockchaincom(Exchange, ImplicitAPI):
|
|
392
392
|
response = await 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/async_support/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/async_support/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/async_support/btcbox.py
CHANGED
@@ -181,7 +181,7 @@ class btcbox(Exchange, ImplicitAPI):
|
|
181
181
|
response = await 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/async_support/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/async_support/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",
|
ccxt/async_support/bybit.py
CHANGED
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bybit import ImplicitAPI
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
|
-
from ccxt.base.types import Balances, CrossBorrowRate, Currencies, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
10
|
+
from ccxt.base.types import Balances, CrossBorrowRate, Currencies, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, 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
|
@@ -361,6 +361,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
361
361
|
'v5/asset/coin/query-info': 28, # should be 25 but exceeds ratelimit unless the weight is 28 or higher
|
362
362
|
'v5/asset/withdraw/query-record': 10, # 5/s => cost = 50 / 5 = 10
|
363
363
|
'v5/asset/withdraw/withdrawable-amount': 5,
|
364
|
+
'v5/asset/withdraw/vasp/list': 5,
|
364
365
|
# user
|
365
366
|
'v5/user/query-sub-members': 5, # 10/s => cost = 50 / 10 = 5
|
366
367
|
'v5/user/query-api': 5, # 10/s => cost = 50 / 10 = 5
|
@@ -1853,7 +1854,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1853
1854
|
}))
|
1854
1855
|
return result
|
1855
1856
|
|
1856
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
1857
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
1857
1858
|
#
|
1858
1859
|
# spot
|
1859
1860
|
#
|
@@ -6157,7 +6158,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
6157
6158
|
position = await self.fetch_position(symbol, params)
|
6158
6159
|
return self.parse_leverage(position, market)
|
6159
6160
|
|
6160
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
6161
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
6161
6162
|
marketId = self.safe_string(leverage, 'symbol')
|
6162
6163
|
leverageValue = self.safe_integer(leverage, 'leverage')
|
6163
6164
|
return {
|
@@ -6665,7 +6666,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
6665
6666
|
'status': status,
|
6666
6667
|
})
|
6667
6668
|
|
6668
|
-
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
6669
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
6669
6670
|
"""
|
6670
6671
|
fetch a history of internal transfers made on an account
|
6671
6672
|
:see: https://bybit-exchange.github.io/docs/v5/asset/inter-transfer-list
|
@@ -6810,7 +6811,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
6810
6811
|
'info': info,
|
6811
6812
|
}
|
6812
6813
|
|
6813
|
-
def parse_transfer_status(self, status):
|
6814
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
6814
6815
|
statuses = {
|
6815
6816
|
'0': 'ok',
|
6816
6817
|
'OK': 'ok',
|
@@ -6818,7 +6819,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
6818
6819
|
}
|
6819
6820
|
return self.safe_string(statuses, status, status)
|
6820
6821
|
|
6821
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
6822
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
6822
6823
|
#
|
6823
6824
|
# transfer
|
6824
6825
|
#
|
@@ -7402,7 +7403,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
7402
7403
|
'datetime': self.iso8601(timestamp),
|
7403
7404
|
})
|
7404
7405
|
|
7405
|
-
def parse_greeks(self, greeks, market: Market = None):
|
7406
|
+
def parse_greeks(self, greeks: dict, market: Market = None) -> Greeks:
|
7406
7407
|
#
|
7407
7408
|
# {
|
7408
7409
|
# "symbol": "BTC-26JAN24-39000-C",
|
@@ -7877,7 +7878,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
7877
7878
|
resultList = self.safe_list(result, 'list', [])
|
7878
7879
|
return self.parse_option_chain(resultList, None, 'symbol')
|
7879
7880
|
|
7880
|
-
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
7881
|
+
def parse_option(self, chain: dict, currency: Currency = None, market: Market = None) -> Option:
|
7881
7882
|
#
|
7882
7883
|
# {
|
7883
7884
|
# "symbol": "BTC-27DEC24-55000-P",
|
ccxt/async_support/cex.py
CHANGED
@@ -562,7 +562,7 @@ class cex(Exchange, ImplicitAPI):
|
|
562
562
|
return []
|
563
563
|
return None
|
564
564
|
|
565
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
565
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
566
566
|
timestamp = self.safe_timestamp(ticker, 'timestamp')
|
567
567
|
volume = self.safe_string(ticker, 'volume')
|
568
568
|
high = self.safe_string(ticker, 'high')
|