Skip to content

Commit

Permalink
fixup! GateIO: Abstract WSConnect for all assets
Browse files Browse the repository at this point in the history
  • Loading branch information
gbjk committed Jan 30, 2025
1 parent fffb282 commit 37ab2be
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 67 deletions.
31 changes: 0 additions & 31 deletions exchanges/gateio/gateio_websocket.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,13 @@ import (
"encoding/json"
"errors"
"fmt"
"net/http"
"strconv"
"strings"
"text/template"
"time"

"github.com/Masterminds/sprig/v3"
"github.com/buger/jsonparser"
"github.com/gorilla/websocket"
"github.com/thrasher-corp/gocryptotrader/common"
"github.com/thrasher-corp/gocryptotrader/currency"
"github.com/thrasher-corp/gocryptotrader/exchanges/account"
Expand Down Expand Up @@ -94,35 +92,6 @@ var subscriptionNames = map[string]string{

var standardMarginAssetTypes = []asset.Item{asset.Spot, asset.Margin, asset.CrossMargin}

// WsConnect connects a websocket connection
func (g *Gateio) WsConnect(ctx context.Context, conn stream.Connection) error {
a, err := asset.New(conn.MessageFilter)
if err != nil {
return err
}
err := g.CurrencyPairs.IsAssetEnabled(a)
if err != nil {
return err
}
if !g.IsAssetWebsocketSupported(a) {
return fmt.Errorf("%w: `%s`", asset.ErrNotSupported, a)
}
if err = conn.DialContext(ctx, &websocket.Dialer{}, http.Header{}); err != nil {
return err
}
pingMessage, err := json.Marshal(WsInput{Channel: a.String() + "." + pingChannel})
if err != nil {
return err
}
conn.SetupPingHandler(websocketRateLimitNotNeededEPL, stream.PingHandler{
Websocket: true,
Delay: time.Second * 15,
Message: pingMessage,
MessageType: websocket.TextMessage,
})
return nil
}

// authenticateSpot sends an authentication message to the websocket connection
func (g *Gateio) authenticateSpot(ctx context.Context, conn stream.Connection) error {
return g.websocketLogin(ctx, conn, "spot.login")
Expand Down
30 changes: 0 additions & 30 deletions exchanges/gateio/gateio_websocket_delivery_futures.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@ package gateio

import (
"context"
"encoding/json"
"errors"
"net/http"
"strconv"
"time"

"github.com/gorilla/websocket"
"github.com/thrasher-corp/gocryptotrader/currency"
"github.com/thrasher-corp/gocryptotrader/exchanges/account"
"github.com/thrasher-corp/gocryptotrader/exchanges/asset"
Expand All @@ -29,33 +26,6 @@ const (

var fetchedFuturesCurrencyPairSnapshotOrderbook = make(map[string]bool)

// WsDeliveryFuturesConnect initiates a websocket connection for delivery futures account
func (g *Gateio) WsDeliveryFuturesConnect(ctx context.Context, conn stream.Connection) error {
err := g.CurrencyPairs.IsAssetEnabled(asset.DeliveryFutures)
if err != nil {
return err
}
err = conn.DialContext(ctx, &websocket.Dialer{}, http.Header{})
if err != nil {
return err
}
pingMessage, err := json.Marshal(WsInput{
ID: conn.GenerateMessageID(false),
Time: time.Now().Unix(), // TODO: Func for dynamic time as this will be the same time for every ping message.
Channel: futuresPingChannel,
})
if err != nil {
return err
}
conn.SetupPingHandler(websocketRateLimitNotNeededEPL, stream.PingHandler{
Websocket: true,
Delay: time.Second * 5,
MessageType: websocket.PingMessage,
Message: pingMessage,
})
return nil
}

// GenerateDeliveryFuturesDefaultSubscriptions returns delivery futures default subscriptions params.
func (g *Gateio) GenerateDeliveryFuturesDefaultSubscriptions() (subscription.List, error) {
_, err := g.GetCredentials(context.Background())
Expand Down
1 change: 0 additions & 1 deletion exchanges/gateio/gateio_websocket_option.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ const (
optionsWebsocketTestnetURL = "wss://op-ws-testnet.gateio.live/v4/ws"

// channels
optionsPingChannel = "options.ping"
optionsContractTickersChannel = "options.contract_tickers"
optionsUnderlyingTickersChannel = "options.ul_tickers"
optionsTradesChannel = "options.trades"
Expand Down
10 changes: 5 additions & 5 deletions exchanges/gateio/gateio_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ func (g *Gateio) Setup(exch *config.Exchange) error {
Handler: g.WsHandleData,
Subscriber: g.Subscribe,
Unsubscriber: g.Unsubscribe,
Connector: g.WsConnectSpot,
Connector: g.WsConnect,
Authenticate: g.authenticateSpot,
MessageFilter: asset.Spot,
BespokeGenerateMessageID: g.GenerateWebsocketMessageID,
Expand All @@ -231,7 +231,7 @@ func (g *Gateio) Setup(exch *config.Exchange) error {
},
Subscriber: g.FuturesSubscribe,
Unsubscriber: g.FuturesUnsubscribe,
Connector: g.WsFuturesConnect,
Connector: g.WsConnect,
MessageFilter: asset.USDTMarginedFutures,
BespokeGenerateMessageID: g.GenerateWebsocketMessageID,
})
Expand All @@ -249,7 +249,7 @@ func (g *Gateio) Setup(exch *config.Exchange) error {
},
Subscriber: g.FuturesSubscribe,
Unsubscriber: g.FuturesUnsubscribe,
Connector: g.WsFuturesConnect,
Connector: g.WsConnect,
MessageFilter: asset.CoinMarginedFutures,
BespokeGenerateMessageID: g.GenerateWebsocketMessageID,
})
Expand All @@ -268,7 +268,7 @@ func (g *Gateio) Setup(exch *config.Exchange) error {
},
Subscriber: g.DeliveryFuturesSubscribe,
Unsubscriber: g.DeliveryFuturesUnsubscribe,
Connector: g.WsDeliveryFuturesConnect,
Connector: g.WsConnect,
MessageFilter: asset.DeliveryFutures,
BespokeGenerateMessageID: g.GenerateWebsocketMessageID,
})
Expand All @@ -284,7 +284,7 @@ func (g *Gateio) Setup(exch *config.Exchange) error {
Handler: g.WsHandleOptionsData,
Subscriber: g.OptionsSubscribe,
Unsubscriber: g.OptionsUnsubscribe,
Connector: g.WsOptionsConnect,
Connector: g.WsConnect,
MessageFilter: asset.Options,
BespokeGenerateMessageID: g.GenerateWebsocketMessageID,
})
Expand Down

0 comments on commit 37ab2be

Please sign in to comment.