diff --git a/cmd/gctcli/commands.go b/cmd/gctcli/commands.go index 115fec42..804adf54 100644 --- a/cmd/gctcli/commands.go +++ b/cmd/gctcli/commands.go @@ -291,10 +291,6 @@ func enableExchange(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -341,10 +337,6 @@ func disableExchange(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -391,10 +383,6 @@ func getExchangeOTPCode(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -466,10 +454,6 @@ func getExchangeInfo(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -527,10 +511,6 @@ func getTicker(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("pair") { currencyPair = c.String("pair") } else { @@ -643,10 +623,6 @@ func getOrderbook(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("pair") { currencyPair = c.String("pair") } else { @@ -758,10 +734,6 @@ func getAccountInfo(c *cli.Context) error { assetType = c.Args().Get(1) } - if !validExchange(exchange) { - return errInvalidExchange - } - if !validAsset(assetType) { return errInvalidAsset } @@ -824,10 +796,6 @@ func getAccountInfoStream(c *cli.Context) error { assetType = c.Args().Get(1) } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if !validAsset(assetType) { return errInvalidAsset } @@ -898,10 +866,6 @@ func updateAccountInfo(c *cli.Context) error { assetType = c.Args().Get(1) } - if !validExchange(exchange) { - return errInvalidExchange - } - if !validAsset(assetType) { return errInvalidAsset } @@ -1274,10 +1238,6 @@ func getOrders(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("asset") { assetType = c.String("asset") } else { @@ -1392,10 +1352,6 @@ func getManagedOrders(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("asset") { assetType = c.String("asset") } else { @@ -1487,10 +1443,6 @@ func getOrder(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("asset") { assetType = c.String("asset") } else { @@ -1607,10 +1559,6 @@ func submitOrder(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("pair") { currencyPair = c.String("pair") } else { @@ -1758,10 +1706,6 @@ func simulateOrder(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("pair") { currencyPair = c.String("pair") } else { @@ -1867,10 +1811,6 @@ func whaleBomb(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("pair") { currencyPair = c.String("pair") } else { @@ -1987,10 +1927,6 @@ func cancelOrder(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("account_id") { accountID = c.String("account_id") } else { @@ -2133,10 +2069,6 @@ func cancelBatchOrders(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("account_id") { accountID = c.String("account_id") } else { @@ -2277,13 +2209,6 @@ func cancelAllOrders(c *cli.Context) error { exchangeName = c.Args().First() } - // exchange name is an optional param - if exchangeName != "" { - if !validExchange(exchangeName) { - return errInvalidExchange - } - } - conn, err := setupClient() if err != nil { return err @@ -2318,9 +2243,6 @@ func modifyOrder(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } if c.IsSet("asset") { assetType = c.String("asset") @@ -2488,10 +2410,6 @@ func addEvent(c *cli.Context) error { return fmt.Errorf("exchange name is required") } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("item") { item = c.String("item") } else { @@ -2658,10 +2576,6 @@ func getCryptocurrencyDepositAddresses(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -2710,10 +2624,6 @@ func getCryptocurrencyDepositAddress(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("cryptocurrency") { cryptocurrency = c.String("cryptocurrency") } else if c.Args().Get(1) != "" { @@ -2796,10 +2706,6 @@ func withdrawCryptocurrencyFunds(c *cli.Context) error { exchange = c.Args().Get(0) } - if !validExchange(exchange) { - return errInvalidExchange - } - if c.IsSet("currency") { cur = c.String("currency") } else if c.Args().Get(1) != "" { @@ -2911,10 +2817,6 @@ func withdrawFiatFunds(c *cli.Context) error { exchange = c.Args().Get(0) } - if !validExchange(exchange) { - return errInvalidExchange - } - if c.IsSet("currency") { cur = c.String("currency") } else if c.Args().Get(1) != "" { @@ -3380,10 +3282,6 @@ func getOrderbookStream(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("pair") { pair = c.String("pair") } else { @@ -3516,10 +3414,6 @@ func getExchangeOrderbookStream(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -3589,10 +3483,6 @@ func getTickerStream(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - if c.IsSet("pair") { pair = c.String("pair") } else { @@ -3695,10 +3585,6 @@ func getExchangeTickerStream(c *cli.Context) error { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -4330,10 +4216,6 @@ func getHistoricCandles(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") @@ -4489,10 +4371,6 @@ func getHistoricCandlesExtended(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") @@ -4668,10 +4546,6 @@ func findMissingSavedCandleIntervals(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") diff --git a/cmd/gctcli/data_history.go b/cmd/gctcli/data_history.go index a3e35e7f..aa97327d 100644 --- a/cmd/gctcli/data_history.go +++ b/cmd/gctcli/data_history.go @@ -382,9 +382,6 @@ func upsertDataHistoryJob(c *cli.Context) error { if c.IsSet("exchange") { exchange = c.String("exchange") } - if !validExchange(exchange) { - return errInvalidExchange - } if c.IsSet("asset") { assetType = c.String("asset") diff --git a/cmd/gctcli/pair_management.go b/cmd/gctcli/pair_management.go index f2277c8f..6eb85037 100644 --- a/cmd/gctcli/pair_management.go +++ b/cmd/gctcli/pair_management.go @@ -180,10 +180,6 @@ func enableDisableExchangePair(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return errInvalidExchange - } - if c.IsSet("pairs") { pairs = c.String("pairs") } else { @@ -259,10 +255,6 @@ func getExchangePairs(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return errInvalidExchange - } - if c.IsSet("asset") { asset = c.String("asset") } else { @@ -312,10 +304,6 @@ func enableDisableExchangeAsset(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return errInvalidExchange - } - if c.IsSet("asset") { asset = c.String("asset") } else { @@ -364,10 +352,6 @@ func enableDisableAllExchangePairs(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -400,10 +384,6 @@ func updateExchangeSupportedPairs(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err @@ -435,10 +415,6 @@ func getExchangeAssets(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return errInvalidExchange - } - conn, err := setupClient() if err != nil { return err diff --git a/cmd/gctcli/trades.go b/cmd/gctcli/trades.go index 0ab7601f..d086b42e 100644 --- a/cmd/gctcli/trades.go +++ b/cmd/gctcli/trades.go @@ -229,10 +229,6 @@ func findMissingSavedTradeIntervals(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") @@ -324,10 +320,6 @@ func setExchangeTradeProcessing(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var status bool if c.IsSet("status") { status = c.Bool("status") @@ -376,10 +368,6 @@ func getSavedTrades(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") @@ -475,10 +463,6 @@ func getRecentTrades(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") @@ -546,10 +530,6 @@ func getHistoricTrades(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") @@ -668,10 +648,6 @@ func convertSavedTradesToCandles(c *cli.Context) error { } else { exchangeName = c.Args().First() } - if !validExchange(exchangeName) { - return errInvalidExchange - } - var currencyPair string if c.IsSet("pair") { currencyPair = c.String("pair") diff --git a/cmd/gctcli/validation.go b/cmd/gctcli/validation.go index d8aa4eb4..25e187a2 100644 --- a/cmd/gctcli/validation.go +++ b/cmd/gctcli/validation.go @@ -4,24 +4,18 @@ import ( "errors" "strings" - exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" ) var ( - errInvalidPair = errors.New("invalid currency pair supplied") - errInvalidExchange = errors.New("invalid exchange supplied") - errInvalidAsset = errors.New("invalid asset supplied") + errInvalidPair = errors.New("invalid currency pair supplied") + errInvalidAsset = errors.New("invalid asset supplied") ) func validPair(pair string) bool { return strings.Contains(pair, pairDelimiter) } -func validExchange(exch string) bool { - return exchange.IsSupported(exch) -} - func validAsset(i string) bool { _, err := asset.New(i) return err == nil diff --git a/cmd/gctcli/websocket_management.go b/cmd/gctcli/websocket_management.go index 6de59433..10f983cd 100644 --- a/cmd/gctcli/websocket_management.go +++ b/cmd/gctcli/websocket_management.go @@ -2,7 +2,6 @@ package main import ( "context" - "fmt" "github.com/thrasher-corp/gocryptotrader/gctrpc" "github.com/urfave/cli/v2" @@ -107,10 +106,6 @@ func getwebsocketInfo(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return fmt.Errorf("[%s] is not a valid exchange", exchange) - } - conn, err := setupClient() if err != nil { return err @@ -140,10 +135,6 @@ func enableDisableWebsocket(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return fmt.Errorf("[%s] is not a valid exchange", exchange) - } - conn, err := setupClient() if err != nil { return err @@ -172,10 +163,6 @@ func getSubscriptions(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return fmt.Errorf("[%s] is not a valid exchange", exchange) - } - conn, err := setupClient() if err != nil { return err @@ -204,10 +191,6 @@ func setProxy(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return fmt.Errorf("[%s] is not a valid exchange", exchange) - } - var proxy string if c.IsSet("proxy") { proxy = c.String("proxy") @@ -243,10 +226,6 @@ func setURL(c *cli.Context) error { exchange = c.Args().First() } - if !validExchange(exchange) { - return fmt.Errorf("[%s] is not a valid exchange", exchange) - } - var url string if c.IsSet("url") { url = c.String("url") diff --git a/engine/rpcserver.go b/engine/rpcserver.go index ff005f1f..3f7c75bb 100644 --- a/engine/rpcserver.go +++ b/engine/rpcserver.go @@ -286,6 +286,9 @@ func (s *RPCServer) EnableExchange(_ context.Context, r *gctrpc.GenericExchangeN // GetExchangeOTPCode retrieves an exchanges OTP code func (s *RPCServer) GetExchangeOTPCode(_ context.Context, r *gctrpc.GenericExchangeNameRequest) (*gctrpc.GetExchangeOTPResponse, error) { + if exch := s.GetExchangeByName(r.Exchange); exch == nil { + return nil, ErrExchangeNotFound + } result, err := s.GetExchangeOTPByName(r.Exchange) return &gctrpc.GetExchangeOTPResponse{OtpCode: result}, err } @@ -1864,6 +1867,10 @@ func (s *RPCServer) GetExchangeOrderbookStream(r *gctrpc.GetExchangeOrderbookStr return errExchangeNameUnset } + if exch := s.GetExchangeByName(r.Exchange); exch == nil { + return ErrExchangeNotFound + } + pipe, err := orderbook.SubscribeToExchangeOrderbooks(r.Exchange) if err != nil { return err @@ -1916,6 +1923,10 @@ func (s *RPCServer) GetTickerStream(r *gctrpc.GetTickerStreamRequest, stream gct return errExchangeNameUnset } + if exch := s.GetExchangeByName(r.Exchange); exch == nil { + return ErrExchangeNotFound + } + a, err := asset.New(r.AssetType) if err != nil { return err @@ -1979,6 +1990,10 @@ func (s *RPCServer) GetExchangeTickerStream(r *gctrpc.GetExchangeTickerStreamReq return errExchangeNameUnset } + if exch := s.GetExchangeByName(r.Exchange); exch == nil { + return ErrExchangeNotFound + } + pipe, err := ticker.SubscribeToExchangeTickers(r.Exchange) if err != nil { return err