Binance: Fixes expiring futures contract pair formatting (#836)

* Fixes expiring contract formatting

* minor simplification

* shazniterinos

* Removes secret scientific test

* continue to address nits

* Shazniterinos

* Adds `bypassConfigFormatUpgrades` feature. Fixes Binance pair parsing.

* lint fix

* Adds test for binance func

* Consistent messaging and oopsie fix
This commit is contained in:
Scott
2021-11-16 15:02:31 +11:00
committed by GitHub
parent 25e9d284d0
commit 7c7aebe22f
17 changed files with 661 additions and 373 deletions

View File

@@ -201,50 +201,51 @@ func (g *Gemini) Run() {
}
forceUpdate := false
format, err := g.GetPairFormat(asset.Spot, false)
if err != nil {
log.Errorf(log.ExchangeSys, "%s failed to get enabled currencies. Err %s\n",
g.Name,
err)
return
}
enabled, err := g.CurrencyPairs.GetPairs(asset.Spot, true)
if err != nil {
log.Errorf(log.ExchangeSys, "%s failed to get enabled currencies. Err %s\n",
g.Name,
err)
return
}
avail, err := g.CurrencyPairs.GetPairs(asset.Spot, false)
if err != nil {
log.Errorf(log.ExchangeSys, "%s failed to get available currencies. Err %s\n",
g.Name,
err)
return
}
if !common.StringDataContains(enabled.Strings(), format.Delimiter) ||
!common.StringDataContains(avail.Strings(), format.Delimiter) {
var enabledPairs currency.Pairs
enabledPairs, err = currency.NewPairsFromStrings([]string{
currency.BTC.String() + format.Delimiter + currency.USD.String()})
if !g.BypassConfigFormatUpgrades {
format, err := g.GetPairFormat(asset.Spot, false)
if err != nil {
log.Errorf(log.ExchangeSys, "%s failed to update currencies. Err %s\n",
log.Errorf(log.ExchangeSys, "%s failed to get enabled currencies. Err %s\n",
g.Name,
err)
} else {
log.Warn(log.ExchangeSys,
"Available pairs for Gemini reset due to config upgrade, please enable the ones you would like to use again")
forceUpdate = true
return
}
err = g.UpdatePairs(enabledPairs, asset.Spot, true, true)
enabled, err := g.CurrencyPairs.GetPairs(asset.Spot, true)
if err != nil {
log.Errorf(log.ExchangeSys, "%s failed to get enabled currencies. Err %s\n",
g.Name,
err)
return
}
avail, err := g.CurrencyPairs.GetPairs(asset.Spot, false)
if err != nil {
log.Errorf(log.ExchangeSys, "%s failed to get available currencies. Err %s\n",
g.Name,
err)
return
}
if !common.StringDataContains(enabled.Strings(), format.Delimiter) ||
!common.StringDataContains(avail.Strings(), format.Delimiter) {
var enabledPairs currency.Pairs
enabledPairs, err = currency.NewPairsFromStrings([]string{
currency.BTC.String() + format.Delimiter + currency.USD.String()})
if err != nil {
log.Errorf(log.ExchangeSys,
"%s failed to update currencies. Err: %s\n",
log.Errorf(log.ExchangeSys, "%s failed to update currencies. Err %s\n",
g.Name,
err)
} else {
log.Warnf(log.ExchangeSys, exchange.ResetConfigPairsWarningMessage, g.Name, asset.Spot, enabledPairs)
forceUpdate = true
err = g.UpdatePairs(enabledPairs, asset.Spot, true, true)
if err != nil {
log.Errorf(log.ExchangeSys,
"%s failed to update currencies. Err: %s\n",
g.Name,
err)
}
}
}
}
@@ -252,7 +253,7 @@ func (g *Gemini) Run() {
if !g.GetEnabledFeatures().AutoPairUpdates && !forceUpdate {
return
}
err = g.UpdateTradablePairs(context.TODO(), forceUpdate)
err := g.UpdateTradablePairs(context.TODO(), forceUpdate)
if err != nil {
log.Errorf(log.ExchangeSys,
"%s failed to update tradable pairs. Err: %s",