Skip to content

Commit 7e682ea

Browse files
committed
websocket, kucoin: address PR2201 review feedback
1 parent 38d6efc commit 7e682ea

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

exchange/websocket/manager.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -879,8 +879,8 @@ func (m *Manager) GetWebsocketURL() string {
879879

880880
// GetConfiguredWebsocketURLs returns known websocket connection URLs.
881881
func (m *Manager) GetConfiguredWebsocketURLs() ([]string, error) {
882-
if m == nil {
883-
return nil, fmt.Errorf("%w: Manager", common.ErrNilPointer)
882+
if err := common.NilGuard(m); err != nil {
883+
return nil, err
884884
}
885885

886886
m.m.Lock()

exchanges/kucoin/kucoin_wrapper.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -392,25 +392,24 @@ func (e *Exchange) UpdateOrderbook(ctx context.Context, p currency.Pair, a asset
392392
return orderbook.Get(e.Name, p, a)
393393
}
394394

395+
// KuCoin's rounded books can emit adjacent levels that collapse to the same
396+
// price, so we consolidate them before loading the local book to avoid
397+
// duplicate-price levels downstream.
395398
func mergeRoundedOrderbookLevels(levels []orderbook.Level) []orderbook.Level {
396399
if len(levels) < 2 {
397400
return levels
398401
}
399402

400-
merged := make([]orderbook.Level, 0, len(levels))
401-
for i := range levels {
402-
if len(merged) == 0 {
403-
merged = append(merged, levels[i])
403+
writeIndex := 1
404+
for i := 1; i < len(levels); i++ {
405+
if levels[writeIndex-1].Price == levels[i].Price {
406+
levels[writeIndex-1].Amount += levels[i].Amount
404407
continue
405408
}
406-
407-
if merged[len(merged)-1].Price == levels[i].Price {
408-
merged[len(merged)-1].Amount += levels[i].Amount
409-
continue
410-
}
411-
merged = append(merged, levels[i])
409+
levels[writeIndex] = levels[i]
410+
writeIndex++
412411
}
413-
return merged
412+
return levels[:writeIndex]
414413
}
415414

416415
// UpdateAccountBalances retrieves currency balances

0 commit comments

Comments
 (0)