Rewrite bfxapi/websocket/typings.py script adding new types and fixing some naming bug.

This commit is contained in:
Davide Casale
2022-11-14 17:41:09 +01:00
parent a03a82d57a
commit 495b51a2f6

View File

@@ -1,33 +1,8 @@
from typing import Type, List, Dict, TypedDict, Union, Optional, Any from typing import Type, List, Dict, TypedDict, Union, Optional
JSON = Union[Dict[str, Any], List[Any], int, str, float, bool, Type[None]] JSON = Union[Dict[str, "JSON"], List["JSON"], bool, int, float, str, Type[None]]
BalanceUpdateStream = TypedDict("BalanceUpdateStream", { Order = TypedDict("Order", {
"AUM": float,
"AUM_NET": float
})
WalletSnapshotStream = List[TypedDict("WalletSnapshotStream", {
"WALLET_TYPE": str,
"CURRENCY": str,
"BALANCE": float,
"UNSETTLED_INTEREST": float,
"BALANCE_AVAILABLE": Optional[float],
"DESCRIPTION": str,
"META": JSON
})]
WalletUpdateStream = TypedDict("WalletUpdateStream", {
"WALLET_TYPE": str,
"CURRENCY": str,
"BALANCE": float,
"UNSETTLED_INTEREST": float,
"BALANCE_AVAILABLE": Optional[float],
"DESCRIPTION": str,
"META": JSON
})
OrderSnapshotStream = List[TypedDict("OrderSnapshotStream", {
"ID": int, "ID": int,
"GID": int, "GID": int,
"CID": int, "CID": int,
@@ -40,7 +15,7 @@ OrderSnapshotStream = List[TypedDict("OrderSnapshotStream", {
"TYPE_PREV": str, "TYPE_PREV": str,
"MTS_TIF": int, "MTS_TIF": int,
"FLAGS": int, "FLAGS": int,
"STATUS": str, "ORDER_STATUS": str,
"PRICE": float, "PRICE": float,
"PRICE_AVG": float, "PRICE_AVG": float,
"PRICE_TRAILING": float, "PRICE_TRAILING": float,
@@ -50,76 +25,124 @@ OrderSnapshotStream = List[TypedDict("OrderSnapshotStream", {
"PLACED_ID": int, "PLACED_ID": int,
"ROUTING": str, "ROUTING": str,
"META": JSON "META": JSON
})] })
NewOrderStream = TypedDict("NewOrderStream", { Orders = List[Order]
Position = TypedDict("Position", {
"SYMBOL": str,
"STATUS": str,
"AMOUNT": float,
"BASE_PRICE": float,
"MARGIN_FUNDING": float,
"MARGIN_FUNDING_TYPE": int,
"PL": float,
"PL_PERC": float,
"PRICE_LIQ": float,
"LEVERAGE": float,
"POSITION_ID": int,
"MTS_CREATE": int,
"MTS_UPDATE": int,
"TYPE": int,
"COLLATERAL": float,
"COLLATERAL_MIN": float,
"META": JSON,
})
Positions = List[Position]
Trade = TypedDict("Trade", {
"ID": int, "ID": int,
"GID": int,
"CID": int, "CID": int,
"SYMBOL": str, "SYMBOL": str,
"MTS_CREATE": int, "MTS_CREATE": int,
"MTS_UPDATE": int, "ORDER_ID": int,
"AMOUNT": float, "EXEC_AMOUNT": float,
"AMOUNT_ORIG": float, "EXEC_PRICE": float,
"ORDER_TYPE": str, "ORDER_TYPE": str,
"TYPE_PREV": str, "ORDER_PRICE": float,
"MTS_TIF": int, "MAKER": int,
"FLAGS": int, "FEE": float,
"ORDER_STATUS": str, "FEE_CURRENCY": str
"PRICE": float,
"PRICE_AVG": float,
"PRICE_TRAILING": float,
"PRICE_AUX_LIMIT": float,
"NOTIFY": int,
"HIDDEN": int,
"PLACED_ID": int,
"ROUTING": str
}) })
OrderUpdateStream = TypedDict("OrderUpdateStream", { FundingOffer = TypedDict("FundingOffer", {
"ID": int, "ID": int,
"GID": int,
"CID": int,
"SYMBOL": str, "SYMBOL": str,
"MTS_CREATED": int,
"MTS_UPDATED": int,
"AMOUNT": float,
"AMOUNT_ORIG": float,
"OFFER_TYPE": str,
"FLAGS": int,
"STATUS": str,
"RATE": float,
"PERIOD": int,
"NOTIFY": int,
"HIDDEN": int,
"RENEW": int,
})
FundingOffers = List[FundingOffer]
FundingCredit = TypedDict("FundingCredit", {
"ID": int,
"SYMBOL": str,
"SIDE": int,
"MTS_CREATE": int, "MTS_CREATE": int,
"MTS_UPDATE": int, "MTS_UPDATE": int,
"AMOUNT": float, "AMOUNT": float,
"AMOUNT_ORIG": float,
"ORDER_TYPE": str,
"TYPE_PREV": str,
"MTS_TIF": int,
"FLAGS": int, "FLAGS": int,
"ORDER_STATUS": str, "STATUS": str,
"PRICE": float, "RATE": float,
"PRICE_AVG": float, "PERIOD": int,
"PRICE_TRAILING": float, "MTS_OPENING": int,
"PRICE_AUX_LIMIT": float, "MTS_LAST_PAYOUT": int,
"NOTIFY": int, "NOTIFY": int,
"HIDDEN": int, "HIDDEN": int,
"PLACED_ID": int, "RENEW": int,
"ROUTING": str "RATE_REAL": float,
"NO_CLOSE": int,
"POSITION_PAIR": str
}) })
OrderCancelStream = TypedDict("OrderCancelStream", { FundingCredits = List[FundingCredit]
FundingLoan = TypedDict("FundingLoan", {
"ID": int, "ID": int,
"GID": int,
"CID": int,
"SYMBOL": str, "SYMBOL": str,
"SIDE": int,
"MTS_CREATE": int, "MTS_CREATE": int,
"MTS_UPDATE": int, "MTS_UPDATE": int,
"AMOUNT": float, "AMOUNT": float,
"AMOUNT_ORIG": float,
"ORDER_TYPE": str,
"TYPE_PREV": str,
"MTS_TIF": int,
"FLAGS": int, "FLAGS": int,
"ORDER_STATUS": str, "STATUS": str,
"PRICE": float, "RATE": float,
"PRICE_AVG": float, "PERIOD": int,
"PRICE_TRAILING": float, "MTS_OPENING": int,
"PRICE_AUX_LIMIT": float, "MTS_LAST_PAYOUT": int,
"NOTIFY": int, "NOTIFY": int,
"HIDDEN": int, "HIDDEN": int,
"PLACED_ID": int, "RENEW": int,
"ROUTING": str "RATE_REAL": float,
"NO_CLOSE": int
})
FundingLoans = List[FundingLoan]
Wallet = TypedDict("Wallet", {
"WALLET_TYPE": str,
"CURRENCY": str,
"BALANCE": float,
"UNSETTLED_INTEREST": float,
"BALANCE_AVAILABLE": float,
"DESCRIPTION": str,
"META": JSON
})
Wallets = List[Wallet]
BalanceInfo = TypedDict("BalanceInfo", {
"AUM": float,
"AUM_NET": float
}) })