diff --git a/exchanges/binance/binance_websocket.go b/exchanges/binance/binance_websocket.go index bc313188..a2212aef 100644 --- a/exchanges/binance/binance_websocket.go +++ b/exchanges/binance/binance_websocket.go @@ -318,9 +318,13 @@ func (b *Binance) wsHandleData(respRaw []byte) error { switch streamType[1] { case "trade": - if !b.IsSaveTradeDataEnabled() { + saveTradeData := b.IsSaveTradeDataEnabled() + + if !saveTradeData && + !b.IsTradeFeedEnabled() { return nil } + var t TradeStream err := json.Unmarshal(rawData, &t) if err != nil { @@ -348,15 +352,16 @@ func (b *Binance) wsHandleData(respRaw []byte) error { return err } - return b.AddTradesToBuffer(trade.Data{ - CurrencyPair: pair, - Timestamp: t.TimeStamp, - Price: price, - Amount: amount, - Exchange: b.Name, - AssetType: asset.Spot, - TID: strconv.FormatInt(t.TradeID, 10), - }) + return b.Websocket.Trade.Update(saveTradeData, + trade.Data{ + CurrencyPair: pair, + Timestamp: t.TimeStamp, + Price: price, + Amount: amount, + Exchange: b.Name, + AssetType: asset.Spot, + TID: strconv.FormatInt(t.TradeID, 10), + }) case "ticker": var t TickerStream err := json.Unmarshal(rawData, &t) diff --git a/exchanges/binance/binance_wrapper.go b/exchanges/binance/binance_wrapper.go index b8dc00c7..1089dc9d 100644 --- a/exchanges/binance/binance_wrapper.go +++ b/exchanges/binance/binance_wrapper.go @@ -231,6 +231,7 @@ func (b *Binance) Setup(exch *config.Exchange) error { Features: &b.Features.Supports.WebsocketCapabilities, SortBuffer: true, SortBufferByUpdateIDs: true, + TradeFeed: b.Features.Enabled.TradeFeed, }) if err != nil { return err