// Code generated by protoc-gen-go-grpc. DO NOT EDIT.

package gctrpc

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7

// GoCryptoTraderClient is the client API for GoCryptoTrader service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type GoCryptoTraderClient interface {
	GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error)
	GetSubsystems(ctx context.Context, in *GetSubsystemsRequest, opts ...grpc.CallOption) (*GetSusbsytemsResponse, error)
	EnableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	DisableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetRPCEndpoints(ctx context.Context, in *GetRPCEndpointsRequest, opts ...grpc.CallOption) (*GetRPCEndpointsResponse, error)
	GetCommunicationRelayers(ctx context.Context, in *GetCommunicationRelayersRequest, opts ...grpc.CallOption) (*GetCommunicationRelayersResponse, error)
	GetExchanges(ctx context.Context, in *GetExchangesRequest, opts ...grpc.CallOption) (*GetExchangesResponse, error)
	DisableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetExchangeInfo(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeInfoResponse, error)
	GetExchangeOTPCode(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeOTPReponse, error)
	GetExchangeOTPCodes(ctx context.Context, in *GetExchangeOTPsRequest, opts ...grpc.CallOption) (*GetExchangeOTPsResponse, error)
	EnableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetTicker(ctx context.Context, in *GetTickerRequest, opts ...grpc.CallOption) (*TickerResponse, error)
	GetTickers(ctx context.Context, in *GetTickersRequest, opts ...grpc.CallOption) (*GetTickersResponse, error)
	GetOrderbook(ctx context.Context, in *GetOrderbookRequest, opts ...grpc.CallOption) (*OrderbookResponse, error)
	GetOrderbooks(ctx context.Context, in *GetOrderbooksRequest, opts ...grpc.CallOption) (*GetOrderbooksResponse, error)
	GetAccountInfo(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (*GetAccountInfoResponse, error)
	UpdateAccountInfo(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (*GetAccountInfoResponse, error)
	GetAccountInfoStream(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetAccountInfoStreamClient, error)
	GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigResponse, error)
	GetPortfolio(ctx context.Context, in *GetPortfolioRequest, opts ...grpc.CallOption) (*GetPortfolioResponse, error)
	GetPortfolioSummary(ctx context.Context, in *GetPortfolioSummaryRequest, opts ...grpc.CallOption) (*GetPortfolioSummaryResponse, error)
	AddPortfolioAddress(ctx context.Context, in *AddPortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	RemovePortfolioAddress(ctx context.Context, in *RemovePortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetForexProviders(ctx context.Context, in *GetForexProvidersRequest, opts ...grpc.CallOption) (*GetForexProvidersResponse, error)
	GetForexRates(ctx context.Context, in *GetForexRatesRequest, opts ...grpc.CallOption) (*GetForexRatesResponse, error)
	GetOrders(ctx context.Context, in *GetOrdersRequest, opts ...grpc.CallOption) (*GetOrdersResponse, error)
	GetOrder(ctx context.Context, in *GetOrderRequest, opts ...grpc.CallOption) (*OrderDetails, error)
	SubmitOrder(ctx context.Context, in *SubmitOrderRequest, opts ...grpc.CallOption) (*SubmitOrderResponse, error)
	SimulateOrder(ctx context.Context, in *SimulateOrderRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error)
	WhaleBomb(ctx context.Context, in *WhaleBombRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error)
	CancelOrder(ctx context.Context, in *CancelOrderRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	CancelBatchOrders(ctx context.Context, in *CancelBatchOrdersRequest, opts ...grpc.CallOption) (*CancelBatchOrdersResponse, error)
	CancelAllOrders(ctx context.Context, in *CancelAllOrdersRequest, opts ...grpc.CallOption) (*CancelAllOrdersResponse, error)
	GetEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (*GetEventsResponse, error)
	AddEvent(ctx context.Context, in *AddEventRequest, opts ...grpc.CallOption) (*AddEventResponse, error)
	RemoveEvent(ctx context.Context, in *RemoveEventRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetCryptocurrencyDepositAddresses(ctx context.Context, in *GetCryptocurrencyDepositAddressesRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressesResponse, error)
	GetCryptocurrencyDepositAddress(ctx context.Context, in *GetCryptocurrencyDepositAddressRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressResponse, error)
	WithdrawFiatFunds(ctx context.Context, in *WithdrawFiatRequest, opts ...grpc.CallOption) (*WithdrawResponse, error)
	WithdrawCryptocurrencyFunds(ctx context.Context, in *WithdrawCryptoRequest, opts ...grpc.CallOption) (*WithdrawResponse, error)
	WithdrawalEventByID(ctx context.Context, in *WithdrawalEventByIDRequest, opts ...grpc.CallOption) (*WithdrawalEventByIDResponse, error)
	WithdrawalEventsByExchange(ctx context.Context, in *WithdrawalEventsByExchangeRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error)
	WithdrawalEventsByDate(ctx context.Context, in *WithdrawalEventsByDateRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error)
	GetLoggerDetails(ctx context.Context, in *GetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error)
	SetLoggerDetails(ctx context.Context, in *SetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error)
	GetExchangePairs(ctx context.Context, in *GetExchangePairsRequest, opts ...grpc.CallOption) (*GetExchangePairsResponse, error)
	SetExchangePair(ctx context.Context, in *SetExchangePairRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetOrderbookStream(ctx context.Context, in *GetOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetOrderbookStreamClient, error)
	GetExchangeOrderbookStream(ctx context.Context, in *GetExchangeOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeOrderbookStreamClient, error)
	GetTickerStream(ctx context.Context, in *GetTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetTickerStreamClient, error)
	GetExchangeTickerStream(ctx context.Context, in *GetExchangeTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeTickerStreamClient, error)
	GetAuditEvent(ctx context.Context, in *GetAuditEventRequest, opts ...grpc.CallOption) (*GetAuditEventResponse, error)
	GCTScriptExecute(ctx context.Context, in *GCTScriptExecuteRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GCTScriptUpload(ctx context.Context, in *GCTScriptUploadRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GCTScriptReadScript(ctx context.Context, in *GCTScriptReadScriptRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error)
	GCTScriptStatus(ctx context.Context, in *GCTScriptStatusRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error)
	GCTScriptQuery(ctx context.Context, in *GCTScriptQueryRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error)
	GCTScriptStop(ctx context.Context, in *GCTScriptStopRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GCTScriptStopAll(ctx context.Context, in *GCTScriptStopAllRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GCTScriptListAll(ctx context.Context, in *GCTScriptListAllRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error)
	GCTScriptAutoLoadToggle(ctx context.Context, in *GCTScriptAutoLoadRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetHistoricCandles(ctx context.Context, in *GetHistoricCandlesRequest, opts ...grpc.CallOption) (*GetHistoricCandlesResponse, error)
	SetExchangeAsset(ctx context.Context, in *SetExchangeAssetRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	SetAllExchangePairs(ctx context.Context, in *SetExchangeAllPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	UpdateExchangeSupportedPairs(ctx context.Context, in *UpdateExchangeSupportedPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetExchangeAssets(ctx context.Context, in *GetExchangeAssetsRequest, opts ...grpc.CallOption) (*GetExchangeAssetsResponse, error)
	WebsocketGetInfo(ctx context.Context, in *WebsocketGetInfoRequest, opts ...grpc.CallOption) (*WebsocketGetInfoResponse, error)
	WebsocketSetEnabled(ctx context.Context, in *WebsocketSetEnabledRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	WebsocketGetSubscriptions(ctx context.Context, in *WebsocketGetSubscriptionsRequest, opts ...grpc.CallOption) (*WebsocketGetSubscriptionsResponse, error)
	WebsocketSetProxy(ctx context.Context, in *WebsocketSetProxyRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	WebsocketSetURL(ctx context.Context, in *WebsocketSetURLRequest, opts ...grpc.CallOption) (*GenericResponse, error)
	GetRecentTrades(ctx context.Context, in *GetSavedTradesRequest, opts ...grpc.CallOption) (*SavedTradesResponse, error)
	GetHistoricTrades(ctx context.Context, in *GetSavedTradesRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetHistoricTradesClient, error)
	GetSavedTrades(ctx context.Context, in *GetSavedTradesRequest, opts ...grpc.CallOption) (*SavedTradesResponse, error)
	ConvertTradesToCandles(ctx context.Context, in *ConvertTradesToCandlesRequest, opts ...grpc.CallOption) (*GetHistoricCandlesResponse, error)
	FindMissingSavedCandleIntervals(ctx context.Context, in *FindMissingCandlePeriodsRequest, opts ...grpc.CallOption) (*FindMissingIntervalsResponse, error)
	FindMissingSavedTradeIntervals(ctx context.Context, in *FindMissingTradePeriodsRequest, opts ...grpc.CallOption) (*FindMissingIntervalsResponse, error)
	SetExchangeTradeProcessing(ctx context.Context, in *SetExchangeTradeProcessingRequest, opts ...grpc.CallOption) (*GenericResponse, error)
}

type goCryptoTraderClient struct {
	cc grpc.ClientConnInterface
}

func NewGoCryptoTraderClient(cc grpc.ClientConnInterface) GoCryptoTraderClient {
	return &goCryptoTraderClient{cc}
}

func (c *goCryptoTraderClient) GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error) {
	out := new(GetInfoResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetSubsystems(ctx context.Context, in *GetSubsystemsRequest, opts ...grpc.CallOption) (*GetSusbsytemsResponse, error) {
	out := new(GetSusbsytemsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetSubsystems", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) EnableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/EnableSubsystem", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) DisableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/DisableSubsystem", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetRPCEndpoints(ctx context.Context, in *GetRPCEndpointsRequest, opts ...grpc.CallOption) (*GetRPCEndpointsResponse, error) {
	out := new(GetRPCEndpointsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetRPCEndpoints", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetCommunicationRelayers(ctx context.Context, in *GetCommunicationRelayersRequest, opts ...grpc.CallOption) (*GetCommunicationRelayersResponse, error) {
	out := new(GetCommunicationRelayersResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetCommunicationRelayers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetExchanges(ctx context.Context, in *GetExchangesRequest, opts ...grpc.CallOption) (*GetExchangesResponse, error) {
	out := new(GetExchangesResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchanges", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) DisableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/DisableExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetExchangeInfo(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeInfoResponse, error) {
	out := new(GetExchangeInfoResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetExchangeOTPCode(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeOTPReponse, error) {
	out := new(GetExchangeOTPReponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeOTPCode", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetExchangeOTPCodes(ctx context.Context, in *GetExchangeOTPsRequest, opts ...grpc.CallOption) (*GetExchangeOTPsResponse, error) {
	out := new(GetExchangeOTPsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeOTPCodes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) EnableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/EnableExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetTicker(ctx context.Context, in *GetTickerRequest, opts ...grpc.CallOption) (*TickerResponse, error) {
	out := new(TickerResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetTicker", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetTickers(ctx context.Context, in *GetTickersRequest, opts ...grpc.CallOption) (*GetTickersResponse, error) {
	out := new(GetTickersResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetTickers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetOrderbook(ctx context.Context, in *GetOrderbookRequest, opts ...grpc.CallOption) (*OrderbookResponse, error) {
	out := new(OrderbookResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrderbook", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetOrderbooks(ctx context.Context, in *GetOrderbooksRequest, opts ...grpc.CallOption) (*GetOrderbooksResponse, error) {
	out := new(GetOrderbooksResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrderbooks", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetAccountInfo(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (*GetAccountInfoResponse, error) {
	out := new(GetAccountInfoResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetAccountInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) UpdateAccountInfo(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (*GetAccountInfoResponse, error) {
	out := new(GetAccountInfoResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/UpdateAccountInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetAccountInfoStream(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetAccountInfoStreamClient, error) {
	stream, err := c.cc.NewStream(ctx, &GoCryptoTrader_ServiceDesc.Streams[0], "/gctrpc.GoCryptoTrader/GetAccountInfoStream", opts...)
	if err != nil {
		return nil, err
	}
	x := &goCryptoTraderGetAccountInfoStreamClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GoCryptoTrader_GetAccountInfoStreamClient interface {
	Recv() (*GetAccountInfoResponse, error)
	grpc.ClientStream
}

type goCryptoTraderGetAccountInfoStreamClient struct {
	grpc.ClientStream
}

func (x *goCryptoTraderGetAccountInfoStreamClient) Recv() (*GetAccountInfoResponse, error) {
	m := new(GetAccountInfoResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *goCryptoTraderClient) GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigResponse, error) {
	out := new(GetConfigResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetConfig", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetPortfolio(ctx context.Context, in *GetPortfolioRequest, opts ...grpc.CallOption) (*GetPortfolioResponse, error) {
	out := new(GetPortfolioResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetPortfolio", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetPortfolioSummary(ctx context.Context, in *GetPortfolioSummaryRequest, opts ...grpc.CallOption) (*GetPortfolioSummaryResponse, error) {
	out := new(GetPortfolioSummaryResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetPortfolioSummary", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) AddPortfolioAddress(ctx context.Context, in *AddPortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/AddPortfolioAddress", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) RemovePortfolioAddress(ctx context.Context, in *RemovePortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/RemovePortfolioAddress", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetForexProviders(ctx context.Context, in *GetForexProvidersRequest, opts ...grpc.CallOption) (*GetForexProvidersResponse, error) {
	out := new(GetForexProvidersResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetForexProviders", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetForexRates(ctx context.Context, in *GetForexRatesRequest, opts ...grpc.CallOption) (*GetForexRatesResponse, error) {
	out := new(GetForexRatesResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetForexRates", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetOrders(ctx context.Context, in *GetOrdersRequest, opts ...grpc.CallOption) (*GetOrdersResponse, error) {
	out := new(GetOrdersResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrders", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetOrder(ctx context.Context, in *GetOrderRequest, opts ...grpc.CallOption) (*OrderDetails, error) {
	out := new(OrderDetails)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrder", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) SubmitOrder(ctx context.Context, in *SubmitOrderRequest, opts ...grpc.CallOption) (*SubmitOrderResponse, error) {
	out := new(SubmitOrderResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SubmitOrder", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) SimulateOrder(ctx context.Context, in *SimulateOrderRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error) {
	out := new(SimulateOrderResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SimulateOrder", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WhaleBomb(ctx context.Context, in *WhaleBombRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error) {
	out := new(SimulateOrderResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WhaleBomb", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) CancelOrder(ctx context.Context, in *CancelOrderRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/CancelOrder", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) CancelBatchOrders(ctx context.Context, in *CancelBatchOrdersRequest, opts ...grpc.CallOption) (*CancelBatchOrdersResponse, error) {
	out := new(CancelBatchOrdersResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/CancelBatchOrders", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) CancelAllOrders(ctx context.Context, in *CancelAllOrdersRequest, opts ...grpc.CallOption) (*CancelAllOrdersResponse, error) {
	out := new(CancelAllOrdersResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/CancelAllOrders", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (*GetEventsResponse, error) {
	out := new(GetEventsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetEvents", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) AddEvent(ctx context.Context, in *AddEventRequest, opts ...grpc.CallOption) (*AddEventResponse, error) {
	out := new(AddEventResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/AddEvent", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) RemoveEvent(ctx context.Context, in *RemoveEventRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/RemoveEvent", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetCryptocurrencyDepositAddresses(ctx context.Context, in *GetCryptocurrencyDepositAddressesRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressesResponse, error) {
	out := new(GetCryptocurrencyDepositAddressesResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddresses", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetCryptocurrencyDepositAddress(ctx context.Context, in *GetCryptocurrencyDepositAddressRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressResponse, error) {
	out := new(GetCryptocurrencyDepositAddressResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddress", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WithdrawFiatFunds(ctx context.Context, in *WithdrawFiatRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) {
	out := new(WithdrawResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawFiatFunds", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WithdrawCryptocurrencyFunds(ctx context.Context, in *WithdrawCryptoRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) {
	out := new(WithdrawResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawCryptocurrencyFunds", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WithdrawalEventByID(ctx context.Context, in *WithdrawalEventByIDRequest, opts ...grpc.CallOption) (*WithdrawalEventByIDResponse, error) {
	out := new(WithdrawalEventByIDResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawalEventByID", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WithdrawalEventsByExchange(ctx context.Context, in *WithdrawalEventsByExchangeRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error) {
	out := new(WithdrawalEventsByExchangeResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawalEventsByExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WithdrawalEventsByDate(ctx context.Context, in *WithdrawalEventsByDateRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error) {
	out := new(WithdrawalEventsByExchangeResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawalEventsByDate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetLoggerDetails(ctx context.Context, in *GetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error) {
	out := new(GetLoggerDetailsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetLoggerDetails", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) SetLoggerDetails(ctx context.Context, in *SetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error) {
	out := new(GetLoggerDetailsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetLoggerDetails", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetExchangePairs(ctx context.Context, in *GetExchangePairsRequest, opts ...grpc.CallOption) (*GetExchangePairsResponse, error) {
	out := new(GetExchangePairsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangePairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) SetExchangePair(ctx context.Context, in *SetExchangePairRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetExchangePair", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetOrderbookStream(ctx context.Context, in *GetOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetOrderbookStreamClient, error) {
	stream, err := c.cc.NewStream(ctx, &GoCryptoTrader_ServiceDesc.Streams[1], "/gctrpc.GoCryptoTrader/GetOrderbookStream", opts...)
	if err != nil {
		return nil, err
	}
	x := &goCryptoTraderGetOrderbookStreamClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GoCryptoTrader_GetOrderbookStreamClient interface {
	Recv() (*OrderbookResponse, error)
	grpc.ClientStream
}

type goCryptoTraderGetOrderbookStreamClient struct {
	grpc.ClientStream
}

func (x *goCryptoTraderGetOrderbookStreamClient) Recv() (*OrderbookResponse, error) {
	m := new(OrderbookResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *goCryptoTraderClient) GetExchangeOrderbookStream(ctx context.Context, in *GetExchangeOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeOrderbookStreamClient, error) {
	stream, err := c.cc.NewStream(ctx, &GoCryptoTrader_ServiceDesc.Streams[2], "/gctrpc.GoCryptoTrader/GetExchangeOrderbookStream", opts...)
	if err != nil {
		return nil, err
	}
	x := &goCryptoTraderGetExchangeOrderbookStreamClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GoCryptoTrader_GetExchangeOrderbookStreamClient interface {
	Recv() (*OrderbookResponse, error)
	grpc.ClientStream
}

type goCryptoTraderGetExchangeOrderbookStreamClient struct {
	grpc.ClientStream
}

func (x *goCryptoTraderGetExchangeOrderbookStreamClient) Recv() (*OrderbookResponse, error) {
	m := new(OrderbookResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *goCryptoTraderClient) GetTickerStream(ctx context.Context, in *GetTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetTickerStreamClient, error) {
	stream, err := c.cc.NewStream(ctx, &GoCryptoTrader_ServiceDesc.Streams[3], "/gctrpc.GoCryptoTrader/GetTickerStream", opts...)
	if err != nil {
		return nil, err
	}
	x := &goCryptoTraderGetTickerStreamClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GoCryptoTrader_GetTickerStreamClient interface {
	Recv() (*TickerResponse, error)
	grpc.ClientStream
}

type goCryptoTraderGetTickerStreamClient struct {
	grpc.ClientStream
}

func (x *goCryptoTraderGetTickerStreamClient) Recv() (*TickerResponse, error) {
	m := new(TickerResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *goCryptoTraderClient) GetExchangeTickerStream(ctx context.Context, in *GetExchangeTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeTickerStreamClient, error) {
	stream, err := c.cc.NewStream(ctx, &GoCryptoTrader_ServiceDesc.Streams[4], "/gctrpc.GoCryptoTrader/GetExchangeTickerStream", opts...)
	if err != nil {
		return nil, err
	}
	x := &goCryptoTraderGetExchangeTickerStreamClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GoCryptoTrader_GetExchangeTickerStreamClient interface {
	Recv() (*TickerResponse, error)
	grpc.ClientStream
}

type goCryptoTraderGetExchangeTickerStreamClient struct {
	grpc.ClientStream
}

func (x *goCryptoTraderGetExchangeTickerStreamClient) Recv() (*TickerResponse, error) {
	m := new(TickerResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *goCryptoTraderClient) GetAuditEvent(ctx context.Context, in *GetAuditEventRequest, opts ...grpc.CallOption) (*GetAuditEventResponse, error) {
	out := new(GetAuditEventResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetAuditEvent", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptExecute(ctx context.Context, in *GCTScriptExecuteRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptExecute", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptUpload(ctx context.Context, in *GCTScriptUploadRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptUpload", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptReadScript(ctx context.Context, in *GCTScriptReadScriptRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error) {
	out := new(GCTScriptQueryResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptReadScript", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptStatus(ctx context.Context, in *GCTScriptStatusRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error) {
	out := new(GCTScriptStatusResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptStatus", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptQuery(ctx context.Context, in *GCTScriptQueryRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error) {
	out := new(GCTScriptQueryResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptQuery", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptStop(ctx context.Context, in *GCTScriptStopRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptStop", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptStopAll(ctx context.Context, in *GCTScriptStopAllRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptStopAll", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptListAll(ctx context.Context, in *GCTScriptListAllRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error) {
	out := new(GCTScriptStatusResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptListAll", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GCTScriptAutoLoadToggle(ctx context.Context, in *GCTScriptAutoLoadRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptAutoLoadToggle", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetHistoricCandles(ctx context.Context, in *GetHistoricCandlesRequest, opts ...grpc.CallOption) (*GetHistoricCandlesResponse, error) {
	out := new(GetHistoricCandlesResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetHistoricCandles", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) SetExchangeAsset(ctx context.Context, in *SetExchangeAssetRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetExchangeAsset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) SetAllExchangePairs(ctx context.Context, in *SetExchangeAllPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetAllExchangePairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) UpdateExchangeSupportedPairs(ctx context.Context, in *UpdateExchangeSupportedPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/UpdateExchangeSupportedPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetExchangeAssets(ctx context.Context, in *GetExchangeAssetsRequest, opts ...grpc.CallOption) (*GetExchangeAssetsResponse, error) {
	out := new(GetExchangeAssetsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeAssets", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WebsocketGetInfo(ctx context.Context, in *WebsocketGetInfoRequest, opts ...grpc.CallOption) (*WebsocketGetInfoResponse, error) {
	out := new(WebsocketGetInfoResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketGetInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WebsocketSetEnabled(ctx context.Context, in *WebsocketSetEnabledRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketSetEnabled", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WebsocketGetSubscriptions(ctx context.Context, in *WebsocketGetSubscriptionsRequest, opts ...grpc.CallOption) (*WebsocketGetSubscriptionsResponse, error) {
	out := new(WebsocketGetSubscriptionsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketGetSubscriptions", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WebsocketSetProxy(ctx context.Context, in *WebsocketSetProxyRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketSetProxy", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) WebsocketSetURL(ctx context.Context, in *WebsocketSetURLRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketSetURL", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetRecentTrades(ctx context.Context, in *GetSavedTradesRequest, opts ...grpc.CallOption) (*SavedTradesResponse, error) {
	out := new(SavedTradesResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetRecentTrades", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) GetHistoricTrades(ctx context.Context, in *GetSavedTradesRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetHistoricTradesClient, error) {
	stream, err := c.cc.NewStream(ctx, &GoCryptoTrader_ServiceDesc.Streams[5], "/gctrpc.GoCryptoTrader/GetHistoricTrades", opts...)
	if err != nil {
		return nil, err
	}
	x := &goCryptoTraderGetHistoricTradesClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GoCryptoTrader_GetHistoricTradesClient interface {
	Recv() (*SavedTradesResponse, error)
	grpc.ClientStream
}

type goCryptoTraderGetHistoricTradesClient struct {
	grpc.ClientStream
}

func (x *goCryptoTraderGetHistoricTradesClient) Recv() (*SavedTradesResponse, error) {
	m := new(SavedTradesResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *goCryptoTraderClient) GetSavedTrades(ctx context.Context, in *GetSavedTradesRequest, opts ...grpc.CallOption) (*SavedTradesResponse, error) {
	out := new(SavedTradesResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetSavedTrades", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) ConvertTradesToCandles(ctx context.Context, in *ConvertTradesToCandlesRequest, opts ...grpc.CallOption) (*GetHistoricCandlesResponse, error) {
	out := new(GetHistoricCandlesResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/ConvertTradesToCandles", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) FindMissingSavedCandleIntervals(ctx context.Context, in *FindMissingCandlePeriodsRequest, opts ...grpc.CallOption) (*FindMissingIntervalsResponse, error) {
	out := new(FindMissingIntervalsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/FindMissingSavedCandleIntervals", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) FindMissingSavedTradeIntervals(ctx context.Context, in *FindMissingTradePeriodsRequest, opts ...grpc.CallOption) (*FindMissingIntervalsResponse, error) {
	out := new(FindMissingIntervalsResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/FindMissingSavedTradeIntervals", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *goCryptoTraderClient) SetExchangeTradeProcessing(ctx context.Context, in *SetExchangeTradeProcessingRequest, opts ...grpc.CallOption) (*GenericResponse, error) {
	out := new(GenericResponse)
	err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetExchangeTradeProcessing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// GoCryptoTraderServer is the server API for GoCryptoTrader service.
// All implementations must embed UnimplementedGoCryptoTraderServer
// for forward compatibility
type GoCryptoTraderServer interface {
	GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)
	GetSubsystems(context.Context, *GetSubsystemsRequest) (*GetSusbsytemsResponse, error)
	EnableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error)
	DisableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error)
	GetRPCEndpoints(context.Context, *GetRPCEndpointsRequest) (*GetRPCEndpointsResponse, error)
	GetCommunicationRelayers(context.Context, *GetCommunicationRelayersRequest) (*GetCommunicationRelayersResponse, error)
	GetExchanges(context.Context, *GetExchangesRequest) (*GetExchangesResponse, error)
	DisableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error)
	GetExchangeInfo(context.Context, *GenericExchangeNameRequest) (*GetExchangeInfoResponse, error)
	GetExchangeOTPCode(context.Context, *GenericExchangeNameRequest) (*GetExchangeOTPReponse, error)
	GetExchangeOTPCodes(context.Context, *GetExchangeOTPsRequest) (*GetExchangeOTPsResponse, error)
	EnableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error)
	GetTicker(context.Context, *GetTickerRequest) (*TickerResponse, error)
	GetTickers(context.Context, *GetTickersRequest) (*GetTickersResponse, error)
	GetOrderbook(context.Context, *GetOrderbookRequest) (*OrderbookResponse, error)
	GetOrderbooks(context.Context, *GetOrderbooksRequest) (*GetOrderbooksResponse, error)
	GetAccountInfo(context.Context, *GetAccountInfoRequest) (*GetAccountInfoResponse, error)
	UpdateAccountInfo(context.Context, *GetAccountInfoRequest) (*GetAccountInfoResponse, error)
	GetAccountInfoStream(*GetAccountInfoRequest, GoCryptoTrader_GetAccountInfoStreamServer) error
	GetConfig(context.Context, *GetConfigRequest) (*GetConfigResponse, error)
	GetPortfolio(context.Context, *GetPortfolioRequest) (*GetPortfolioResponse, error)
	GetPortfolioSummary(context.Context, *GetPortfolioSummaryRequest) (*GetPortfolioSummaryResponse, error)
	AddPortfolioAddress(context.Context, *AddPortfolioAddressRequest) (*GenericResponse, error)
	RemovePortfolioAddress(context.Context, *RemovePortfolioAddressRequest) (*GenericResponse, error)
	GetForexProviders(context.Context, *GetForexProvidersRequest) (*GetForexProvidersResponse, error)
	GetForexRates(context.Context, *GetForexRatesRequest) (*GetForexRatesResponse, error)
	GetOrders(context.Context, *GetOrdersRequest) (*GetOrdersResponse, error)
	GetOrder(context.Context, *GetOrderRequest) (*OrderDetails, error)
	SubmitOrder(context.Context, *SubmitOrderRequest) (*SubmitOrderResponse, error)
	SimulateOrder(context.Context, *SimulateOrderRequest) (*SimulateOrderResponse, error)
	WhaleBomb(context.Context, *WhaleBombRequest) (*SimulateOrderResponse, error)
	CancelOrder(context.Context, *CancelOrderRequest) (*GenericResponse, error)
	CancelBatchOrders(context.Context, *CancelBatchOrdersRequest) (*CancelBatchOrdersResponse, error)
	CancelAllOrders(context.Context, *CancelAllOrdersRequest) (*CancelAllOrdersResponse, error)
	GetEvents(context.Context, *GetEventsRequest) (*GetEventsResponse, error)
	AddEvent(context.Context, *AddEventRequest) (*AddEventResponse, error)
	RemoveEvent(context.Context, *RemoveEventRequest) (*GenericResponse, error)
	GetCryptocurrencyDepositAddresses(context.Context, *GetCryptocurrencyDepositAddressesRequest) (*GetCryptocurrencyDepositAddressesResponse, error)
	GetCryptocurrencyDepositAddress(context.Context, *GetCryptocurrencyDepositAddressRequest) (*GetCryptocurrencyDepositAddressResponse, error)
	WithdrawFiatFunds(context.Context, *WithdrawFiatRequest) (*WithdrawResponse, error)
	WithdrawCryptocurrencyFunds(context.Context, *WithdrawCryptoRequest) (*WithdrawResponse, error)
	WithdrawalEventByID(context.Context, *WithdrawalEventByIDRequest) (*WithdrawalEventByIDResponse, error)
	WithdrawalEventsByExchange(context.Context, *WithdrawalEventsByExchangeRequest) (*WithdrawalEventsByExchangeResponse, error)
	WithdrawalEventsByDate(context.Context, *WithdrawalEventsByDateRequest) (*WithdrawalEventsByExchangeResponse, error)
	GetLoggerDetails(context.Context, *GetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error)
	SetLoggerDetails(context.Context, *SetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error)
	GetExchangePairs(context.Context, *GetExchangePairsRequest) (*GetExchangePairsResponse, error)
	SetExchangePair(context.Context, *SetExchangePairRequest) (*GenericResponse, error)
	GetOrderbookStream(*GetOrderbookStreamRequest, GoCryptoTrader_GetOrderbookStreamServer) error
	GetExchangeOrderbookStream(*GetExchangeOrderbookStreamRequest, GoCryptoTrader_GetExchangeOrderbookStreamServer) error
	GetTickerStream(*GetTickerStreamRequest, GoCryptoTrader_GetTickerStreamServer) error
	GetExchangeTickerStream(*GetExchangeTickerStreamRequest, GoCryptoTrader_GetExchangeTickerStreamServer) error
	GetAuditEvent(context.Context, *GetAuditEventRequest) (*GetAuditEventResponse, error)
	GCTScriptExecute(context.Context, *GCTScriptExecuteRequest) (*GenericResponse, error)
	GCTScriptUpload(context.Context, *GCTScriptUploadRequest) (*GenericResponse, error)
	GCTScriptReadScript(context.Context, *GCTScriptReadScriptRequest) (*GCTScriptQueryResponse, error)
	GCTScriptStatus(context.Context, *GCTScriptStatusRequest) (*GCTScriptStatusResponse, error)
	GCTScriptQuery(context.Context, *GCTScriptQueryRequest) (*GCTScriptQueryResponse, error)
	GCTScriptStop(context.Context, *GCTScriptStopRequest) (*GenericResponse, error)
	GCTScriptStopAll(context.Context, *GCTScriptStopAllRequest) (*GenericResponse, error)
	GCTScriptListAll(context.Context, *GCTScriptListAllRequest) (*GCTScriptStatusResponse, error)
	GCTScriptAutoLoadToggle(context.Context, *GCTScriptAutoLoadRequest) (*GenericResponse, error)
	GetHistoricCandles(context.Context, *GetHistoricCandlesRequest) (*GetHistoricCandlesResponse, error)
	SetExchangeAsset(context.Context, *SetExchangeAssetRequest) (*GenericResponse, error)
	SetAllExchangePairs(context.Context, *SetExchangeAllPairsRequest) (*GenericResponse, error)
	UpdateExchangeSupportedPairs(context.Context, *UpdateExchangeSupportedPairsRequest) (*GenericResponse, error)
	GetExchangeAssets(context.Context, *GetExchangeAssetsRequest) (*GetExchangeAssetsResponse, error)
	WebsocketGetInfo(context.Context, *WebsocketGetInfoRequest) (*WebsocketGetInfoResponse, error)
	WebsocketSetEnabled(context.Context, *WebsocketSetEnabledRequest) (*GenericResponse, error)
	WebsocketGetSubscriptions(context.Context, *WebsocketGetSubscriptionsRequest) (*WebsocketGetSubscriptionsResponse, error)
	WebsocketSetProxy(context.Context, *WebsocketSetProxyRequest) (*GenericResponse, error)
	WebsocketSetURL(context.Context, *WebsocketSetURLRequest) (*GenericResponse, error)
	GetRecentTrades(context.Context, *GetSavedTradesRequest) (*SavedTradesResponse, error)
	GetHistoricTrades(*GetSavedTradesRequest, GoCryptoTrader_GetHistoricTradesServer) error
	GetSavedTrades(context.Context, *GetSavedTradesRequest) (*SavedTradesResponse, error)
	ConvertTradesToCandles(context.Context, *ConvertTradesToCandlesRequest) (*GetHistoricCandlesResponse, error)
	FindMissingSavedCandleIntervals(context.Context, *FindMissingCandlePeriodsRequest) (*FindMissingIntervalsResponse, error)
	FindMissingSavedTradeIntervals(context.Context, *FindMissingTradePeriodsRequest) (*FindMissingIntervalsResponse, error)
	SetExchangeTradeProcessing(context.Context, *SetExchangeTradeProcessingRequest) (*GenericResponse, error)
	mustEmbedUnimplementedGoCryptoTraderServer()
}

// UnimplementedGoCryptoTraderServer must be embedded to have forward compatible implementations.
type UnimplementedGoCryptoTraderServer struct {
}

func (UnimplementedGoCryptoTraderServer) GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetInfo not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetSubsystems(context.Context, *GetSubsystemsRequest) (*GetSusbsytemsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSubsystems not implemented")
}
func (UnimplementedGoCryptoTraderServer) EnableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableSubsystem not implemented")
}
func (UnimplementedGoCryptoTraderServer) DisableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DisableSubsystem not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetRPCEndpoints(context.Context, *GetRPCEndpointsRequest) (*GetRPCEndpointsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRPCEndpoints not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetCommunicationRelayers(context.Context, *GetCommunicationRelayersRequest) (*GetCommunicationRelayersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCommunicationRelayers not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchanges(context.Context, *GetExchangesRequest) (*GetExchangesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetExchanges not implemented")
}
func (UnimplementedGoCryptoTraderServer) DisableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DisableExchange not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchangeInfo(context.Context, *GenericExchangeNameRequest) (*GetExchangeInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetExchangeInfo not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchangeOTPCode(context.Context, *GenericExchangeNameRequest) (*GetExchangeOTPReponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetExchangeOTPCode not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchangeOTPCodes(context.Context, *GetExchangeOTPsRequest) (*GetExchangeOTPsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetExchangeOTPCodes not implemented")
}
func (UnimplementedGoCryptoTraderServer) EnableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableExchange not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetTicker(context.Context, *GetTickerRequest) (*TickerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTicker not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetTickers(context.Context, *GetTickersRequest) (*GetTickersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTickers not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetOrderbook(context.Context, *GetOrderbookRequest) (*OrderbookResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetOrderbook not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetOrderbooks(context.Context, *GetOrderbooksRequest) (*GetOrderbooksResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetOrderbooks not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetAccountInfo(context.Context, *GetAccountInfoRequest) (*GetAccountInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAccountInfo not implemented")
}
func (UnimplementedGoCryptoTraderServer) UpdateAccountInfo(context.Context, *GetAccountInfoRequest) (*GetAccountInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateAccountInfo not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetAccountInfoStream(*GetAccountInfoRequest, GoCryptoTrader_GetAccountInfoStreamServer) error {
	return status.Errorf(codes.Unimplemented, "method GetAccountInfoStream not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetConfig(context.Context, *GetConfigRequest) (*GetConfigResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetConfig not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetPortfolio(context.Context, *GetPortfolioRequest) (*GetPortfolioResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPortfolio not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetPortfolioSummary(context.Context, *GetPortfolioSummaryRequest) (*GetPortfolioSummaryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPortfolioSummary not implemented")
}
func (UnimplementedGoCryptoTraderServer) AddPortfolioAddress(context.Context, *AddPortfolioAddressRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddPortfolioAddress not implemented")
}
func (UnimplementedGoCryptoTraderServer) RemovePortfolioAddress(context.Context, *RemovePortfolioAddressRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemovePortfolioAddress not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetForexProviders(context.Context, *GetForexProvidersRequest) (*GetForexProvidersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetForexProviders not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetForexRates(context.Context, *GetForexRatesRequest) (*GetForexRatesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetForexRates not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetOrders(context.Context, *GetOrdersRequest) (*GetOrdersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetOrders not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetOrder(context.Context, *GetOrderRequest) (*OrderDetails, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetOrder not implemented")
}
func (UnimplementedGoCryptoTraderServer) SubmitOrder(context.Context, *SubmitOrderRequest) (*SubmitOrderResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SubmitOrder not implemented")
}
func (UnimplementedGoCryptoTraderServer) SimulateOrder(context.Context, *SimulateOrderRequest) (*SimulateOrderResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SimulateOrder not implemented")
}
func (UnimplementedGoCryptoTraderServer) WhaleBomb(context.Context, *WhaleBombRequest) (*SimulateOrderResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WhaleBomb not implemented")
}
func (UnimplementedGoCryptoTraderServer) CancelOrder(context.Context, *CancelOrderRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelOrder not implemented")
}
func (UnimplementedGoCryptoTraderServer) CancelBatchOrders(context.Context, *CancelBatchOrdersRequest) (*CancelBatchOrdersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelBatchOrders not implemented")
}
func (UnimplementedGoCryptoTraderServer) CancelAllOrders(context.Context, *CancelAllOrdersRequest) (*CancelAllOrdersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelAllOrders not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetEvents(context.Context, *GetEventsRequest) (*GetEventsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetEvents not implemented")
}
func (UnimplementedGoCryptoTraderServer) AddEvent(context.Context, *AddEventRequest) (*AddEventResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddEvent not implemented")
}
func (UnimplementedGoCryptoTraderServer) RemoveEvent(context.Context, *RemoveEventRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveEvent not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetCryptocurrencyDepositAddresses(context.Context, *GetCryptocurrencyDepositAddressesRequest) (*GetCryptocurrencyDepositAddressesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCryptocurrencyDepositAddresses not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetCryptocurrencyDepositAddress(context.Context, *GetCryptocurrencyDepositAddressRequest) (*GetCryptocurrencyDepositAddressResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCryptocurrencyDepositAddress not implemented")
}
func (UnimplementedGoCryptoTraderServer) WithdrawFiatFunds(context.Context, *WithdrawFiatRequest) (*WithdrawResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WithdrawFiatFunds not implemented")
}
func (UnimplementedGoCryptoTraderServer) WithdrawCryptocurrencyFunds(context.Context, *WithdrawCryptoRequest) (*WithdrawResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WithdrawCryptocurrencyFunds not implemented")
}
func (UnimplementedGoCryptoTraderServer) WithdrawalEventByID(context.Context, *WithdrawalEventByIDRequest) (*WithdrawalEventByIDResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WithdrawalEventByID not implemented")
}
func (UnimplementedGoCryptoTraderServer) WithdrawalEventsByExchange(context.Context, *WithdrawalEventsByExchangeRequest) (*WithdrawalEventsByExchangeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WithdrawalEventsByExchange not implemented")
}
func (UnimplementedGoCryptoTraderServer) WithdrawalEventsByDate(context.Context, *WithdrawalEventsByDateRequest) (*WithdrawalEventsByExchangeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WithdrawalEventsByDate not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetLoggerDetails(context.Context, *GetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLoggerDetails not implemented")
}
func (UnimplementedGoCryptoTraderServer) SetLoggerDetails(context.Context, *SetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetLoggerDetails not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchangePairs(context.Context, *GetExchangePairsRequest) (*GetExchangePairsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetExchangePairs not implemented")
}
func (UnimplementedGoCryptoTraderServer) SetExchangePair(context.Context, *SetExchangePairRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetExchangePair not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetOrderbookStream(*GetOrderbookStreamRequest, GoCryptoTrader_GetOrderbookStreamServer) error {
	return status.Errorf(codes.Unimplemented, "method GetOrderbookStream not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchangeOrderbookStream(*GetExchangeOrderbookStreamRequest, GoCryptoTrader_GetExchangeOrderbookStreamServer) error {
	return status.Errorf(codes.Unimplemented, "method GetExchangeOrderbookStream not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetTickerStream(*GetTickerStreamRequest, GoCryptoTrader_GetTickerStreamServer) error {
	return status.Errorf(codes.Unimplemented, "method GetTickerStream not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchangeTickerStream(*GetExchangeTickerStreamRequest, GoCryptoTrader_GetExchangeTickerStreamServer) error {
	return status.Errorf(codes.Unimplemented, "method GetExchangeTickerStream not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetAuditEvent(context.Context, *GetAuditEventRequest) (*GetAuditEventResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAuditEvent not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptExecute(context.Context, *GCTScriptExecuteRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptExecute not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptUpload(context.Context, *GCTScriptUploadRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptUpload not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptReadScript(context.Context, *GCTScriptReadScriptRequest) (*GCTScriptQueryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptReadScript not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptStatus(context.Context, *GCTScriptStatusRequest) (*GCTScriptStatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptStatus not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptQuery(context.Context, *GCTScriptQueryRequest) (*GCTScriptQueryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptQuery not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptStop(context.Context, *GCTScriptStopRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptStop not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptStopAll(context.Context, *GCTScriptStopAllRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptStopAll not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptListAll(context.Context, *GCTScriptListAllRequest) (*GCTScriptStatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptListAll not implemented")
}
func (UnimplementedGoCryptoTraderServer) GCTScriptAutoLoadToggle(context.Context, *GCTScriptAutoLoadRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GCTScriptAutoLoadToggle not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetHistoricCandles(context.Context, *GetHistoricCandlesRequest) (*GetHistoricCandlesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetHistoricCandles not implemented")
}
func (UnimplementedGoCryptoTraderServer) SetExchangeAsset(context.Context, *SetExchangeAssetRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetExchangeAsset not implemented")
}
func (UnimplementedGoCryptoTraderServer) SetAllExchangePairs(context.Context, *SetExchangeAllPairsRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetAllExchangePairs not implemented")
}
func (UnimplementedGoCryptoTraderServer) UpdateExchangeSupportedPairs(context.Context, *UpdateExchangeSupportedPairsRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateExchangeSupportedPairs not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetExchangeAssets(context.Context, *GetExchangeAssetsRequest) (*GetExchangeAssetsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetExchangeAssets not implemented")
}
func (UnimplementedGoCryptoTraderServer) WebsocketGetInfo(context.Context, *WebsocketGetInfoRequest) (*WebsocketGetInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WebsocketGetInfo not implemented")
}
func (UnimplementedGoCryptoTraderServer) WebsocketSetEnabled(context.Context, *WebsocketSetEnabledRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WebsocketSetEnabled not implemented")
}
func (UnimplementedGoCryptoTraderServer) WebsocketGetSubscriptions(context.Context, *WebsocketGetSubscriptionsRequest) (*WebsocketGetSubscriptionsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WebsocketGetSubscriptions not implemented")
}
func (UnimplementedGoCryptoTraderServer) WebsocketSetProxy(context.Context, *WebsocketSetProxyRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WebsocketSetProxy not implemented")
}
func (UnimplementedGoCryptoTraderServer) WebsocketSetURL(context.Context, *WebsocketSetURLRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WebsocketSetURL not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetRecentTrades(context.Context, *GetSavedTradesRequest) (*SavedTradesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRecentTrades not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetHistoricTrades(*GetSavedTradesRequest, GoCryptoTrader_GetHistoricTradesServer) error {
	return status.Errorf(codes.Unimplemented, "method GetHistoricTrades not implemented")
}
func (UnimplementedGoCryptoTraderServer) GetSavedTrades(context.Context, *GetSavedTradesRequest) (*SavedTradesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSavedTrades not implemented")
}
func (UnimplementedGoCryptoTraderServer) ConvertTradesToCandles(context.Context, *ConvertTradesToCandlesRequest) (*GetHistoricCandlesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConvertTradesToCandles not implemented")
}
func (UnimplementedGoCryptoTraderServer) FindMissingSavedCandleIntervals(context.Context, *FindMissingCandlePeriodsRequest) (*FindMissingIntervalsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FindMissingSavedCandleIntervals not implemented")
}
func (UnimplementedGoCryptoTraderServer) FindMissingSavedTradeIntervals(context.Context, *FindMissingTradePeriodsRequest) (*FindMissingIntervalsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FindMissingSavedTradeIntervals not implemented")
}
func (UnimplementedGoCryptoTraderServer) SetExchangeTradeProcessing(context.Context, *SetExchangeTradeProcessingRequest) (*GenericResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetExchangeTradeProcessing not implemented")
}
func (UnimplementedGoCryptoTraderServer) mustEmbedUnimplementedGoCryptoTraderServer() {}

// UnsafeGoCryptoTraderServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to GoCryptoTraderServer will
// result in compilation errors.
type UnsafeGoCryptoTraderServer interface {
	mustEmbedUnimplementedGoCryptoTraderServer()
}

func RegisterGoCryptoTraderServer(s grpc.ServiceRegistrar, srv GoCryptoTraderServer) {
	s.RegisterService(&GoCryptoTrader_ServiceDesc, srv)
}

func _GoCryptoTrader_GetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetInfo(ctx, req.(*GetInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetSubsystems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSubsystemsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetSubsystems(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetSubsystems",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetSubsystems(ctx, req.(*GetSubsystemsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_EnableSubsystem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenericSubsystemRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).EnableSubsystem(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/EnableSubsystem",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).EnableSubsystem(ctx, req.(*GenericSubsystemRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_DisableSubsystem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenericSubsystemRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).DisableSubsystem(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/DisableSubsystem",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).DisableSubsystem(ctx, req.(*GenericSubsystemRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetRPCEndpoints_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRPCEndpointsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetRPCEndpoints(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetRPCEndpoints",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetRPCEndpoints(ctx, req.(*GetRPCEndpointsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetCommunicationRelayers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCommunicationRelayersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetCommunicationRelayers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetCommunicationRelayers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetCommunicationRelayers(ctx, req.(*GetCommunicationRelayersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetExchanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetExchangesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetExchanges(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetExchanges",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetExchanges(ctx, req.(*GetExchangesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_DisableExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenericExchangeNameRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).DisableExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/DisableExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).DisableExchange(ctx, req.(*GenericExchangeNameRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetExchangeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenericExchangeNameRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetExchangeInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetExchangeInfo(ctx, req.(*GenericExchangeNameRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetExchangeOTPCode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenericExchangeNameRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetExchangeOTPCode(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeOTPCode",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetExchangeOTPCode(ctx, req.(*GenericExchangeNameRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetExchangeOTPCodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetExchangeOTPsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetExchangeOTPCodes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeOTPCodes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetExchangeOTPCodes(ctx, req.(*GetExchangeOTPsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_EnableExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenericExchangeNameRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).EnableExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/EnableExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).EnableExchange(ctx, req.(*GenericExchangeNameRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetTicker_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTickerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetTicker(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetTicker",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetTicker(ctx, req.(*GetTickerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetTickers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTickersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetTickers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetTickers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetTickers(ctx, req.(*GetTickersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetOrderbook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetOrderbookRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetOrderbook(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetOrderbook",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetOrderbook(ctx, req.(*GetOrderbookRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetOrderbooks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetOrderbooksRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetOrderbooks(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetOrderbooks",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetOrderbooks(ctx, req.(*GetOrderbooksRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetAccountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAccountInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetAccountInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetAccountInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetAccountInfo(ctx, req.(*GetAccountInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_UpdateAccountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAccountInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).UpdateAccountInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/UpdateAccountInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).UpdateAccountInfo(ctx, req.(*GetAccountInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetAccountInfoStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetAccountInfoRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GoCryptoTraderServer).GetAccountInfoStream(m, &goCryptoTraderGetAccountInfoStreamServer{stream})
}

type GoCryptoTrader_GetAccountInfoStreamServer interface {
	Send(*GetAccountInfoResponse) error
	grpc.ServerStream
}

type goCryptoTraderGetAccountInfoStreamServer struct {
	grpc.ServerStream
}

func (x *goCryptoTraderGetAccountInfoStreamServer) Send(m *GetAccountInfoResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GoCryptoTrader_GetConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetConfig",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetConfig(ctx, req.(*GetConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetPortfolio_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetPortfolioRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetPortfolio(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetPortfolio",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetPortfolio(ctx, req.(*GetPortfolioRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetPortfolioSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetPortfolioSummaryRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetPortfolioSummary(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetPortfolioSummary",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetPortfolioSummary(ctx, req.(*GetPortfolioSummaryRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_AddPortfolioAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddPortfolioAddressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).AddPortfolioAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/AddPortfolioAddress",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).AddPortfolioAddress(ctx, req.(*AddPortfolioAddressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_RemovePortfolioAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemovePortfolioAddressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).RemovePortfolioAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/RemovePortfolioAddress",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).RemovePortfolioAddress(ctx, req.(*RemovePortfolioAddressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetForexProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetForexProvidersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetForexProviders(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetForexProviders",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetForexProviders(ctx, req.(*GetForexProvidersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetForexRates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetForexRatesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetForexRates(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetForexRates",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetForexRates(ctx, req.(*GetForexRatesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetOrders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetOrdersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetOrders(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetOrders",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetOrders(ctx, req.(*GetOrdersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetOrderRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetOrder(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetOrder",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetOrder(ctx, req.(*GetOrderRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_SubmitOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SubmitOrderRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).SubmitOrder(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/SubmitOrder",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).SubmitOrder(ctx, req.(*SubmitOrderRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_SimulateOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SimulateOrderRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).SimulateOrder(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/SimulateOrder",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).SimulateOrder(ctx, req.(*SimulateOrderRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WhaleBomb_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WhaleBombRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WhaleBomb(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WhaleBomb",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WhaleBomb(ctx, req.(*WhaleBombRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_CancelOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelOrderRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).CancelOrder(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/CancelOrder",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).CancelOrder(ctx, req.(*CancelOrderRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_CancelBatchOrders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelBatchOrdersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).CancelBatchOrders(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/CancelBatchOrders",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).CancelBatchOrders(ctx, req.(*CancelBatchOrdersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_CancelAllOrders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelAllOrdersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).CancelAllOrders(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/CancelAllOrders",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).CancelAllOrders(ctx, req.(*CancelAllOrdersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetEventsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetEvents(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetEvents",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetEvents(ctx, req.(*GetEventsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_AddEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddEventRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).AddEvent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/AddEvent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).AddEvent(ctx, req.(*AddEventRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_RemoveEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveEventRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).RemoveEvent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/RemoveEvent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).RemoveEvent(ctx, req.(*RemoveEventRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetCryptocurrencyDepositAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCryptocurrencyDepositAddressesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddresses(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddresses",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddresses(ctx, req.(*GetCryptocurrencyDepositAddressesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetCryptocurrencyDepositAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCryptocurrencyDepositAddressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddress",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddress(ctx, req.(*GetCryptocurrencyDepositAddressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WithdrawFiatFunds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WithdrawFiatRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WithdrawFiatFunds(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WithdrawFiatFunds",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WithdrawFiatFunds(ctx, req.(*WithdrawFiatRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WithdrawCryptocurrencyFunds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WithdrawCryptoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WithdrawCryptocurrencyFunds(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WithdrawCryptocurrencyFunds",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WithdrawCryptocurrencyFunds(ctx, req.(*WithdrawCryptoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WithdrawalEventByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WithdrawalEventByIDRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WithdrawalEventByID(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WithdrawalEventByID",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WithdrawalEventByID(ctx, req.(*WithdrawalEventByIDRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WithdrawalEventsByExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WithdrawalEventsByExchangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WithdrawalEventsByExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WithdrawalEventsByExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WithdrawalEventsByExchange(ctx, req.(*WithdrawalEventsByExchangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WithdrawalEventsByDate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WithdrawalEventsByDateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WithdrawalEventsByDate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WithdrawalEventsByDate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WithdrawalEventsByDate(ctx, req.(*WithdrawalEventsByDateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetLoggerDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetLoggerDetailsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetLoggerDetails(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetLoggerDetails",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetLoggerDetails(ctx, req.(*GetLoggerDetailsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_SetLoggerDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetLoggerDetailsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).SetLoggerDetails(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/SetLoggerDetails",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).SetLoggerDetails(ctx, req.(*SetLoggerDetailsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetExchangePairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetExchangePairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetExchangePairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetExchangePairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetExchangePairs(ctx, req.(*GetExchangePairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_SetExchangePair_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetExchangePairRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).SetExchangePair(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/SetExchangePair",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).SetExchangePair(ctx, req.(*SetExchangePairRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetOrderbookStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetOrderbookStreamRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GoCryptoTraderServer).GetOrderbookStream(m, &goCryptoTraderGetOrderbookStreamServer{stream})
}

type GoCryptoTrader_GetOrderbookStreamServer interface {
	Send(*OrderbookResponse) error
	grpc.ServerStream
}

type goCryptoTraderGetOrderbookStreamServer struct {
	grpc.ServerStream
}

func (x *goCryptoTraderGetOrderbookStreamServer) Send(m *OrderbookResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GoCryptoTrader_GetExchangeOrderbookStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetExchangeOrderbookStreamRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GoCryptoTraderServer).GetExchangeOrderbookStream(m, &goCryptoTraderGetExchangeOrderbookStreamServer{stream})
}

type GoCryptoTrader_GetExchangeOrderbookStreamServer interface {
	Send(*OrderbookResponse) error
	grpc.ServerStream
}

type goCryptoTraderGetExchangeOrderbookStreamServer struct {
	grpc.ServerStream
}

func (x *goCryptoTraderGetExchangeOrderbookStreamServer) Send(m *OrderbookResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GoCryptoTrader_GetTickerStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetTickerStreamRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GoCryptoTraderServer).GetTickerStream(m, &goCryptoTraderGetTickerStreamServer{stream})
}

type GoCryptoTrader_GetTickerStreamServer interface {
	Send(*TickerResponse) error
	grpc.ServerStream
}

type goCryptoTraderGetTickerStreamServer struct {
	grpc.ServerStream
}

func (x *goCryptoTraderGetTickerStreamServer) Send(m *TickerResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GoCryptoTrader_GetExchangeTickerStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetExchangeTickerStreamRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GoCryptoTraderServer).GetExchangeTickerStream(m, &goCryptoTraderGetExchangeTickerStreamServer{stream})
}

type GoCryptoTrader_GetExchangeTickerStreamServer interface {
	Send(*TickerResponse) error
	grpc.ServerStream
}

type goCryptoTraderGetExchangeTickerStreamServer struct {
	grpc.ServerStream
}

func (x *goCryptoTraderGetExchangeTickerStreamServer) Send(m *TickerResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GoCryptoTrader_GetAuditEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAuditEventRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetAuditEvent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetAuditEvent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetAuditEvent(ctx, req.(*GetAuditEventRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptExecute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptExecuteRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptExecute(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptExecute",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptExecute(ctx, req.(*GCTScriptExecuteRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptUpload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptUploadRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptUpload(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptUpload",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptUpload(ctx, req.(*GCTScriptUploadRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptReadScript_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptReadScriptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptReadScript(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptReadScript",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptReadScript(ctx, req.(*GCTScriptReadScriptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptStatus(ctx, req.(*GCTScriptStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptQueryRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptQuery(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptQuery",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptQuery(ctx, req.(*GCTScriptQueryRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptStop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptStopRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptStop(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptStop",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptStop(ctx, req.(*GCTScriptStopRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptStopAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptStopAllRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptStopAll(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptStopAll",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptStopAll(ctx, req.(*GCTScriptStopAllRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptListAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptListAllRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptListAll(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptListAll",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptListAll(ctx, req.(*GCTScriptListAllRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GCTScriptAutoLoadToggle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GCTScriptAutoLoadRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GCTScriptAutoLoadToggle(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptAutoLoadToggle",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GCTScriptAutoLoadToggle(ctx, req.(*GCTScriptAutoLoadRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetHistoricCandles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetHistoricCandlesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetHistoricCandles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetHistoricCandles",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetHistoricCandles(ctx, req.(*GetHistoricCandlesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_SetExchangeAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetExchangeAssetRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).SetExchangeAsset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/SetExchangeAsset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).SetExchangeAsset(ctx, req.(*SetExchangeAssetRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_SetAllExchangePairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetExchangeAllPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).SetAllExchangePairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/SetAllExchangePairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).SetAllExchangePairs(ctx, req.(*SetExchangeAllPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_UpdateExchangeSupportedPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateExchangeSupportedPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).UpdateExchangeSupportedPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/UpdateExchangeSupportedPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).UpdateExchangeSupportedPairs(ctx, req.(*UpdateExchangeSupportedPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetExchangeAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetExchangeAssetsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetExchangeAssets(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeAssets",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetExchangeAssets(ctx, req.(*GetExchangeAssetsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WebsocketGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WebsocketGetInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WebsocketGetInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WebsocketGetInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WebsocketGetInfo(ctx, req.(*WebsocketGetInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WebsocketSetEnabled_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WebsocketSetEnabledRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WebsocketSetEnabled(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WebsocketSetEnabled",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WebsocketSetEnabled(ctx, req.(*WebsocketSetEnabledRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WebsocketGetSubscriptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WebsocketGetSubscriptionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WebsocketGetSubscriptions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WebsocketGetSubscriptions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WebsocketGetSubscriptions(ctx, req.(*WebsocketGetSubscriptionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WebsocketSetProxy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WebsocketSetProxyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WebsocketSetProxy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WebsocketSetProxy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WebsocketSetProxy(ctx, req.(*WebsocketSetProxyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_WebsocketSetURL_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WebsocketSetURLRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).WebsocketSetURL(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/WebsocketSetURL",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).WebsocketSetURL(ctx, req.(*WebsocketSetURLRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetRecentTrades_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSavedTradesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetRecentTrades(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetRecentTrades",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetRecentTrades(ctx, req.(*GetSavedTradesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_GetHistoricTrades_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetSavedTradesRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GoCryptoTraderServer).GetHistoricTrades(m, &goCryptoTraderGetHistoricTradesServer{stream})
}

type GoCryptoTrader_GetHistoricTradesServer interface {
	Send(*SavedTradesResponse) error
	grpc.ServerStream
}

type goCryptoTraderGetHistoricTradesServer struct {
	grpc.ServerStream
}

func (x *goCryptoTraderGetHistoricTradesServer) Send(m *SavedTradesResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GoCryptoTrader_GetSavedTrades_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSavedTradesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).GetSavedTrades(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/GetSavedTrades",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).GetSavedTrades(ctx, req.(*GetSavedTradesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_ConvertTradesToCandles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ConvertTradesToCandlesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).ConvertTradesToCandles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/ConvertTradesToCandles",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).ConvertTradesToCandles(ctx, req.(*ConvertTradesToCandlesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_FindMissingSavedCandleIntervals_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FindMissingCandlePeriodsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).FindMissingSavedCandleIntervals(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/FindMissingSavedCandleIntervals",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).FindMissingSavedCandleIntervals(ctx, req.(*FindMissingCandlePeriodsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_FindMissingSavedTradeIntervals_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FindMissingTradePeriodsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).FindMissingSavedTradeIntervals(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/FindMissingSavedTradeIntervals",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).FindMissingSavedTradeIntervals(ctx, req.(*FindMissingTradePeriodsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GoCryptoTrader_SetExchangeTradeProcessing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetExchangeTradeProcessingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GoCryptoTraderServer).SetExchangeTradeProcessing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gctrpc.GoCryptoTrader/SetExchangeTradeProcessing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GoCryptoTraderServer).SetExchangeTradeProcessing(ctx, req.(*SetExchangeTradeProcessingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// GoCryptoTrader_ServiceDesc is the grpc.ServiceDesc for GoCryptoTrader service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var GoCryptoTrader_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "gctrpc.GoCryptoTrader",
	HandlerType: (*GoCryptoTraderServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetInfo",
			Handler:    _GoCryptoTrader_GetInfo_Handler,
		},
		{
			MethodName: "GetSubsystems",
			Handler:    _GoCryptoTrader_GetSubsystems_Handler,
		},
		{
			MethodName: "EnableSubsystem",
			Handler:    _GoCryptoTrader_EnableSubsystem_Handler,
		},
		{
			MethodName: "DisableSubsystem",
			Handler:    _GoCryptoTrader_DisableSubsystem_Handler,
		},
		{
			MethodName: "GetRPCEndpoints",
			Handler:    _GoCryptoTrader_GetRPCEndpoints_Handler,
		},
		{
			MethodName: "GetCommunicationRelayers",
			Handler:    _GoCryptoTrader_GetCommunicationRelayers_Handler,
		},
		{
			MethodName: "GetExchanges",
			Handler:    _GoCryptoTrader_GetExchanges_Handler,
		},
		{
			MethodName: "DisableExchange",
			Handler:    _GoCryptoTrader_DisableExchange_Handler,
		},
		{
			MethodName: "GetExchangeInfo",
			Handler:    _GoCryptoTrader_GetExchangeInfo_Handler,
		},
		{
			MethodName: "GetExchangeOTPCode",
			Handler:    _GoCryptoTrader_GetExchangeOTPCode_Handler,
		},
		{
			MethodName: "GetExchangeOTPCodes",
			Handler:    _GoCryptoTrader_GetExchangeOTPCodes_Handler,
		},
		{
			MethodName: "EnableExchange",
			Handler:    _GoCryptoTrader_EnableExchange_Handler,
		},
		{
			MethodName: "GetTicker",
			Handler:    _GoCryptoTrader_GetTicker_Handler,
		},
		{
			MethodName: "GetTickers",
			Handler:    _GoCryptoTrader_GetTickers_Handler,
		},
		{
			MethodName: "GetOrderbook",
			Handler:    _GoCryptoTrader_GetOrderbook_Handler,
		},
		{
			MethodName: "GetOrderbooks",
			Handler:    _GoCryptoTrader_GetOrderbooks_Handler,
		},
		{
			MethodName: "GetAccountInfo",
			Handler:    _GoCryptoTrader_GetAccountInfo_Handler,
		},
		{
			MethodName: "UpdateAccountInfo",
			Handler:    _GoCryptoTrader_UpdateAccountInfo_Handler,
		},
		{
			MethodName: "GetConfig",
			Handler:    _GoCryptoTrader_GetConfig_Handler,
		},
		{
			MethodName: "GetPortfolio",
			Handler:    _GoCryptoTrader_GetPortfolio_Handler,
		},
		{
			MethodName: "GetPortfolioSummary",
			Handler:    _GoCryptoTrader_GetPortfolioSummary_Handler,
		},
		{
			MethodName: "AddPortfolioAddress",
			Handler:    _GoCryptoTrader_AddPortfolioAddress_Handler,
		},
		{
			MethodName: "RemovePortfolioAddress",
			Handler:    _GoCryptoTrader_RemovePortfolioAddress_Handler,
		},
		{
			MethodName: "GetForexProviders",
			Handler:    _GoCryptoTrader_GetForexProviders_Handler,
		},
		{
			MethodName: "GetForexRates",
			Handler:    _GoCryptoTrader_GetForexRates_Handler,
		},
		{
			MethodName: "GetOrders",
			Handler:    _GoCryptoTrader_GetOrders_Handler,
		},
		{
			MethodName: "GetOrder",
			Handler:    _GoCryptoTrader_GetOrder_Handler,
		},
		{
			MethodName: "SubmitOrder",
			Handler:    _GoCryptoTrader_SubmitOrder_Handler,
		},
		{
			MethodName: "SimulateOrder",
			Handler:    _GoCryptoTrader_SimulateOrder_Handler,
		},
		{
			MethodName: "WhaleBomb",
			Handler:    _GoCryptoTrader_WhaleBomb_Handler,
		},
		{
			MethodName: "CancelOrder",
			Handler:    _GoCryptoTrader_CancelOrder_Handler,
		},
		{
			MethodName: "CancelBatchOrders",
			Handler:    _GoCryptoTrader_CancelBatchOrders_Handler,
		},
		{
			MethodName: "CancelAllOrders",
			Handler:    _GoCryptoTrader_CancelAllOrders_Handler,
		},
		{
			MethodName: "GetEvents",
			Handler:    _GoCryptoTrader_GetEvents_Handler,
		},
		{
			MethodName: "AddEvent",
			Handler:    _GoCryptoTrader_AddEvent_Handler,
		},
		{
			MethodName: "RemoveEvent",
			Handler:    _GoCryptoTrader_RemoveEvent_Handler,
		},
		{
			MethodName: "GetCryptocurrencyDepositAddresses",
			Handler:    _GoCryptoTrader_GetCryptocurrencyDepositAddresses_Handler,
		},
		{
			MethodName: "GetCryptocurrencyDepositAddress",
			Handler:    _GoCryptoTrader_GetCryptocurrencyDepositAddress_Handler,
		},
		{
			MethodName: "WithdrawFiatFunds",
			Handler:    _GoCryptoTrader_WithdrawFiatFunds_Handler,
		},
		{
			MethodName: "WithdrawCryptocurrencyFunds",
			Handler:    _GoCryptoTrader_WithdrawCryptocurrencyFunds_Handler,
		},
		{
			MethodName: "WithdrawalEventByID",
			Handler:    _GoCryptoTrader_WithdrawalEventByID_Handler,
		},
		{
			MethodName: "WithdrawalEventsByExchange",
			Handler:    _GoCryptoTrader_WithdrawalEventsByExchange_Handler,
		},
		{
			MethodName: "WithdrawalEventsByDate",
			Handler:    _GoCryptoTrader_WithdrawalEventsByDate_Handler,
		},
		{
			MethodName: "GetLoggerDetails",
			Handler:    _GoCryptoTrader_GetLoggerDetails_Handler,
		},
		{
			MethodName: "SetLoggerDetails",
			Handler:    _GoCryptoTrader_SetLoggerDetails_Handler,
		},
		{
			MethodName: "GetExchangePairs",
			Handler:    _GoCryptoTrader_GetExchangePairs_Handler,
		},
		{
			MethodName: "SetExchangePair",
			Handler:    _GoCryptoTrader_SetExchangePair_Handler,
		},
		{
			MethodName: "GetAuditEvent",
			Handler:    _GoCryptoTrader_GetAuditEvent_Handler,
		},
		{
			MethodName: "GCTScriptExecute",
			Handler:    _GoCryptoTrader_GCTScriptExecute_Handler,
		},
		{
			MethodName: "GCTScriptUpload",
			Handler:    _GoCryptoTrader_GCTScriptUpload_Handler,
		},
		{
			MethodName: "GCTScriptReadScript",
			Handler:    _GoCryptoTrader_GCTScriptReadScript_Handler,
		},
		{
			MethodName: "GCTScriptStatus",
			Handler:    _GoCryptoTrader_GCTScriptStatus_Handler,
		},
		{
			MethodName: "GCTScriptQuery",
			Handler:    _GoCryptoTrader_GCTScriptQuery_Handler,
		},
		{
			MethodName: "GCTScriptStop",
			Handler:    _GoCryptoTrader_GCTScriptStop_Handler,
		},
		{
			MethodName: "GCTScriptStopAll",
			Handler:    _GoCryptoTrader_GCTScriptStopAll_Handler,
		},
		{
			MethodName: "GCTScriptListAll",
			Handler:    _GoCryptoTrader_GCTScriptListAll_Handler,
		},
		{
			MethodName: "GCTScriptAutoLoadToggle",
			Handler:    _GoCryptoTrader_GCTScriptAutoLoadToggle_Handler,
		},
		{
			MethodName: "GetHistoricCandles",
			Handler:    _GoCryptoTrader_GetHistoricCandles_Handler,
		},
		{
			MethodName: "SetExchangeAsset",
			Handler:    _GoCryptoTrader_SetExchangeAsset_Handler,
		},
		{
			MethodName: "SetAllExchangePairs",
			Handler:    _GoCryptoTrader_SetAllExchangePairs_Handler,
		},
		{
			MethodName: "UpdateExchangeSupportedPairs",
			Handler:    _GoCryptoTrader_UpdateExchangeSupportedPairs_Handler,
		},
		{
			MethodName: "GetExchangeAssets",
			Handler:    _GoCryptoTrader_GetExchangeAssets_Handler,
		},
		{
			MethodName: "WebsocketGetInfo",
			Handler:    _GoCryptoTrader_WebsocketGetInfo_Handler,
		},
		{
			MethodName: "WebsocketSetEnabled",
			Handler:    _GoCryptoTrader_WebsocketSetEnabled_Handler,
		},
		{
			MethodName: "WebsocketGetSubscriptions",
			Handler:    _GoCryptoTrader_WebsocketGetSubscriptions_Handler,
		},
		{
			MethodName: "WebsocketSetProxy",
			Handler:    _GoCryptoTrader_WebsocketSetProxy_Handler,
		},
		{
			MethodName: "WebsocketSetURL",
			Handler:    _GoCryptoTrader_WebsocketSetURL_Handler,
		},
		{
			MethodName: "GetRecentTrades",
			Handler:    _GoCryptoTrader_GetRecentTrades_Handler,
		},
		{
			MethodName: "GetSavedTrades",
			Handler:    _GoCryptoTrader_GetSavedTrades_Handler,
		},
		{
			MethodName: "ConvertTradesToCandles",
			Handler:    _GoCryptoTrader_ConvertTradesToCandles_Handler,
		},
		{
			MethodName: "FindMissingSavedCandleIntervals",
			Handler:    _GoCryptoTrader_FindMissingSavedCandleIntervals_Handler,
		},
		{
			MethodName: "FindMissingSavedTradeIntervals",
			Handler:    _GoCryptoTrader_FindMissingSavedTradeIntervals_Handler,
		},
		{
			MethodName: "SetExchangeTradeProcessing",
			Handler:    _GoCryptoTrader_SetExchangeTradeProcessing_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "GetAccountInfoStream",
			Handler:       _GoCryptoTrader_GetAccountInfoStream_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "GetOrderbookStream",
			Handler:       _GoCryptoTrader_GetOrderbookStream_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "GetExchangeOrderbookStream",
			Handler:       _GoCryptoTrader_GetExchangeOrderbookStream_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "GetTickerStream",
			Handler:       _GoCryptoTrader_GetTickerStream_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "GetExchangeTickerStream",
			Handler:       _GoCryptoTrader_GetExchangeTickerStream_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "GetHistoricTrades",
			Handler:       _GoCryptoTrader_GetHistoricTrades_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "rpc.proto",
}
