gctcli: remove all exchange name client-side validation (#758)

* gctcli: remove all exchange name client-side validation

Since now exchange names can be user-assigned we can no longer have
client-side validation, all exchange name validation must now occur
on the server (it was already doing that).

* engine: add server side exchange name check on some RPCs
This commit is contained in:
Luis Rascão
2021-08-24 00:45:26 +01:00
committed by GitHub
parent a15cbf6651
commit 9bb4348613
7 changed files with 17 additions and 206 deletions

View File

@@ -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