diff --git a/bfxapi/rest/endpoints/rest_authenticated_endpoints.py b/bfxapi/rest/endpoints/rest_authenticated_endpoints.py index 05502c1..789ad5b 100644 --- a/bfxapi/rest/endpoints/rest_authenticated_endpoints.py +++ b/bfxapi/rest/endpoints/rest_authenticated_endpoints.py @@ -14,7 +14,7 @@ class RestAuthenticatedEndpoints(Middleware): def get_user_info(self) -> UserInfo: return serializers.UserInfo.parse(*self._POST(f"auth/r/info/user")) - def get_login_history(self) -> LoginHistory: + def get_login_history(self) -> List[LoginHistory]: return [ serializers.LoginHistory.parse(*sub_data) for sub_data in self._POST("auth/r/logins/hist") ] def get_balance_available_for_orders_or_offers(self, symbol: str, type: str, dir: Optional[int] = None, rate: Optional[str] = None, lev: Optional[str] = None) -> BalanceAvailable: diff --git a/bfxapi/rest/middleware/middleware.py b/bfxapi/rest/middleware/middleware.py index 0c1b02e..9180841 100644 --- a/bfxapi/rest/middleware/middleware.py +++ b/bfxapi/rest/middleware/middleware.py @@ -1,6 +1,6 @@ import time, hmac, hashlib, json, requests -from typing import TYPE_CHECKING, Optional, Any +from typing import TYPE_CHECKING, Optional, Any, cast from http import HTTPStatus from ..enums import Error @@ -15,7 +15,7 @@ class Middleware(object): def __init__(self, host: str, API_KEY: Optional[str] = None, API_SECRET: Optional[str] = None): self.host, self.API_KEY, self.API_SECRET = host, API_KEY, API_SECRET - def __build_authentication_headers(self, endpoint: str, data: str): + def __build_authentication_headers(self, endpoint: str, data: Optional[str] = None): assert isinstance(self.API_KEY, str) and isinstance(self.API_SECRET, str), \ "API_KEY and API_SECRET must be both str to call __build_authentication_headers" @@ -69,7 +69,7 @@ class Middleware(object): data = response.json() - if len(data) and data[0] == "error": + if isinstance(data, list) and len(data) and data[0] == "error": if data[1] == Error.ERR_PARAMS: raise RequestParametersError(f"The request was rejected with the following parameter error: <{data[2]}>")