diff --git a/README.md b/README.md index 52b5e33..81788e2 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,8 @@ Get the public orderbook of a given symbol For more info on how to use this library please see the example scripts in the `bfxapi/examples` directory. Here you will find usage of all interface exposed functions for both the rest and websocket. +Also please see [this medium article](https://medium.com/@Bitfinex/15f201ad20d4) for a tutorial. + ## Contributing 1. Fork it ( https://github.com/[my-github-username]/bitfinex/fork ) diff --git a/bfxapi/models/Subscription.py b/bfxapi/models/Subscription.py index 331a046..bc32ba4 100644 --- a/bfxapi/models/Subscription.py +++ b/bfxapi/models/Subscription.py @@ -39,7 +39,7 @@ class Subscription: """ if not self.is_subscribed(): raise Exception("Subscription is not subscribed to websocket") - payload = {'event': 'unsubscribe', 'chan_id': self.chan_id} + payload = {'event': 'unsubscribe', 'chanId': self.chan_id} await self._ws.send(json.dumps(payload)) async def subscribe(self): diff --git a/bfxapi/models/subscription.py b/bfxapi/models/subscription.py index 331a046..bc32ba4 100644 --- a/bfxapi/models/subscription.py +++ b/bfxapi/models/subscription.py @@ -39,7 +39,7 @@ class Subscription: """ if not self.is_subscribed(): raise Exception("Subscription is not subscribed to websocket") - payload = {'event': 'unsubscribe', 'chan_id': self.chan_id} + payload = {'event': 'unsubscribe', 'chanId': self.chan_id} await self._ws.send(json.dumps(payload)) async def subscribe(self): diff --git a/bfxapi/rest/BfxRest.py b/bfxapi/rest/BfxRest.py index e74ae22..129abf8 100644 --- a/bfxapi/rest/BfxRest.py +++ b/bfxapi/rest/BfxRest.py @@ -67,11 +67,11 @@ class BfxRest: # Public Data # ################################################## - async def get_seed_candles(self, symbol): + async def get_seed_candles(self, symbol, tf='1m'): """ Used by the honey framework, this function gets the last 4k candles. """ - endpoint = 'candles/trade:1m:{}/hist?limit=5000&_bfx=1'.format(symbol) + endpoint = 'candles/trade:{}:{}/hist?limit=5000&_bfx=1'.format(tf, symbol) time_difference = (1000 * 60) * 5000 # get now to the nearest min now = int(round((time.time() // 60 * 60) * 1000)) diff --git a/bfxapi/websockets/BfxWebsocket.py b/bfxapi/websockets/BfxWebsocket.py index 172d291..a03097b 100644 --- a/bfxapi/websockets/BfxWebsocket.py +++ b/bfxapi/websockets/BfxWebsocket.py @@ -194,7 +194,10 @@ class BfxWebsocket(GenericWebsocket): await self.subscriptionManager.confirm_unsubscribe(data) async def _system_error_handler(self, data): - self._emit('error', data) + err_string = self.ERRORS[data.get('code', 10000)] + err_string = "{} - {}".format(self.ERRORS[data.get('code', 10000)], + data.get("msg", "")) + self._emit('error', Exception(err_string)) async def _system_auth_handler(self, data): if data.get('status') == 'FAILED': diff --git a/bfxapi/websockets/SubscriptionManager.py b/bfxapi/websockets/SubscriptionManager.py index b6be132..df961ee 100644 --- a/bfxapi/websockets/SubscriptionManager.py +++ b/bfxapi/websockets/SubscriptionManager.py @@ -91,7 +91,7 @@ class SubscriptionManager: This function is mostly used to force the channel to produce a fresh snapshot. """ - sub = self.subscriptions_chanid[chan_d] + sub = self.subscriptions_chanid[chan_id] async def re_sub(): await sub.subscribe()