mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 06:44:22 +01:00
128 lines
2.6 KiB
Python
128 lines
2.6 KiB
Python
from .errors import BfxWebsocketException
|
|
|
|
class _Serializer(object):
|
|
def __init__(self, name, labels):
|
|
self.name, self.__labels = name, labels
|
|
|
|
def __serialize(self, *args, IGNORE = [ "_PLACEHOLDER" ]):
|
|
if len(self.__labels) != len(args):
|
|
raise BfxWebsocketException("<self.__labels> and <*args> arguments should contain the same amount of elements.")
|
|
|
|
for index, label in enumerate(self.__labels):
|
|
if label not in IGNORE:
|
|
yield label, args[index]
|
|
|
|
def __call__(self, *values):
|
|
return dict(self.__serialize(*values))
|
|
|
|
#region Serializers definition for Websocket Public Channels
|
|
|
|
TradingPairTicker = _Serializer("TradingPairTicker", labels=[
|
|
"BID",
|
|
"BID_SIZE",
|
|
"ASK",
|
|
"ASK_SIZE",
|
|
"DAILY_CHANGE",
|
|
"DAILY_CHANGE_RELATIVE",
|
|
"LAST_PRICE",
|
|
"VOLUME",
|
|
"HIGH",
|
|
"LOW"
|
|
])
|
|
|
|
FundingCurrencyTicker = _Serializer("FundingCurrencyTicker", labels=[
|
|
"FRR",
|
|
"BID",
|
|
"BID_PERIOD",
|
|
"BID_SIZE",
|
|
"ASK",
|
|
"ASK_PERIOD",
|
|
"ASK_SIZE",
|
|
"DAILY_CHANGE",
|
|
"DAILY_CHANGE_RELATIVE",
|
|
"LAST_PRICE",
|
|
"VOLUME",
|
|
"HIGH",
|
|
"LOW"
|
|
"_PLACEHOLDER",
|
|
"_PLACEHOLDER",
|
|
"FRR_AMOUNT_AVAILABLE"
|
|
])
|
|
|
|
TradingPairTrade = _Serializer("TradingPairTrade", labels=[
|
|
"ID",
|
|
"MTS",
|
|
"AMOUNT",
|
|
"PRICE"
|
|
])
|
|
|
|
FundingCurrencyTrade = _Serializer("FundingCurrencyTrade", labels=[
|
|
"ID",
|
|
"MTS",
|
|
"AMOUNT",
|
|
"RATE",
|
|
"PERIOD"
|
|
])
|
|
|
|
TradingPairBook = _Serializer("TradingPairBook", labels=[
|
|
"PRICE",
|
|
"COUNT",
|
|
"AMOUNT"
|
|
])
|
|
|
|
FundingCurrencyBook = _Serializer("FundingCurrencyBook", labels=[
|
|
"RATE",
|
|
"PERIOD",
|
|
"COUNT",
|
|
"AMOUNT"
|
|
])
|
|
|
|
TradingPairRawBook = _Serializer("TradingPairRawBook", labels=[
|
|
"ORDER_ID",
|
|
"PRICE",
|
|
"AMOUNT"
|
|
])
|
|
|
|
FundingCurrencyRawBook = _Serializer("FundingCurrencyRawBook", labels=[
|
|
"OFFER_ID",
|
|
"PERIOD",
|
|
"RATE",
|
|
"AMOUNT"
|
|
])
|
|
|
|
Candle = _Serializer("Candle", labels=[
|
|
"MTS",
|
|
"OPEN",
|
|
"CLOSE",
|
|
"HIGH",
|
|
"LOW",
|
|
"VOLUME"
|
|
])
|
|
|
|
DerivativesStatus = _Serializer("DerivativesStatus", labels=[
|
|
"TIME_MS",
|
|
"_PLACEHOLDER",
|
|
"DERIV_PRICE",
|
|
"SPOT_PRICE",
|
|
"_PLACEHOLDER",
|
|
"INSURANCE_FUND_BALANCE",
|
|
"_PLACEHOLDER",
|
|
"NEXT_FUNDING_EVT_TIMESTAMP_MS",
|
|
"NEXT_FUNDING_ACCRUED",
|
|
"NEXT_FUNDING_STEP",
|
|
"_PLACEHOLDER",
|
|
"CURRENT_FUNDING"
|
|
"_PLACEHOLDER",
|
|
"_PLACEHOLDER",
|
|
"MARK_PRICE",
|
|
"_PLACEHOLDER",
|
|
"_PLACEHOLDER",
|
|
"OPEN_INTEREST",
|
|
"_PLACEHOLDER",
|
|
"_PLACEHOLDER",
|
|
"_PLACEHOLDER",
|
|
"CLAMP_MIN",
|
|
"CLAMP_MAX"
|
|
])
|
|
|
|
#endregion |