All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- python version in print_stream_info() and print_summary()
- Endpoints for www.binance.com margin UserData listenkey issue #35
- Endpoints for www.binance.com spot UserData listenkey issue #35
- Endpoints for www.binance.com futures UserData listenkey issue #35
- Errors when creating private DEX streams: issue #34
- moved docs to github pages
- binance.com Futures websocket support and example_binance_futures.py and example_bookticker.py (issue#32)
- binance.us websocket support and example_binance_us.py (issue#22)
- Trailing / is no longer accepted by the endpoints: LUCIT-Systems-and-Development#31
- 'websockets>=7.0' to 'websockets==7.0': Websockets 8 is released and it seems to be not compatible
- amount of active streams to icinga status msg
- RuntimeError in _frequent_checks
- 'except websockets.exceptions.InvalidStatusCode as error_msg:' moved to right place
- 'except websockets.exceptions.InvalidStatusCode as error_msg:' in connnection line 97 with restart
- 'except KeyError:' in connection line 162
- get_monitoring_status_plain(): exception for outdated UnicornFy
- is_update_availabe_check_command()
- get_latest_version_check_command()
- get_latest_release_info_check_command()
- get_monitoring_status_plain()
- get_monitoring_status_icinga()
- _start_monitoring_api()
- https://github.com/oliver-zehentleitner/unicorn-binance-websocket-api/blob/master/tools/icinga/ (to https://github.com/oliver-zehentleitner/check_unicorn_monitoring_api)
- support for binance.org and testnet.binance.org websockets
- exchange name to icinga status msg
- binance_manager init: throw exception for unknown exchanges
- get_current_receiving_speed()
- exchange name and lib version to print_stream_info()
- current_receiving_speed to print_summary() and print_stream_info()
- get_exchange()
- set_private_dex_config() (not in use for now)
- subscribe_to_stream() - (dont use in productive! Its not clean and will get rewritten and maybe change behaviour)
- unsubscribe_from_stream() - (dont use in productive! Its not clean and will get rewritten and maybe change change behaviour)
- _create_payload()
- rewrite create_websocket_url():
- a multiplex socket now returns false if it includes a single stream type like !userData, !Ticker or !miniTicker
- added support for binance.org Binance Chain DEX
- is_websocket_uri_length_valid() now always returns True for DEX websockets
- support for binance.je (Binance Jersey) websockets
- logging on failure in
create_stream()
add_string
inprint_summary()
andprint_stream_info()
warn_on_update
inget_monitoring_status_icinga()
,get_monitoring_status_plain()
andstart_monitoring_api()
- support for binance jersey LUCIT-Systems-and-Development#21
- show the used exchange in
print_summary()
andprint_stream_info()
- removed space from
total_received_length
inget_monitoring_status_icinga()
to avoid 'no data' error in ICINGA
- exception for
asyncio.base_futures.InvalidStateError
by DaWe35 LUCIT-Systems-and-Development#18
- create_stream() returns False if websocket URL is to long
is_websocket_uri_length_valid()
to work with !userData on the pre test increate_stream()
without api secrets
- Docstrings for
markets
andchannels
to support: str, tuple, list, set - Fine tuning of perfdata output in
get_monitoring_status_plain()
andget_monitoring_status_icinga()
get_stream_buffer_length()
by DaWe35 LUCIT-Systems-and-Development#12
- the
stream_buffer
FIFO stack was a LIFO stack (Thanks to DaWe35 for recognizing and fixing this issue LUCIT-Systems-and-Development#12) get_stream_buffer_byte_size
returns now the real size of the stream_buffer
- added round received items to 2 decimals instead of 0
- wrong version in manager class ...
- is_manager_stopping()
- is_update_available returns False if github API is not available.
- get_monitoring_status_icinga(): update check
- get_monitoring_status_icinga(): reconnects and update check
- get_monitoring_status_plain()
- start_monitoring_api()
- 1 hour cache for release checks on github
- stop_monitoring_api()
- ./tools/icinga/check_binance_websocket_api_manager (check_command for ICINGA)
- example_monitoring.py
- example_monitoring.py and tools/check_binance_websocket_api_manager
- get_monitoring_status_icinga tests for available updates and changes the
return_code
to WARNING if an update is available. but i recognized an API ban from github in cause of too many requests. i have to extend it ...
- get_monitoring_status_icinga: changed
status
dict node toreturn_code
- changing output of get_monitoring_status_icinga
- get_monitoring_status_icinga() in manager class
- lib version to print_summary()
- Typo in text in print_summary()
- KeyError in manager class row 148
- Bug in class UnicornFy: kline_close_time had the value kline_start_time
- Moved UnicornFy from UNICORN Binance WebSocket API to its own repository
- connection handling (improved)
markets
in keepalive listen_key can come as str or as list and the routine only handled it as list, now str gets converted to list to keep the function working
- "UTC" text to printed times
- listen_key 30 min cache
- method to delete a listen_key
- binance_api_status added to print_stream_info()
- README.md
- rewrite coloring for status_code in print_summary
- ping_interval from None to 20 seconds
- listen_key keepalive didnt work propper
- TypeError in print_summary()
- handling for status_code and used_weight from the binance REST Api (used for listen_key) - see
get_binance_api_status()
- reconnect issues
- log levels
- if no method is provided to BinanceWebSocketApiManager when creating the instance, then all data will be written to the stream_buffer.
- comments and code in examples
- show stream_buffer content if items len > 50
- removed stream_buffer log
- renamed get_stream_data_from_stream_buffer to pop_stream_data_from_stream_buffer
- IndexError in pop_stream_data_from_stream_buffer
- _forward_stream_buffer_data: system change - no pushing anymore, its better to buffer everything and run a import class in a separate thread, that is able to reconnect to the database
- rewrite of keepalive and frequentchecks restarts
- stream_buffer logging: log amount of items in buffer
- stream_buffer logging: log amount of items in buffer
- added two mac os specific exceptions to connection class for better reconnect management
- updated the "update" methods in manager class (error handling while no internet connection)
- trying other behaviour on `400 - bad request' error
- added handling for -2015 error from get_listen_key_from_restclient in create_websocket_uri
- changed the waiting time before setting a restart request on 400 error to 5 seconds in connection class
- replaced tabs in print_summary() with blanks
- KeyError in unicorn_binance_websocket_api_connection.py error exception 414
- UnicornFy was very buggy with ticker and miniTicker handling
- KeyError in unicorn_binance_websocket_api_manager.py
- restarting streams row to print_summary()
- show active restarting and stopped streams only if not 0
- error message handling for userData streams
- reconnect depends from disconnect reason now (network or api-settings)
- del restart request in stop_stream()
- !miniTicker and !userData didnt work in cause of lower case all currencies. added an exception for them.
- pypi_install_packaging_tools.sh
- README.md
- Removed 2nd argument from binance_websocket_api_manager.stream_is_stopping()
- Tabs in print_summary() for windows platform
- Fixing format errors from auto reformat in unicorn_binance_websocket_api_connection
- Catching "ssl.SSLError" BinanceWebSocketApiConnection.receive()
- Improvment of reconnect on invalid URI caused by no network issue and a missing listen_key from Binance
- 30 min cache for Binance "listenKey" from rest api to avoid weight costs and hammering the Binance API on a flapping network connection
- Reconnect issue on userData stream
- Reset "has_stopped" attr from "stream_list" after a conncection restart
- Modyfied docstrings descriptions
- Tabs in print_summary() on windows