Skip to content

Commit a72a947

Browse files
Add support for event base_margin_info and symbol_margin_info.
1 parent 52f24ff commit a72a947

File tree

5 files changed

+31
-50
lines changed

5 files changed

+31
-50
lines changed

MANIFEST

Lines changed: 0 additions & 38 deletions
This file was deleted.

bfxapi/rest/_interfaces/rest_auth_endpoints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ def get_ledgers(
248248

249249
def get_base_margin_info(self) -> BaseMarginInfo:
250250
return serializers.BaseMarginInfo.parse(
251-
*(self._m.post("auth/r/info/margin/base")[1])
251+
*self._m.post("auth/r/info/margin/base")
252252
)
253253

254254
def get_symbol_margin_info(self, symbol: str) -> SymbolMarginInfo:

bfxapi/types/serializers.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,15 @@
745745
BaseMarginInfo = generate_labeler_serializer(
746746
name="BaseMarginInfo",
747747
klass=dataclasses.BaseMarginInfo,
748-
labels=["user_pl", "user_swaps", "margin_balance", "margin_net", "margin_min"],
748+
labels=[
749+
"_PLACEHOLDER",
750+
"user_pl",
751+
"user_swaps",
752+
"margin_balance",
753+
"margin_net",
754+
"margin_min",
755+
],
756+
flat=True,
749757
)
750758

751759
PositionClaim = generate_labeler_serializer(

bfxapi/websocket/_event_emitter/bfx_event_emitter.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
"trade_execution",
6565
"trade_execution_update",
6666
"wallet_update",
67+
"base_margin_info",
68+
"symbol_margin_info",
6769
"notification",
6870
"on-req-notification",
6971
"ou-req-notification",
@@ -105,7 +107,7 @@ def on(
105107
) -> Union[_Handler, Callable[[_Handler], _Handler]]:
106108
if event not in BfxEventEmitter._EVENTS:
107109
raise UnknownEventError(
108-
f"Can't register to unknown event: <{event}> (to get a full"
110+
f"Can't register to unknown event: <{event}> (to get a full "
109111
"list of available events see https://docs.bitfinex.com/)."
110112
)
111113

bfxapi/websocket/_handlers/auth_events_handler.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,26 @@ def __init__(self, event_emitter: EventEmitter) -> None:
5151
def handle(self, abbrevation: str, stream: Any) -> None:
5252
if abbrevation == "n":
5353
self.__notification(stream)
54+
elif abbrevation == "miu":
55+
if stream[0] == "base":
56+
self.__event_emitter.emit(
57+
"base_margin_info", serializers.BaseMarginInfo.parse(*stream)
58+
)
59+
elif stream[0] == "sym":
60+
self.__event_emitter.emit(
61+
"symbol_margin_info", serializers.SymbolMarginInfo.parse(*stream)
62+
)
63+
else:
64+
for abbrevations, serializer in AuthEventsHandler.__SERIALIZERS.items():
65+
if abbrevation in abbrevations:
66+
event = AuthEventsHandler.__ABBREVIATIONS[abbrevation]
5467

55-
for abbrevations, serializer in AuthEventsHandler.__SERIALIZERS.items():
56-
if abbrevation in abbrevations:
57-
event = AuthEventsHandler.__ABBREVIATIONS[abbrevation]
68+
if all(isinstance(sub_stream, list) for sub_stream in stream):
69+
data = [serializer.parse(*sub_stream) for sub_stream in stream]
70+
else:
71+
data = serializer.parse(*stream)
5872

59-
if all(isinstance(sub_stream, list) for sub_stream in stream):
60-
data = [serializer.parse(*sub_stream) for sub_stream in stream]
61-
else:
62-
data = serializer.parse(*stream)
63-
64-
self.__event_emitter.emit(event, data)
73+
self.__event_emitter.emit(event, data)
6574

6675
def __notification(self, stream: Any) -> None:
6776
event: str = "notification"

0 commit comments

Comments
 (0)