* Subscribe/Unsubscribe methods added
* migration to v3
* removed orderbook from rest
* WsUpdateOrderbook updated to reflect changes to v2
* Added comment for exported func
* removed logging
* unexported structs that are not used globally moved seed to own function
* unexported functions not used outside package
* Support reconnection message from bitstamp
* moved from range key/val
* using ticket.Spot instead of string
* Seperated out WsReadData & WsHandleData to allow for better testing of websocket messages
* ah should continue to next iteration and not break execution on json decode
* code formatting clean up
* reworded connection message
* return out of method instead of just breaking loop
* formatting changes and replaced SPOT with ticket.Spot type
* Fixes issue where first if statement always gets hit
* fmtimport
* Slightly more granular checks for keys, secret keys and clientids
* Moves log warn and removes extra checks
* fix balance responce
* Fixed OrderHistory unmarshalling on the GateIo
* fix int convertation in the GetOrderHistory function
* fix issue on order submit : Binance exchange raw response: {"code":-1102,"msg":"Mandatory parameter 'timeInForce' was not sent, was empty/null, or malformed."}
* Okgroup: fix issue on empty notional GetSpotOrderResponse
* Okgroup: fix issue with empty order status. order start is required for orderHistory request
* HUOBU: fix order currency mapping in GetActiveOrders method
* OKGroup: fix currency name on GetAccountInfo
* ZB: fixed wrong error code on order send method
* OKGroup: add missing fields to GetActiveOrders mapping
* huobi: add missing fields to GetActiveOrders/GetOrderHistory response mapping
* gateio: add order status field to GetActiveOrders response
* gateio: fix orderId on SubmitOrder response
* - poloniex: fix 422 on private API call
- poloniex: fix empty order history
* - poloniex: fix 422 on private API call (revert)
* GateIo: Fix unmarshalling issue
* Huobi: removing redundant breaks
* Huobi: fix rangeValCopy in GetActiveOrders/GetOrderHistory methods
* - poloniex: fix 422 on private API call
* Revert "- poloniex: fix 422 on private API call"
This reverts commit 4748227a
Took 39 minutes
* Replace nonce increment with mutex to atomic incrementation
Took 20 minutes
* Fix ZB order unmarshaling
Took 6 minutes
* Fix CancelSpotOrderResponse unmarshaling on OKGroup
Took 2 minutes
* fix OrderDate on huobi
Took 3 minutes
* fix OrderDate on binance
Took 1 minute
* fix OrderDate on huobihadax
Took 24 minutes
* Improves okgroup and kraken websocket tests so there is less overhead required
* Fixes declaration shadowing
* Fixes duplication
* Switches error to fatal for wsconnection problems in test.
* Step one: Sets up connection handler for websockets to always be connected until a shutdown event is received.
Sets up a vague subscription handler to ensure subscriptions are subscribed
* Adds support for resubscriptions for bitfinex, bitstamp, bitmex and btcc. Adds subscription params for special websocket subscription requirements. Removes subscription monitor from wait group so that it can exist despite a shutdown and continuously check
* Adds channel subscription support to bitmex, btse, coibasepro, coinut, gateio, gemini, hitbtc, huobi, hadax, kraken, okgroup, poloniex and zb
* Implements unsubscribe for bitfinex, btcc, btse, coinbasepro, gateio, gitbtc, huobi, hadax
* ManageSubscriptions now called from WSConnect and made private instead of inside individual exchanges. ManageSubscriptions can now unsubscribe. exchange_websocket_types.go now contains all exchange_websocket.go types to avoid clutter
* Adds it to websocket functionality so managesubscriptions will close when not supported
* Separates functions into testable functions to ensure logic works. Adds tests. Updates websocket setup to include verbosity (inherited from exchange). Adds no connection tolerance to fatal on failed reconnects
* More exchange_websocket tests. Updating to use pointers. Creation of equals func to make comparison easier
* Fixes okex, okcoin tests. Fixes race conditions. Removes pointer usage again.
* Adds subscribe and unsubscribe to wrappers
* Fixes deadlock. Fixes ws verbosity.
* Updates all exchanges to properly support subscription/connection feature. Also reintroduces race conditions....
* Moves connection varialbes to struct from package to allow each websocket to have their own reconnection checks. Neatens up logs
* Fixes lint/critic issues. Fixes tests. Removes unused function.
* Moves websocket ratelimiter to their own const variables. Fixes more race conditions with connecting variable
* Removes redundant subscribe functions. Ensuring only the exchange_websocket.go can manage subscriptions. Fixes debug logs to be verbose wrapped
* Fixes issue with slice copying. Re-adds okgroup default channels
* Adds nolint to append
* Adds comments and adds support for gateio auth request subscriptions
* Adds new test to ensure slices dont point to the same vars
* removes fatals. gofmt goimports
* more gofmts
* Addresses PR comments, removing empty and redundant lines
* Addresses PR comments. Ensures that writing to the websocket is single-threaded by adding a mutex to exchanges. Minimises wrapper code and moves subscription loops to exchange_websocket. Privatises ChannelsToSubscribe, Connecting properties and removeChannelToSubscribe func to prevent unnecessary tampering.
* Removes unused mutex. FMTS and IMPORTS
* Fixes request lock time change
* More specific logs
* Renames ws mutex. Fixes bitmex subscriptions. Increased gateio ratelimiter to 120ms. Removes ratelimiter from bitfinex, bitmex, bitstamp, btcc, btse, coibasepro, hitbtc, huobi, hadax, poloniex and zb
* changes recieved typo due to not being well received
* Fixes parsing issue with Huobi and hadax
* Fixes data race with more locks
* removes defer locks. fixes huobi/hadax verbose output
* Fixes double JSONEncode for coinut. Fixes verbose output for coinut
* gofmt,goimport for coinut
* Fixes issue where multiple connection monitors can spawn
* Removes defer exchange.WebsocketConn.Close() in defer handledata exit as connectionmonitor handles connections instead
* gofmt and go import
* More fmts
* First pass adding DumpResponse
* WIP
* Added httpDebug flag to SendPayload
* anx -> coinbase converted
* HTTPDebug flag added to all exchanges
* Updated Alphapoint:
* reworded error message
* Corrected itbit and huobihadax sendpayload
* Removed setting of default value
* don't return body for response as we already get this in verbose mode
* body is now included based on verbose setting
* WIP
* Due to issues with DumpResponse and gzip decoding use raw response from exchange for body output Also adds gzip decoding back as bug fix for OK group exchange
* removed additional new line
* Added URL path to dumpbody display as well
* Added fix for balances as GateIO returns object or array depending on if you have any balances
* Adds GetOrderInfo function for REST API
* Correctly assign WebsocketURL
* Adds websocket auth support to GateIO
* reverts Host changes
* unexported getbalance and signin
* Add WsGetOrderInfo to retreive information on a set order
* unexport wsGetOrderInfo
* renamed freeze to locked to match rest interface
* Removed old logging
* Added detailed error messages and testing disabling auth api support if WS auth fails
* Removed old code for nonce
* reworked GetOrder to return an error if no order is found
* gofmt tests
* removed unneeded event from websocketresponse
* fixed casing on websocket
* Fixed condition
* Adds logic to ensure nothing proceeds a connectivity check and adds tests
* Adds waitgroup to verify monitor routine startup before shutdown is called thus eliminating race condition
* fix func desc and test func naming convention
* Add invalid address check
* Fix race condition for okgroup on wait group when instant shutdown called
* Fix fmt issue with gofmt
* Updates nonce generation to adhere to fifo channel buffer before request executes by routine
* removed unused variables, lns etc
* Fix requested changes and added in timer that disengages lock if out of scope error occurs
* Fixed woopsy daisy issue
* Add benchmark, reduce time in force to unlock before stack insertion, add nil check for edge case
* Remove unusued waitgroup field
* use return nonce.Value and method, rm redundant nonce code, fix tests.
* Fix linter issue: unnecessary conversion
UpdateTicker: drop need for start timestamp as the latest entry will always be returned by default
UpdateOrderbook: fix string comparison so that orderbook entries will actually be appended
NOTE: As of this time, Bitmex doesn't support a ticker API endpoint so the only two options are a) last trade for an asset (which GCT uses) or b) orderbook data query
Fixes issue: https://github.com/thrasher-/gocryptotrader/issues/282