@@ -33,6 +33,8 @@ class AuthEventsHandler:
3333 "flc" : "funding_loan_close" ,
3434 "ws" : "wallet_snapshot" ,
3535 "wu" : "wallet_update" ,
36+ "fiu" : "funding_info_update" ,
37+ "bu" : "balance_update" ,
3638 }
3739
3840 __SERIALIZERS : Dict [Tuple [str , ...], serializers ._Serializer ] = {
@@ -43,6 +45,8 @@ class AuthEventsHandler:
4345 ("fcs" , "fcn" , "fcu" , "fcc" ): serializers .FundingCredit ,
4446 ("fls" , "fln" , "flu" , "flc" ): serializers .FundingLoan ,
4547 ("ws" , "wu" ): serializers .Wallet ,
48+ ("fiu" ,): serializers .FundingInfo ,
49+ ("bu" ,): serializers .BalanceInfo ,
4650 }
4751
4852 def __init__ (self , event_emitter : EventEmitter ) -> None :
@@ -51,17 +55,26 @@ def __init__(self, event_emitter: EventEmitter) -> None:
5155 def handle (self , abbrevation : str , stream : Any ) -> None :
5256 if abbrevation == "n" :
5357 self .__notification (stream )
58+ elif abbrevation == "miu" :
59+ if stream [0 ] == "base" :
60+ self .__event_emitter .emit (
61+ "base_margin_info" , serializers .BaseMarginInfo .parse (* stream )
62+ )
63+ elif stream [0 ] == "sym" :
64+ self .__event_emitter .emit (
65+ "symbol_margin_info" , serializers .SymbolMarginInfo .parse (* stream )
66+ )
67+ else :
68+ for abbrevations , serializer in AuthEventsHandler .__SERIALIZERS .items ():
69+ if abbrevation in abbrevations :
70+ event = AuthEventsHandler .__ABBREVIATIONS [abbrevation ]
5471
55- for abbrevations , serializer in AuthEventsHandler .__SERIALIZERS .items ():
56- if abbrevation in abbrevations :
57- event = AuthEventsHandler .__ABBREVIATIONS [abbrevation ]
72+ if all (isinstance (sub_stream , list ) for sub_stream in stream ):
73+ data = [serializer .parse (* sub_stream ) for sub_stream in stream ]
74+ else :
75+ data = serializer .parse (* stream )
5876
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 )
77+ self .__event_emitter .emit (event , data )
6578
6679 def __notification (self , stream : Any ) -> None :
6780 event : str = "notification"
0 commit comments