Commit Graph

80 Commits

Author SHA1 Message Date
Andrew
d01e7bad72 Implement Logger (#228)
* Added new base logger

* updated example and test configs

* updated exchange helpers restful router & server

* logPath is now passed to the logger to remove dependency on common package

* updated everything besides exchanges to use new logger

* alphapoint to bitmex done

* updated bitmex bitstamp bittrex btcc and also performance changes to logger

* btcmarkets coinbase coinut exmo gateio wrappers updated

* gateio and gemini logger updated

* hitbtc huobi itbit & kraken updated

* All exchanges updatd

* return correct error for disabled websocket

* don't disconnect client on invalid json

* updated router internal logging

* log.Fatal to t.Error for tests

* Changed from fatal to error failure to set maxprocs

* output ANSI codes for everything but windows for now due to lack of windows support

* added error handling to logger and unit tests

* clear wording on print -> log.print

* added benchmark test

* cleaned up import sections

* Updated logger based on PR requests (added default config options on failure/setting errors)

* ah this should fix travici enc config issue

* Load entire config and clear out logging to hopefully fix travisci issue

* wording & test error handling

* fixed formatting issues based on feedback

* fixed formatting issues based on feedback

* changed CheckDir to use mkdirall instead of mkdir and other changes based on feedback
2019-01-08 21:56:22 +11:00
Adrian Gallagher
dffa8eca99 Periodic pairsLastUpdated timestamp update
Fix other GoReportCard warnings
2018-12-27 15:32:59 +11:00
cranktakular
4a879bf1a1 Config.go testing (#196)
More coverage for GetExchangeBankAccounts test
More coverage for UpdateExchangeBankAccounts test
Adding CheckClientBankAccounts test
Fixing bug in CheckClientBankAccounts
Adding CheckCommunicationsConfig test
Fixing bugs in CheckCommunicationsConfig
Adding CheckPairConsistency test
Removing superfluous commas
More coverage for GetForexProviderConfig test
More coverage for GetPrimaryForexProvider
2018-10-30 15:55:50 +11:00
Ryan O'Hara-Reid
d3c2800fe0 Initial overhaul of websocket connection and feeds (#189)
* Initial overhaul of websocket connection and feeds
* Added proxy support
* Piped to routines.go

* Added new websocket file in exchanges
Refactored orderbook handling into exchange_websocket.go
Added better error responses for binance_websocket.go
General clean for binance_websocket.go

* General fixes - bitfinex_websocket.go
Refactored orderbook cache code - bitfinex_websocket.go
Removed fatal error with unhandled type - routines.go

* Added general improvements to bitmex_websocket.go
Refactored orderbook handling to exchange_websocket.go
Added variable in Item struct in orderbook.go for looking up orders by ID

* Fix issue when routines are blocked due to Data Handler not started
Updated traffic handler
General fixes for bitstamp_websocket.go

* General fixes for coinbasepro_websocket.go

* General fixes for coinut_websocket.go
Fixed error return in exchange_websocket.go

* Removed comments in coinut_wrapper.go
Refactor orderbook logic from hitbtc_websocket.go to exchange_websocket.go

* General fixes

* Removed comments
General fixes

* Updated routines.go

* After rebase fix

* Fixed update config pairs in okcoin.go

* fixed config currency issue in okcoin.go for okcoin China

* exchange_websocket.go
*Removed unused const dec
*Removed state change routine
*Improved trafficMonitor routine
*Increased verbosity for error returns
*Removed uneeded mutex locks

exchange_websocket_test.go
*Added new tests for websocket and orderbook updating

routines.go
*Removed string cased

* Fixed race conditions on sync.waitgroup in exchanges_websocket.go

* Changes variable name in config.go

* Removes unnecessary comment

* Removes indefinite lock on error return

* Removes unnecessary comment

* Adds support for BTCC websocket
Drops support for BTCC REST

* Rewords comment in exchange_websocket.go
Moves types to poloniex_types.go

* Moves types to coinut_types.go

* Removes uneeded range for accessing array variables for coinbase_websocket.go
Removes comments in coinut_types.go

* Adds verbosity flag to GCT
Suppresses verbose output from routines.go

* Fixes setting proxy for REST and Websocket per exchange
Upgrades error handling
Drops unused *url.Url variable in exchange type

* Adds test for setting proxy

* Fixes bug that closes connection due to incorrect timeout time through a proxy connection

* Clarify verbose flag message
2018-10-24 14:22:40 +11:00
Adrian Gallagher
a94d88debf Update config test code 2018-10-19 00:07:42 -07:00
Adrian Gallagher
c2c7032858 Add debug logger and default data directory support 2018-10-19 17:26:00 +11:00
Adrian Gallagher
0c92ccfa21 config: don't warn user of limited APIKey level for default forex provider 2018-10-17 16:13:32 +11:00
Adrian Gallagher
f6bce891c4 Add additional helper functions to pairs package 2018-10-05 15:21:06 +10:00
herenow
0fdf76d264 Optional Huobi’s auth private key signature param
This is a security feature that was introduced briefly, where you were
required to upload a public key while generating your api keys, and for
authentication you had to use your private keys to sign the request and
send it through this “PrivateSignature” param.

This security feature was rolled back and it is not mentioned anymore
in Huobi’s documentation.

For backwards compatibility purposes we should still keep this feature
though, they still seem to accept this parameter, I guess if you have
one of this old api keys, that was generated with a given public key,
you still have to send it.
2018-09-29 19:25:38 -03:00
Adrian Gallagher
bdd1fa3cdf config consistency check to ensure an enabled pair is supported by the exchange 2018-09-21 16:25:27 +10:00
soxipy
fb4e2d1452 localbitcoins fixes (#177)
* General LocalBitcoin fixes

* Added override variables to config for exchange packages to allow different API URL's
2018-08-27 14:19:29 +10:00
Marco Franssen
15d9a9fb88 Added missing type for exchangeName parameter 2018-08-10 16:05:20 +02:00
Marco Franssen
cbbad60e78 Lowercased the remaining config values for the config/all endpoint 2018-08-10 16:05:20 +02:00
Ryan O'Hara-Reid
06a0caec43 Bitmex exchange (#160)
* Added REST support for Bitmex

* Added Bitmex documentation updates

* Update config_example.json

* Added final REST functions for user account operations.

* Added initial websocket support

* Change function access
Added reconnection logic

* Added initial routine management
Updated wrapper functions

* General fixes
2018-08-09 16:31:29 +10:00
Adrian Gallagher
a0de1b78a7 Support configurable HTTP user agent per exchange 2018-08-07 13:05:13 +10:00
Marco Franssen
6c2f6df875 Lowercase json to be more compliant with javascript coding standards (#163) 2018-08-06 21:33:25 +10:00
Adrian Gallagher
c63f1b0ff6 Port from idoall's codebase (#161)
* 修复火币Post REST API方法不正确的问题,同时增加火币海带丝交易所

* add vendor folder

* 修改命名空间依赖

* 第一次提交分支

* 增加取消订单功能

* 修复binance.GetAccount方法

* 更新readme.md

* 增加 Gateio 交易所的支持,支持获取K线、支持的交易对、交易市场参数

* 替换HuobiHadax的参数

* 买/卖订单、取消订单

* OKEX 币币交易:增加获取用户信息,下订单,取消订单

* 测试ok kline

* 修复 Bitfinex 的 GetAccountInfo 方法

* 做一些不必要的删减

* 修复binfinex不返回错误的bug

* 统一我修改交易所的Kline获取方式

* Bitfinex 增加获取最新价格

* update main.go

* 更新GetSymbol方法

* 修改火币和海带丝的Kline编号ID类型

* 修改海带丝的默认配置大小写

* okex增加获取最新价格

*   调整okex的参数判断

* 调整比特儿的参数名称

* 修改火币、火币Hadax的参数全名

* 更新海带丝的配置名称

* 修改bintfinex的GetAccountInfo方法

* 去掉一行注释

* 支持zb交易所的部分功能

* 修复获取K线时没有设置参数的错误

* 增加 Binance 取消订单的方法,获取订单状态,获取所有打开的状态以及所有订单

* 修改获取深度和历史订单的数据

* 修改币安获取深度的参数

* 修改火币获取市场深度的参数

* 修改okex获取市场深度的参数

* 修改币安、OKex获取历史订单的参数

* 修复币安提交参数错误的问题

* merge upstrem

* merge后,调整一部分命名空间

* 修改ZB时间参数的命名方式

* 继续替换命名空间

* 命名空间的替换

* 继续命名空间的替换

* 测试

* Port code from idoall's PR

* Drop errors dep

* Start amending PR

* Fix commented code
* Translate text from Chinese to English (except for ZB). The reasning behind this is that it's a Chinese exchange and the structs are self explanatory in English, but would for other developers in China

* Translate Chinese text, basic formatting changes

* Remove commented lines and address feedback on PR
2018-08-04 08:30:20 +10:00
Ryan O'Hara-Reid
3b8591bcc8 Updated documentation tool (#155)
* Updated documentation tool
Added templates
Updated documentation using tool

* Fixed incorrect version in web README

* Added new templates to tool.
Updated documents in templates across the code base.
Used tool to regenerate documentation.
2018-07-19 16:02:24 +10:00
Marco Franssen
0f209165d5 Improved code quality (#154)
* Removed package-lock.json form gitignore as it ensures specific package versions

* Updated all @angular web dependencies

* Resolved tslint errors using autofix option

* Resolved some more tslint issues

* Added lint scripts to package.json to easy lint the ts files

* Updated codelyzer and tslint

* Run web on travis using node 10 and run the lint task

* Resolved some more tslint issues after upgrading tslint and codelyzer

* Resolved golint issues with regards to exchange comments

* Resolved spelling errors shown by goreportcard.com

* Resolved gofmt warnings using goreportcard.com

* Resolved golint issue by removing unrequired else statement

* Refactored slack.go to reduce cyclomatic complexity

* Fixed govet issue where Slack was passed as value instead of reference
2018-07-18 15:46:47 +10:00
Adrian Gallagher
4fadc6ff48 Adds support for new Huobi authorised requests and a tool for ecdsa keys
Fixes: https://github.com/thrasher-/gocryptotrader/issues/150
2018-07-13 15:54:31 +10:00
Ryan O'Hara-Reid
ed675bde30 Add bank details support 2018-07-12 12:25:07 +10:00
Adrian Gallagher
42d458d5ea Rename GDAX -> CoinbasePro 2018-07-11 10:42:37 +10:00
Adrian Gallagher
9b2ac9a6dc Bump last checked available currencies timestamp and expand automatic updating of available currencies for various exchanges 2018-06-15 15:56:01 +10:00
Ryan O'Hara-Reid
9d0616d8cf New communications package
Support for Slack, SMSGlobal, SMTP and Telegram

Supersedes: https://github.com/thrasher-/gocryptotrader/pull/126
2018-06-08 14:09:36 +10:00
Ryan O'Hara-Reid
58051b89c7 New package provider for foreign exchange rates.
Fixes issue: https://github.com/thrasher-/gocryptotrader/issues/131
Supersedes: https://github.com/thrasher-/gocryptotrader/pull/123
2018-06-06 21:05:17 +10:00
Adrian Gallagher
55df05f29f Fix config race 2018-06-04 19:28:22 +10:00
Adrian Gallagher
4903c788b1 Use key derivitive function for encryption/decryption of config data
Fixes https://github.com/thrasher-/gocryptotrader/issues/115
2018-06-04 18:43:13 +10:00
Adrian Gallagher
e80aaf1448 Allow for unauthenticated/authenticated websocket command handling 2018-05-31 15:08:49 +10:00
Ryan O'Hara-Reid
dc11f87b8b Updated README template files and regenerated documentation. (#125) 2018-05-14 10:03:17 +10:00
Adrian Gallagher
981b600f91 Fix bug in UpdateConfig
Fixes https://github.com/thrasher-/gocryptotrader/issues/124
2018-05-09 22:11:16 +10:00
Adrian Gallagher
ac41a7cfad New features and bug fixes
- Modifications made to the request package. Planned improvements will be
sending requests on intervals, rate limiter back off support, dynamic tuning
and requests packaged into a request job group.
- Can modify each exchanges individual HTTP client (e.g timeout and
transport settings).
- Bot now uses an exchange config HTTP timeout value.
- Bot now uses a global HTTP timeout (configurable).
- Batched ticker request support for exchanges.
- Ticker and Orderbook fetching now are spanned accross multiple
go routines and regulated by a sync wait group.
- Fixes hack used to load exchanges, now uses a sync wait group.
- Ticker and Orderbook storage and fetching now uses mutex locks.
- New pair function for finding different pairs between two supplied
 pair arrays. This is used for currency pair updates for exchange which
support dynamic updating.
- Shows removal/additions of dynamic updates currencies.
2018-05-04 13:20:19 +10:00
Ryan O'Hara-Reid
8eef67339d Fix linter issue and spelling error (#122) 2018-05-01 17:04:32 +10:00
Adrian Gallagher
52dfddbb18 Feature: Add support to check whether an exchange supports automatic currency pair updates and if they don't, show a warning if the last currency pair update is >= 30 days
Also fix race condition in config get/set functions
2018-03-27 12:53:46 +11:00
Adrian Gallagher
c0ccc901dc Fix GoReport issues 2018-03-26 12:18:19 +11:00
Adrian Gallagher
3eb81a3185 Improve pairs/translation packages and various fixes 2018-03-26 12:17:39 +11:00
Ryan O'Hara-Reid
9514754960 New documents generated by documentation tool. 2018-02-28 09:55:11 +11:00
Ryan O'Hara-Reid
dd00eba27e Applied fix to documentation.go for contribution HTML_URL.
Added period to documentation templates sentences.
Added logic to documentation.go to fix broken links for godoc in sub-packages.
Fix coding style to conform to golang idiomatic practice.
Applied fix to access main godocs in tools and test data.
Generated new documents using tools.
2018-02-20 11:56:25 +11:00
Ryan O'Hara-Reid
6cb17bb97e Added new base documentation using documentation tool 2018-02-20 10:43:59 +11:00
Ryan O'Hara-Reid
e57aa817dc Added support for Bitflyer exchange 2018-02-09 11:00:58 +11:00
Adrian Gallagher
e8f8e32609 Add/improve common string functions, currency pair handling, fix LBTC orderbook amount 2018-02-08 12:00:55 +11:00
Adrian Gallagher
5f10897b5b Bump number of exchanges supported 2018-02-07 13:11:57 +11:00
Bret Palsson
71333b29c7 Add Exchange: HitBTC 2018-02-04 00:53:22 -08:00
Adrian Gallagher
fca7e5e59a Update tests, config files and README.md 2018-02-03 15:18:12 +11:00
Ryan O'Hara-Reid
28bd0e52bc Added support for Binance exchange 2018-02-01 16:39:26 +11:00
Ryan O'Hara-Reid
3b8835d995 Added support for Bithumb exchange 2018-01-31 14:44:52 +11:00
Adrian Gallagher
784e9e48f5 Link up OKEX and fix config test 2018-01-29 20:52:00 +11:00
Adrian Gallagher
89188c03e1 Fix config load failure when launching application on OSX through Finder 2018-01-22 12:28:09 +11:00
Adrian Gallagher
5a2c81346c Added helper functions, exchange method to set currencies and bug fixes 2018-01-18 12:45:19 +11:00
Adrian Gallagher
5dc6df72aa Improvements in config, currency, exchange, pair and helper code 2018-01-17 13:42:09 +11:00
Adrian Gallagher
ce908ee939 Use config.json by default if config file isn't encrypted
Fixes issue: https://github.com/thrasher-/gocryptotrader/issues/48
Allows for auto syntax highlighing in text editors/IDEs
2017-11-14 14:15:01 +11:00