Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

exchanges: shift GetDefaultConfig wrapper function to exchange.go #1472

Merged
merged 6 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions backtester/engine/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,14 +145,16 @@ func (bt *BackTest) SetupFromConfig(cfg *config.Config, templatePath, output str
if err != nil {
return err
}
exch.SetDefaults()
exchBase := exch.GetBase()
exchBase.Verbose = cfg.DataSettings.VerboseExchangeRequests

var dc *gctconfig.Exchange
dc, err = exch.GetDefaultConfig(context.TODO())
dc, err = exch.GetDefaultConfig(context.TODO(), exch)
if err != nil {
return err
}

exchBase := exch.GetBase()
exchBase.Verbose = cfg.DataSettings.VerboseExchangeRequests

err = exch.Setup(dc)
if err != nil {
return err
Expand Down
2 changes: 1 addition & 1 deletion cmd/config_builder/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func main() {
cfgs := make([]config.Exchange, 0, len(exchanges))
for x := range exchanges {
var cfg *config.Exchange
cfg, err = exchanges[x].GetDefaultConfig(context.Background())
cfg, err = exchanges[x].GetDefaultConfig(context.Background(), exchanges[x])
if err != nil {
log.Printf("Failed to get exchanges default config. Err: %s", err)
continue
Expand Down
19 changes: 0 additions & 19 deletions cmd/exchange_template/wrapper_file.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func ({{.Variable}} *{{.CapitalName}}) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
{{.Variable}}.SetDefaults()
exchCfg := new(config.Exchange)
exchCfg.Name = {{.Variable}}.Name
exchCfg.HTTPTimeout = exchange.DefaultHTTPTimeout
exchCfg.BaseCurrencies = {{.Variable}}.BaseCurrencies

{{.Variable}}.SetupDefaults(exchCfg)

if {{.Variable}}.Features.Supports.RESTCapabilities.AutoPairUpdates {
err := {{.Variable}}.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}
return exchCfg, nil
}

// SetDefaults sets the basic defaults for {{.CapitalName}}
func ({{.Variable}} *{{.CapitalName}}) SetDefaults() {
{{.Variable}}.Name = "{{.CapitalName}}"
Expand Down
2 changes: 1 addition & 1 deletion engine/engine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ func TestGetDefaultConfigurations(t *testing.T) {
t.Skipf("skipping %s unsupported", name)
}

defaultCfg, err := exch.GetDefaultConfig(context.Background())
defaultCfg, err := exch.GetDefaultConfig(context.Background(), exch)
if err != nil {
t.Fatal(err)
}
Expand Down
3 changes: 1 addition & 2 deletions engine/event_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,8 +281,7 @@ func TestCheckEventCondition(t *testing.T) {
if err != nil {
t.Fatal(err)
}
exch.SetDefaults()
conf, err := exch.GetDefaultConfig(context.Background())
conf, err := exch.GetDefaultConfig(context.Background(), exch)
if err != nil {
t.Error(err)
}
Expand Down
2 changes: 1 addition & 1 deletion engine/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -1054,7 +1054,7 @@ func NewExchangeByNameWithDefaults(ctx context.Context, name string) (exchange.I
if err != nil {
return nil, err
}
defaultConfig, err := exch.GetDefaultConfig(ctx)
defaultConfig, err := exch.GetDefaultConfig(ctx, exch)
if err != nil {
return nil, err
}
Expand Down
3 changes: 1 addition & 2 deletions engine/order_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,8 @@ func OrdersSetup(t *testing.T) *OrderManager {
if err != nil {
t.Fatal(err)
}
exch.SetDefaults()

cfg, err := exch.GetDefaultConfig(context.Background())
cfg, err := exch.GetDefaultConfig(context.Background(), exch)
if err != nil {
t.Fatal(err)
}
Expand Down
3 changes: 1 addition & 2 deletions engine/withdraw_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ func withdrawManagerTestHelper(t *testing.T) (*ExchangeManager, *portfolioManage
t.Helper()
em := NewExchangeManager()
b := new(okx.Okx)
b.SetDefaults()
cfg, err := b.GetDefaultConfig(context.Background())
cfg, err := b.GetDefaultConfig(context.Background(), b)
if err != nil {
t.Fatal(err)
}
Expand Down
10 changes: 0 additions & 10 deletions exchanges/alphapoint/alphapoint_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config for Alphapoint
func (a *Alphapoint) GetDefaultConfig(_ context.Context) (*config.Exchange, error) {
return nil, common.ErrFunctionNotSupported
}

// Bootstrap loads the exchange and performs initialisation tasks
func (a *Alphapoint) Bootstrap(_ context.Context) (continueBootstrap bool, err error) {
return false, common.ErrNotYetImplemented
}

// SetDefaults sets current default settings
func (a *Alphapoint) SetDefaults() {
a.Name = "Alphapoint"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/binance/binance_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,29 +36,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func (b *Binance) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets the basic defaults for Binance
func (b *Binance) SetDefaults() {
b.Name = "Binance"
Expand Down
22 changes: 0 additions & 22 deletions exchanges/binanceus/binanceus_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func (bi *Binanceus) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
bi.SetDefaults()
exchCfg, err := bi.GetStandardConfig()
if err != nil {
return nil, err
}

err = bi.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if bi.Features.Supports.RESTCapabilities.AutoPairUpdates {
err := bi.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}
return exchCfg, nil
}

// SetDefaults sets the basic defaults for Binanceus
func (bi *Binanceus) SetDefaults() {
bi.Name = "Binanceus"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/bitfinex/bitfinex_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,29 +33,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func (b *Bitfinex) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets the basic defaults for bitfinex
func (b *Bitfinex) SetDefaults() {
b.Name = "Bitfinex"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/bitflyer/bitflyer_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,29 +28,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func (b *Bitflyer) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets the basic defaults for Bitflyer
func (b *Bitflyer) SetDefaults() {
b.Name = "Bitflyer"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/bithumb/bithumb_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,29 +36,6 @@ const wsRateLimitMillisecond = 1000

var errNotEnoughPairs = errors.New("at least one currency is required to fetch order history")

// GetDefaultConfig returns a default exchange config
func (b *Bithumb) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets the basic defaults for Bithumb
func (b *Bithumb) SetDefaults() {
b.Name = "Bithumb"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/bitmex/bitmex_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,29 +34,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func (b *Bitmex) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets the basic defaults for Bitmex
func (b *Bitmex) SetDefaults() {
b.Name = "Bitmex"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/bitstamp/bitstamp_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,29 +30,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func (b *Bitstamp) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets default for Bitstamp
func (b *Bitstamp) SetDefaults() {
b.Name = "Bitstamp"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/btcmarkets/btcmarkets_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,29 +34,6 @@ import (

var errFailedToConvertToCandle = errors.New("cannot convert time series data to kline.Candle, insufficient data")

// GetDefaultConfig returns a default exchange config
func (b *BTCMarkets) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets basic defaults
func (b *BTCMarkets) SetDefaults() {
b.Name = "BTC Markets"
Expand Down
23 changes: 0 additions & 23 deletions exchanges/btse/btse_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,29 +33,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/portfolio/withdraw"
)

// GetDefaultConfig returns a default exchange config
func (b *BTSE) GetDefaultConfig(ctx context.Context) (*config.Exchange, error) {
b.SetDefaults()
exchCfg, err := b.GetStandardConfig()
if err != nil {
return nil, err
}

err = b.SetupDefaults(exchCfg)
if err != nil {
return nil, err
}

if b.Features.Supports.RESTCapabilities.AutoPairUpdates {
err = b.UpdateTradablePairs(ctx, true)
if err != nil {
return nil, err
}
}

return exchCfg, nil
}

// SetDefaults sets the basic defaults for BTSE
func (b *BTSE) SetDefaults() {
b.Name = "BTSE"
Expand Down
Loading
Loading