Update exchange generators template files

This commit is contained in:
Adrian Gallagher
2018-10-25 15:08:27 +11:00
parent e6027cfede
commit 83263f3245
2 changed files with 47 additions and 8 deletions

View File

@@ -3,10 +3,12 @@ package {{.Name}}
import (
"log"
"time"
"github.com/thrasher-/gocryptotrader/common"
"github.com/thrasher-/gocryptotrader/config"
exchange "github.com/thrasher-/gocryptotrader/exchanges"
"github.com/thrasher-/gocryptotrader/exchanges"
"github.com/thrasher-/gocryptotrader/exchanges/request"
"github.com/thrasher-/gocryptotrader/exchanges/ticker"
)
@@ -30,13 +32,21 @@ func ({{.Variable}} *{{.CapitalName}}) SetDefaults() {
{{.Variable}}.Name = "{{.CapitalName}}"
{{.Variable}}.Enabled = false
{{.Variable}}.Verbose = false
{{.Variable}}.Websocket = false
{{.Variable}}.RESTPollingDelay = 10
{{.Variable}}.RequestCurrencyPairFormat.Delimiter = ""
{{.Variable}}.RequestCurrencyPairFormat.Uppercase = true
{{.Variable}}.ConfigCurrencyPairFormat.Delimiter = ""
{{.Variable}}.ConfigCurrencyPairFormat.Uppercase = true
{{.Variable}}.AssetTypes = []string{ticker.Spot}
{{.Variable}}.SupportsAutoPairUpdating = false
{{.Variable}}.SupportsRESTTickerBatching = false
{{.Variable}}.Requester = request.New({{.Variable}}.Name,
request.NewRateLimit(time.Second, 0),
request.NewRateLimit(time.Second, 0),
common.NewHTTPClientWithTimeout(exchange.DefaultHTTPTimeout))
{{.Variable}}.APIUrlDefault = {{.Name}}APIURL
{{.Variable}}.APIUrl = {{.Variable}}.APIUrlDefault
{{.Variable}}.WebsocketInit()
}
// Setup takes in the supplied exchange configuration details and sets params
@@ -47,9 +57,11 @@ func ({{.Variable}} *{{.CapitalName}}) Setup(exch config.ExchangeConfig) {
{{.Variable}}.Enabled = true
{{.Variable}}.AuthenticatedAPISupport = exch.AuthenticatedAPISupport
{{.Variable}}.SetAPIKeys(exch.APIKey, exch.APISecret, "", false)
{{.Variable}}.SetHTTPClientTimeout(exch.HTTPTimeout)
{{.Variable}}.SetHTTPClientUserAgent(exch.HTTPUserAgent)
{{.Variable}}.RESTPollingDelay = exch.RESTPollingDelay
{{.Variable}}.Verbose = exch.Verbose
{{.Variable}}.Websocket = exch.Websocket
{{.Variable}}.Websocket.SetEnabled(exch.Websocket)
{{.Variable}}.BaseCurrencies = common.SplitStrings(exch.BaseCurrencies, ",")
{{.Variable}}.AvailablePairs = common.SplitStrings(exch.AvailablePairs, ",")
{{.Variable}}.EnabledPairs = common.SplitStrings(exch.EnabledPairs, ",")
@@ -61,6 +73,28 @@ func ({{.Variable}} *{{.CapitalName}}) Setup(exch config.ExchangeConfig) {
if err != nil {
log.Fatal(err)
}
err = {{.Variable}}.SetAutoPairDefaults()
if err != nil {
log.Fatal(err)
}
err = {{.Variable}}.SetAPIURL(exch)
if err != nil {
log.Fatal(err)
}
err = {{.Variable}}.SetClientProxyAddress(exch.ProxyAddress)
if err != nil {
log.Fatal(err)
}
// If the exchange supports websocket, update the below block
// err = {{.Variable}}.WebsocketSetup({{.Variable}}.WsConnect,
// exch.Name,
// exch.Websocket,
// {{.Name}}Websocket,
// exch.WebsocketURL)
// if err != nil {
// log.Fatal(err)
// }
}
}
{{end}}

View File

@@ -6,9 +6,9 @@ import (
"log"
"sync"
"github.com/thrasher-/gocryptotrader/common"
{{if .WS}} "github.com/thrasher-/gocryptotrader/common" {{end}}
"github.com/thrasher-/gocryptotrader/currency/pair"
exchange "github.com/thrasher-/gocryptotrader/exchanges"
"github.com/thrasher-/gocryptotrader/exchanges"
"github.com/thrasher-/gocryptotrader/exchanges/orderbook"
"github.com/thrasher-/gocryptotrader/exchanges/ticker"
)
@@ -25,7 +25,7 @@ func ({{.Variable}} *{{.CapitalName}}) Start(wg *sync.WaitGroup) {
// Run implements the {{.CapitalName}} wrapper
func ({{.Variable}} *{{.CapitalName}}) Run() {
if {{.Variable}}.Verbose {
log.Printf("%s Websocket: %s. (url: %s).\n", {{.Variable}}.GetName(), common.IsEnabled({{.Variable}}.Websocket), {{.Variable}}.WebsocketURL)
{{if .WS}} log.Printf("%s Websocket: %s. (url: %s).\n", {{.Variable}}.GetName(), common.IsEnabled({{.Variable}}.Websocket.IsEnabled()), {{.Variable}}.Websocket.GetWebsocketURL()) {{end}}
log.Printf("%s polling delay: %ds.\n", {{.Variable}}.GetName(), {{.Variable}}.RESTPollingDelay)
log.Printf("%s %d currencies enabled: %s.\n", {{.Variable}}.GetName(), len({{.Variable}}.EnabledPairs), {{.Variable}}.EnabledPairs)
}
@@ -164,10 +164,15 @@ func ({{.Variable}} *{{.CapitalName}}) WithdrawFiatExchangeFunds(currency pair.C
return "", errors.New("not yet implemented")
}
// WithdrawExchangeFiatFundsToInternationalBank returns a withdrawal ID when a withdrawal is
// WithdrawFiatExchangeFundsToInternationalBank returns a withdrawal ID when a withdrawal is
// submitted
func ({{.Variable}} *{{.CapitalName}}) WithdrawExchangeFiatFundsToInternationalBank(currency pair.CurrencyItem, amount float64) (string, error) {
func ({{.Variable}} *{{.CapitalName}}) WithdrawFiatExchangeFundsToInternationalBank(currency pair.CurrencyItem, amount float64) (string, error) {
return "", errors.New("not yet implemented")
}
// GetWebsocket returns a pointer to the exchange websocket
func ({{.Variable}} *{{.CapitalName}}) GetWebsocket() (*exchange.Websocket, error) {
return nil, errors.New("not yet implemented")
}
{{end}}