From 0824ee04c97611c19a68c90d69a6c6948a9bc2a6 Mon Sep 17 00:00:00 2001 From: Scott Date: Tue, 10 Sep 2019 10:53:25 +1000 Subject: [PATCH] Engine: bugfix: OKEX Future swap panic (#350) * Ensures that futures, index and swap currencies are properly set on OKEX startup with an existing engine config that hasn't been updated yet * Removes package/variable CLASH --- exchanges/okex/okex_wrapper.go | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/exchanges/okex/okex_wrapper.go b/exchanges/okex/okex_wrapper.go index f8c7ea20..9d01460a 100644 --- a/exchanges/okex/okex_wrapper.go +++ b/exchanges/okex/okex_wrapper.go @@ -140,8 +140,10 @@ func (o *OKEX) Run() { if o.Verbose { log.Debugf(log.ExchangeSys, "%s Websocket: %s. (url: %s).\n", o.GetName(), common.IsEnabled(o.Websocket.IsEnabled()), o.API.Endpoints.WebsocketURL) } - if o.Config.CurrencyPairs.Pairs[asset.Spot].ConfigFormat == nil || o.Config.CurrencyPairs.Pairs[asset.Spot].RequestFormat == nil { - fmt := currency.PairStore{ + + if o.Config.CurrencyPairs.Pairs[asset.Spot].ConfigFormat == nil || o.Config.CurrencyPairs.Pairs[asset.Spot].RequestFormat == nil || + o.Config.CurrencyPairs.Pairs[asset.Index].ConfigFormat == nil || o.Config.CurrencyPairs.Pairs[asset.Index].RequestFormat == nil { + currFmt := currency.PairStore{ RequestFormat: ¤cy.PairFormat{ Uppercase: true, Delimiter: "-", @@ -151,8 +153,28 @@ func (o *OKEX) Run() { Delimiter: "-", }, } - o.CurrencyPairs.Store(asset.Spot, fmt) - o.Config.CurrencyPairs.Store(asset.Spot, fmt) + o.CurrencyPairs.Store(asset.Spot, currFmt) + o.Config.CurrencyPairs.Store(asset.Spot, currFmt) + o.CurrencyPairs.Store(asset.Index, currFmt) + o.Config.CurrencyPairs.Store(asset.Index, currFmt) + } + + if o.Config.CurrencyPairs.Pairs[asset.Futures].ConfigFormat == nil || o.Config.CurrencyPairs.Pairs[asset.Futures].RequestFormat == nil || + o.Config.CurrencyPairs.Pairs[asset.PerpetualSwap].ConfigFormat == nil || o.Config.CurrencyPairs.Pairs[asset.PerpetualSwap].RequestFormat == nil { + currFmt := currency.PairStore{ + RequestFormat: ¤cy.PairFormat{ + Uppercase: true, + Delimiter: "-", + }, + ConfigFormat: ¤cy.PairFormat{ + Uppercase: true, + Delimiter: "_", + }, + } + o.CurrencyPairs.Store(asset.Futures, currFmt) + o.Config.CurrencyPairs.Store(asset.Futures, currFmt) + o.CurrencyPairs.Store(asset.PerpetualSwap, currFmt) + o.Config.CurrencyPairs.Store(asset.PerpetualSwap, currFmt) } if !common.StringDataContains(o.Config.CurrencyPairs.Pairs[asset.Spot].Enabled.Strings(), o.CurrencyPairs.Pairs[asset.Spot].RequestFormat.Delimiter) {