From e50843aedd62ee73285dca2eb0a5bf2e78cb15f4 Mon Sep 17 00:00:00 2001 From: Artem Date: Thu, 14 Oct 2021 18:33:36 +0300 Subject: [PATCH] Fix: spread data parsing and re-subscribing to private channels --- websocket/data.go | 2 +- websocket/kraken.go | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/websocket/data.go b/websocket/data.go index b7b2745..c88093d 100644 --- a/websocket/data.go +++ b/websocket/data.go @@ -157,7 +157,7 @@ type Spread struct { // UnmarshalJSON - unmarshal candle update func (s *Spread) UnmarshalJSON(data []byte) error { - raw := []interface{}{&s.Ask, &s.Bid, &s.Time, &s.AskVolume, &s.BidVolume, &s.Time} + raw := []interface{}{&s.Bid, &s.Ask, &s.Time, &s.AskVolume, &s.BidVolume, &s.Time} return json.Unmarshal(data, &raw) } diff --git a/websocket/kraken.go b/websocket/kraken.go index bccc6c9..c1548f9 100644 --- a/websocket/kraken.go +++ b/websocket/kraken.go @@ -124,12 +124,18 @@ func (k *Kraken) managerThread() { func (k *Kraken) resubscribe() error { for _, sub := range k.subscriptions { - if err := k.send(SubscriptionRequest{ - Event: EventSubscribe, - Pairs: []string{sub.Pair}, - Subscription: sub.Subscription, - }); err != nil { - return err + switch sub.Subscription.Name { + // Private Channels + case ChanOwnTrades, ChanOpenOrders: + return k.subscribeToPrivate(sub.Subscription.Name) + default: + if err := k.send(SubscriptionRequest{ + Event: EventSubscribe, + Pairs: []string{sub.Pair}, + Subscription: sub.Subscription, + }); err != nil { + return err + } } } return nil