Skip to content

Commit b6dd0b4

Browse files
author
Ryan O'Hara-Reid
committed
wrapper_gettickers_rm_filter: thrasher-corp#2159
1 parent 1b13143 commit b6dd0b4

File tree

15 files changed

+135
-270
lines changed

15 files changed

+135
-270
lines changed

exchanges/binance/binance_wrapper.go

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -341,39 +341,31 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
341341
return err
342342
}
343343

344-
pairs, err := e.GetEnabledPairs(a)
345-
if err != nil {
346-
return err
347-
}
348-
349-
for i := range pairs {
350-
for y := range tick {
351-
pairFmt, err := e.FormatExchangeCurrency(pairs[i], a)
352-
if err != nil {
344+
for y := range tick {
345+
pair, err := e.MatchSymbolWithAvailablePairs(tick[y].Symbol, a, true)
346+
if err != nil {
347+
if !errors.Is(err, currency.ErrPairNotFound) {
353348
return err
354349
}
350+
continue
351+
}
355352

356-
if tick[y].Symbol != pairFmt.String() {
357-
continue
358-
}
359-
360-
err = ticker.ProcessTicker(&ticker.Price{
361-
Last: tick[y].LastPrice.Float64(),
362-
High: tick[y].HighPrice.Float64(),
363-
Low: tick[y].LowPrice.Float64(),
364-
Bid: tick[y].BidPrice.Float64(),
365-
Ask: tick[y].AskPrice.Float64(),
366-
Volume: tick[y].Volume.Float64(),
367-
QuoteVolume: tick[y].QuoteVolume.Float64(),
368-
Open: tick[y].OpenPrice.Float64(),
369-
Close: tick[y].PrevClosePrice.Float64(),
370-
Pair: pairFmt,
371-
ExchangeName: e.Name,
372-
AssetType: a,
373-
})
374-
if err != nil {
375-
return err
376-
}
353+
err = ticker.ProcessTicker(&ticker.Price{
354+
Last: tick[y].LastPrice.Float64(),
355+
High: tick[y].HighPrice.Float64(),
356+
Low: tick[y].LowPrice.Float64(),
357+
Bid: tick[y].BidPrice.Float64(),
358+
Ask: tick[y].AskPrice.Float64(),
359+
Volume: tick[y].Volume.Float64(),
360+
QuoteVolume: tick[y].QuoteVolume.Float64(),
361+
Open: tick[y].OpenPrice.Float64(),
362+
Close: tick[y].PrevClosePrice.Float64(),
363+
Pair: pair,
364+
ExchangeName: e.Name,
365+
AssetType: a,
366+
})
367+
if err != nil {
368+
return err
377369
}
378370
}
379371
case asset.USDTMarginedFutures:

exchanges/bitfinex/bitfinex_wrapper.go

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -289,18 +289,15 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
289289
return err
290290
}
291291

292-
var errs error
293292
for key, val := range t {
294-
pair, enabled, err := e.MatchSymbolCheckEnabled(key[1:], a, true)
295-
if err != nil && !errors.Is(err, currency.ErrPairNotFound) {
296-
errs = common.AppendError(errs, err)
297-
continue
298-
}
299-
if !enabled {
300-
continue
293+
pair, err := e.MatchSymbolWithAvailablePairs(key[1:], a, true)
294+
if err != nil {
295+
if errors.Is(err, currency.ErrPairNotFound) {
296+
continue
297+
}
298+
return err
301299
}
302-
303-
err = ticker.ProcessTicker(&ticker.Price{
300+
if err := ticker.ProcessTicker(&ticker.Price{
304301
Last: val.Last,
305302
High: val.High,
306303
Low: val.Low,
@@ -310,12 +307,11 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
310307
Pair: pair,
311308
AssetType: a,
312309
ExchangeName: e.Name,
313-
})
314-
if err != nil {
315-
errs = common.AppendError(errs, err)
310+
}); err != nil {
311+
return err
316312
}
317313
}
318-
return errs
314+
return nil
319315
}
320316

321317
// UpdateTicker updates and returns the ticker for a currency pair

exchanges/bitmex/bitmex_wrapper.go

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,6 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
300300
return err
301301
}
302302

303-
var enabled bool
304303
instruments:
305304
for j := range tick {
306305
var pair currency.Pair
@@ -309,13 +308,10 @@ instruments:
309308
if tick[j].Typ != futuresID {
310309
continue instruments
311310
}
312-
pair, enabled, err = e.MatchSymbolCheckEnabled(tick[j].Symbol, a, false)
311+
pair, err = e.MatchSymbolWithAvailablePairs(tick[j].Symbol, a, false)
313312
case asset.Index:
314313
switch tick[j].Typ {
315-
case bitMEXBasketIndexID,
316-
bitMEXPriceIndexID,
317-
bitMEXLendingPremiumIndexID,
318-
bitMEXVolatilityIndexID:
314+
case bitMEXBasketIndexID, bitMEXPriceIndexID, bitMEXLendingPremiumIndexID, bitMEXVolatilityIndexID:
319315
default:
320316
continue instruments
321317
}
@@ -324,28 +320,28 @@ instruments:
324320
// contain an underscore. Calling DeriveFrom will then error and
325321
// the instruments will be missed.
326322
tick[j].Symbol = strings.Replace(tick[j].Symbol, currency.UnderscoreDelimiter, "", 1)
327-
pair, enabled, err = e.MatchSymbolCheckEnabled(tick[j].Symbol, a, false)
323+
pair, err = e.MatchSymbolWithAvailablePairs(tick[j].Symbol, a, false)
328324
case asset.PerpetualContract:
329325
if tick[j].Typ != perpetualContractID {
330326
continue instruments
331327
}
332-
pair, enabled, err = e.MatchSymbolCheckEnabled(tick[j].Symbol, a, false)
328+
pair, err = e.MatchSymbolWithAvailablePairs(tick[j].Symbol, a, false)
333329
case asset.Spot:
334330
if tick[j].Typ != spotID {
335331
continue instruments
336332
}
337333
tick[j].Symbol = strings.Replace(tick[j].Symbol, currency.UnderscoreDelimiter, "", 1)
338-
pair, enabled, err = e.MatchSymbolCheckEnabled(tick[j].Symbol, a, false)
334+
pair, err = e.MatchSymbolWithAvailablePairs(tick[j].Symbol, a, false)
339335
}
340336

341-
if err != nil && !errors.Is(err, currency.ErrPairNotFound) {
337+
if err != nil {
338+
if errors.Is(err, currency.ErrPairNotFound) {
339+
continue
340+
}
342341
return err
343342
}
344-
if !enabled {
345-
continue
346-
}
347343

348-
err = ticker.ProcessTicker(&ticker.Price{
344+
if err := ticker.ProcessTicker(&ticker.Price{
349345
Last: tick[j].LastPrice,
350346
High: tick[j].HighPrice,
351347
Low: tick[j].LowPrice,
@@ -358,8 +354,7 @@ instruments:
358354
ExchangeName: e.Name,
359355
OpenInterest: tick[j].OpenInterest,
360356
AssetType: a,
361-
})
362-
if err != nil {
357+
}); err != nil {
363358
return err
364359
}
365360
}

exchanges/btcmarkets/btcmarkets_wrapper.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ func (e *Exchange) UpdateTradablePairs(ctx context.Context) error {
207207

208208
// UpdateTickers updates the ticker for all currency pairs of a given asset type
209209
func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
210-
allPairs, err := e.GetEnabledPairs(a)
210+
allPairs, err := e.GetAvailablePairs(a)
211211
if err != nil {
212212
return err
213213
}
@@ -217,10 +217,6 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
217217
return err
218218
}
219219

220-
if len(allPairs) != len(tickers) {
221-
return errors.New("enabled pairs differ from returned tickers")
222-
}
223-
224220
for x := range tickers {
225221
if err := ticker.ProcessTicker(&ticker.Price{
226222
Pair: tickers[x].MarketID,

exchanges/bybit/bybit_wrapper.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -509,10 +509,6 @@ func (e *Exchange) UpdateTradablePairs(ctx context.Context) error {
509509

510510
// UpdateTickers updates the ticker for all currency pairs of a given asset type
511511
func (e *Exchange) UpdateTickers(ctx context.Context, assetType asset.Item) error {
512-
enabled, err := e.GetEnabledPairs(assetType)
513-
if err != nil {
514-
return err
515-
}
516512
format, err := e.GetPairFormat(assetType, false)
517513
if err != nil {
518514
return err
@@ -532,9 +528,6 @@ func (e *Exchange) UpdateTickers(ctx context.Context, assetType asset.Item) erro
532528
if err != nil {
533529
continue
534530
}
535-
if !enabled.Contains(pair, true) {
536-
continue
537-
}
538531
err = ticker.ProcessTicker(&ticker.Price{
539532
Last: ticks.List[x].LastPrice.Float64(),
540533
High: ticks.List[x].HighPrice24H.Float64(),
@@ -564,9 +557,6 @@ func (e *Exchange) UpdateTickers(ctx context.Context, assetType asset.Item) erro
564557
if err != nil {
565558
continue
566559
}
567-
if !enabled.Contains(pair, true) {
568-
continue
569-
}
570560
err = ticker.ProcessTicker(&ticker.Price{
571561
Last: ticks.List[x].LastPrice.Float64(),
572562
High: ticks.List[x].HighPrice24H.Float64(),

exchanges/exmo/exmo_wrapper.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -161,19 +161,15 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
161161
return err
162162
}
163163

164-
var enabled bool
165164
for symbol, tick := range result {
166-
var pair currency.Pair
167-
pair, enabled, err = e.MatchSymbolCheckEnabled(symbol, asset.Spot, true)
165+
pair, err := e.MatchSymbolWithAvailablePairs(symbol, asset.Spot, true)
168166
if err != nil {
169-
if !errors.Is(err, currency.ErrPairNotFound) {
170-
return err
167+
if errors.Is(err, currency.ErrPairNotFound) {
168+
continue
171169
}
170+
return err
172171
}
173-
if !enabled {
174-
continue
175-
}
176-
err = ticker.ProcessTicker(&ticker.Price{
172+
if err := ticker.ProcessTicker(&ticker.Price{
177173
Pair: pair,
178174
Last: tick.Last,
179175
Ask: tick.Sell,
@@ -184,8 +180,7 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
184180
LastUpdated: tick.Updated.Time(),
185181
ExchangeName: e.Name,
186182
AssetType: a,
187-
})
188-
if err != nil {
183+
}); err != nil {
189184
return err
190185
}
191186
}

exchanges/gateio/gateio_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1769,6 +1769,10 @@ func TestUpdateTickers(t *testing.T) {
17691769
t.Parallel()
17701770
for _, a := range e.GetAssetTypes(false) {
17711771
err := e.UpdateTickers(t.Context(), a)
1772+
if a == asset.Options {
1773+
assert.ErrorIs(t, err, common.ErrFunctionNotSupported)
1774+
continue
1775+
}
17721776
assert.NoErrorf(t, err, "UpdateTickers should not error for %s", a)
17731777
}
17741778
}

exchanges/gateio/gateio_wrapper.go

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -585,35 +585,7 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
585585
}
586586
return errs
587587
case asset.Options:
588-
pairs, err := e.GetEnabledPairs(a)
589-
if err != nil {
590-
return err
591-
}
592-
for i := range pairs {
593-
underlying, err := e.GetUnderlyingFromCurrencyPair(pairs[i])
594-
if err != nil {
595-
return err
596-
}
597-
tickers, err := e.GetOptionsTickers(ctx, underlying.String())
598-
if err != nil {
599-
return err
600-
}
601-
for x := range tickers {
602-
err = ticker.ProcessTicker(&ticker.Price{
603-
Last: tickers[x].LastPrice.Float64(),
604-
Ask: tickers[x].Ask1Price.Float64(),
605-
AskSize: tickers[x].Ask1Size,
606-
Bid: tickers[x].Bid1Price.Float64(),
607-
BidSize: tickers[x].Bid1Size,
608-
Pair: tickers[x].Name,
609-
ExchangeName: e.Name,
610-
AssetType: a,
611-
})
612-
if err != nil {
613-
return err
614-
}
615-
}
616-
}
588+
return common.ErrFunctionNotSupported
617589
default:
618590
return fmt.Errorf("%w asset type: %v", asset.ErrNotSupported, a)
619591
}

exchanges/hitbtc/hitbtc_wrapper.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -218,20 +218,14 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
218218
}
219219

220220
for x := range tick {
221-
var pair currency.Pair
222-
var enabled bool
223-
pair, enabled, err = e.MatchSymbolCheckEnabled(tick[x].Symbol, a, false)
221+
pair, err := e.MatchSymbolWithAvailablePairs(tick[x].Symbol, a, false)
224222
if err != nil {
225-
if !errors.Is(err, currency.ErrPairNotFound) {
226-
return err
223+
if errors.Is(err, currency.ErrPairNotFound) {
224+
continue
227225
}
226+
return err
228227
}
229-
230-
if !enabled {
231-
continue
232-
}
233-
234-
err = ticker.ProcessTicker(&ticker.Price{
228+
if err := ticker.ProcessTicker(&ticker.Price{
235229
Last: tick[x].Last,
236230
High: tick[x].High,
237231
Low: tick[x].Low,
@@ -244,8 +238,7 @@ func (e *Exchange) UpdateTickers(ctx context.Context, a asset.Item) error {
244238
LastUpdated: tick[x].Timestamp,
245239
ExchangeName: e.Name,
246240
AssetType: a,
247-
})
248-
if err != nil {
241+
}); err != nil {
249242
return err
250243
}
251244
}

0 commit comments

Comments
 (0)