diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d9404057..78ad2c75 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -4,15 +4,19 @@ thrasher- | https://github.com/thrasher- shazbert | https://github.com/shazbert gloriousCode | https://github.com/gloriousCode 140am | https://github.com/140am +marcofranssen | https://github.com/marcofranssen Betazoid | https://github.com/Betazoid +ermalguni | https://github.com/ermalguni crackcomm | https://github.com/crackcomm bretep | https://github.com/bretep gam-phon | https://github.com/gam-phon cornelk | https://github.com/cornelk if1live | https://github.com/if1live daniel-cohen | https://github.com/daniel-cohen +frankzougc | https://github.com/frankzougc starit | https://github.com/starit Jimexist | https://github.com/Jimexist +lookfirst | https://github.com/lookfirst zeldrinn | https://github.com/zeldrinn mattkanwisher | https://github.com/mattkanwisher mKurrels | https://github.com/mKurrels @@ -20,6 +24,8 @@ m1kola | https://github.com/m1kola cavapoo2 | https://github.com/cavapoo2 tongxiaofeng | https://github.com/tongxiaofeng idealhack | https://github.com/idealhack +vyloy | https://github.com/vyloy askew- | https://github.com/askew- +whilei | https://github.com/whilei snipesjr | https://github.com/snipesjr -marcofranssen | https://github.com/marcofranssen + diff --git a/README.md b/README.md index 632d0984..4df0642b 100644 --- a/README.md +++ b/README.md @@ -144,15 +144,15 @@ Binaries will be published once the codebase reaches a stable condition. |User|Github|Contribution Amount| |--|--|--| -| thrasher- | https://github.com/thrasher- | 442 | -| shazbert | https://github.com/shazbert | 139 | -| gloriousCode | https://github.com/gloriousCode | 121 | +| thrasher- | https://github.com/thrasher- | 453 | +| shazbert | https://github.com/shazbert | 140 | +| gloriousCode | https://github.com/gloriousCode | 122 | | 140am | https://github.com/140am | 8 | +| marcofranssen | https://github.com/marcofranssen | 4 | | Betazoid | https://github.com/Betazoid | 4 | -| marcofranssen | https://github.com/marcofranssen | 3 | +| ermalguni | https://github.com/ermalguni | 3 | | crackcomm | https://github.com/crackcomm | 3 | | bretep | https://github.com/bretep | 2 | -| ermalguni | https://github.com/ermalguni | 2 | | gam-phon | https://github.com/gam-phon | 2 | | cornelk | https://github.com/cornelk | 2 | | if1live | https://github.com/if1live | 2 | @@ -168,6 +168,7 @@ Binaries will be published once the codebase reaches a stable condition. | cavapoo2 | https://github.com/cavapoo2 | 1 | | tongxiaofeng | https://github.com/tongxiaofeng | 1 | | idealhack | https://github.com/idealhack | 1 | +| vyloy | https://github.com/vyloy | 1 | | askew- | https://github.com/askew- | 1 | | whilei | https://github.com/whilei | 1 | | snipesjr | https://github.com/snipesjr | 1 | diff --git a/common/README.md b/common/README.md index 8cdfdc0a..594f3f86 100644 --- a/common/README.md +++ b/common/README.md @@ -20,7 +20,20 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader ## Current Features for common -+ This package collates basic broad functions that are used throughout this codebase. +#### This package collates basic broad functions that are used throughout this codebase. + ++ Coding example + +```go +import "github.com/thrasher-/gocryptotrader/common" + +testString := "aAaAa" + +upper := common.StringToUpper(testString) + +// upper == "AAAAA" +``` + ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/communications/README.md b/communications/README.md new file mode 100644 index 00000000..7acfc275 --- /dev/null +++ b/communications/README.md @@ -0,0 +1,61 @@ +# GoCryptoTrader package Comms + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/communications/comms) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This comms package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Communications package + +### What is the Communications package? + ++ This package allows for the communication of events/data that occurs in the +to be exported out to a defined communication medium + +### Current Features + ++ Slack bot support ++ SMSGlobal instant bulk messaging ++ SMTP messaging ++ Telegram bot support + +### How to enable example + ++ In your config.json enable each individual communications package you desire ++ Please view the individual readme documentation inside the specific package +for more details + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/communications/base/README.md b/communications/base/README.md new file mode 100644 index 00000000..f5f0ea36 --- /dev/null +++ b/communications/base/README.md @@ -0,0 +1,47 @@ +# GoCryptoTrader package Base + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/communications/base) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This base package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Base Communications package + +### Current Features + ++ Used to enforce standard variables and methods across the communication packages + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/communications/slack/README.md b/communications/slack/README.md new file mode 100644 index 00000000..b026a248 --- /dev/null +++ b/communications/slack/README.md @@ -0,0 +1,95 @@ +# GoCryptoTrader package Slack + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/communications/slack) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This slack package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Slack Communications package + +### What is Slack? + ++ Slack is a code-centric collaboration hub that allows users to connect via an +app and share different types of data ++ Please visit: [Slack](https://slack.com/) for more information and account setup + +### Current Features + ++ Basic communication to your slack channel information includes: + - Working status of bot + - Recent ANX ticker + - Current ANX orderbook + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/communications/slack" +"github.com/thrasher-/gocryptotrader/config" +) + +s := new(slack.Slack) + +// Define slack configuration +commsConfig := config.CommunicationsConfig{SlackConfig: config.SlackConfig{ + Name: "Slack", + Enabled: true, + Verbose: false, + TargetChannel: "targetChan", + VerificationToken: "slackGeneratedToken", +}} + +s.Setup(commsConfig) +err := s.Connect +// Handle error +``` + +Once the bot has started you can interact with the bot using these commands +via Slack: + +``` +!status - Displays current working status of bot +!help - Displays help text +!settings - Displays current settings +!ticker - Displays recent ANX ticker +!portfolio - Displays portfolio data +!orderbook - Displays current ANX orderbook +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/communications/smsglobal/README.md b/communications/smsglobal/README.md new file mode 100644 index 00000000..8dac04b6 --- /dev/null +++ b/communications/smsglobal/README.md @@ -0,0 +1,80 @@ +# GoCryptoTrader package Smsglobal + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/communications/smsglobal) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This smsglobal package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## SMSGlobal Communications package + +### What is SMSGlobal? + ++ SMSGlobal allows bulk sending of messages via their API ++ Please visit: [SMSGlobal](https://www.smsglobal.com/) for more information and account setup + +### Current Features + ++ Sending of events to a list of recipients + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/communications/smsglobal" +"github.com/thrasher-/gocryptotrader/config" +) + +s := new(smsglobal.SMSGlobal) + +// Define SMSGlobal configuration +commsConfig := config.CommunicationsConfig{SMSGlobalConfig: config.SMSGlobalConfig{ + Name: "SMSGlobal", + Enabled: true, + Verbose: false, + Username: "username", + Password: "password", + Contacts: []config.SMSContact{} +}} + +s.Setup(commsConfig) +err := s.Connect +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/communications/smtpservice/README.md b/communications/smtpservice/README.md new file mode 100644 index 00000000..fbdbbcd6 --- /dev/null +++ b/communications/smtpservice/README.md @@ -0,0 +1,82 @@ +# GoCryptoTrader package Smtp + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/communications/smtp) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This smtp package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## SMSGlobal Communications package + +### What is SMTP? + ++ Simple Mail Transfer Protocol (SMTP) is an Internet standard for electronic mail (email) transmission ++ Please visit: [Wikipedia](https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol) for more information + +### Current Features + ++ Sending of events to a list of recipients via email + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/communications/smtpservice" +"github.com/thrasher-/gocryptotrader/config" +) + +s := new(smtpservice.SMTPservice) + +// Define SMTPservice configuration +commsConfig := config.CommunicationsConfig{SMTPservice: config.SMTPConfig{ + Name: "SMTPservice", + Enabled: true, + Verbose: false, + Host: "host", + Port: "port", + AccountName: "name", + AccountPassword: "password", + RecipientList: "something@something.com,somethingelse@something.com" +}} + +s.Setup(commsConfig) +err := s.Connect +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/communications/telegram/README.md b/communications/telegram/README.md new file mode 100644 index 00000000..7f9f5742 --- /dev/null +++ b/communications/telegram/README.md @@ -0,0 +1,95 @@ +# GoCryptoTrader package Telegram + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/communications/telegram) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This telegram package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Telegram Communications package + +### What is telegram? + ++ Telegram is a cloud-based instant messaging and voice over IP service +developed by Telegram Messenger LLP ++ Please visit: [Telegram](https://telegram.org/) for more information + +### Current Features + ++ Creation of bot that can retrieve + - Bot status + - ANX orderbook + - ANX ticker + + ### How to enable + + + [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + + + Individual package example below: + ```go + import ( + "github.com/thrasher-/gocryptotrader/communications/telegram" + "github.com/thrasher-/gocryptotrader/config" + ) + + t := new(telegram.Telegram) + + // Define Telegram configuration + commsConfig := config.CommunicationsConfig{TelegramConfig: config.TelegramConfig{ + Name: "Telegram", + Enabled: true, + Verbose: false, + VerificationToken: "token", + }} + + t.Setup(commsConfig) + err := t.Connect + // Handle error + ``` + ++ Once the bot has started you can interact with the bot using these commands +via Telegram: + +``` +/start - Will authenticate your ID +/status - Displays the status of the bot +/help - Displays current command list +/settings - Displays current bot settings +/ticker - Displays current ANX ticker data +/portfolio - Displays your current portfolio +/orderbooks - Displays current orderbooks for ANX` +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/config/README.md b/config/README.md index ccfe3e18..4a4d39bb 100644 --- a/config/README.md +++ b/config/README.md @@ -20,7 +20,196 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader ## Current Features for config -+ This package deals with configuration utilities. + + Handling of config encryption and verification of "configuration".json data. + + + Contains configurations for: + + - Exchanges for utilisation of a broad or minimal amount of enabled + exchanges [Example](#enable-exchange-via-config-example) for + enabling an exchange. + + - Bank accounts for withdrawal and depositing FIAT between exchange and + your personal accounts [Example](#enable-bank-accounts-via-config-example). + + - Portfolio to monitor online and offline accounts [Example](#enable-portfolio-via-config-example). + + - Currency configurations to set your foreign exchange provider accounts, + your preferred display currency, suitable FIAT currency and suitable + cryptocurrency [Example](#enable-currency-via-config-example). + + - Communication for utilisation of supported communication mediums e.g. + email events direct to your personal account [Example](#enable-communications-via-config-example). + +# Config Examples + +#### Basic examples for enabling features on the GoCryptoTrader platform + ++ Linux example for quickly creating and testing configuration file +```sh +cd ~/go/src/github.com/thrasher-/gocryptotrader +cp config_example.json config.json +# Test config +go build +./gocryptotrader +``` + ++ or custom config, can also pass in absolute path to "configuration".json file. + +```sh +cd ~/go/src/github.com/thrasher-/gocryptotrader +cp config_example.json custom.json +# Test config +go build +./gocryptotrader -config custom.json +``` + +## Enable Exchange Via Config Example + ++ To enable or disable an exchange via config proceed through the +"configuration".json file to exchanges and to the supported exchange e.g see +below. "Enabled" set to true or false will enable and disable the exchange, +if you set "APIKey" && "APISecret" you must set "AuthenticatedAPISupport" to +true or the bot will not be able to send authenticated http requests. If needed +you can set the exchanges bank details for depositing FIAT options. Some banks +have multiple deposit accounts for different FIAT deposit currencies. + +```js +"Exchanges": [ + { + "Name": "ANX", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "ATENC_GBP,ATENC_NZD,BTC_AUD,BTC_SGD,LTC_BTC,START_GBP,...", + "EnabledPairs": "BTC_USD,BTC_HKD,BTC_EUR,BTC_CAD,BTC_AUD,BTC_SGD,BTC_JPY,...", + "BaseCurrencies": "USD,HKD,EUR,CAD,AUD,SGD,JPY,GBP,NZD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "AUD,USD,EUR" + } + ] + }, +``` + +## Enable Bank Accounts Via Config Example + ++ To enable bank accounts simply proceed through "configuration".json file to +"BankAccounts" and input your account information example below. + +```js +"BankAccounts": [ + { + "BankName": "test", + "BankAddress": "test", + "AccountName": "TestAccount", + "AccountNumber": "0234", + "SWIFTCode": "91272837", + "IBAN": "98218738671897", + "SupportedCurrencies": "USD", + "SupportedExchanges": "ANX,Kraken" + } +] +``` + +## Enable Portfolio Via Config Example + ++ To enable the GoCryptoTrader platform to monitor your addresses please +specify, "configuration".json file example below. + +```js +"PortfolioAddresses": { + "Addresses": [ + { + "Address": "1JCe8z4jJVNXSjohjM4i9Hh813dLCNx2Sy", + "CoinType": "BTC", + "Balance": 53000.01310358, + "Description": "" + }, + { + "Address": "3Nxwenay9Z8Lc9JBiywExpnEFiLp6Afp8v", + "CoinType": "BTC", + "Balance": 101848.28376405, + "Description": "" + } + ] +``` + +## Enable Currency Via Config Example + ++ To Enable foreign exchange providers set "Enabled" to true and add in your +account API keys example below. + +```js +"ForexProviders": [ + { + "Name": "CurrencyConverter", + "Enabled": true, + "Verbose": false, + "RESTPollingDelay": 600, + "APIKey": "", + "APIKeyLvl": -1, + "PrimaryProvider": true + }, +] +``` + ++ To define the cryptocurrency you want the platform to use set them here +example below. + +```js +"Cryptocurrencies": "BTC,LTC,ETH,XRP,NMC,NVC,PPC,XBT,DOGE,DASH", +``` + ++ To define the currency you want to everything to be valued against example +below. + +```js +"FiatDisplayCurrency": "USD" +``` + +## Enable Communications Via Config Example + ++ To set the desired platform communication medium proceed to "Communications" +in the "configuration".json file and set your account details to the preferred +comm method and add in your contact list if available. + +```js +"SMSGlobal": { + "Name": "SMSGlobal", + "Enabled": false, + "Verbose": false, + "Username": "Username", + "Password": "Password", + "Contacts": [ + { + "Name": "Bob", + "Number": "12345", + "Enabled": false + } + ] +}, +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/currency/README.md b/currency/README.md index 282fa11d..6d23119a 100644 --- a/currency/README.md +++ b/currency/README.md @@ -20,7 +20,11 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader ## Current Features for currency -+ Currency package deals with currency pair generation, manipulation and tracking. ++ Currency package contains a full suite of packages that provide: + - Foreign exchange data fetching for FIAT currencies + - Currency Pair generation + - Symbol mapping + - Translation between currencies that have similar strings e.g. XBT, BTC ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/currency/forexprovider/README.md b/currency/forexprovider/README.md new file mode 100644 index 00000000..786aae9a --- /dev/null +++ b/currency/forexprovider/README.md @@ -0,0 +1,48 @@ +# GoCryptoTrader package Forexprovider + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/currency/forexprovider) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This forexprovider package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for forexprovider + ++ Currency Converter API support ++ Currency Layer support ++ Fixer.io support ++ Open Exchange Rates support + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/currency/forexprovider/base/README.md b/currency/forexprovider/base/README.md new file mode 100644 index 00000000..d330ecb0 --- /dev/null +++ b/currency/forexprovider/base/README.md @@ -0,0 +1,46 @@ +# GoCryptoTrader package Forexprovider + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/currency/forexprovider/base) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This forexprovider package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for forexprovider + ++ This package enforces standard variables and methods for the foreign exchange +providers. + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/currency/forexprovider/currencyconverterapi/README.md b/currency/forexprovider/currencyconverterapi/README.md new file mode 100644 index 00000000..10d455ce --- /dev/null +++ b/currency/forexprovider/currencyconverterapi/README.md @@ -0,0 +1,75 @@ +# GoCryptoTrader package Forexprovider + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/currency/forexprovider/currencyconverter) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This forexprovider package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for forexprovider + ++ Fetches up to date curency data from [Currency Coverter API](https://free.currencyconverterapi.com/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/currencyconverter" +) + +c := currencyconverter.CurrencyConverter{} + +// Define configuration +newSettings := base.Settings{ + Name: "CurrencyConverter", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/currency/forexprovider/currencylayer/README.md b/currency/forexprovider/currencylayer/README.md new file mode 100644 index 00000000..3fd4552f --- /dev/null +++ b/currency/forexprovider/currencylayer/README.md @@ -0,0 +1,75 @@ +# GoCryptoTrader package Forexprovider + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/currency/forexprovider/currencylayer) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This forexprovider package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for forexprovider + ++ Fetches up to date curency data from [Currency Layer](https://currencylayer.com/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/currencylayer" +) + +c := currencylayer.CurrencyLayer{} + +// Define configuration +newSettings := base.Settings{ + Name: "CurrencyLayer", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/currency/forexprovider/fixer.io/README.md b/currency/forexprovider/fixer.io/README.md new file mode 100644 index 00000000..a49af294 --- /dev/null +++ b/currency/forexprovider/fixer.io/README.md @@ -0,0 +1,75 @@ +# GoCryptoTrader package Forexprovider + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/currency/forexprovider/fixer) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This forexprovider package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for forexprovider + ++ Fetches up to date curency data from [Fixer.io](https://fixer.io/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/fixer.io" +) + +c := fixer.Fixer{} + +// Define configuration +newSettings := base.Settings{ + Name: "Fixer", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/currency/forexprovider/openexchangerates/README.md b/currency/forexprovider/openexchangerates/README.md new file mode 100644 index 00000000..3762dd7d --- /dev/null +++ b/currency/forexprovider/openexchangerates/README.md @@ -0,0 +1,75 @@ +# GoCryptoTrader package Forexprovider + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/currency/forexprovider/openexchangerates) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This forexprovider package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for forexprovider + ++ Fetches up to date curency data from [Open Exchange Rates](https://openexchangerates.org/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/openexchangerates" +) + +c := openexchangerates.OXR{} + +// Define configuration +newSettings := base.Settings{ + Name: "openexchangerates", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/currency/pair/README.md b/currency/pair/README.md index 36143018..35cc2ae4 100644 --- a/currency/pair/README.md +++ b/currency/pair/README.md @@ -20,7 +20,19 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader ## Current Features for pair -+ This package services the currency package. ++ Provides a new data structure for a currency pair ++ Methods to manipulate, create and retrieve different parts of the currency pair + ++ Example below: +```go +import "github.com/thrasher-/gocryptotrader/currency/pair" + +// Create new pair +newPair := pair.NewCurrencyPair("BTC", "USD") + +// Retrieve different parts of the pair +bitcoinString := newPair.GetFirstCurrency +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/currency/symbol/README.md b/currency/symbol/README.md index bed9164f..5a571b12 100644 --- a/currency/symbol/README.md +++ b/currency/symbol/README.md @@ -20,7 +20,18 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader ## Current Features for symbol -+ This package services the currency package. ++ This package services the currency package by providing symbol mapping. + ++ Example below: +```go +import "github.com/thrasher-/gocryptotrader/currency/symbol" + +// Get the string of the symbol by the currency +chineseYen := "CNY" +symbol := symbol.GetSymbolByCurrencyName(chineseYen) + +// symbol == "¥" +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/currency/translation/README.md b/currency/translation/README.md index 926ef033..3a8368e1 100644 --- a/currency/translation/README.md +++ b/currency/translation/README.md @@ -22,6 +22,16 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader + This package services the currency package with translation functions. ++ Example below: +```go +import "github.com/thrasher-/gocryptotrader/currency/translation" + +// Is translatable +b := translation.HasTranslation("BTC") + +// b == true; translation = XBT +``` + ### Please click GoDocs chevron above to view current GoDoc information for this package ## Contribution diff --git a/exchanges/README.md b/exchanges/README.md index 018e0e0e..8a547d64 100644 --- a/exchanges/README.md +++ b/exchanges/README.md @@ -22,6 +22,9 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader + This package is used to connect and query data from supported exchanges. ++ Please checkout individual exchange README for more information on +implementation + ### Please click GoDocs chevron above to view current GoDoc information for this package ## Contribution diff --git a/exchanges/alphapoint/README.md b/exchanges/alphapoint/README.md index e8f23250..4267a890 100644 --- a/exchanges/alphapoint/README.md +++ b/exchanges/alphapoint/README.md @@ -18,11 +18,13 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Alphapoint Exchange +## Alphapoint Exchange -### Current Features ++ Please visit [Alphapoint](https://www.alphapoint.com/) for more info. -+ Initial generation +### How to enable + ++ Not currently configurable ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/anx/README.md b/exchanges/anx/README.md index ca64a4e4..785ed640 100644 --- a/exchanges/anx/README.md +++ b/exchanges/anx/README.md @@ -18,11 +18,108 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## ANX Exchange +## ANX Exchange ### Current Features -+ Initial generation ++ REST functions + +### Features not yet included + ++ Long polling streaming + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var a exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "ANX" { + a = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := a.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := a.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := a.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := a.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := a.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := a.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := a.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do LongPolling public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/binance/README.md b/exchanges/binance/README.md index f67e4a86..73c15cf3 100644 --- a/exchanges/binance/README.md +++ b/exchanges/binance/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Binance Exchange +## Binance Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Binance" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/bitfinex/README.md b/exchanges/bitfinex/README.md index db13503a..1a5f7f85 100644 --- a/exchanges/bitfinex/README.md +++ b/exchanges/bitfinex/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Bitfinex Exchange +## Bitfinex Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bitfinex" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/bitflyer/README.md b/exchanges/bitflyer/README.md index ed6afe4c..1563d5de 100644 --- a/exchanges/bitflyer/README.md +++ b/exchanges/bitflyer/README.md @@ -18,11 +18,104 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Bitflyer Exchange +## Bitflyer Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bitflyer" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/bithumb/README.md b/exchanges/bithumb/README.md index 1cb80ada..15e69d7a 100644 --- a/exchanges/bithumb/README.md +++ b/exchanges/bithumb/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Bithumb Exchange +## Bithumb Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bithumb" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/bitstamp/README.md b/exchanges/bitstamp/README.md index daa505c8..5576327b 100644 --- a/exchanges/bitstamp/README.md +++ b/exchanges/bitstamp/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Bitstamp Exchange +## Bitstamp Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bitstamp" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/bittrex/README.md b/exchanges/bittrex/README.md index b24af71f..08a4b15a 100644 --- a/exchanges/bittrex/README.md +++ b/exchanges/bittrex/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Bittrex Exchange +## Bittrex Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bittrex" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/btcc/README.md b/exchanges/btcc/README.md index 97fc2370..f275ba62 100644 --- a/exchanges/btcc/README.md +++ b/exchanges/btcc/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## BTCC Exchange +## BTCC Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "BTCC" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/btcmarkets/README.md b/exchanges/btcmarkets/README.md index a5e1e0a7..43d1a83b 100644 --- a/exchanges/btcmarkets/README.md +++ b/exchanges/btcmarkets/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## BTCMarkets Exchange +## BTCMarkets Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "BTCMarkets" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/coinbasepro/README.md b/exchanges/coinbasepro/README.md index 798d8ea4..c90291bb 100644 --- a/exchanges/coinbasepro/README.md +++ b/exchanges/coinbasepro/README.md @@ -1,4 +1,4 @@ -# GoCryptoTrader package CoinbasePro +# GoCryptoTrader package Coinbasepro @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## CoinbasePro Exchange +## CoinbasePro Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var c exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "CoinbasePro" { + c = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := c.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := c.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := c.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := c.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := c.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/coinut/README.md b/exchanges/coinut/README.md index 162f976b..cecb5540 100644 --- a/exchanges/coinut/README.md +++ b/exchanges/coinut/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Coinut Exchange +## Coinut Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var c exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Coinut" { + c = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := c.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := c.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := c.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := c.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := c.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/exmo/README.md b/exchanges/exmo/README.md index 954ac8af..1393fddb 100644 --- a/exchanges/exmo/README.md +++ b/exchanges/exmo/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Exmo Exchange +## Exmo Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var e exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Exmo" { + e = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := e.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := e.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := e.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := e.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := e.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := e.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := e.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/gemini/README.md b/exchanges/gemini/README.md index b09379b8..dad27ba5 100644 --- a/exchanges/gemini/README.md +++ b/exchanges/gemini/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Gemini Exchange +## Gemini Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var g exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Gemini" { + g = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := g.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := g.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := g.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := g.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := g.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := g.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := g.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/hitbtc/README.md b/exchanges/hitbtc/README.md index f81cb34d..a57f6b73 100644 --- a/exchanges/hitbtc/README.md +++ b/exchanges/hitbtc/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## HitBTC Exchange +## HitBTC Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var h exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "HitBTC" { + h = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := h.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := h.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := h.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := h.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := h.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/huobi/README.md b/exchanges/huobi/README.md index f0d13c71..4b969340 100644 --- a/exchanges/huobi/README.md +++ b/exchanges/huobi/README.md @@ -18,11 +18,104 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Huobi Exchange +## Huobi Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var h exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Huobi" { + h = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := h.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := h.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := h.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := h.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := h.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/itbit/README.md b/exchanges/itbit/README.md index ec59e996..ae36c796 100644 --- a/exchanges/itbit/README.md +++ b/exchanges/itbit/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Itbit Exchange +## Itbit Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var i exchange.IBotExchange + +for x := range bot.exchanges { + if bot.exchanges[x].GetName() == "Itbit" { + i = bot.exchanges[x] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := i.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := i.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := i.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := i.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := i.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := i.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := i.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/kraken/README.md b/exchanges/kraken/README.md index 291ddd35..f80a33a4 100644 --- a/exchanges/kraken/README.md +++ b/exchanges/kraken/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Kraken Exchange +## Kraken Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var k exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Kraken" { + k = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := k.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := k.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := k.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := k.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := k.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := k.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := k.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/lakebtc/README.md b/exchanges/lakebtc/README.md index 9f4d3d37..70b1bae7 100644 --- a/exchanges/lakebtc/README.md +++ b/exchanges/lakebtc/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## LakeBTC Exchange +## LakeBTC Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var l exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "LakeBTC" { + l = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := l.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := l.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := l.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := l.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := l.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/liqui/README.md b/exchanges/liqui/README.md index d34df7b8..c381bfa6 100644 --- a/exchanges/liqui/README.md +++ b/exchanges/liqui/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Liqui Exchange +## Liqui Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var l exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Liqui" { + l = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := l.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := l.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := l.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := l.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := l.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/localbitcoins/README.md b/exchanges/localbitcoins/README.md index 0a907fc7..fe29c3c4 100644 --- a/exchanges/localbitcoins/README.md +++ b/exchanges/localbitcoins/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## LocalBitcoins Exchange +## LocalBitcoins Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var l exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "LocalBitcoins" { + l = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := l.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := l.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := l.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := l.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := l.Trade(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/okcoin/README.md b/exchanges/okcoin/README.md index b2d998b3..b9b57cf5 100644 --- a/exchanges/okcoin/README.md +++ b/exchanges/okcoin/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## OKCoin Exchange +## OKCoin Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var o exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "OKCoin" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := o.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := o.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := o.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := o.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := o.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/okex/README.md b/exchanges/okex/README.md index 0ab7b5c8..e6a2b00a 100644 --- a/exchanges/okex/README.md +++ b/exchanges/okex/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## OKex Exchange +## OKex Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var o exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "OKex" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := o.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := o.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := o.GetSpotTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetSpotMarketDepth() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetContractPosition returns contract positioning +accountInfo, err := o.GetContractPosition(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := o.PlaceContractOrders(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/orderbook/README.md b/exchanges/orderbook/README.md index a87cd998..f74093f9 100644 --- a/exchanges/orderbook/README.md +++ b/exchanges/orderbook/README.md @@ -21,6 +21,37 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader ## Current Features for orderbook + This package facilitates orderbook generation. ++ Attaches methods to an orderbook + - To Return total Bids + - To Return total Asks + - Update orderbooks ++ Gets a loaded orderbook by exchange, asset type and currency pair. + ++ This package is primarily used in conjunction with but not limited to the +exchange interface system set by exchange wrapper orderbook functions in +"exchange"_wrapper.go. + +Examples below: + +```go +ob, err := yobitExchange.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Find total asks which also returns total orderbook value +totalAsks, totalOrderbookVal := ob.CalculateTotalAsks() +``` + ++ or if you have a routine setting an exchange orderbook you can access it via +the package itself. + +```go +ob, err := orderbook.GetOrderbook(...) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/orders/README.md b/exchanges/orders/README.md new file mode 100644 index 00000000..470ad688 --- /dev/null +++ b/exchanges/orders/README.md @@ -0,0 +1,48 @@ +# GoCryptoTrader package Orders + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/exchanges/orders) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This orders package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for orders + ++ This package services the exchanges package with order handling. + - Creation of order + - Deletion of order + - Order tracking + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/exchanges/poloniex/README.md b/exchanges/poloniex/README.md index c7c52e4c..8ea7cce5 100644 --- a/exchanges/poloniex/README.md +++ b/exchanges/poloniex/README.md @@ -18,11 +18,105 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Poloniex Exchange +## Poloniex Exchange ### Current Features -+ Initial generation ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var p exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Poloniex" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := p.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := p.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := p.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := p.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := p.GetOrderbook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// Cancels current account order +accountInfo, err := p.CancelOrder() +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := p.PlaceOrder(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/request/README.md b/exchanges/request/README.md new file mode 100644 index 00000000..884c0d54 --- /dev/null +++ b/exchanges/request/README.md @@ -0,0 +1,46 @@ +# GoCryptoTrader package Request + + + + +[![Build Status](https://travis-ci.org/thrasher-/gocryptotrader.svg?branch=master)](https://travis-ci.org/thrasher-/gocryptotrader) +[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-/gocryptotrader/blob/master/LICENSE) +[![GoDoc](https://godoc.org/github.com/thrasher-/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-/gocryptotrader/exchanges/request) +[![Coverage Status](http://codecov.io/github/thrasher-/gocryptotrader/coverage.svg?branch=master)](http://codecov.io/github/thrasher-/gocryptotrader?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-/gocryptotrader) + + +This request package is part of the GoCryptoTrader codebase. + +## This is still in active development + +You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). + +Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) + +## Current Features for request + ++ This package services the exchanges package with request handling. + - Throttling of requests for an individual exchange + +### Please click GoDocs chevron above to view current GoDoc information for this package + +## Contribution + +Please feel free to submit any pull requests or suggest any desired features to be added. + +When submitting a PR, please abide by our coding guidelines: + ++ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)). ++ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines. ++ Code must adhere to our [coding style](https://github.com/thrasher-/gocryptotrader/blob/master/doc/coding_style.md). ++ Pull requests need to be based on and opened against the `master` branch. + +## Donations + + + +If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to: + +***1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB*** + diff --git a/exchanges/stats/README.md b/exchanges/stats/README.md index 11026c86..e188bd5d 100644 --- a/exchanges/stats/README.md +++ b/exchanges/stats/README.md @@ -20,7 +20,11 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader ## Current Features for stats -+ This package services the exchanges package. ++ This stats package services the exchanges package by providing stats on +enabled exchanges i.e. + - Sort by largest volume + - Sort by best price for currency + - Others will be added soon ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/ticker/README.md b/exchanges/ticker/README.md index 5947ac3b..d95cbad3 100644 --- a/exchanges/ticker/README.md +++ b/exchanges/ticker/README.md @@ -22,6 +22,38 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader + This services the exchanges package by ticker functions. ++ This package facilitates ticker generation. ++ Attaches methods to an ticker + - Returns a string of a value + ++ Gets a loaded ticker by exchange, asset type and currency pair. + ++ This package is primarily used in conjunction with but not limited to the +exchange interface system set by exchange wrapper orderbook functions in +"exchange"_wrapper.go. + +Examples below: + +```go +tick, err := yobitExchange.GetTickerPrice() +if err != nil { + // Handle error +} + +// Converts ticker value to string +tickerValString := tick.PriceToString(...) +``` + ++ or if you have a routine setting an exchange orderbook you can access it via +the package itself. + +```go +tick, err := ticker.GetTicker(...) +if err != nil { + // Handle error +} +``` + ### Please click GoDocs chevron above to view current GoDoc information for this package ## Contribution diff --git a/exchanges/wex/README.md b/exchanges/wex/README.md index 5c2cc47f..36a8af82 100644 --- a/exchanges/wex/README.md +++ b/exchanges/wex/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Wex Exchange +## Wex Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var w exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Wex" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := w.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := w.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := w.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := w.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := w.GetDepth() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := w.GetAccountInfo() +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := w.Trade("BTCUSD", "MARKET", 1, 2) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/exchanges/yobit/README.md b/exchanges/yobit/README.md index 9f2c676d..2c4717cd 100644 --- a/exchanges/yobit/README.md +++ b/exchanges/yobit/README.md @@ -18,11 +18,97 @@ You can track ideas, planned features and what's in progresss on this Trello boa Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://gocryptotrader.herokuapp.com/) -## Yobit Exchange +## Yobit Exchange ### Current Features -+ Initial generation ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var y exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Yobit" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := y.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := y.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := y.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := y.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := y.GetDepth() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := y.GetAccountInfo() +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := y.Trade("BTCUSD", "MARKET", 1, 2) +if err != nil { + // Handle error +} +``` ### Please click GoDocs chevron above to view current GoDoc information for this package diff --git a/testconfig.json b/testconfig.json new file mode 100644 index 00000000..88daba0f --- /dev/null +++ b/testconfig.json @@ -0,0 +1,1068 @@ +{ + "Name": "Skynet", + "EncryptConfig": -1, + "GlobalHTTPTimeout": 15000000000, + "CurrencyConfig": { + "ForexProviders": [ + { + "Name": "CurrencyConverter", + "Enabled": true, + "Verbose": false, + "RESTPollingDelay": 600, + "APIKey": "", + "APIKeyLvl": -1, + "PrimaryProvider": true + }, + { + "Name": "CurrencyLayer", + "Enabled": false, + "Verbose": false, + "RESTPollingDelay": 600, + "APIKey": "Key", + "APIKeyLvl": -1, + "PrimaryProvider": false + }, + { + "Name": "Fixer", + "Enabled": false, + "Verbose": false, + "RESTPollingDelay": 600, + "APIKey": "Key", + "APIKeyLvl": -1, + "PrimaryProvider": false + }, + { + "Name": "OpenExchangeRates", + "Enabled": false, + "Verbose": false, + "RESTPollingDelay": 600, + "APIKey": "Key", + "APIKeyLvl": -1, + "PrimaryProvider": false + } + ], + "Cryptocurrencies": "BTC,LTC,ETH,XRP,NMC,NVC,PPC,XBT,DOGE,DASH", + "CurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "FiatDisplayCurrency": "USD" + }, + "Communications": { + "Slack": { + "Name": "Slack", + "Enabled": false, + "Verbose": false, + "TargetChannel": "general", + "VerificationToken": "testtest" + }, + "SMSGlobal": { + "Name": "SMSGlobal", + "Enabled": false, + "Verbose": false, + "Username": "Username", + "Password": "Password", + "Contacts": [ + { + "Name": "Bob", + "Number": "12345", + "Enabled": false + } + ] + }, + "SMTP": { + "Name": "SMTP", + "Enabled": false, + "Verbose": false, + "Host": "smtp.google.com", + "Port": "537", + "AccountName": "some", + "AccountPassword": "password", + "RecipientList": "lol123@gmail.com" + }, + "Telegram": { + "Name": "Telegram", + "Enabled": false, + "Verbose": false, + "VerificationToken": "testest" + } + }, + "PortfolioAddresses": { + "Addresses": [ + { + "Address": "1JCe8z4jJVNXSjohjM4i9Hh813dLCNx2Sy", + "CoinType": "BTC", + "Balance": 53000.01310358, + "Description": "" + }, + { + "Address": "3Nxwenay9Z8Lc9JBiywExpnEFiLp6Afp8v", + "CoinType": "BTC", + "Balance": 101848.28376405, + "Description": "" + }, + { + "Address": "LgY8ahfHRhvjVQC1zJnBhFMG5pCTMuKRqh", + "CoinType": "LTC", + "Balance": 0.03665026, + "Description": "" + }, + { + "Address": "0xb794f5ea0ba39494ce839613fffba74279579268", + "CoinType": "ETH", + "Balance": 0.25927504051326, + "Description": "" + } + ] + }, + "Webserver": { + "Enabled": false, + "AdminUsername": "admin", + "AdminPassword": "Password", + "ListenAddress": ":9050", + "WebsocketConnectionLimit": 0, + "WebsocketMaxAuthFailures": 0, + "WebsocketAllowInsecureOrigin": false + }, + "Exchanges": [ + { + "Name": "ANX", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "ATENC_GBP,ATENC_NZD,BTC_AUD,BTC_SGD,LTC_BTC,START_GBP,STR_BTC,XRP_BTC,ATENC_SGD,BTC_GBP,DOGE_BTC,OAX_ETH,START_AUD,START_JPY,ATENC_USD,BTC_EUR,GNT_ETH,START_EUR,ATENC_EUR,BTC_CAD,START_BTC,START_CAD,ATENC_HKD,ATENC_JPY,ETH_BTC,ETH_HKD,START_HKD,START_USD,ATENC_AUD,ETH_USD,START_SGD,ATENC_CAD,BTC_HKD,BTC_JPY,BTC_NZD,BTC_USD,START_NZD", + "EnabledPairs": "BTC_USD,BTC_HKD,BTC_EUR,BTC_CAD,BTC_AUD,BTC_SGD,BTC_JPY,BTC_GBP,BTC_NZD,LTC_BTC,DOG_EBTC,STR_BTC,XRP_BTC", + "BaseCurrencies": "USD,HKD,EUR,CAD,AUD,SGD,JPY,GBP,NZD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Binance", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "ETH-BTC,LTC-BTC,BNB-BTC,NEO-BTC,QTUM-ETH,EOS-ETH,SNT-ETH,BNT-ETH,BCC-BTC,GAS-BTC,BNB-ETH,BTC-USDT,ETH-USDT,HSR-BTC,OAX-ETH,DNT-ETH,MCO-ETH,ICN-ETH,MCO-BTC,WTC-BTC,WTC-ETH,LRC-BTC,LRC-ETH,QTUM-BTC,YOYO-BTC,OMG-BTC,OMG-ETH,ZRX-BTC,ZRX-ETH,STRAT-BTC,STRAT-ETH,SNGLS-BTC,SNGLS-ETH,BQX-BTC,BQX-ETH,KNC-BTC,KNC-ETH,FUN-BTC,FUN-ETH,SNM-BTC,SNM-ETH,NEO-ETH,IOTA-BTC,IOTA-ETH,LINK-BTC,LINK-ETH,XVG-BTC,XVG-ETH,SALT-BTC,SALT-ETH,MDA-BTC,MDA-ETH,MTL-BTC,MTL-ETH,SUB-BTC,SUB-ETH,EOS-BTC,SNT-BTC,ETC-ETH,ETC-BTC,MTH-BTC,MTH-ETH,ENG-BTC,ENG-ETH,DNT-BTC,ZEC-BTC,ZEC-ETH,BNT-BTC,AST-BTC,AST-ETH,DASH-BTC,DASH-ETH,OAX-BTC,ICN-BTC,BTG-BTC,BTG-ETH,EVX-BTC,EVX-ETH,REQ-BTC,REQ-ETH,VIB-BTC,VIB-ETH,HSR-ETH,TRX-BTC,TRX-ETH,POWR-BTC,POWR-ETH,ARK-BTC,ARK-ETH,YOYO-ETH,XRP-BTC,XRP-ETH,MOD-BTC,MOD-ETH,ENJ-BTC,ENJ-ETH,STORJ-BTC,STORJ-ETH,BNB-USDT,VEN-BNB,YOYO-BNB,POWR-BNB,VEN-BTC,VEN-ETH,KMD-BTC,KMD-ETH,NULS-BNB,RCN-BTC,RCN-ETH,RCN-BNB,NULS-BTC,NULS-ETH,RDN-BTC,RDN-ETH,RDN-BNB,XMR-BTC,XMR-ETH,DLT-BNB,WTC-BNB,DLT-BTC,DLT-ETH,AMB-BTC,AMB-ETH,AMB-BNB,BCC-ETH,BCC-USDT,BCC-BNB,BAT-BTC,BAT-ETH,BAT-BNB,BCPT-BTC,BCPT-ETH,BCPT-BNB,ARN-BTC,ARN-ETH,GVT-BTC,GVT-ETH,CDT-BTC,CDT-ETH,GXS-BTC,GXS-ETH,NEO-USDT,NEO-BNB,POE-BTC,POE-ETH,QSP-BTC,QSP-ETH,QSP-BNB,BTS-BTC,BTS-ETH,BTS-BNB,XZC-BTC,XZC-ETH,XZC-BNB,LSK-BTC,LSK-ETH,LSK-BNB,TNT-BTC,TNT-ETH,FUEL-BTC,FUEL-ETH,MANA-BTC,MANA-ETH,BCD-BTC,BCD-ETH,DGD-BTC,DGD-ETH,IOTA-BNB,ADX-BTC,ADX-ETH,ADX-BNB,ADA-BTC,ADA-ETH,PPT-BTC,PPT-ETH,CMT-BTC,CMT-ETH,CMT-BNB,XLM-BTC,XLM-ETH,XLM-BNB,CND-BTC,CND-ETH,CND-BNB,LEND-BTC,LEND-ETH,WABI-BTC,WABI-ETH,WABI-BNB,LTC-ETH,LTC-USDT,LTC-BNB,TNB-BTC,TNB-ETH,WAVES-BTC,WAVES-ETH,WAVES-BNB,GTO-BTC,GTO-ETH,GTO-BNB,ICX-BTC,ICX-ETH,ICX-BNB,OST-BTC,OST-ETH,OST-BNB,ELF-BTC,ELF-ETH,AION-BTC,AION-ETH,AION-BNB,NEBL-BTC,NEBL-ETH,NEBL-BNB,BRD-BTC,BRD-ETH,BRD-BNB,MCO-BNB,EDO-BTC,EDO-ETH,WINGS-BTC,WINGS-ETH,NAV-BTC,NAV-ETH,NAV-BNB,LUN-BTC,LUN-ETH,TRIG-BTC,TRIG-ETH,TRIG-BNB,APPC-BTC,APPC-ETH,APPC-BNB,VIBE-BTC,VIBE-ETH,RLC-BTC,RLC-ETH,RLC-BNB,INS-BTC,INS-ETH,PIVX-BTC,PIVX-ETH,PIVX-BNB,IOST-BTC,IOST-ETH,CHAT-BTC,CHAT-ETH,STEEM-BTC,STEEM-ETH,STEEM-BNB,NANO-BTC,NANO-ETH,NANO-BNB,VIA-BTC,VIA-ETH,VIA-BNB,BLZ-BTC,BLZ-ETH,BLZ-BNB,AE-BTC,AE-ETH,AE-BNB,RPX-BTC,RPX-ETH,RPX-BNB,NCASH-BTC,NCASH-ETH,NCASH-BNB,POA-BTC,POA-ETH,POA-BNB,ZIL-BTC,ZIL-ETH,ZIL-BNB,ONT-BTC,ONT-ETH,ONT-BNB,STORM-BTC,STORM-ETH,STORM-BNB,QTUM-BNB,QTUM-USDT,XEM-BTC,XEM-ETH,XEM-BNB,WAN-BTC,WAN-ETH,WAN-BNB,WPR-BTC,WPR-ETH,QLC-BTC,QLC-ETH,SYS-BTC,SYS-ETH,SYS-BNB,QLC-BNB,GRS-BTC,GRS-ETH,ADA-USDT,ADA-BNB,CLOAK-BTC,CLOAK-ETH,GNT-BTC,GNT-ETH,GNT-BNB,LOOM-BTC,LOOM-ETH,LOOM-BNB,XRP-USDT,BCN-BTC,BCN-ETH,BCN-BNB,REP-BTC,REP-ETH,REP-BNB,TUSD-BTC,TUSD-ETH,TUSD-BNB,ZEN-BTC,ZEN-ETH,ZEN-BNB,SKY-BTC,SKY-ETH,SKY-BNB,EOS-USDT,EOS-BNB,CVC-BTC,CVC-ETH,CVC-BNB,THETA-BTC,THETA-ETH,THETA-BNB,XRP-BNB,TUSD-USDT,IOTA-USDT,XLM-USDT,IOTX-BTC,IOTX-ETH,QKC-BTC,QKC-ETH,AGI-BTC,AGI-ETH,AGI-BNB,NXS-BTC,NXS-ETH,NXS-BNB,ENJ-BNB,DATA-BTC,DATA-ETH,ONT-USDT,TRX-USDT,ETC-USDT,ETC-BNB,ICX-USDT,SC-BTC,SC-ETH,SC-BNB,NPXS-BTC,NPXS-ETH,VEN-USDT,KEY-BTC,KEY-ETH,NAS-BTC,NAS-ETH,NAS-BNB,MFT-BTC,MFT-ETH,MFT-BNB,DENT-BTC,DENT-ETH", + "EnabledPairs": "BTC-USDT,ETH-USDT,BCC-USDT,LTC-USDT,ADA-USDT,XRP-USDT,VEN-USDT", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Bitfinex", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTCUSD,LTCUSD,LTCBTC,ETHUSD,ETHBTC,ETCBTC,ETCUSD,RRTUSD,RRTBTC,ZECUSD,ZECBTC,XMRUSD,XMRBTC,DSHUSD,DSHBTC,BTCEUR,BTCJPY,XRPUSD,XRPBTC,IOTUSD,IOTBTC,IOTETH,EOSUSD,EOSBTC,EOSETH,SANUSD,SANBTC,SANETH,OMGUSD,OMGBTC,OMGETH,BCHUSD,BCHBTC,BCHETH,NEOUSD,NEOBTC,NEOETH,ETPUSD,ETPBTC,ETPETH,QTMUSD,QTMBTC,QTMETH,AVTUSD,AVTBTC,AVTETH,EDOUSD,EDOBTC,EDOETH,BTGUSD,BTGBTC,DATUSD,DATBTC,DATETH,QSHUSD,QSHBTC,QSHETH,YYWUSD,YYWBTC,YYWETH,GNTUSD,GNTBTC,GNTETH,SNTUSD,SNTBTC,SNTETH,IOTEUR,BATUSD,BATBTC,BATETH,MNAUSD,MNABTC,MNAETH,FUNUSD,FUNBTC,FUNETH,ZRXUSD,ZRXBTC,ZRXETH,TNBUSD,TNBBTC,TNBETH,SPKUSD,SPKBTC,SPKETH,TRXUSD,TRXBTC,TRXETH,RCNUSD,RCNBTC,RCNETH,RLCUSD,RLCBTC,RLCETH,AIDUSD,AIDBTC,AIDETH,SNGUSD,SNGBTC,SNGETH,REPUSD,REPBTC,REPETH,ELFUSD,ELFBTC,ELFETH,BTCGBP,ETHEUR,ETHJPY,ETHGBP,NEOEUR,NEOJPY,NEOGBP,EOSEUR,EOSJPY,EOSGBP,IOTJPY,IOTGBP,IOSUSD,IOSBTC,IOSETH,AIOUSD,AIOBTC,AIOETH,REQUSD,REQBTC,REQETH,RDNUSD,RDNBTC,RDNETH,LRCUSD,LRCBTC,LRCETH,WAXUSD,WAXBTC,WAXETH,DAIUSD,DAIBTC,DAIETH,CFIUSD,CFIBTC,CFIETH,AGIUSD,AGIBTC,AGIETH,BFTUSD,BFTBTC,BFTETH,MTNUSD,MTNBTC,MTNETH,ODEUSD,ODEBTC,ODEETH,ANTUSD,ANTBTC,ANTETH,DTHUSD,DTHBTC,DTHETH,MITUSD,MITBTC,MITETH,STJUSD,STJBTC,STJETH,XLMUSD,XLMEUR,XLMJPY,XLMGBP,XLMBTC,XLMETH,XVGUSD,XVGEUR,XVGJPY,XVGGBP,XVGBTC,XVGETH,BCIUSD,BCIBTC,MKRUSD,MKRBTC,MKRETH,VENUSD,VENBTC,VENETH,KNCUSD,KNCBTC,KNCETH,POAUSD,POABTC,POAETH,LYMUSD,LYMBTC,LYMETH,UTKUSD,UTKBTC,UTKETH,VEEUSD,VEEBTC,VEEETH,DADUSD,DADBTC,DADETH,ORSUSD,ORSBTC,ORSETH,AUCUSD,AUCBTC,AUCETH,POYUSD,POYBTC,POYETH,FSNUSD,FSNBTC,FSNETH,CBTUSD,CBTBTC,CBTETH,ZCNUSD,ZCNBTC,ZCNETH,SENUSD,SENBTC,SENETH,NCAUSD,NCABTC,NCAETH,CNDUSD,CNDBTC,CNDETH,CTXUSD,CTXBTC,CTXETH,PAIUSD,PAIBTC,SEEUSD,SEEBTC,SEEETH,ESSUSD,ESSBTC,ESSETH,ATMUSD,ATMBTC,ATMETH,HOTUSD,HOTBTC,HOTETH,DTAUSD,DTABTC,DTAETH,IQXUSD,IQXBTC,IQXEOS", + "EnabledPairs": "BTCUSD,LTCUSD,LTCBTC,ETHUSD,ETHBTC", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Bitflyer", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTC_JPY,FXBTC_JPY,ETH_BTC,BCH_BTC", + "EnabledPairs": "BTC_JPY,ETH_BTC,BCH_BTC", + "BaseCurrencies": "JPY", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": false, + "PairsLastUpdated": 1529037622, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Bithumb", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "ClientID": "ClientID", + "AvailablePairs": "PAYKRW,WAXKRW,POWRKRW,AEKRW,KNCKRW,BTGKRW,GTOKRW,BCHKRW,MCOKRW,XRPKRW,ETCKRW,ETHKRW,ZECKRW,SNTKRW,HSRKRW,ELFKRW,XMRKRW,MITHKRW,DASHKRW,STRATKRW,VENKRW,ZILKRW,LRCKRW,QTUMKRW,ZRXKRW,OMGKRW,ADAKRW,ICXKRW,TRXKRW,ETHOSKRW,REPKRW,STEEMKRW,GNTKRW,LTCKRW,BTCKRW,EOSKRW,XEMKRW", + "EnabledPairs": "BTCKRW,ETHKRW,DASHKRW,LTCKRW,ETCKRW,XRPKRW,BCHKRW,XMRKRW,ZECKRW,QTUMKRW,BTGKRW,EOSKRW", + "BaseCurrencies": "KRW", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Index": "KRW" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Bitstamp", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "ClientID": "ClientID", + "AvailablePairs": "LTCUSD,ETHUSD,XRPEUR,BCHUSD,BCHEUR,BTCEUR,XRPBTC,EURUSD,BCHBTC,LTCEUR,BTCUSD,LTCBTC,XRPUSD,ETHBTC,ETHEUR", + "EnabledPairs": "BTCUSD,BTCEUR,EURUSD,XRPUSD,XRPEUR", + "BaseCurrencies": "USD,EUR", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Bittrex", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTC-LTC,BTC-DOGE,BTC-VTC,BTC-PPC,BTC-FTC,BTC-RDD,BTC-NXT,BTC-DASH,BTC-POT,BTC-BLK,BTC-EMC2,BTC-XMY,BTC-AUR,BTC-EFL,BTC-GLD,BTC-SLR,BTC-PTC,BTC-GRS,BTC-NLG,BTC-RBY,BTC-XWC,BTC-MONA,BTC-THC,BTC-ENRG,BTC-ERC,BTC-VRC,BTC-CURE,BTC-XMR,BTC-CLOAK,BTC-KORE,BTC-XDN,BTC-TRUST,BTC-NAV,BTC-XST,BTC-VIA,BTC-PINK,BTC-IOC,BTC-CANN,BTC-SYS,BTC-NEOS,BTC-DGB,BTC-BURST,BTC-EXCL,BTC-BITS,BTC-DOPE,BTC-BLOCK,BTC-ABY,BTC-BYC,BTC-XMG,BTC-BAY,BTC-SPR,BTC-VTR,BTC-XRP,BTC-GAME,BTC-COVAL,BTC-NXS,BTC-XCP,BTC-BITB,BTC-GEO,BTC-FLDC,BTC-GRC,BTC-FLO,BTC-NBT,BTC-MUE,BTC-XEM,BTC-CLAM,BTC-DMD,BTC-GAM,BTC-SPHR,BTC-OK,BTC-AEON,BTC-ETH,BTC-TX,BTC-BCY,BTC-EXP,BTC-OMNI,BTC-AMP,BTC-XLM,USDT-BTC,BTC-RVR,BTC-EMC,BTC-FCT,BTC-EGC,BTC-SLS,BTC-RADS,BTC-DCR,BTC-BSD,BTC-XVG,BTC-PIVX,BTC-MEME,BTC-STEEM,BTC-2GIVE,BTC-LSK,BTC-BRK,BTC-WAVES,BTC-LBC,BTC-SBD,BTC-BRX,BTC-ETC,ETH-ETC,BTC-STRAT,BTC-UNB,BTC-SYNX,BTC-EBST,BTC-VRM,BTC-SEQ,BTC-REP,BTC-SHIFT,BTC-ARDR,BTC-XZC,BTC-NEO,BTC-ZEC,BTC-ZCL,BTC-IOP,BTC-GOLOS,BTC-UBQ,BTC-KMD,BTC-GBG,BTC-SIB,BTC-ION,BTC-LMC,BTC-QWARK,BTC-CRW,BTC-SWT,BTC-MLN,BTC-ARK,BTC-DYN,BTC-TKS,BTC-MUSIC,BTC-DTB,BTC-INCNT,BTC-GBYTE,BTC-GNT,BTC-NXC,BTC-EDG,BTC-MORE,ETH-GNT,ETH-REP,USDT-ETH,BTC-WINGS,BTC-RLC,BTC-GNO,BTC-GUP,BTC-LUN,ETH-GUP,ETH-RLC,ETH-LUN,ETH-GNO,BTC-HMQ,BTC-ANT,ETH-ANT,BTC-SC,ETH-BAT,BTC-BAT,BTC-ZEN,BTC-QRL,BTC-CRB,ETH-MORE,BTC-PTOY,BTC-CFI,ETH-CFI,BTC-BNT,ETH-BNT,BTC-NMR,ETH-LTC,ETH-XRP,BTC-SNT,ETH-SNT,BTC-DCT,BTC-XEL,BTC-MCO,ETH-MCO,BTC-ADT,ETH-ADT,BTC-PAY,ETH-PAY,BTC-STORJ,BTC-ADX,ETH-ADX,ETH-DASH,ETH-SC,ETH-ZEC,USDT-ZEC,USDT-LTC,USDT-ETC,USDT-XRP,BTC-OMG,ETH-OMG,BTC-CVC,ETH-CVC,BTC-PART,BTC-QTUM,ETH-QTUM,ETH-XMR,ETH-XEM,ETH-XLM,ETH-NEO,USDT-XMR,USDT-DASH,ETH-BCH,USDT-BCH,BTC-BCH,BTC-DNT,USDT-NEO,ETH-WAVES,ETH-STRAT,ETH-DGB,ETH-FCT,USDT-OMG,BTC-ADA,BTC-MANA,ETH-MANA,BTC-SALT,ETH-SALT,BTC-TIX,ETH-TIX,BTC-RCN,ETH-RCN,BTC-VIB,ETH-VIB,BTC-MER,BTC-POWR,ETH-POWR,BTC-BTG,ETH-BTG,USDT-BTG,ETH-ADA,BTC-ENG,ETH-ENG,USDT-ADA,USDT-XVG,USDT-NXT,BTC-UKG,ETH-UKG,BTC-IGNIS,BTC-SRN,ETH-SRN,BTC-WAX,ETH-WAX,BTC-ZRX,ETH-ZRX,BTC-VEE,ETH-VEE,BTC-BCPT,ETH-BCPT,BTC-TRX,ETH-TRX,BTC-TUSD,BTC-LRC,ETH-LRC,ETH-TUSD,BTC-UP,ETH-UP,BTC-DMT,ETH-DMT,USDT-TUSD,BTC-POLY,ETH-POLY,BTC-PRO,ETH-PRO,USDT-SC,USDT-TRX,BTC-BLT,ETH-BLT,BTC-STORM,ETH-STORM,BTC-AID,ETH-AID,BTC-NGC,ETH-NGC,BTC-GTO,ETH-GTO,USDT-DCR,BTC-OCN,ETH-OCN,USD-BTC,USD-USDT,USD-TUSD,BTC-TUBE,BTC-CBC,BTC-CMCT,USD-ETH,BTC-NLC2,BTC-BKX,BTC-MFT,BTC-LOOM", + "EnabledPairs": "USDT-BTC", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "BTCC", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTCUSD", + "EnabledPairs": "BTCUSD", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": false + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "BTC Markets", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "LTCAUD,BTCAUD,ETHAUD,ETCAUD,XRPAUD,BCHAUD,LTCBTC,ETHBTC,ETCBTC,XRPBTC,BCHBTC", + "EnabledPairs": "LTCAUD,BTCAUD", + "BaseCurrencies": "AUD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "COINUT", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "ClientID": "ClientID", + "AvailablePairs": "LTCUSDT,BTCSGD,ETHUSDT,LTCSGD,ETHBTC,ETHSGD,LTCBTC,XMRBTC,ZECBTC,BTCUSD,ETCBTC,ETCUSDT,XMRUSDT,ETHLTC,LTCUSD,USDTUSD,XMRLTC,ZECLTC,ZECUSDT,BTCUSDT,ETCLTC,USDTSGD", + "EnabledPairs": "LTCBTC,ETCBTC,ETHBTC", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "EXMO", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "STQ_EUR,ZEC_USD,XRP_USD,XLM_BTC,XLM_USD,ETC_RUB,BCH_RUB,ETH_USD,ZEC_RUB,WAVES_BTC,BTC_USD,DXT_BTC,EOS_BTC,XRP_RUB,BTC_UAH,STQ_BTC,ETC_USD,ETH_UAH,BTC_USDT,ETH_USDT,HBZ_USD,LTC_BTC,XMR_EUR,LTC_EUR,BTG_USD,DASH_RUB,ETH_BTC,ZEC_EUR,KICK_BTC,DASH_USD,ETH_LTC,ETH_RUB,USDT_USD,WAVES_RUB,BCH_ETH,ETH_PLN,ETC_BTC,BTCZ_BTC,STQ_RUB,EOS_USD,BTC_PLN,LTC_USD,KICK_ETH,DXT_USD,HBZ_ETH,ETH_EUR,XMR_USD,USDT_RUB,USD_RUB,BCH_USD,DASH_BTC,LTC_RUB,DOGE_BTC,BCH_BTC,ZEC_BTC,XRP_BTC,BTC_EUR,BTG_BTC,HBZ_BTC,XMR_BTC,BTC_RUB,XLM_RUB,STQ_USD", + "EnabledPairs": "BTC_USD,LTC_USD", + "BaseCurrencies": "USD,EUR,RUB,PLN,UAH", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_", + "Separator": "," + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "CoinbasePro", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "ClientID": "ClientID", + "AvailablePairs": "BCHBTC,BCHUSD,BTCEUR,BTCGBP,BTCUSD,ETHBTC,ETHEUR,ETHUSD,LTCBTC,LTCEUR,LTCUSD,BCHEUR", + "EnabledPairs": "BTCUSD,BTCGBP,BTCEUR", + "BaseCurrencies": "USD,GBP,EUR", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Gemini", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTCUSD,ETHBTC,ETHUSD,ZECUSD,ZECBTC,ZECETH", + "EnabledPairs": "BTCUSD", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "HitBTC", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BCN-BTC,BTC-USD,DASH-BTC,DOGE-BTC,DOGE-USD,DSH-BTC,EMC-BTC,ETH-BTC,FCN-BTC,LSK-BTC,LTC-BTC,LTC-USD,NXT-BTC,SBD-BTC,SC-BTC,STEEM-BTC,XDN-BTC,XEM-BTC,XMR-BTC,ARDR-BTC,ZEC-BTC,WAVES-BTC,MAID-BTC,AMP-BTC,BUS-BTC,DGD-BTC,ICN-BTC,SNGLS-BTC,1ST-BTC,TRST-BTC,TIME-BTC,GNO-BTC,REP-BTC,XMR-USD,DASH-USD,ETH-USD,NXT-USD,ZRC-BTC,BOS-BTC,DCT-BTC,ANT-BTC,AEON-BTC,GUP-BTC,PLU-BTC,LUN-BTC,TAAS-BTC,NXC-BTC,EDG-BTC,RLC-BTC,SWT-BTC,TKN-BTC,WINGS-BTC,XAUR-BTC,AE-BTC,PTOY-BTC,ZEC-USD,XEM-USD,BCN-USD,XDN-USD,MAID-USD,ETC-BTC,ETC-USD,CFI-BTC,PLBT-BTC,BNT-BTC,XDNCO-BTC,FYN-ETH,SNM-BTC,SNM-ETH,SNT-ETH,CVC-USD,PAY-ETH,OAX-ETH,OMG-ETH,BQX-ETH,XTZ-BTC,DICE-BTC,CFI-ETH,PTOY-ETH,1ST-ETH,XAUR-ETH,TAAS-ETH,TIME-ETH,DICE-ETH,SWT-ETH,XMR-ETH,ETC-ETH,DASH-ETH,ZEC-ETH,PLU-ETH,GNO-ETH,XRP-BTC,NET-ETH,STRAT-USD,STRAT-BTC,SNC-ETH,ADX-ETH,BET-ETH,EOS-ETH,DENT-ETH,SAN-ETH,EOS-BTC,EOS-USD,MNE-BTC,MSP-ETH,DDF-ETH,XTZ-ETH,XTZ-USD,UET-ETH,MYB-ETH,SUR-ETH,IXT-ETH,PLR-ETH,TIX-ETH,NDC-ETH,PRO-ETH,AVT-ETH,COSS-ETH,EVX-USD,DLT-BTC,BNT-ETH,BNT-USD,QAU-BTC,QAU-ETH,MANA-USD,DNT-BTC,FYP-BTC,OPT-BTC,TNT-ETH,IFT-BTC,STX-BTC,STX-ETH,STX-USD,TNT-USD,TNT-BTC,CAT-BTC,CAT-ETH,CAT-USD,BCH-BTC,BCH-ETH,BCH-USD,ENG-ETH,XUC-USD,SNC-BTC,SNC-USD,OAX-USD,OAX-BTC,BAS-ETH,ZRX-BTC,ZRX-ETH,ZRX-USD,RVT-BTC,ICOS-BTC,ICOS-ETH,ICOS-USD,PPC-BTC,PPC-USD,QTUM-ETH,VERI-BTC,VERI-ETH,VERI-USD,IGNIS-ETH,PRG-BTC,PRG-ETH,PRG-USD,BMC-BTC,BMC-ETH,BMC-USD,CND-BTC,CND-ETH,CND-USD,SKIN-BTC,EMGO-BTC,EMGO-USD,CDT-ETH,CDT-USD,FUN-BTC,FUN-ETH,FUN-USD,HVN-BTC,HVN-ETH,FUEL-BTC,FUEL-ETH,FUEL-USD,POE-BTC,POE-ETH,MCAP-BTC,AIR-BTC,AIR-ETH,AIR-USD,AMB-USD,AMB-ETH,AMB-BTC,NTO-BTC,ICO-BTC,PING-BTC,GAME-BTC,TKR-ETH,HPC-BTC,PPT-ETH,MTH-BTC,MTH-ETH,WMGO-BTC,WMGO-USD,LRC-BTC,LRC-ETH,ICX-BTC,ICX-ETH,NEO-BTC,NEO-ETH,NEO-USD,CSNO-BTC,ORME-BTC,ICX-USD,PIX-BTC,PIX-ETH,IND-ETH,KICK-BTC,YOYOW-BTC,MIPS-BTC,CDT-BTC,XVG-BTC,XVG-ETH,XVG-USD,DGB-BTC,DGB-ETH,DGB-USD,DCN-BTC,DCN-ETH,DCN-USD,CCT-ETH,EBET-ETH,VIBE-BTC,VOISE-BTC,ENJ-BTC,ENJ-ETH,ENJ-USD,ZSC-BTC,ZSC-ETH,ZSC-USD,ETBS-BTC,TRX-BTC,TRX-ETH,TRX-USD,VEN-BTC,VEN-ETH,VEN-USD,ART-BTC,EVX-BTC,EVX-ETH,QVT-ETH,EBTCOLD-BTC,EBTCOLD-ETH,EBTCOLD-USD,BKB-BTC,EXN-BTC,TGT-BTC,ATS-ETH,BMT-BTC,BMT-ETH,SUB-BTC,SUB-ETH,SUB-USD,WTC-BTC,CNX-BTC,ATB-BTC,ATB-ETH,ATB-USD,ODN-BTC,BTM-BTC,BTM-ETH,BTM-USD,B2X-BTC,B2X-ETH,B2X-USD,ATM-BTC,ATM-ETH,ATM-USD,LIFE-BTC,VIB-BTC,VIB-ETH,VIB-USD,DRT-ETH,STU-USD,OMG-BTC,PAY-BTC,COSS-BTC,PPT-BTC,SNT-BTC,BTG-BTC,BTG-ETH,BTG-USD,SMART-BTC,SMART-ETH,SMART-USD,XUC-ETH,XUC-BTC,CL-BTC,CL-ETH,CL-USD,LA-ETH,CLD-BTC,CLD-ETH,CLD-USD,EDO-BTC,EDO-ETH,EDO-USD,HGT-ETH,POLL-BTC,IXT-BTC,ATS-BTC,SCL-BTC,ATL-BTC,EBTC-BTC,EBTC-ETH,EBTC-USD,ETP-BTC,ETP-ETH,ETP-USD,OTX-BTC,CDX-ETH,DRPU-BTC,NEBL-BTC,NEBL-ETH,HAC-BTC,CTX-BTC,CTX-ETH,ELE-BTC,ARN-BTC,ARN-ETH,STU-BTC,STU-ETH,GVT-ETH,INDI-BTC,BTX-BTC,LTC-ETH,BCN-ETH,MAID-ETH,NXT-ETH,STRAT-ETH,XDN-ETH,XEM-ETH,PLR-BTC,SUR-BTC,BQX-BTC,DOGE-ETH,ITS-BTC,AMM-BTC,AMM-ETH,AMM-USD,DBIX-BTC,PRE-BTC,KBR-BTC,TBT-BTC,ERO-BTC,SMS-BTC,SMS-ETH,SMS-USD,ZAP-BTC,DOV-BTC,DOV-ETH,DRPU-ETH,OTN-BTC,XRP-ETH,XRP-USD,HSR-BTC,LEND-BTC,LEND-ETH,SPF-BTC,SPF-ETH,SBTC-BTC,SBTC-ETH,WRC-BTC,WRC-ETH,WRC-USD,LOC-BTC,LOC-ETH,LOC-USD,SWFTC-BTC,SWFTC-ETH,SWFTC-USD,STAR-ETH,SBTC-USD,STORM-BTC,DIM-ETH,DIM-USD,DIM-BTC,NGC-BTC,NGC-ETH,NGC-USD,EMC-ETH,EMC-USD,MCO-BTC,MCO-ETH,MCO-USD,MANA-ETH,MANA-BTC,ECH-BTC,CPAY-ETH,DATA-BTC,DATA-ETH,DATA-USD,UTT-BTC,UTT-ETH,UTT-USD,KMD-BTC,KMD-ETH,KMD-USD,QTUM-USD,QTUM-BTC,SNT-USD,OMG-USD,EKO-BTC,EKO-ETH,ADX-BTC,ADX-USD,LSK-ETH,LSK-USD,PLR-USD,SUR-USD,BQX-USD,DRT-USD,REP-ETH,REP-USD,TIO-BTC,TIO-ETH,TIO-USD,WAX-BTC,WAX-ETH,WAX-USD,EET-BTC,EET-ETH,EET-USD,C20-BTC,C20-ETH,IDH-BTC,IDH-ETH,IPL-BTC,COV-BTC,COV-ETH,SENT-BTC,SENT-ETH,SENT-USD,SMT-BTC,SMT-ETH,SMT-USD,CAS-BTC,CAS-ETH,CAS-USD,CHAT-BTC,CHAT-ETH,CHAT-USD,GRMD-BTC,AVH-BTC,TRAC-ETH,JNT-ETH,PCL-BTC,PCL-ETH,CLOUT-BTC,UTK-BTC,UTK-ETH,UTK-USD,GNX-ETH,CHSB-BTC,CHSB-ETH,AVH-ETH,DAY-BTC,DAY-ETH,DAY-USD,NEU-BTC,NEU-ETH,NEU-USD,AVH-USD,CLOUT-ETH,CLOUT-USD,TAU-BTC,MEK-BTC,FLP-BTC,FLP-ETH,FLP-USD,R-BTC,R-ETH,EKO-USD,BCPT-ETH,BCPT-USD,PKT-BTC,PKT-ETH,WLK-BTC,WLK-ETH,WLK-USD,EVN-BTC,CPG-BTC,CPG-ETH,BPTN-BTC,BPTN-ETH,BPTN-USD,BETR-BTC,BETR-ETH,ARCT-BTC,ARCT-USD,DBET-BTC,DBET-ETH,DBET-USD,RNTB-ETH,HAND-ETH,HAND-USD,BEZ-BTC,BEZ-ETH,BEZ-USD,ACO-ETH,CTE-BTC,CTE-ETH,CTE-USD,UTNP-BTC,UTNP-ETH,UTNP-USD,CPY-BTC,CPY-ETH,CHP-ETH,BCPT-BTC,ACT-BTC,ACT-ETH,ACT-USD,HIRE-ETH,ADA-BTC,ADA-ETH,ADA-USD,SIG-BTC,RPM-BTC,RPM-ETH,MTX-BTC,MTX-ETH,MTX-USD,BGG-BTC,BGG-ETH,BGG-USD,SETH-ETH,WIZ-BTC,WIZ-ETH,WIZ-USD,DADI-BTC,DADI-ETH,BDG-ETH,DATX-BTC,DATX-ETH,TRUE-BTC,DRG-BTC,DRG-ETH,BANCA-BTC,BANCA-ETH,ZAP-ETH,ZAP-USD,AUTO-BTC,NOAH-BTC,SOC-BTC,WILD-BTC,INSUR-BTC,INSUR-ETH,OCN-BTC,OCN-ETH,STQ-BTC,STQ-ETH,XLM-BTC,XLM-ETH,XLM-USD,IOTA-BTC,IOTA-ETH,IOTA-USD,DRT-BTC,MLD-BTC,MLD-ETH,MLD-USD,BETR-USD,CGC-ETH,ERT-BTC,CRPT-BTC,CRPT-USD,MESH-BTC,MESH-ETH,MESH-USD,HLW-ETH,IHT-BTC,IHT-ETH,IHT-USD,SCC-BTC,YCC-BTC,DAN-BTC,TEL-BTC,TEL-ETH,BUBO-BTC,BUBO-ETH,BUBO-USD,VIT-BTC,VIT-ETH,VIT-USD,NCT-BTC,NCT-ETH,NCT-USD,AXP-BTC,AXP-ETH,BMH-BTC,BANCA-USD,NOAH-ETH,NOAH-USD,HQX-BTC,LDC-BTC,XMO-BTC,XMO-USD,XMO-ETH,BERRY-BTC,BERRY-ETH,BERRY-USD,BSTN-BTC,BSTN-ETH,BSTN-USD,GBX-BTC,GBX-ETH,GBX-USD,SHIP-BTC,SHIP-ETH,NANO-BTC,NANO-ETH,NANO-USD,LNC-BTC,UNC-BTC,UNC-ETH,RPX-BTC,RPX-ETH,RPX-USD,KIN-ETH,ARDR-USD,DAXT-BTC,DAXT-ETH,FOTA-ETH,FOTA-BTC,SETH-BTC,CVT-BTC,CVT-ETH,CVT-USD,STQ-USD,GNT-BTC,GNT-ETH,GNT-USD,ADH-BTC,ADH-ETH,BBC-BTC,BBC-ETH,GET-BTC,MITH-BTC,MITH-ETH,MITH-USD,SUNC-ETH,DADI-USD,TKY-BTC,ACAT-BTC,ACAT-ETH,ACAT-USD,BTX-USD,TCN-BTC,VIO-ETH,WIKI-BTC,WIKI-ETH,WIKI-USD,ONT-BTC,ONT-ETH,ONT-USD,FTX-BTC,FTX-ETH,FREC-BTC,NAVI-BTC,FREC-ETH,FREC-USD,VME-ETH,NAVI-ETH,BTCP-BTC,LND-ETH,CSM-BTC,NANJ-BTC,MTC-BTC,MTC-ETH,MTC-USD,NTK-BTC,NTK-ETH,NTK-USD,AUC-BTC,AUC-ETH,CMCT-BTC,CMCT-ETH,CMCT-USD,MAN-BTC,MAN-ETH,MAN-USD,HIRE-BTC,TKA-BTC,TKA-ETH,TKA-USD,PNT-BTC,PNT-ETH,FXT-BTC,NEXO-BTC,CHX-BTC,CHX-ETH,CHX-USD,PAT-BTC,PAT-ETH,XMC-BTC,EJOY-BTC,EJOY-ETH,EJOY-USD,FXT-ETH,HERO-BTC,HERO-ETH,XMC-ETH,XMC-USD,STAK-BTC,STAK-ETH,FDZ-BTC,FDZ-ETH,FDZ-USD,SPD-BTC,SPD-ETH,LUC-BTC,MITX-BTC,TIV-BTC,B2G-BTC,B2G-USD,ZPT-BTC,ZPT-ETH,HBZ-BTC,FACE-BTC,FACE-ETH,HBZ-ETH,HBZ-USD,ZPT-USD,MORPH-BTC,MORPH-ETH,MORPH-USD,EBKC-BTC,CPT-BTC,PAT-USD,HTML-BTC,HTML-ETH,MITX-ETH,JOT-BTC,JBC-BTC,JBC-ETH,BTS-BTC,BNK-BTC,KBC-BTC,KBC-ETH,BNK-ETH,BNK-USD,TIV-ETH,TIV-USD,LUC-ETH,LUC-USD,CSM-ETH,CSM-USD,INK-BTC,SPC-BTC,IOST-BTC,INK-ETH,INK-USD,SPC-ETH,SPC-USD,CBC-BTC,IOST-USD,COIN-BTC,ZIL-BTC,COIN-USD,COIN-ETH,PMNT-BTC,ABYSS-BTC,ABYSS-ETH,ZIL-USD,BCI-BTC,CBC-ETH,CBC-USD,PITCH-BTC,PITCH-ETH,HTML-USD,TDS-BTC,TDS-ETH,TDS-USD,SBD-ETH,SBD-USD,DPN-BTC,UUU-BTC,UUU-ETH,XBP-BTC,KRM-USD,CLN-BTC,IVY-BTC,IVY-ETH,TTU-BTC,TTU-ETH,TTU-USD,CLN-ETH,DOR-BTC,DOR-ETH,DOR-USD,ELEC-BTC,ELEC-ETH,ELEC-USD,QNTU-BTC,QNTU-ETH,QNTU-USD,IPL-ETH,IPL-USD,CENNZ-BTC,BTCP-ETH,BTCP-USD,CENNZ-ETH,SWM-BTC,MXM-BTC,MXM-ETH,SPF-USD,LCC-BTC,HGT-BTC,BTC-DAI,ETH-DAI,MKR-DAI,EOS-DAI,USD-DAI,ETH-TUSD,BTC-TUSD,LTC-TUSD,XMR-TUSD,ZRX-TUSD,NEO-TUSD,BCH-TUSD,USD-TUSD,MKR-BTC,MKR-ETH,MKR-USD,TUSD-DAI,NEO-DAI,LTC-DAI,XMR-DAI,BCH-DAI,XRP-DAI,NEXO-ETH,NEXO-USD,DWS-BTC,DWS-ETH,DWS-USD,APPC-BTC,APPC-ETH,APPC-USD,BIT-ETH,REX-BTC,REX-ETH,REX-USD,ELF-BTC,ELF-USD,CVCOIN-BTC,CVCOIN-ETH,CVCOIN-USD,HQX-ETH,HQX-USD,EBKC-ETH,EBKC-USD,EDG-ETH,EDG-USD", + "EnabledPairs": "BTC-USD", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Huobi", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "APIAuthPEMKey": "-----BEGIN EC PRIVATE KEY-----\nJUSTADUMMY\n-----END EC PRIVATE KEY-----\n", + "AvailablePairs": "BTC-USDT,BCH-USDT,ETH-USDT,ETC-USDT,LTC-USDT,EOS-USDT,XRP-USDT,OMG-USDT,DASH-USDT,ZEC-USDT,ADA-USDT,STEEM-USDT,IOTA-USDT,OCN-USDT,SOC-USDT,CTXC-USDT,ACT-USDT,BTM-USDT,BTS-USDT,ONT-USDT,IOST-USDT,HT-USDT,TRX-USDT,DTA-USDT,NEO-USDT,QTUM-USDT,SMT-USDT,ELA-USDT,VEN-USDT,THETA-USDT,SNT-USDT,ZIL-USDT,XEM-USDT,NAS-USDT,RUFF-USDT,HSR-USDT,LET-USDT,MDS-USDT,STORJ-USDT,ELF-USDT,ITC-USDT,CVC-USDT,GNT-USDT,XMR-BTC,BCH-BTC,ETH-BTC,LTC-BTC,ETC-BTC,EOS-BTC,OMG-BTC,XRP-BTC,DASH-BTC,ZEC-BTC,ADA-BTC,STEEM-BTC,IOTA-BTC,POLY-BTC,KAN-BTC,LBA-BTC,WAN-BTC,BFT-BTC,BTM-BTC,ONT-BTC,IOST-BTC,HT-BTC,TRX-BTC,SMT-BTC,ELA-BTC,WICC-BTC,OCN-BTC,ZLA-BTC,ABT-BTC,MTX-BTC,NAS-BTC,VEN-BTC,DTA-BTC,NEO-BTC,WAX-BTC,BTS-BTC,ZIL-BTC,THETA-BTC,CTXC-BTC,SRN-BTC,XEM-BTC,ICX-BTC,DGD-BTC,CHAT-BTC,WPR-BTC,LUN-BTC,SWFTC-BTC,SNT-BTC,MEET-BTC,YEE-BTC,ELF-BTC,LET-BTC,QTUM-BTC,LSK-BTC,ITC-BTC,SOC-BTC,QASH-BTC,MDS-BTC,EKO-BTC,TOPC-BTC,MTN-BTC,ACT-BTC,HSR-BTC,STK-BTC,STORJ-BTC,GNX-BTC,DBC-BTC,SNC-BTC,CMT-BTC,TNB-BTC,RUFF-BTC,QUN-BTC,ZRX-BTC,KNC-BTC,BLZ-BTC,PROPY-BTC,RPX-BTC,APPC-BTC,AIDOC-BTC,POWR-BTC,CVC-BTC,PAY-BTC,QSP-BTC,DAT-BTC,RDN-BTC,MCO-BTC,RCN-BTC,MANA-BTC,UTK-BTC,TNT-BTC,GAS-BTC,BAT-BTC,OST-BTC,LINK-BTC,GNT-BTC,MTL-BTC,EVX-BTC,REQ-BTC,ADX-BTC,AST-BTC,ENG-BTC,SALT-BTC,EDU-BTC,WTC-BTC,BIFI-BTC,BCX-BTC,BCD-BTC,SBTC-BTC,BTG-BTC,XMR-ETH,EOS-ETH,OMG-ETH,IOTA-ETH,ADA-ETH,STEEM-ETH,POLY-ETH,KAN-ETH,LBA-ETH,WAN-ETH,BFT-ETH,ZRX-ETH,AST-ETH,KNC-ETH,ONT-ETH,HT-ETH,BTM-ETH,IOST-ETH,SMT-ETH,ELA-ETH,TRX-ETH,ABT-ETH,NAS-ETH,OCN-ETH,WICC-ETH,ZIL-ETH,CTXC-ETH,ZLA-ETH,WPR-ETH,DTA-ETH,MTX-ETH,THETA-ETH,SRN-ETH,VEN-ETH,BTS-ETH,WAX-ETH,HSR-ETH,ICX-ETH,MTN-ETH,ACT-ETH,BLZ-ETH,QASH-ETH,RUFF-ETH,CMT-ETH,ELF-ETH,MEET-ETH,SOC-ETH,QTUM-ETH,ITC-ETH,SWFTC-ETH,YEE-ETH,LSK-ETH,LUN-ETH,LET-ETH,GNX-ETH,CHAT-ETH,EKO-ETH,TOPC-ETH,DGD-ETH,STK-ETH,MDS-ETH,DBC-ETH,SNC-ETH,PAY-ETH,QUN-ETH,AIDOC-ETH,TNB-ETH,APPC-ETH,RDN-ETH,UTK-ETH,POWR-ETH,BAT-ETH,PROPY-ETH,MANA-ETH,REQ-ETH,CVC-ETH,QSP-ETH,EVX-ETH,DAT-ETH,MCO-ETH,GNT-ETH,GAS-ETH,OST-ETH,LINK-ETH,RCN-ETH,TNT-ETH,ENG-ETH,SALT-ETH,ADX-ETH,EDU-ETH,WTC-ETH,XRP-HT,IOST-HT,DASH-HT,WICC-USDT,EOS-HT,BCH-HT,LTC-HT,ETC-HT,WAVES-BTC,WAVES-ETH,HB10-USDT,CMT-USDT,DCR-BTC,DCR-ETH,PAI-BTC,PAI-ETH,BOX-BTC,BOX-ETH", + "EnabledPairs": "BTC-USDT", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "RequestCurrencyPairFormat": { + "Uppercase": false + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "ITBIT", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "ClientID": "ClientID", + "AvailablePairs": "XBTUSD,XBTSGD,XBTEUR", + "EnabledPairs": "XBTUSD,XBTSGD,XBTEUR", + "BaseCurrencies": "USD,SGD,EUR", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": false, + "PairsLastUpdated": 1529037622, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Kraken", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "DASH-USD,XMR-XBT,XRP-EUR,BCH-EUR,GNO-EUR,USDT-USD,XBT-USD,XDG-XBT,XLM-USD,ETC-XBT,ETC-EUR,ETH-XBT,XLM-EUR,BCH-USD,ETH-GBP,ZEC-JPY,GNO-XBT,ETH-CAD,MLN-XBT,XLM-XBT,BCH-XBT,DASH-EUR,XMR-USD,XRP-JPY,ZEC-XBT,EOS-ETH,EOS-EUR,ETH-EUR,LTC-XBT,REP-EUR,REP-XBT,XBT-CAD,XMR-EUR,DASH-XBT,ICN-ETH,ZEC-EUR,LTC-USD,GNO-ETH,ETC-ETH,ICN-XBT,REP-USD,XBT-EUR,GNO-USD,MLN-ETH,REP-ETH,EOS-USD,ETC-USD,ETH-JPY,XBT-JPY,EOS-XBT,XRP-CAD,ETH-USD,LTC-EUR,XBT-GBP,XRP-XBT,XRP-USD,ZEC-USD", + "EnabledPairs": "XBT-USD", + "BaseCurrencies": "EUR,USD,CAD,GBP,JPY", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "-" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true, + "Separator": "," + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "LakeBTC", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "NZDUSD,USDCAD,ETHBTC,BACETH,BTCAUD,BCHBTC,BTCSGD,USDHKD,AUDUSD,BTCCAD,USDCHF,USDSGD,BTCEUR,BTCNGN,BTCCHF,GBPUSD,USDNGN,BTCHKD,EURUSD,XRPBTC,BTCUSD,USDJPY,LTCBTC,BTCGBP,BTCJPY,BTCNZD", + "EnabledPairs": "BTCUSD,BTCAUD", + "BaseCurrencies": "USD,EUR,HKD,AUD,GBP,NZD,JPY,SGD,NGN,CHF,CAD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Liqui", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "WAVES_ETH,MYST_USDT,SNM_USDT,LDC_USDT,TAAS_ETH,DGD_ETH,ZRX_ETH,AE_ETH,TRX_ETH,BNT_USDT,STORJ_USDT,OMG_BTC,TNT_ETH,XID_ETH,LDC_ETH,STORJ_BTC,IND_USDT,TRX_BTC,ICN_ETH,REP_USDT,REN_ETH,MANA_BTC,BMC_USDT,SNT_USDT,BCC_USDT,WPR_BTC,ENJ_USDT,GNO_BTC,STORJ_ETH,PAY_BTC,WPR_ETH,DNT_BTC,EOS_ETH,LDC_BTC,EOS_USDT,CVC_BTC,NET_USDT,MANA_ETH,IND_ETH,SRN_USDT,GNO_ETH,VEN_ETH,KNC_ETH,NET_BTC,DGD_BTC,MLN_USDT,REP_ETH,GNT_ETH,LTC_ETH,GUP_USDT,TAAS_BTC,ADX_ETH,ICN_USDT,NET_ETH,VEN_BTC,IND_BTC,AION_BTC,TIME_ETH,DASH_USDT,RLC_ETH,SAN_ETH,MGO_USDT,PTOY_USDT,SAN_BTC,BCC_BTC,DASH_ETH,LTC_USDT,MYST_BTC,MLN_ETH,TKN_ETH,MGO_BTC,SNGLS_USDT,MCO_ETH,OMG_ETH,GNT_BTC,GNT_USDT,WINGS_USDT,PRO_USDT,REQ_BTC,WINGS_BTC,BCC_ETH,MGO_ETH,STX_ETH,ENG_BTC,INS_ETH,LTC_BTC,QRL_BTC,OAX_USDT,STX_USDT,WAVES_BTC,BNT_ETH,AE_BTC,AST_ETH,INS_USDT,RLC_BTC,TKN_BTC,SNGLS_ETH,PAY_USDT,TNT_BTC,DASH_BTC,SNGLS_BTC,SNT_BTC,AE_USDT,REQ_ETH,AGI_BTC,BNT_BTC,PTOY_BTC,NEU_ETH,ADX_USDT,TRX_USDT,AION_ETH,CLN_ETH,KNC_BTC,NEU_BTC,REN_BTC,BAT_BTC,MYST_ETH,CVC_ETH,SALT_USDT,INS_BTC,AION_USDT,TKN_USDT,BAT_ETH,CFI_USDT,ZRX_BTC,TNT_USDT,SALT_BTC,DNT_ETH,ICN_BTC,SNM_ETH,PRO_ETH,TRST_ETH,PAY_ETH,PRO_BTC,CLN_USDT,EDG_USDT,GUP_BTC,ADX_BTC,RLC_USDT,WINGS_ETH,CFI_ETH,QRL_ETH,ANT_ETH,AGI_ETH,ENG_USDT,ETH_BTC,EDG_ETH,GNO_USDT,MCO_USDT,EOS_BTC,MLN_BTC,TIME_BTC,SNM_BTC,VEN_USDT,REQ_USDT,TAAS_USDT,TIME_USDT,OMG_USDT,CVC_USDT,SRN_BTC,ETH_USDT,REN_USDT,GUP_ETH,PTOY_ETH,CFI_BTC,ENJ_BTC,XID_USDT,AGI_USDT,MCO_BTC,ANT_BTC,DGD_USDT,OAX_BTC,BAT_USDT,QRL_USDT,STX_BTC,ENG_ETH,ENJ_ETH,WAVES_USDT,BMC_ETH,AST_USDT,EDG_BTC,SAN_USDT,NEU_USDT,TRST_BTC,MANA_USDT,ANT_USDT,WPR_USDT,SNT_ETH,OAX_ETH,KNC_USDT,BTC_USDT,XID_BTC,DNT_USDT,ZRX_USDT,BMC_BTC,SRN_ETH,CLN_BTC,REP_BTC,TRST_USDT,SALT_ETH,AST_BTC", + "EnabledPairs": "ETH_BTC,LTC_BTC,DASH_BTC", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": false, + "Delimiter": "_", + "Separator": "-" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "LocalBitcoins", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTCARS,BTCAUD,BTCBRL,BTCCAD,BTCCHF,BTCCZK,BTCDKK,BTCEUR,BTCGBP,BTCHKD,BTCILS,BTCINR,BTCMXN,BTCNOK,BTCNZD,BTCPLN,BTCRUB,BTCSEK,BTCSGD,BTCTHB,BTCUSD,BTCZAR", + "EnabledPairs": "BTCAUD,BTCUSD", + "BaseCurrencies": "ARS,AUD,BRL,CAD,CHF,CZK,DKK,EUR,GBP,HKD,ILS,INR,MXN,NOK,NZD,PLN,RUB,SEK,SGD,THB,USD,ZAR", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": false, + "PairsLastUpdated": 1529037622, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "OKCOIN China", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTCCNY,LTCCNY", + "EnabledPairs": "BTCCNY,LTCCNY", + "BaseCurrencies": "CNY", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": false, + "PairsLastUpdated": 1529037622, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": false, + "Delimiter": "_" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "OKCOIN International", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTCUSD,LTCUSD,ETHUSD,ETCUSD,BCHUSD", + "EnabledPairs": "BTCUSD,LTCUSD", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT,this_week,next_week,quarter", + "SupportsAutoPairUpdates": false, + "PairsLastUpdated": 1529037622, + "ConfigCurrencyPairFormat": { + "Uppercase": true + }, + "RequestCurrencyPairFormat": { + "Uppercase": false, + "Delimiter": "_" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "OKEX", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "ltc_btc,eth_btc,etc_btc,bch_btc,btc_usdt,eth_usdt,ltc_usdt,etc_usdt,bch_usdt,etc_eth,bt1_btc,bt2_btc,btg_btc,qtum_btc,hsr_btc,neo_btc,gas_btc,qtum_usdt,hsr_usdt,neo_usdt,gas_usdt,btc_usd,ltc_usd,eth_usd,etc_usd,bch_usd", + "EnabledPairs": "btc_usd,ltc_usd", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT,this_week,next_week,quarter", + "SupportsAutoPairUpdates": false, + "PairsLastUpdated": 1522111402, + "ConfigCurrencyPairFormat": { + "Uppercase": false, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": false, + "Delimiter": "_" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Poloniex", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTC_SYS,BTC_XVC,USDT_BTC,USDT_NXT,XMR_BTCD,BTC_SBD,BTC_DGB,BTC_NMC,ETH_ETC,ETH_OMG,ETH_BCH,BTC_XEM,BTC_XRP,BTC_GRC,USDT_ETC,BTC_REP,BTC_PASC,BTC_STORJ,BTC_BTM,BTC_FLO,BTC_XBC,XMR_BLK,USDT_ETH,ETH_LSK,ETH_GAS,BTC_BURST,BTC_VTC,BTC_OMNI,BTC_NXT,BTC_XMR,USDT_XRP,XMR_MAID,ETH_STEEM,BTC_BCN,BTC_FLDC,ETH_ZRX,BTC_ARDR,BTC_ZEC,USDT_LTC,ETH_GNT,BTC_XCP,XMR_DASH,BTC_BCY,BTC_STRAT,BTC_ZRX,BTC_CVC,BTC_BTCD,BTC_HUC,ETH_CVC,BTC_SC,BTC_GAME,XMR_LTC,BTC_LTC,BTC_XPM,BTC_OMG,BTC_CLAM,BTC_EMC2,USDT_XMR,BTC_FCT,BTC_LBC,ETH_ZEC,BTC_NEOS,USDT_DASH,BTC_NAV,XMR_NXT,BTC_BLK,BTC_DASH,USDT_ZEC,BTC_GNO,ETH_GNO,USDT_BCH,BTC_MAID,BTC_STR,BTC_ETH,BTC_LSK,BTC_STEEM,BTC_GNT,BTC_PPC,BTC_RIC,XMR_BCN,BTC_RADS,BTC_NXC,BTC_BTS,BTC_PINK,BTC_VIA,XMR_ZEC,BTC_VRC,USDT_STR,BTC_EXP,BTC_AMP,BTC_DCR,BTC_ETC,BTC_DOGE,BTC_POT,BTC_BCH,BTC_GAS,USDT_REP,ETH_REP", + "EnabledPairs": "BTC_LTC,BTC_ETH,BTC_DOGE,BTC_DASH,BTC_XRP", + "BaseCurrencies": "USD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "WEX", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "BTC_RUR,BCH_RUR,BCH_ETH,BCH_ZEC,BTC_USDT,LTC_BTC,ETH_LTC,ZEC_USD,BCH_EUR,BCH_LTC,ZEC_BTC,LTC_USD,LTC_EUR,DSH_RUR,BCH_BTC,NVC_BTC,PPC_USD,BCH_DSH,LTCET_LTC,ETHET_ETH,NMC_USD,DSH_ZEC,ETH_RUR,NMC_BTC,DSH_LTC,ZEC_LTC,EURET_EUR,LTC_RUR,EUR_USD,ETH_ZEC,RURET_RUR,NMCET_NMC,PPCET_PPC,BTC_EUR,NVCET_NVC,DSHET_DSH,BCH_USD,BTCET_BTC,NVC_USD,DSH_BTC,DSH_USD,DSH_EUR,USDET_USD,BTC_USD,ETH_USD,USD_RUR,EUR_RUR,DSH_ETH,ETH_EUR,BCHET_BCH,USDT_USD,PPC_BTC,ETH_BTC", + "EnabledPairs": "BTC_USD,LTC_USD,LTC_BTC,ETH_USD", + "BaseCurrencies": "USD,RUR,EUR", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": false, + "Delimiter": "_", + "Separator": "-" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + }, + { + "Name": "Yobit", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "DASH_BTC,WAVES_BTC,LSK_BTC,LIZA_BTC,BCC_BTC,ETH_BTC,LTC_BTC,TRX_BTC,DOGE_BTC,VNTX_BTC,SW_BTC,ZEC_BTC,DASH_ETH,WAVES_ETH,LSK_ETH,LIZA_ETH,BCC_ETH,LTC_ETH,TRX_ETH,DOGE_ETH,VNTX_ETH,SW_ETH,ZEC_ETH,DASH_DOGE,WAVES_DOGE,LSK_DOGE,LIZA_DOGE,BCC_DOGE,LTC_DOGE,TRX_DOGE,VNTX_DOGE,SW_DOGE,ZEC_DOGE,DASH_USD,WAVES_USD,LSK_USD,LIZA_USD,BCC_USD,LTC_USD,TRX_USD,VNTX_USD,SW_USD,ZEC_USD,ETH_USD,BTC_USD,DASH_RUR,WAVES_BTC,WAVES_RUR,LSK_RUR,LIZA_RUR,BCC_RUR,LTC_RUR,TRX_RUR,VNTX_RUR,SW_RUR,ETH_RUR,ZEC_RUR", + "EnabledPairs": "LTC_BTC,ETH_BTC,BTC_USD,DASH_BTC", + "BaseCurrencies": "USD,RUR", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": false, + "PairsLastUpdated": 1529037622, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": false, + "Delimiter": "_", + "Separator": "-" + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "" + } + ] + } + ], + "BankAccounts": [ + { + "BankName": "test", + "BankAddress": "test", + "AccountName": "TestAccount", + "AccountNumber": "0234", + "SWIFTCode": "91272837", + "IBAN": "98218738671897", + "SupportedCurrencies": "USD", + "SupportedExchanges": "ANX,Kraken" + } + ] +} \ No newline at end of file diff --git a/tools/README.md b/tools/README.md index d4a9ec34..b3f453c5 100644 --- a/tools/README.md +++ b/tools/README.md @@ -28,18 +28,7 @@ This folder contains an assortment of tools. + Exchange deployment + Websocket client - -Example Run for documentation generation - flags -v Verbose & -r Replace files -```sh -cd documentation/ -go run documentation.go -v -``` -OR for full replacement. - -```sh -cd documentation/ -go run documentation.go -v -r -``` +Please see individual tool's README file ## Contribution diff --git a/tools/documentation/common_templates/common_readme.tmpl b/tools/documentation/common_templates/common_readme.tmpl new file mode 100644 index 00000000..fb3f828e --- /dev/null +++ b/tools/documentation/common_templates/common_readme.tmpl @@ -0,0 +1,23 @@ +{{define "common" -}} +{{template "header" .}} +## Current Features for {{.Name}} + +#### This package collates basic broad functions that are used throughout this codebase. + ++ Coding example + +```go +import "github.com/thrasher-/gocryptotrader/common" + +testString := "aAaAa" + +upper := common.StringToUpper(testString) + +// upper == "AAAAA" +``` + + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchange_readme_templates/anx.tmpl b/tools/documentation/communications_templates/base.tmpl similarity index 57% rename from tools/documentation/exchange_readme_templates/anx.tmpl rename to tools/documentation/communications_templates/base.tmpl index 464ea7c8..70dad8e3 100644 --- a/tools/documentation/exchange_readme_templates/anx.tmpl +++ b/tools/documentation/communications_templates/base.tmpl @@ -1,10 +1,10 @@ -{{define "exchanges anx" -}} +{{define "communications base" -}} {{template "header" .}} -## ANX Exchange +## Base Communications package ### Current Features -+ Initial generation ++ Used to enforce standard variables and methods across the communication packages ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/communications_templates/comms.tmpl b/tools/documentation/communications_templates/comms.tmpl new file mode 100644 index 00000000..be209ecb --- /dev/null +++ b/tools/documentation/communications_templates/comms.tmpl @@ -0,0 +1,26 @@ +{{define "communications comms" -}} +{{template "header" .}} +## Communications package + +### What is the Communications package? + ++ This package allows for the communication of events/data that occurs in the +to be exported out to a defined communication medium + +### Current Features + ++ Slack bot support ++ SMSGlobal instant bulk messaging ++ SMTP messaging ++ Telegram bot support + +### How to enable example + ++ In your config.json enable each individual communications package you desire ++ Please view the individual readme documentation inside the specific package +for more details + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/communications_templates/slack.tmpl b/tools/documentation/communications_templates/slack.tmpl new file mode 100644 index 00000000..0af7f771 --- /dev/null +++ b/tools/documentation/communications_templates/slack.tmpl @@ -0,0 +1,60 @@ +{{define "communications slack" -}} +{{template "header" .}} +## Slack Communications package + +### What is Slack? + ++ Slack is a code-centric collaboration hub that allows users to connect via an +app and share different types of data ++ Please visit: [Slack](https://slack.com/) for more information and account setup + +### Current Features + ++ Basic communication to your slack channel information includes: + - Working status of bot + - Recent ANX ticker + - Current ANX orderbook + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/communications/slack" +"github.com/thrasher-/gocryptotrader/config" +) + +s := new(slack.Slack) + +// Define slack configuration +commsConfig := config.CommunicationsConfig{SlackConfig: config.SlackConfig{ + Name: "Slack", + Enabled: true, + Verbose: false, + TargetChannel: "targetChan", + VerificationToken: "slackGeneratedToken", +}} + +s.Setup(commsConfig) +err := s.Connect +// Handle error +``` + +Once the bot has started you can interact with the bot using these commands +via Slack: + +``` +!status - Displays current working status of bot +!help - Displays help text +!settings - Displays current settings +!ticker - Displays recent ANX ticker +!portfolio - Displays portfolio data +!orderbook - Displays current ANX orderbook +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/communications_templates/smsglobal.tmpl b/tools/documentation/communications_templates/smsglobal.tmpl new file mode 100644 index 00000000..b5351fc3 --- /dev/null +++ b/tools/documentation/communications_templates/smsglobal.tmpl @@ -0,0 +1,45 @@ +{{define "communications smsglobal" -}} +{{template "header" .}} +## SMSGlobal Communications package + +### What is SMSGlobal? + ++ SMSGlobal allows bulk sending of messages via their API ++ Please visit: [SMSGlobal](https://www.smsglobal.com/) for more information and account setup + +### Current Features + ++ Sending of events to a list of recipients + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/communications/smsglobal" +"github.com/thrasher-/gocryptotrader/config" +) + +s := new(smsglobal.SMSGlobal) + +// Define SMSGlobal configuration +commsConfig := config.CommunicationsConfig{SMSGlobalConfig: config.SMSGlobalConfig{ + Name: "SMSGlobal", + Enabled: true, + Verbose: false, + Username: "username", + Password: "password", + Contacts: []config.SMSContact{} +}} + +s.Setup(commsConfig) +err := s.Connect +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/communications_templates/smtp.tmpl b/tools/documentation/communications_templates/smtp.tmpl new file mode 100644 index 00000000..d8040755 --- /dev/null +++ b/tools/documentation/communications_templates/smtp.tmpl @@ -0,0 +1,47 @@ +{{define "communications smtp" -}} +{{template "header" .}} +## SMSGlobal Communications package + +### What is SMTP? + ++ Simple Mail Transfer Protocol (SMTP) is an Internet standard for electronic mail (email) transmission ++ Please visit: [Wikipedia](https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol) for more information + +### Current Features + ++ Sending of events to a list of recipients via email + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/communications/smtpservice" +"github.com/thrasher-/gocryptotrader/config" +) + +s := new(smtpservice.SMTPservice) + +// Define SMTPservice configuration +commsConfig := config.CommunicationsConfig{SMTPservice: config.SMTPConfig{ + Name: "SMTPservice", + Enabled: true, + Verbose: false, + Host: "host", + Port: "port", + AccountName: "name", + AccountPassword: "password", + RecipientList: "something@something.com,somethingelse@something.com" +}} + +s.Setup(commsConfig) +err := s.Connect +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/communications_templates/telegram.tmpl b/tools/documentation/communications_templates/telegram.tmpl new file mode 100644 index 00000000..ede7e003 --- /dev/null +++ b/tools/documentation/communications_templates/telegram.tmpl @@ -0,0 +1,60 @@ +{{define "communications telegram" -}} +{{template "header" .}} +## Telegram Communications package + +### What is telegram? + ++ Telegram is a cloud-based instant messaging and voice over IP service +developed by Telegram Messenger LLP ++ Please visit: [Telegram](https://telegram.org/) for more information + +### Current Features + ++ Creation of bot that can retrieve + - Bot status + - ANX orderbook + - ANX ticker + + ### How to enable + + + [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-communications-via-config-example) + + + Individual package example below: + ```go + import ( + "github.com/thrasher-/gocryptotrader/communications/telegram" + "github.com/thrasher-/gocryptotrader/config" + ) + + t := new(telegram.Telegram) + + // Define Telegram configuration + commsConfig := config.CommunicationsConfig{TelegramConfig: config.TelegramConfig{ + Name: "Telegram", + Enabled: true, + Verbose: false, + VerificationToken: "token", + }} + + t.Setup(commsConfig) + err := t.Connect + // Handle error + ``` + ++ Once the bot has started you can interact with the bot using these commands +via Telegram: + +``` +/start - Will authenticate your ID +/status - Displays the status of the bot +/help - Displays current command list +/settings - Displays current bot settings +/ticker - Displays current ANX ticker data +/portfolio - Displays your current portfolio +/orderbooks - Displays current orderbooks for ANX` +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/config_templates/config_readme.tmpl b/tools/documentation/config_templates/config_readme.tmpl new file mode 100644 index 00000000..bf9822ef --- /dev/null +++ b/tools/documentation/config_templates/config_readme.tmpl @@ -0,0 +1,199 @@ +{{define "config" -}} +{{template "header" .}} +## Current Features for {{.Name}} + + + Handling of config encryption and verification of "configuration".json data. + + + Contains configurations for: + + - Exchanges for utilisation of a broad or minimal amount of enabled + exchanges [Example](#enable-exchange-via-config-example) for + enabling an exchange. + + - Bank accounts for withdrawal and depositing FIAT between exchange and + your personal accounts [Example](#enable-bank-accounts-via-config-example). + + - Portfolio to monitor online and offline accounts [Example](#enable-portfolio-via-config-example). + + - Currency configurations to set your foreign exchange provider accounts, + your preferred display currency, suitable FIAT currency and suitable + cryptocurrency [Example](#enable-currency-via-config-example). + + - Communication for utilisation of supported communication mediums e.g. + email events direct to your personal account [Example](#enable-communications-via-config-example). + +# Config Examples + +#### Basic examples for enabling features on the GoCryptoTrader platform + ++ Linux example for quickly creating and testing configuration file +```sh +cd ~/go/src/github.com/thrasher-/gocryptotrader +cp config_example.json config.json +# Test config +go build +./gocryptotrader +``` + ++ or custom config, can also pass in absolute path to "configuration".json file. + +```sh +cd ~/go/src/github.com/thrasher-/gocryptotrader +cp config_example.json custom.json +# Test config +go build +./gocryptotrader -config custom.json +``` + +## Enable Exchange Via Config Example + ++ To enable or disable an exchange via config proceed through the +"configuration".json file to exchanges and to the supported exchange e.g see +below. "Enabled" set to true or false will enable and disable the exchange, +if you set "APIKey" && "APISecret" you must set "AuthenticatedAPISupport" to +true or the bot will not be able to send authenticated http requests. If needed +you can set the exchanges bank details for depositing FIAT options. Some banks +have multiple deposit accounts for different FIAT deposit currencies. + +```js +"Exchanges": [ + { + "Name": "ANX", + "Enabled": true, + "Verbose": false, + "Websocket": false, + "UseSandbox": false, + "RESTPollingDelay": 10, + "HTTPTimeout": 15000000000, + "AuthenticatedAPISupport": false, + "APIKey": "Key", + "APISecret": "Secret", + "AvailablePairs": "ATENC_GBP,ATENC_NZD,BTC_AUD,BTC_SGD,LTC_BTC,START_GBP,...", + "EnabledPairs": "BTC_USD,BTC_HKD,BTC_EUR,BTC_CAD,BTC_AUD,BTC_SGD,BTC_JPY,...", + "BaseCurrencies": "USD,HKD,EUR,CAD,AUD,SGD,JPY,GBP,NZD", + "AssetTypes": "SPOT", + "SupportsAutoPairUpdates": true, + "ConfigCurrencyPairFormat": { + "Uppercase": true, + "Delimiter": "_" + }, + "RequestCurrencyPairFormat": { + "Uppercase": true + }, + "BankAccounts": [ + { + "BankName": "", + "BankAddress": "", + "AccountName": "", + "AccountNumber": "", + "SWIFTCode": "", + "IBAN": "", + "SupportedCurrencies": "AUD,USD,EUR" + } + ] + }, +``` + +## Enable Bank Accounts Via Config Example + ++ To enable bank accounts simply proceed through "configuration".json file to +"BankAccounts" and input your account information example below. + +```js +"BankAccounts": [ + { + "BankName": "test", + "BankAddress": "test", + "AccountName": "TestAccount", + "AccountNumber": "0234", + "SWIFTCode": "91272837", + "IBAN": "98218738671897", + "SupportedCurrencies": "USD", + "SupportedExchanges": "ANX,Kraken" + } +] +``` + +## Enable Portfolio Via Config Example + ++ To enable the GoCryptoTrader platform to monitor your addresses please +specify, "configuration".json file example below. + +```js +"PortfolioAddresses": { + "Addresses": [ + { + "Address": "1JCe8z4jJVNXSjohjM4i9Hh813dLCNx2Sy", + "CoinType": "BTC", + "Balance": 53000.01310358, + "Description": "" + }, + { + "Address": "3Nxwenay9Z8Lc9JBiywExpnEFiLp6Afp8v", + "CoinType": "BTC", + "Balance": 101848.28376405, + "Description": "" + } + ] +``` + +## Enable Currency Via Config Example + ++ To Enable foreign exchange providers set "Enabled" to true and add in your +account API keys example below. + +```js +"ForexProviders": [ + { + "Name": "CurrencyConverter", + "Enabled": true, + "Verbose": false, + "RESTPollingDelay": 600, + "APIKey": "", + "APIKeyLvl": -1, + "PrimaryProvider": true + }, +] +``` + ++ To define the cryptocurrency you want the platform to use set them here +example below. + +```js +"Cryptocurrencies": "BTC,LTC,ETH,XRP,NMC,NVC,PPC,XBT,DOGE,DASH", +``` + ++ To define the currency you want to everything to be valued against example +below. + +```js +"FiatDisplayCurrency": "USD" +``` + +## Enable Communications Via Config Example + ++ To set the desired platform communication medium proceed to "Communications" +in the "configuration".json file and set your account details to the preferred +comm method and add in your contact list if available. + +```js +"SMSGlobal": { + "Name": "SMSGlobal", + "Enabled": false, + "Verbose": false, + "Username": "Username", + "Password": "Password", + "Contacts": [ + { + "Name": "Bob", + "Number": "12345", + "Enabled": false + } + ] +}, +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/currency_templates/currency_pair_readme.tmpl b/tools/documentation/currency_templates/currency_pair_readme.tmpl new file mode 100644 index 00000000..5e108ad9 --- /dev/null +++ b/tools/documentation/currency_templates/currency_pair_readme.tmpl @@ -0,0 +1,22 @@ +{{define "currency pair" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ Provides a new data structure for a currency pair ++ Methods to manipulate, create and retrieve different parts of the currency pair + ++ Example below: +```go +import "github.com/thrasher-/gocryptotrader/currency/pair" + +// Create new pair +newPair := pair.NewCurrencyPair("BTC", "USD") + +// Retrieve different parts of the pair +bitcoinString := newPair.GetFirstCurrency +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/currency_templates/currency_readme.tmpl b/tools/documentation/currency_templates/currency_readme.tmpl new file mode 100644 index 00000000..f4319162 --- /dev/null +++ b/tools/documentation/currency_templates/currency_readme.tmpl @@ -0,0 +1,14 @@ +{{define "currency" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ Currency package contains a full suite of packages that provide: + - Foreign exchange data fetching for FIAT currencies + - Currency Pair generation + - Symbol mapping + - Translation between currencies that have similar strings e.g. XBT, BTC + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/currency_templates/currency_symbol_readme.tmpl b/tools/documentation/currency_templates/currency_symbol_readme.tmpl new file mode 100644 index 00000000..88c8fa63 --- /dev/null +++ b/tools/documentation/currency_templates/currency_symbol_readme.tmpl @@ -0,0 +1,21 @@ +{{define "currency symbol" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ This package services the currency package by providing symbol mapping. + ++ Example below: +```go +import "github.com/thrasher-/gocryptotrader/currency/symbol" + +// Get the string of the symbol by the currency +chineseYen := "CNY" +symbol := symbol.GetSymbolByCurrencyName(chineseYen) + +// symbol == "¥" +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/readme_templates/currency_translation_readme.tmpl b/tools/documentation/currency_templates/currency_translation_readme.tmpl similarity index 63% rename from tools/documentation/readme_templates/currency_translation_readme.tmpl rename to tools/documentation/currency_templates/currency_translation_readme.tmpl index b383128a..fdf95710 100644 --- a/tools/documentation/readme_templates/currency_translation_readme.tmpl +++ b/tools/documentation/currency_templates/currency_translation_readme.tmpl @@ -4,6 +4,16 @@ + This package services the currency package with translation functions. ++ Example below: +```go +import "github.com/thrasher-/gocryptotrader/currency/translation" + +// Is translatable +b := translation.HasTranslation("BTC") + +// b == true; translation = XBT +``` + ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} {{template "donations"}} diff --git a/tools/documentation/readme_templates/config_readme.tmpl b/tools/documentation/currency_templates/fx.tmpl similarity index 59% rename from tools/documentation/readme_templates/config_readme.tmpl rename to tools/documentation/currency_templates/fx.tmpl index 2510020f..bbdea857 100644 --- a/tools/documentation/readme_templates/config_readme.tmpl +++ b/tools/documentation/currency_templates/fx.tmpl @@ -1,8 +1,11 @@ -{{define "config" -}} +{{define "currency forexprovider" -}} {{template "header" .}} ## Current Features for {{.Name}} -+ This package deals with configuration utilities. ++ Currency Converter API support ++ Currency Layer support ++ Fixer.io support ++ Open Exchange Rates support ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/readme_templates/common_readme.tmpl b/tools/documentation/currency_templates/fx_base.tmpl similarity index 61% rename from tools/documentation/readme_templates/common_readme.tmpl rename to tools/documentation/currency_templates/fx_base.tmpl index 44888af0..f0fdcf19 100644 --- a/tools/documentation/readme_templates/common_readme.tmpl +++ b/tools/documentation/currency_templates/fx_base.tmpl @@ -1,8 +1,9 @@ -{{define "common" -}} +{{define "currency forexprovider base" -}} {{template "header" .}} ## Current Features for {{.Name}} -+ This package collates basic broad functions that are used throughout this codebase. ++ This package enforces standard variables and methods for the foreign exchange +providers. ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/currency_templates/fx_currencyconverterapi.tmpl b/tools/documentation/currency_templates/fx_currencyconverterapi.tmpl new file mode 100644 index 00000000..d96bebb3 --- /dev/null +++ b/tools/documentation/currency_templates/fx_currencyconverterapi.tmpl @@ -0,0 +1,40 @@ +{{define "currency forexprovider currencyconverter" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ Fetches up to date curency data from [Currency Coverter API](https://free.currencyconverterapi.com/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/currencyconverter" +) + +c := currencyconverter.CurrencyConverter{} + +// Define configuration +newSettings := base.Settings{ + Name: "CurrencyConverter", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/currency_templates/fx_currencylayer.tmpl b/tools/documentation/currency_templates/fx_currencylayer.tmpl new file mode 100644 index 00000000..1a790da6 --- /dev/null +++ b/tools/documentation/currency_templates/fx_currencylayer.tmpl @@ -0,0 +1,40 @@ +{{define "currency forexprovider currencylayer" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ Fetches up to date curency data from [Currency Layer](https://currencylayer.com/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/currencylayer" +) + +c := currencylayer.CurrencyLayer{} + +// Define configuration +newSettings := base.Settings{ + Name: "CurrencyLayer", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/currency_templates/fx_fixer.tmpl b/tools/documentation/currency_templates/fx_fixer.tmpl new file mode 100644 index 00000000..56a0906c --- /dev/null +++ b/tools/documentation/currency_templates/fx_fixer.tmpl @@ -0,0 +1,40 @@ +{{define "currency forexprovider fixer" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ Fetches up to date curency data from [Fixer.io](https://fixer.io/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/fixer.io" +) + +c := fixer.Fixer{} + +// Define configuration +newSettings := base.Settings{ + Name: "Fixer", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/currency_templates/fx_openexchangerates.tmpl b/tools/documentation/currency_templates/fx_openexchangerates.tmpl new file mode 100644 index 00000000..78b716da --- /dev/null +++ b/tools/documentation/currency_templates/fx_openexchangerates.tmpl @@ -0,0 +1,40 @@ +{{define "currency forexprovider openexchangerates" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ Fetches up to date curency data from [Open Exchange Rates](https://openexchangerates.org/) + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-currency-via-config-example) + ++ Individual package example below: +```go +import ( +"github.com/thrasher-/gocryptotrader/currency/forexprovider/base" +"github.com/thrasher-/gocryptotrader/currency/forexprovider/openexchangerates" +) + +c := openexchangerates.OXR{} + +// Define configuration +newSettings := base.Settings{ + Name: "openexchangerates", + Enabled: true, + Verbose: false, + RESTPollingDelay: time.Duration, + APIKey: "key", + APIKeyLvl: "keylvl", + PrimaryProvider: true, +} + +c.Setup(newSettings) + +mapstringfloat, err := c.GetRates("USD", "EUR,CHY") +// Handle error +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/documentation.go b/tools/documentation/documentation.go index 21017705..ac1b7144 100644 --- a/tools/documentation/documentation.go +++ b/tools/documentation/documentation.go @@ -13,24 +13,37 @@ import ( ) const ( - commonPath = "..%s..%scommon%s" - configPath = "..%s..%sconfig%s" - currencyPath = "..%s..%scurrency%s" - currencyPairPath = "..%s..%scurrency%spair%s" - currencySymbolPath = "..%s..%scurrency%ssymbol%s" - currencyTranslationPath = "..%s..%scurrency%stranslation%s" - eventsPath = "..%s..%sevents%s" - exchangesPath = "..%s..%sexchanges%s" - exchangesNoncePath = "..%s..%sexchanges%snonce%s" - exchangesOrderbookPath = "..%s..%sexchanges%sorderbook%s" - exchangesStatsPath = "..%s..%sexchanges%sstats%s" - exchangesTickerPath = "..%s..%sexchanges%sticker%s" - portfolioPath = "..%s..%sportfolio%s" - smsglobalPath = "..%s..%ssmsglobal%s" - testdataPath = "..%s..%stestdata%s" - toolsPath = "..%s..%stools%s" - webPath = "..%s..%sweb%s" - rootPath = "..%s..%s" + commonPath = "..%s..%scommon%s" + communicationsPath = "..%s..%scommunications%s" + communicationsBasePath = "..%s..%scommunications%sbase%s" + communicationsSlackPath = "..%s..%scommunications%sslack%s" + communicationsSmsglobalPath = "..%s..%scommunications%ssmsglobal%s" + communicationsSMTPPath = "..%s..%scommunications%ssmtpservice%s" + communicationsTelegramPath = "..%s..%scommunications%stelegram%s" + configPath = "..%s..%sconfig%s" + currencyPath = "..%s..%scurrency%s" + currencyFXPath = "..%s..%scurrency%sforexprovider%s" + currencyFXBasePath = "..%s..%scurrency%sforexprovider%sbase%s" + currencyFXCurrencyConverterPath = "..%s..%scurrency%sforexprovider%scurrencyconverterapi%s" + currencyFXCurrencylayerPath = "..%s..%scurrency%sforexprovider%scurrencylayer%s" + currencyFXFixerPath = "..%s..%scurrency%sforexprovider%sfixer.io%s" + currencyFXOpenExchangeRatesPath = "..%s..%scurrency%sforexprovider%sopenexchangerates%s" + currencyPairPath = "..%s..%scurrency%spair%s" + currencySymbolPath = "..%s..%scurrency%ssymbol%s" + currencyTranslationPath = "..%s..%scurrency%stranslation%s" + eventsPath = "..%s..%sevents%s" + exchangesPath = "..%s..%sexchanges%s" + exchangesNoncePath = "..%s..%sexchanges%snonce%s" + exchangesOrderbookPath = "..%s..%sexchanges%sorderbook%s" + exchangesStatsPath = "..%s..%sexchanges%sstats%s" + exchangesTickerPath = "..%s..%sexchanges%sticker%s" + exchangesOrdersPath = "..%s..%sexchanges%sorders%s" + exchangesRequestPath = "..%s..%sexchanges%srequest%s" + portfolioPath = "..%s..%sportfolio%s" + testdataPath = "..%s..%stestdata%s" + toolsPath = "..%s..%stools%s" + webPath = "..%s..%sweb%s" + rootPath = "..%s..%s" // exchange packages alphapoint = "..%s..%sexchanges%salphapoint%s" @@ -43,22 +56,22 @@ const ( bittrex = "..%s..%sexchanges%sbittrex%s" btcc = "..%s..%sexchanges%sbtcc%s" btcmarkets = "..%s..%sexchanges%sbtcmarkets%s" + coinbasepro = "..%s..%sexchanges%scoinbasepro%s" coinut = "..%s..%sexchanges%scoinut%s" exmo = "..%s..%sexchanges%sexmo%s" - coinbasepro = "..%s..%sexchanges%scoinbasepro%s" gemini = "..%s..%sexchanges%sgemini%s" hitbtc = "..%s..%sexchanges%shitbtc%s" huobi = "..%s..%sexchanges%shuobi%s" itbit = "..%s..%sexchanges%sitbit%s" kraken = "..%s..%sexchanges%skraken%s" lakebtc = "..%s..%sexchanges%slakebtc%s" + liqui = "..%s..%sexchanges%sliqui%s" localbitcoins = "..%s..%sexchanges%slocalbitcoins%s" okcoin = "..%s..%sexchanges%sokcoin%s" okex = "..%s..%sexchanges%sokex%s" poloniex = "..%s..%sexchanges%spoloniex%s" wex = "..%s..%sexchanges%swex%s" yobit = "..%s..%sexchanges%syobit%s" - liqui = "..%s..%sexchanges%sliqui%s" contributorsList = "https://api.github.com/repos/thrasher-/gocryptotrader/contributors" @@ -74,8 +87,6 @@ var ( tmpl *template.Template path string contributors []contributor - // exchanges []string{"alphapoint", "anx", "binance", "bitfinex", "bitflyer", - // "bithumb"} ) type readme struct { @@ -93,10 +104,8 @@ type contributor struct { } func main() { - flag.BoolVar(&verbose, "v", false, "-v Verbose flag prints more information to the std output") flag.BoolVar(&replace, "r", false, "-r Replace flag generates and replaces all documentation across the code base") - flag.Parse() fmt.Println(` @@ -114,10 +123,14 @@ func main() { log.Fatal("GoCryptoTrader: Exchange documentation tool GET error ", err) } + fmt.Println("Contributor list fetched") + if err := addTemplates(); err != nil { log.Fatal("GoCryptoTrader: Exchange documentation tool add template error ", err) } + fmt.Println("Templates parsed") + if err := updateReadme(); err != nil { log.Fatal("GoCryptoTrader: Exchange documentation tool update readme error ", err) } @@ -167,23 +180,42 @@ func updateReadme() error { // Adds paths to different potential README.md files in the codebase func addPaths() { codebasePaths["common"] = fmt.Sprintf(commonPath, path, path, path) + + codebasePaths["communications comms"] = fmt.Sprintf(communicationsPath, path, path, path) + codebasePaths["communications base"] = fmt.Sprintf(communicationsBasePath, path, path, path, path) + codebasePaths["communications slack"] = fmt.Sprintf(communicationsSlackPath, path, path, path, path) + codebasePaths["communications smsglobal"] = fmt.Sprintf(communicationsSmsglobalPath, path, path, path, path) + codebasePaths["communications smtp"] = fmt.Sprintf(communicationsSMTPPath, path, path, path, path) + codebasePaths["communications telegram"] = fmt.Sprintf(communicationsTelegramPath, path, path, path, path) + codebasePaths["config"] = fmt.Sprintf(configPath, path, path, path) + codebasePaths["currency"] = fmt.Sprintf(currencyPath, path, path, path) + codebasePaths["currency forexprovider"] = fmt.Sprintf(currencyFXPath, path, path, path, path) + codebasePaths["currency forexprovider base"] = fmt.Sprintf(currencyFXBasePath, path, path, path, path, path) + codebasePaths["currency forexprovider currencyconverter"] = fmt.Sprintf(currencyFXCurrencyConverterPath, path, path, path, path, path) + codebasePaths["currency forexprovider currencylayer"] = fmt.Sprintf(currencyFXCurrencylayerPath, path, path, path, path, path) + codebasePaths["currency forexprovider fixer"] = fmt.Sprintf(currencyFXFixerPath, path, path, path, path, path) + codebasePaths["currency forexprovider openexchangerates"] = fmt.Sprintf(currencyFXOpenExchangeRatesPath, path, path, path, path, path) codebasePaths["currency pair"] = fmt.Sprintf(currencyPairPath, path, path, path, path) codebasePaths["currency symbol"] = fmt.Sprintf(currencySymbolPath, path, path, path, path) codebasePaths["currency translation"] = fmt.Sprintf(currencyTranslationPath, path, path, path, path) + codebasePaths["events"] = fmt.Sprintf(eventsPath, path, path, path) + + codebasePaths["portfolio"] = fmt.Sprintf(portfolioPath, path, path, path) + codebasePaths["testdata"] = fmt.Sprintf(testdataPath, path, path, path) + codebasePaths["tools"] = fmt.Sprintf(toolsPath, path, path, path) + codebasePaths["web"] = fmt.Sprintf(webPath, path, path, path) + codebasePaths["root"] = fmt.Sprintf(rootPath, path, path) + codebasePaths["exchanges"] = fmt.Sprintf(exchangesPath, path, path, path) codebasePaths["exchanges nonce"] = fmt.Sprintf(exchangesNoncePath, path, path, path, path) codebasePaths["exchanges orderbook"] = fmt.Sprintf(exchangesOrderbookPath, path, path, path, path) codebasePaths["exchanges stats"] = fmt.Sprintf(exchangesStatsPath, path, path, path, path) codebasePaths["exchanges ticker"] = fmt.Sprintf(exchangesTickerPath, path, path, path, path) - codebasePaths["portfolio"] = fmt.Sprintf(portfolioPath, path, path, path) - codebasePaths["smsglobal"] = fmt.Sprintf(smsglobalPath, path, path, path) - codebasePaths["testdata"] = fmt.Sprintf(testdataPath, path, path, path) - codebasePaths["tools"] = fmt.Sprintf(toolsPath, path, path, path) - codebasePaths["web"] = fmt.Sprintf(webPath, path, path, path) - codebasePaths["root"] = fmt.Sprintf(rootPath, path, path) + codebasePaths["exchanges orders"] = fmt.Sprintf(exchangesOrdersPath, path, path, path, path) + codebasePaths["exchanges request"] = fmt.Sprintf(exchangesRequestPath, path, path, path, path) codebasePaths["exchanges alphapoint"] = fmt.Sprintf(alphapoint, path, path, path, path) codebasePaths["exchanges anx"] = fmt.Sprintf(anx, path, path, path, path) @@ -260,26 +292,31 @@ func getslashFromName(packageName string) string { return packageName } +var globS = []string{ + fmt.Sprintf("common_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("communications_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("config_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("currency_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("events_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("exchanges_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("portfolio_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("root_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("sub_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("testdata_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("tools_templates%s*", common.GetOSPathSlash()), + fmt.Sprintf("web_templates%s*", common.GetOSPathSlash()), +} + // adds all the template files func addTemplates() error { - glob, err := template.ParseGlob(fmt.Sprintf("readme_templates%s*", path)) - if err != nil { - return err - } - _, err = glob.ParseGlob(fmt.Sprintf("sub_templates%s*", path)) - if err != nil { - return err - } - _, err = glob.ParseGlob(fmt.Sprintf("exchange_readme_templates%s*", path)) - if err != nil { - return err - } - _, err = glob.ParseGlob(fmt.Sprintf("general_templates%s*", path)) - if err != nil { - return err - } + tmpl = template.New("") - tmpl = glob + for _, s := range globS { + _, err := tmpl.ParseGlob(s) + if err != nil { + return err + } + } return nil } diff --git a/tools/documentation/readme_templates/events_readme.tmpl b/tools/documentation/events_templates/events_readme.tmpl similarity index 100% rename from tools/documentation/readme_templates/events_readme.tmpl rename to tools/documentation/events_templates/events_readme.tmpl diff --git a/tools/documentation/exchange_readme_templates/bitfinex.tmpl b/tools/documentation/exchange_readme_templates/bitfinex.tmpl deleted file mode 100644 index df6a92f9..00000000 --- a/tools/documentation/exchange_readme_templates/bitfinex.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges bitfinex" -}} -{{template "header" .}} -## Bitfinex Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/bitflyer.tmpl b/tools/documentation/exchange_readme_templates/bitflyer.tmpl deleted file mode 100644 index 3c16331c..00000000 --- a/tools/documentation/exchange_readme_templates/bitflyer.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges bitflyer" -}} -{{template "header" .}} -## Bitflyer Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/bithumb.tmpl b/tools/documentation/exchange_readme_templates/bithumb.tmpl deleted file mode 100644 index f3c637b7..00000000 --- a/tools/documentation/exchange_readme_templates/bithumb.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges bithumb" -}} -{{template "header" .}} -## Bithumb Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/bitstamp.tmpl b/tools/documentation/exchange_readme_templates/bitstamp.tmpl deleted file mode 100644 index 86c88652..00000000 --- a/tools/documentation/exchange_readme_templates/bitstamp.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges bitstamp" -}} -{{template "header" .}} -## Bitstamp Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/bittrex.tmpl b/tools/documentation/exchange_readme_templates/bittrex.tmpl deleted file mode 100644 index b84c8f92..00000000 --- a/tools/documentation/exchange_readme_templates/bittrex.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges bittrex" -}} -{{template "header" .}} -## Bittrex Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/btcc.tmpl b/tools/documentation/exchange_readme_templates/btcc.tmpl deleted file mode 100644 index 51da03a2..00000000 --- a/tools/documentation/exchange_readme_templates/btcc.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges btcc" -}} -{{template "header" .}} -## BTCC Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/btcmarkets.tmpl b/tools/documentation/exchange_readme_templates/btcmarkets.tmpl deleted file mode 100644 index 9c5310a2..00000000 --- a/tools/documentation/exchange_readme_templates/btcmarkets.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges btcmarkets" -}} -{{template "header" .}} -## BTCMarkets Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/coinbasepro.tmpl b/tools/documentation/exchange_readme_templates/coinbasepro.tmpl deleted file mode 100644 index 7ab96eaa..00000000 --- a/tools/documentation/exchange_readme_templates/coinbasepro.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges coinbasepro" -}} -{{template "header" .}} -## CoinbasePro Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/coinut.tmpl b/tools/documentation/exchange_readme_templates/coinut.tmpl deleted file mode 100644 index 21eda7ad..00000000 --- a/tools/documentation/exchange_readme_templates/coinut.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges coinut" -}} -{{template "header" .}} -## Coinut Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/exmo.tmpl b/tools/documentation/exchange_readme_templates/exmo.tmpl deleted file mode 100644 index 79b09dc8..00000000 --- a/tools/documentation/exchange_readme_templates/exmo.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges exmo" -}} -{{template "header" .}} -## Exmo Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/gemini.tmpl b/tools/documentation/exchange_readme_templates/gemini.tmpl deleted file mode 100644 index e2e642f8..00000000 --- a/tools/documentation/exchange_readme_templates/gemini.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges gemini" -}} -{{template "header" .}} -## Gemini Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/hitbtc.tmpl b/tools/documentation/exchange_readme_templates/hitbtc.tmpl deleted file mode 100644 index 63f14ade..00000000 --- a/tools/documentation/exchange_readme_templates/hitbtc.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges hitbtc" -}} -{{template "header" .}} -## HitBTC Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/huobi.tmpl b/tools/documentation/exchange_readme_templates/huobi.tmpl deleted file mode 100644 index f05d10a4..00000000 --- a/tools/documentation/exchange_readme_templates/huobi.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges huobi" -}} -{{template "header" .}} -## Huobi Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/itbit.tmpl b/tools/documentation/exchange_readme_templates/itbit.tmpl deleted file mode 100644 index b4516424..00000000 --- a/tools/documentation/exchange_readme_templates/itbit.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges itbit" -}} -{{template "header" .}} -## Itbit Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/kraken.tmpl b/tools/documentation/exchange_readme_templates/kraken.tmpl deleted file mode 100644 index 4975e68a..00000000 --- a/tools/documentation/exchange_readme_templates/kraken.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges kraken" -}} -{{template "header" .}} -## Kraken Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/lakebtc.tmpl b/tools/documentation/exchange_readme_templates/lakebtc.tmpl deleted file mode 100644 index f5f225e0..00000000 --- a/tools/documentation/exchange_readme_templates/lakebtc.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges lakebtc" -}} -{{template "header" .}} -## LakeBTC Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/liqui.tmpl b/tools/documentation/exchange_readme_templates/liqui.tmpl deleted file mode 100644 index 0f768994..00000000 --- a/tools/documentation/exchange_readme_templates/liqui.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges liqui" -}} -{{template "header" .}} -## Liqui Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/localbitcoins.tmpl b/tools/documentation/exchange_readme_templates/localbitcoins.tmpl deleted file mode 100644 index a88265d9..00000000 --- a/tools/documentation/exchange_readme_templates/localbitcoins.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges localbitcoins" -}} -{{template "header" .}} -## LocalBitcoins Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/okcoin.tmpl b/tools/documentation/exchange_readme_templates/okcoin.tmpl deleted file mode 100644 index c732f595..00000000 --- a/tools/documentation/exchange_readme_templates/okcoin.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges okcoin" -}} -{{template "header" .}} -## OKCoin Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/okex.tmpl b/tools/documentation/exchange_readme_templates/okex.tmpl deleted file mode 100644 index bc0d482e..00000000 --- a/tools/documentation/exchange_readme_templates/okex.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges okex" -}} -{{template "header" .}} -## OKex Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/poloniex.tmpl b/tools/documentation/exchange_readme_templates/poloniex.tmpl deleted file mode 100644 index 30bd1a08..00000000 --- a/tools/documentation/exchange_readme_templates/poloniex.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges poloniex" -}} -{{template "header" .}} -## Poloniex Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/wex.tmpl b/tools/documentation/exchange_readme_templates/wex.tmpl deleted file mode 100644 index a4637dc4..00000000 --- a/tools/documentation/exchange_readme_templates/wex.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges wex" -}} -{{template "header" .}} -## Wex Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/yobit.tmpl b/tools/documentation/exchange_readme_templates/yobit.tmpl deleted file mode 100644 index 8cb95788..00000000 --- a/tools/documentation/exchange_readme_templates/yobit.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{define "exchanges yobit" -}} -{{template "header" .}} -## Yobit Exchange - -### Current Features - -+ Initial generation - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/exchange_readme_templates/alphapoint.tmpl b/tools/documentation/exchanges_templates/alphapoint.tmpl similarity index 59% rename from tools/documentation/exchange_readme_templates/alphapoint.tmpl rename to tools/documentation/exchanges_templates/alphapoint.tmpl index 1dcefc88..a6129338 100644 --- a/tools/documentation/exchange_readme_templates/alphapoint.tmpl +++ b/tools/documentation/exchanges_templates/alphapoint.tmpl @@ -1,10 +1,12 @@ {{define "exchanges alphapoint" -}} {{template "header" .}} -## Alphapoint Exchange +## Alphapoint Exchange -### Current Features ++ Please visit [Alphapoint](https://www.alphapoint.com/) for more info. -+ Initial generation +### How to enable + ++ Not currently configurable ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/exchanges_templates/anx.tmpl b/tools/documentation/exchanges_templates/anx.tmpl new file mode 100644 index 00000000..e2a4e4f9 --- /dev/null +++ b/tools/documentation/exchanges_templates/anx.tmpl @@ -0,0 +1,109 @@ +{{define "exchanges anx" -}} +{{template "header" .}} +## ANX Exchange + +### Current Features + ++ REST functions + +### Features not yet included + ++ Long polling streaming + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var a exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "ANX" { + a = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := a.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := a.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := a.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := a.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := a.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := a.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := a.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do LongPolling public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/binance.tmpl b/tools/documentation/exchanges_templates/binance.tmpl new file mode 100644 index 00000000..492c33cc --- /dev/null +++ b/tools/documentation/exchanges_templates/binance.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges binance" -}} +{{template "header" .}} +## Binance Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Binance" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/bitfinex.tmpl b/tools/documentation/exchanges_templates/bitfinex.tmpl new file mode 100644 index 00000000..bad641ca --- /dev/null +++ b/tools/documentation/exchanges_templates/bitfinex.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges bitfinex" -}} +{{template "header" .}} +## Bitfinex Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bitfinex" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/bitflyer.tmpl b/tools/documentation/exchanges_templates/bitflyer.tmpl new file mode 100644 index 00000000..e7b32d08 --- /dev/null +++ b/tools/documentation/exchanges_templates/bitflyer.tmpl @@ -0,0 +1,105 @@ +{{define "exchanges bitflyer" -}} +{{template "header" .}} +## Bitflyer Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bitflyer" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/bithumb.tmpl b/tools/documentation/exchanges_templates/bithumb.tmpl new file mode 100644 index 00000000..2e12de48 --- /dev/null +++ b/tools/documentation/exchanges_templates/bithumb.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges bithumb" -}} +{{template "header" .}} +## Bithumb Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bithumb" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/bitstamp.tmpl b/tools/documentation/exchanges_templates/bitstamp.tmpl new file mode 100644 index 00000000..9affe03e --- /dev/null +++ b/tools/documentation/exchanges_templates/bitstamp.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges bitstamp" -}} +{{template "header" .}} +## Bitstamp Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bitstamp" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/bittrex.tmpl b/tools/documentation/exchanges_templates/bittrex.tmpl new file mode 100644 index 00000000..a9313b5c --- /dev/null +++ b/tools/documentation/exchanges_templates/bittrex.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges bittrex" -}} +{{template "header" .}} +## Bittrex Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Bittrex" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/btcc.tmpl b/tools/documentation/exchanges_templates/btcc.tmpl new file mode 100644 index 00000000..43fd48bf --- /dev/null +++ b/tools/documentation/exchanges_templates/btcc.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges btcc" -}} +{{template "header" .}} +## BTCC Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "BTCC" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/btcmarkets.tmpl b/tools/documentation/exchanges_templates/btcmarkets.tmpl new file mode 100644 index 00000000..940e02e1 --- /dev/null +++ b/tools/documentation/exchanges_templates/btcmarkets.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges btcmarkets" -}} +{{template "header" .}} +## BTCMarkets Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var b exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "BTCMarkets" { + b = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := b.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := b.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := b.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := b.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := b.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := b.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/coinbasepro.tmpl b/tools/documentation/exchanges_templates/coinbasepro.tmpl new file mode 100644 index 00000000..e2939ab3 --- /dev/null +++ b/tools/documentation/exchanges_templates/coinbasepro.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges coinbasepro" -}} +{{template "header" .}} +## CoinbasePro Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var c exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "CoinbasePro" { + c = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := c.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := c.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := c.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := c.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := c.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/coinut.tmpl b/tools/documentation/exchanges_templates/coinut.tmpl new file mode 100644 index 00000000..c6916450 --- /dev/null +++ b/tools/documentation/exchanges_templates/coinut.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges coinut" -}} +{{template "header" .}} +## Coinut Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var c exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Coinut" { + c = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := c.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := c.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := c.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := c.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := c.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := c.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/exchanges_orderbook_readme.tmpl b/tools/documentation/exchanges_templates/exchanges_orderbook_readme.tmpl new file mode 100644 index 00000000..93f6414b --- /dev/null +++ b/tools/documentation/exchanges_templates/exchanges_orderbook_readme.tmpl @@ -0,0 +1,41 @@ +{{define "exchanges orderbook" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ This package facilitates orderbook generation. ++ Attaches methods to an orderbook + - To Return total Bids + - To Return total Asks + - Update orderbooks ++ Gets a loaded orderbook by exchange, asset type and currency pair. + ++ This package is primarily used in conjunction with but not limited to the +exchange interface system set by exchange wrapper orderbook functions in +"exchange"_wrapper.go. + +Examples below: + +```go +ob, err := yobitExchange.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Find total asks which also returns total orderbook value +totalAsks, totalOrderbookVal := ob.CalculateTotalAsks() +``` + ++ or if you have a routine setting an exchange orderbook you can access it via +the package itself. + +```go +ob, err := orderbook.GetOrderbook(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/readme_templates/exchanges_readme.tmpl b/tools/documentation/exchanges_templates/exchanges_readme.tmpl similarity index 78% rename from tools/documentation/readme_templates/exchanges_readme.tmpl rename to tools/documentation/exchanges_templates/exchanges_readme.tmpl index f4f9cf77..5de95070 100644 --- a/tools/documentation/readme_templates/exchanges_readme.tmpl +++ b/tools/documentation/exchanges_templates/exchanges_readme.tmpl @@ -4,6 +4,9 @@ + This package is used to connect and query data from supported exchanges. ++ Please checkout individual exchange README for more information on +implementation + ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} {{template "donations"}} diff --git a/tools/documentation/readme_templates/exchanges_stats_readme.tmpl b/tools/documentation/exchanges_templates/exchanges_stats_readme.tmpl similarity index 56% rename from tools/documentation/readme_templates/exchanges_stats_readme.tmpl rename to tools/documentation/exchanges_templates/exchanges_stats_readme.tmpl index f0bdc956..16dfdc12 100644 --- a/tools/documentation/readme_templates/exchanges_stats_readme.tmpl +++ b/tools/documentation/exchanges_templates/exchanges_stats_readme.tmpl @@ -2,7 +2,11 @@ {{template "header" .}} ## Current Features for {{.Name}} -+ This package services the exchanges package. ++ This stats package services the exchanges package by providing stats on +enabled exchanges i.e. + - Sort by largest volume + - Sort by best price for currency + - Others will be added soon ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/exchanges_templates/exchanges_ticker_readme.tmpl b/tools/documentation/exchanges_templates/exchanges_ticker_readme.tmpl new file mode 100644 index 00000000..0f47ef6d --- /dev/null +++ b/tools/documentation/exchanges_templates/exchanges_ticker_readme.tmpl @@ -0,0 +1,42 @@ +{{define "exchanges ticker" -}} +{{template "header" .}} +## Current Features for {{.Name}} + ++ This services the exchanges package by ticker functions. + ++ This package facilitates ticker generation. ++ Attaches methods to an ticker + - Returns a string of a value + ++ Gets a loaded ticker by exchange, asset type and currency pair. + ++ This package is primarily used in conjunction with but not limited to the +exchange interface system set by exchange wrapper orderbook functions in +"exchange"_wrapper.go. + +Examples below: + +```go +tick, err := yobitExchange.GetTickerPrice() +if err != nil { + // Handle error +} + +// Converts ticker value to string +tickerValString := tick.PriceToString(...) +``` + ++ or if you have a routine setting an exchange orderbook you can access it via +the package itself. + +```go +tick, err := ticker.GetTicker(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/exmo.tmpl b/tools/documentation/exchanges_templates/exmo.tmpl new file mode 100644 index 00000000..d4095426 --- /dev/null +++ b/tools/documentation/exchanges_templates/exmo.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges exmo" -}} +{{template "header" .}} +## Exmo Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var e exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Exmo" { + e = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := e.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := e.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := e.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := e.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := e.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := e.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := e.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/gemini.tmpl b/tools/documentation/exchanges_templates/gemini.tmpl new file mode 100644 index 00000000..621066c1 --- /dev/null +++ b/tools/documentation/exchanges_templates/gemini.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges gemini" -}} +{{template "header" .}} +## Gemini Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var g exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Gemini" { + g = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := g.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := g.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := g.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := g.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := g.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := g.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := g.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/hitbtc.tmpl b/tools/documentation/exchanges_templates/hitbtc.tmpl new file mode 100644 index 00000000..e4f18ce9 --- /dev/null +++ b/tools/documentation/exchanges_templates/hitbtc.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges hitbtc" -}} +{{template "header" .}} +## HitBTC Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var h exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "HitBTC" { + h = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := h.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := h.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := h.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := h.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := h.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/huobi.tmpl b/tools/documentation/exchanges_templates/huobi.tmpl new file mode 100644 index 00000000..9688119b --- /dev/null +++ b/tools/documentation/exchanges_templates/huobi.tmpl @@ -0,0 +1,105 @@ +{{define "exchanges huobi" -}} +{{template "header" .}} +## Huobi Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var h exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Huobi" { + h = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := h.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := h.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := h.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := h.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := h.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := h.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/itbit.tmpl b/tools/documentation/exchanges_templates/itbit.tmpl new file mode 100644 index 00000000..897ebae9 --- /dev/null +++ b/tools/documentation/exchanges_templates/itbit.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges itbit" -}} +{{template "header" .}} +## Itbit Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var i exchange.IBotExchange + +for x := range bot.exchanges { + if bot.exchanges[x].GetName() == "Itbit" { + i = bot.exchanges[x] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := i.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := i.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := i.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := i.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := i.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := i.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := i.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/kraken.tmpl b/tools/documentation/exchanges_templates/kraken.tmpl new file mode 100644 index 00000000..c1987823 --- /dev/null +++ b/tools/documentation/exchanges_templates/kraken.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges kraken" -}} +{{template "header" .}} +## Kraken Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var k exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Kraken" { + k = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := k.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := k.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := k.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := k.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := k.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := k.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := k.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/lakebtc.tmpl b/tools/documentation/exchanges_templates/lakebtc.tmpl new file mode 100644 index 00000000..cfebdc20 --- /dev/null +++ b/tools/documentation/exchanges_templates/lakebtc.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges lakebtc" -}} +{{template "header" .}} +## LakeBTC Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var l exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "LakeBTC" { + l = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := l.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := l.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := l.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := l.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := l.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/liqui.tmpl b/tools/documentation/exchanges_templates/liqui.tmpl new file mode 100644 index 00000000..f830658a --- /dev/null +++ b/tools/documentation/exchanges_templates/liqui.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges liqui" -}} +{{template "header" .}} +## Liqui Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var l exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Liqui" { + l = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := l.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := l.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := l.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := l.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := l.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/localbitcoins.tmpl b/tools/documentation/exchanges_templates/localbitcoins.tmpl new file mode 100644 index 00000000..500023c6 --- /dev/null +++ b/tools/documentation/exchanges_templates/localbitcoins.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges localbitcoins" -}} +{{template "header" .}} +## LocalBitcoins Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var l exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "LocalBitcoins" { + l = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := l.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := l.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := l.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := l.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := l.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := l.Trade(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/readme_templates/exchanges_nonce_readme.tmpl b/tools/documentation/exchanges_templates/nonce.tmpl similarity index 100% rename from tools/documentation/readme_templates/exchanges_nonce_readme.tmpl rename to tools/documentation/exchanges_templates/nonce.tmpl diff --git a/tools/documentation/exchanges_templates/okcoin.tmpl b/tools/documentation/exchanges_templates/okcoin.tmpl new file mode 100644 index 00000000..25305645 --- /dev/null +++ b/tools/documentation/exchanges_templates/okcoin.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges okcoin" -}} +{{template "header" .}} +## OKCoin Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var o exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "OKCoin" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := o.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := o.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := o.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetOrderBook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetUserInfo returns account info +accountInfo, err := o.GetUserInfo(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := o.Trade(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/okex.tmpl b/tools/documentation/exchanges_templates/okex.tmpl new file mode 100644 index 00000000..3ffa1118 --- /dev/null +++ b/tools/documentation/exchanges_templates/okex.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges okex" -}} +{{template "header" .}} +## OKex Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var o exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "OKex" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := o.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := o.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := o.GetSpotTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := o.GetSpotMarketDepth() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// GetContractPosition returns contract positioning +accountInfo, err := o.GetContractPosition(...) +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := o.PlaceContractOrders(...) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/readme_templates/currency_readme.tmpl b/tools/documentation/exchanges_templates/orders.tmpl similarity index 56% rename from tools/documentation/readme_templates/currency_readme.tmpl rename to tools/documentation/exchanges_templates/orders.tmpl index 7cdf48ed..e593a6b3 100644 --- a/tools/documentation/readme_templates/currency_readme.tmpl +++ b/tools/documentation/exchanges_templates/orders.tmpl @@ -1,8 +1,11 @@ -{{define "currency" -}} +{{define "exchanges orders" -}} {{template "header" .}} ## Current Features for {{.Name}} -+ Currency package deals with currency pair generation, manipulation and tracking. ++ This package services the exchanges package with order handling. + - Creation of order + - Deletion of order + - Order tracking ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/exchanges_templates/poloniex.tmpl b/tools/documentation/exchanges_templates/poloniex.tmpl new file mode 100644 index 00000000..e1a9ca3c --- /dev/null +++ b/tools/documentation/exchanges_templates/poloniex.tmpl @@ -0,0 +1,106 @@ +{{define "exchanges poloniex" -}} +{{template "header" .}} +## Poloniex Exchange + +### Current Features + ++ REST Support ++ Websocket Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var p exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Poloniex" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := p.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := p.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := p.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := p.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := p.GetOrderbook() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// Cancels current account order +accountInfo, err := p.CancelOrder() +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := p.PlaceOrder(...) +if err != nil { + // Handle error +} +``` + +### How to do Websocket public/private calls + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/readme_templates/currency_pair_readme.tmpl b/tools/documentation/exchanges_templates/request.tmpl similarity index 57% rename from tools/documentation/readme_templates/currency_pair_readme.tmpl rename to tools/documentation/exchanges_templates/request.tmpl index 042285ab..c1523dbf 100644 --- a/tools/documentation/readme_templates/currency_pair_readme.tmpl +++ b/tools/documentation/exchanges_templates/request.tmpl @@ -1,8 +1,9 @@ -{{define "currency pair" -}} +{{define "exchanges request" -}} {{template "header" .}} ## Current Features for {{.Name}} -+ This package services the currency package. ++ This package services the exchanges package with request handling. + - Throttling of requests for an individual exchange ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/exchanges_templates/wex.tmpl b/tools/documentation/exchanges_templates/wex.tmpl new file mode 100644 index 00000000..f81d7fdd --- /dev/null +++ b/tools/documentation/exchanges_templates/wex.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges wex" -}} +{{template "header" .}} +## Wex Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var w exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Wex" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := w.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := w.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := w.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := w.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := w.GetDepth() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := w.GetAccountInfo() +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := w.Trade("BTCUSD", "MARKET", 1, 2) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/exchanges_templates/yobit.tmpl b/tools/documentation/exchanges_templates/yobit.tmpl new file mode 100644 index 00000000..16a2ecc4 --- /dev/null +++ b/tools/documentation/exchanges_templates/yobit.tmpl @@ -0,0 +1,98 @@ +{{define "exchanges yobit" -}} +{{template "header" .}} +## Yobit Exchange + +### Current Features + ++ REST Support + +### How to enable + ++ [Enable via configuration](https://github.com/thrasher-/gocryptotrader/tree/master/config#enable-exchange-via-config-example) + ++ Individual package example below: + +```go + // Exchanges will be abstracted out in further updates and examples will be + // supplied then +``` + +### How to do REST public/private calls + ++ If enabled via "configuration".json file the exchange will be added to the +IBotExchange array in the ```go var bot Bot``` and you will only be able to use +the wrapper interface functions for accessing exchange data. View routines.go +for an example of integration usage with GoCryptoTrader. Rudimentary example +below: + +main.go +```go +var y exchange.IBotExchange + +for i := range bot.exchanges { + if bot.exchanges[i].GetName() == "Yobit" { + y = bot.exchanges[i] + } +} + +// Public calls - wrapper functions + +// Fetches current ticker information +tick, err := y.GetTickerPrice() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := y.GetOrderbookEx() +if err != nil { + // Handle error +} + +// Private calls - wrapper functions - make sure your APIKEY and APISECRET are +// set and AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := y.GetExchangeAccountInfo() +if err != nil { + // Handle error +} +``` + ++ If enabled via individually importing package, rudimentary example below: + +```go +// Public calls + +// Fetches current ticker information +ticker, err := y.GetTicker() +if err != nil { + // Handle error +} + +// Fetches current orderbook information +ob, err := y.GetDepth() +if err != nil { + // Handle error +} + +// Private calls - make sure your APIKEY and APISECRET are set and +// AuthenticatedAPISupport is set to true + +// Fetches current account information +accountInfo, err := y.GetAccountInfo() +if err != nil { + // Handle error +} + +// Submits an order and the exchange and returns its tradeID +tradeID, err := y.Trade("BTCUSD", "MARKET", 1, 2) +if err != nil { + // Handle error +} +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/readme_templates/portfolio_readme.tmpl b/tools/documentation/portfolio_templates/portfolio_readme.tmpl similarity index 100% rename from tools/documentation/readme_templates/portfolio_readme.tmpl rename to tools/documentation/portfolio_templates/portfolio_readme.tmpl diff --git a/tools/documentation/readme_templates/currency_symbol_readme.tmpl b/tools/documentation/readme_templates/currency_symbol_readme.tmpl deleted file mode 100644 index 424ad811..00000000 --- a/tools/documentation/readme_templates/currency_symbol_readme.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -{{define "currency symbol" -}} -{{template "header" .}} -## Current Features for {{.Name}} - -+ This package services the currency package. - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/readme_templates/exchanges_orderbook_readme.tmpl b/tools/documentation/readme_templates/exchanges_orderbook_readme.tmpl deleted file mode 100644 index ccb4d40b..00000000 --- a/tools/documentation/readme_templates/exchanges_orderbook_readme.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -{{define "exchanges orderbook" -}} -{{template "header" .}} -## Current Features for {{.Name}} - -+ This package facilitates orderbook generation. - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/readme_templates/exchanges_ticker_readme.tmpl b/tools/documentation/readme_templates/exchanges_ticker_readme.tmpl deleted file mode 100644 index c848e11f..00000000 --- a/tools/documentation/readme_templates/exchanges_ticker_readme.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -{{define "exchanges ticker" -}} -{{template "header" .}} -## Current Features for {{.Name}} - -+ This services the exchanges package by ticker functions. - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/readme_templates/smsglobal_readme.tmpl b/tools/documentation/readme_templates/smsglobal_readme.tmpl deleted file mode 100644 index 7b651e3a..00000000 --- a/tools/documentation/readme_templates/smsglobal_readme.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -{{define "smsglobal" -}} -{{template "header" .}} -## Current Features for {{.Name}} - -+ This package allows for the messaging of events to a personal phone number or a group of phone numbers. - -### Please click GoDocs chevron above to view current GoDoc information for this package -{{template "contributions"}} -{{template "donations"}} -{{end}} diff --git a/tools/documentation/general_templates/CONTRIBUTORS b/tools/documentation/root_templates/CONTRIBUTORS similarity index 100% rename from tools/documentation/general_templates/CONTRIBUTORS rename to tools/documentation/root_templates/CONTRIBUTORS diff --git a/tools/documentation/general_templates/LICENSE b/tools/documentation/root_templates/LICENSE similarity index 100% rename from tools/documentation/general_templates/LICENSE rename to tools/documentation/root_templates/LICENSE diff --git a/tools/documentation/readme_templates/root_readme.tmpl b/tools/documentation/root_templates/root_readme.tmpl similarity index 99% rename from tools/documentation/readme_templates/root_readme.tmpl rename to tools/documentation/root_templates/root_readme.tmpl index 2d2776ad..61ae691c 100644 --- a/tools/documentation/readme_templates/root_readme.tmpl +++ b/tools/documentation/root_templates/root_readme.tmpl @@ -21,7 +21,7 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader |----------|------|-----------|-----| | Alphapoint | Yes | Yes | NA | | ANXPRO | Yes | No | NA | -| Binance| Yes | No | NA | +| Binance| Yes | Yes | NA | | Bitfinex | Yes | Yes | NA | | Bitflyer | Yes | No | NA | | Bithumb | Yes | NA | NA | diff --git a/tools/documentation/readme_templates/testdata_readme.tmpl b/tools/documentation/testdata_templates/testdata_readme.tmpl similarity index 100% rename from tools/documentation/readme_templates/testdata_readme.tmpl rename to tools/documentation/testdata_templates/testdata_readme.tmpl diff --git a/tools/documentation/tools_templates/config_tool.tmpl b/tools/documentation/tools_templates/config_tool.tmpl new file mode 100644 index 00000000..17a3c8f4 --- /dev/null +++ b/tools/documentation/tools_templates/config_tool.tmpl @@ -0,0 +1,20 @@ +{{define "tools config" -}} +{{template "header" .}} +## Configuration management tool + +### Current Features + ++ The configuration management tool takes in a "configuration".json file and +writes to an output file while validating the inputting data. + +Example usage: + +```bash +cd $GOPATH/src/github.com/thrasher-/gocryptotrader/tools/config/ +go run ./config.go -infile path/of/config.json -outfile path/of/new/config.json -encrypt falseOrTrue -key KEYHERE +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/tools_templates/documentation_tool.tmpl b/tools/documentation/tools_templates/documentation_tool.tmpl new file mode 100644 index 00000000..50159e82 --- /dev/null +++ b/tools/documentation/tools_templates/documentation_tool.tmpl @@ -0,0 +1,23 @@ +{{define "tools documentation" -}} +{{template "header" .}} +## Documentation Management Tool + +### Current Features + ++ Retrieves contribution activity via github API ++ Regenerates and updates documentation across the entire code base for each individual package ++ Allows for a documentation standard across this codebase + +#### How to example + ++ This will update the entire codebase when a change is made in the documentation templates + +```sh +cd $GOPATH/src/github.com/thrasher-/gocryptotrader/tools/documentation/ +go run gocryptotrader.go -r +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/tools_templates/exchange_tool.tmpl b/tools/documentation/tools_templates/exchange_tool.tmpl new file mode 100644 index 00000000..d90a5c9e --- /dev/null +++ b/tools/documentation/tools_templates/exchange_tool.tmpl @@ -0,0 +1,23 @@ +{{define "tools exchange" -}} +{{template "header" .}} +## Exchange Template Management Tool + +### Current Features + ++ Generates a basic template for incorporating a new exchange in the codebase + +#### How to example + ++ This will update the entire codebase when a change is made in the documentation templates ++ add -name flag to generate an exchange e.g -name yobit ++ add supporting request protocols by adding either -rest, -ws and or -fix + +```sh +cd $GOPATH/src/github.com/thrasher-/gocryptotrader/tools/exchange_template/ +go run exchange_template.go -name Bitmex -ws -rest +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/tools_templates/huobi_auth_tool.tmpl b/tools/documentation/tools_templates/huobi_auth_tool.tmpl new file mode 100644 index 00000000..0415a208 --- /dev/null +++ b/tools/documentation/tools_templates/huobi_auth_tool.tmpl @@ -0,0 +1,20 @@ +{{define "tools huobiauth" -}} +{{template "header" .}} +## Huobi Authentication Management Tool + +### Current Features + ++ Generates a public and private key from a private key provided by Huobi for +API Authentication. ++ Move your file into the same folder as the Huobi auth tool + + Generate Keys: + ```bash +cd $GOPATH/src/github.com/thrasher-/gocryptotrader/tools/huobi_auth/ +go run main.go + ``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/tools_templates/portfolio_tool.tmpl b/tools/documentation/tools_templates/portfolio_tool.tmpl new file mode 100644 index 00000000..12e456cc --- /dev/null +++ b/tools/documentation/tools_templates/portfolio_tool.tmpl @@ -0,0 +1,18 @@ +{{define "tools portfolio" -}} +{{template "header" .}} +## Portfolio Retrievement Tool + +### Current Features + ++ Fetches portfolio details + +Example: +```bash +cd $GOPATH/src/github.com/thrasher-/gocryptotrader/tools/portfolio/ +go run portfolio.go -infile path/to/config.json -key AESDecryptionKey +``` + +### Please click GoDocs chevron above to view current GoDoc information for this package +{{template "contributions"}} +{{template "donations"}} +{{end}} diff --git a/tools/documentation/readme_templates/tools_readme.tmpl b/tools/documentation/tools_templates/tools.tmpl similarity index 56% rename from tools/documentation/readme_templates/tools_readme.tmpl rename to tools/documentation/tools_templates/tools.tmpl index 6789effa..69463c6c 100644 --- a/tools/documentation/readme_templates/tools_readme.tmpl +++ b/tools/documentation/tools_templates/tools.tmpl @@ -10,18 +10,7 @@ This folder contains an assortment of tools. + Exchange deployment + Websocket client - -Example Run for documentation generation - flags -v Verbose & -r Replace files -```sh -cd documentation/ -go run documentation.go -v -``` -OR for full replacement. - -```sh -cd documentation/ -go run documentation.go -v -r -``` +Please see individual tool's README file {{template "contributions"}} {{template "donations"}} {{end}} diff --git a/tools/documentation/exchange_readme_templates/binance.tmpl b/tools/documentation/tools_templates/websocket_client_tool.tmpl similarity index 50% rename from tools/documentation/exchange_readme_templates/binance.tmpl rename to tools/documentation/tools_templates/websocket_client_tool.tmpl index f3b832c7..bd49bfc6 100644 --- a/tools/documentation/exchange_readme_templates/binance.tmpl +++ b/tools/documentation/tools_templates/websocket_client_tool.tmpl @@ -1,10 +1,16 @@ -{{define "exchanges binance" -}} +{{define "tools websocket" -}} {{template "header" .}} -## Binance Exchange +## Websocket Client Tool ### Current Features -+ Initial generation ++ Starts a websocket client + +Example: +```bash +cd $GOPATH/src/github.com/thrasher-/gocryptotrader/tools/websocket_client/ +go run main.go +``` ### Please click GoDocs chevron above to view current GoDoc information for this package {{template "contributions"}} diff --git a/tools/documentation/readme_templates/web_readme.tmpl b/tools/documentation/web_templates/web_readme.tmpl similarity index 97% rename from tools/documentation/readme_templates/web_readme.tmpl rename to tools/documentation/web_templates/web_readme.tmpl index 57715cdc..3d9f9484 100644 --- a/tools/documentation/readme_templates/web_readme.tmpl +++ b/tools/documentation/web_templates/web_readme.tmpl @@ -30,9 +30,9 @@ npm run start:web Currently runs with: -- Angular v5.2.5 -- Angular-CLI v1.6.4 -- Electron v1.8.2 +- Angular v6.0.9 +- Angular-CLI v6.0.8 +- Electron v1.8.7 - Electron Builder v20.0.4 diff --git a/web/README.md b/web/README.md index 3aa3722c..4cb8c5ff 100644 --- a/web/README.md +++ b/web/README.md @@ -48,8 +48,8 @@ npm run start:web Currently runs with: -- Angular v5.2.5 -- Angular-CLI v1.6.4 +- Angular v6.0.9 +- Angular-CLI v6.0.8 - Electron v1.8.7 - Electron Builder v20.0.4