Add optional dead man switch to websocket

This commit is contained in:
Jacob Plaster
2018-12-07 10:24:22 +00:00
parent 0b2feb3275
commit df017a6685
3 changed files with 8 additions and 5 deletions

View File

@@ -5,9 +5,9 @@ from .rest.BfxRest import BfxRest
class Client:
def __init__(self, API_KEY=None, API_SECRET=None, rest_host='https://api.bitfinex.com/v2',
ws_host='wss://api.bitfinex.com/ws/2', loop=None, logLevel='INFO', *args, **kwargs):
ws_host='wss://api.bitfinex.com/ws/2', loop=None, logLevel='INFO', dead_man_switch=False, *args, **kwargs):
self.loop = loop or asyncio.get_event_loop()
self.ws = BfxWebsocket(API_KEY=API_KEY, API_SECRET=API_SECRET, host=ws_host,
loop=self.loop, logLevel=logLevel, *args, **kwargs)
loop=self.loop, logLevel=logLevel, dead_man_switch=dead_man_switch, *args, **kwargs)
self.rest = BfxRest(API_KEY=API_KEY, API_SECRET=API_SECRET, host=rest_host,
loop=self.loop, logLevel=logLevel, *args, **kwargs)

View File

@@ -35,7 +35,7 @@ async def log_orders_history():
[ print (o) for o in orders ]
async def log_active_positions():
positions = await bfx.rest.get_active_position()
positions = await bfx.rest.get_active_positions()
print ("Positions:")
[ print (p) for p in positions ]

View File

@@ -85,11 +85,12 @@ class BfxWebsocket(GenericWebsocket):
20061: 'Websocket server resync complete'
}
def __init__(self, API_KEY=None, API_SECRET=None, host='wss://api.bitfinex.com/ws/2',
onSeedCandleHook=None, onSeedTradeHook=None, manageOrderBooks=False, logLevel='INFO', *args, **kwargs):
def __init__(self, API_KEY=None, API_SECRET=None, host='wss://api.bitfinex.com/ws/2', manageOrderBooks=False,
dead_man_switch=False, logLevel='INFO', *args, **kwargs):
self.API_KEY=API_KEY
self.API_SECRET=API_SECRET
self.manageOrderBooks = manageOrderBooks
self.dead_man_switch = dead_man_switch
self.pendingOrders = {}
self.orderBooks = {}
@@ -344,6 +345,8 @@ class BfxWebsocket(GenericWebsocket):
async def _ws_authenticate_socket(self):
jdata = generate_auth_payload(self.API_KEY, self.API_SECRET)
if self.dead_man_switch:
jdata['dms'] = 4
await self.ws.send(json.dumps(jdata))
async def on_open(self):