mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 14:54:21 +01:00
Add Flags enumeration to enums.py. Rename new_order and new_position to order_new and position_new to mantain consistency. Add _BfxWebsocketInputs class with order_new, order_update and order_cancel inputs.
This commit is contained in:
@@ -39,6 +39,8 @@ class BfxWebsocketClient(object):
|
|||||||
|
|
||||||
self.buckets = [ _BfxWebsocketBucket(self.host, self.event_emitter, self.__bucket_open_signal) for _ in range(buckets) ]
|
self.buckets = [ _BfxWebsocketBucket(self.host, self.event_emitter, self.__bucket_open_signal) for _ in range(buckets) ]
|
||||||
|
|
||||||
|
self.inputs = _BfxWebsocketInputs(self.__handle_websocket_input)
|
||||||
|
|
||||||
self.logger = CustomLogger("BfxWebsocketClient", logLevel=log_level)
|
self.logger = CustomLogger("BfxWebsocketClient", logLevel=log_level)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
@@ -105,7 +107,7 @@ class BfxWebsocketClient(object):
|
|||||||
await self.websocket.close(code=code, reason=reason)
|
await self.websocket.close(code=code, reason=reason)
|
||||||
|
|
||||||
for bucket in self.buckets:
|
for bucket in self.buckets:
|
||||||
await bucket.close(code=code, reason=reason)
|
await bucket._close(code=code, reason=reason)
|
||||||
|
|
||||||
def __require_websocket_authentication(function):
|
def __require_websocket_authentication(function):
|
||||||
async def wrapper(self, *args, **kwargs):
|
async def wrapper(self, *args, **kwargs):
|
||||||
@@ -121,8 +123,8 @@ class BfxWebsocketClient(object):
|
|||||||
await self.websocket.send(json.dumps([ 0, "n", MESSAGE_ID, { "type": "ucm-test", "info": info, **kwargs } ]))
|
await self.websocket.send(json.dumps([ 0, "n", MESSAGE_ID, { "type": "ucm-test", "info": info, **kwargs } ]))
|
||||||
|
|
||||||
@__require_websocket_authentication
|
@__require_websocket_authentication
|
||||||
async def new_order(self, data):
|
async def __handle_websocket_input(self, input, data):
|
||||||
await self.websocket.send(json.dumps([ 0, "on", None, data ]))
|
await self.websocket.send(json.dumps([ 0, input, None, data]))
|
||||||
|
|
||||||
def __bucket_open_signal(self, index):
|
def __bucket_open_signal(self, index):
|
||||||
if all(bucket.websocket != None and bucket.websocket.open == True for bucket in self.buckets):
|
if all(bucket.websocket != None and bucket.websocket.open == True for bucket in self.buckets):
|
||||||
@@ -212,5 +214,18 @@ class _BfxWebsocketBucket(object):
|
|||||||
}))
|
}))
|
||||||
|
|
||||||
@_require_websocket_connection
|
@_require_websocket_connection
|
||||||
async def close(self, code=1000, reason=str()):
|
async def _close(self, code=1000, reason=str()):
|
||||||
await self.websocket.close(code=code, reason=reason)
|
await self.websocket.close(code=code, reason=reason)
|
||||||
|
|
||||||
|
class _BfxWebsocketInputs(object):
|
||||||
|
def __init__(self, __handle_websocket_input):
|
||||||
|
self.__handle_websocket_input = __handle_websocket_input
|
||||||
|
|
||||||
|
async def order_new(self, data):
|
||||||
|
await self.__handle_websocket_input("on", data)
|
||||||
|
|
||||||
|
async def order_update(self, data):
|
||||||
|
await self.__handle_websocket_input("ou", data)
|
||||||
|
|
||||||
|
async def order_cancel(self, data):
|
||||||
|
await self.__handle_websocket_input("oc", data)
|
||||||
@@ -7,6 +7,14 @@ class Channels(str, Enum):
|
|||||||
CANDLES = "candles"
|
CANDLES = "candles"
|
||||||
STATUS = "status"
|
STATUS = "status"
|
||||||
|
|
||||||
|
class Flags(int, Enum):
|
||||||
|
HIDDEN = 64
|
||||||
|
CLOSE = 512
|
||||||
|
REDUCE_ONLY = 1024
|
||||||
|
POST_ONLY = 4096
|
||||||
|
OCO = 16384
|
||||||
|
NO_VAR_RATES = 524288
|
||||||
|
|
||||||
class Errors(int, Enum):
|
class Errors(int, Enum):
|
||||||
ERR_UNK = 10000
|
ERR_UNK = 10000
|
||||||
ERR_GENERIC = 10001
|
ERR_GENERIC = 10001
|
||||||
|
|||||||
@@ -124,8 +124,8 @@ class PublicChannelsHandler(object):
|
|||||||
|
|
||||||
class AuthenticatedChannelsHandler(object):
|
class AuthenticatedChannelsHandler(object):
|
||||||
__abbreviations = {
|
__abbreviations = {
|
||||||
"os": "order_snapshot", "on": "new_order", "ou": "order_update", "oc": "order_cancel",
|
"os": "order_snapshot", "on": "order_new", "ou": "order_update", "oc": "order_cancel",
|
||||||
"ps": "position_snapshot", "pn": "new_position", "pu": "position_update", "pc": "position_close",
|
"ps": "position_snapshot", "pn": "position_new", "pu": "position_update", "pc": "position_close",
|
||||||
"te": "trade_executed", "tu": "trade_execution_update",
|
"te": "trade_executed", "tu": "trade_execution_update",
|
||||||
"fos": "funding_offer_snapshot", "fon": "funding_offer_new", "fou": "funding_offer_update", "foc": "funding_offer_cancel",
|
"fos": "funding_offer_snapshot", "fon": "funding_offer_new", "fou": "funding_offer_update", "foc": "funding_offer_cancel",
|
||||||
"fcs": "funding_credit_snapshot", "fcn": "funding_credit_new", "fcu": "funding_credit_update", "fcc": "funding_credit_close",
|
"fcs": "funding_credit_snapshot", "fcn": "funding_credit_new", "fcu": "funding_credit_update", "fcc": "funding_credit_close",
|
||||||
|
|||||||
Reference in New Issue
Block a user