syntax = "proto3"; import "google/api/annotations.proto"; import "google/protobuf/timestamp.proto"; package gctrpc; option go_package = "github.com/thrasher-corp/gocryptotrader/gctrpc"; message GetInfoRequest {} message GetInfoResponse { string uptime = 1; int64 available_exchanges = 2; int64 enabled_exchanges = 3; string default_forex_provider = 4; string default_fiat_currency = 5; map subsystem_status = 6; map rpc_endpoints = 7; } message GetCommunicationRelayersRequest {} message CommunicationRelayer { bool enabled = 1; bool connected = 2; } message GetCommunicationRelayersResponse { map communication_relayers = 1; } message GenericSubsystemRequest { string subsystem = 1; } message GetSubsystemsRequest {} message GetSusbsytemsResponse { map subsystems_status = 1; } message GetRPCEndpointsRequest{} message RPCEndpoint { bool started = 1; string listen_address = 2; } message GetRPCEndpointsResponse { map endpoints = 1; } message GenericExchangeNameRequest { string exchange = 1; } message GetExchangesRequest { bool enabled = 1; } message GetExchangesResponse { string exchanges = 1; } message GetExchangeOTPResponse { string otp_code = 1; } message GetExchangeOTPsRequest {} message GetExchangeOTPsResponse { map otp_codes = 1; } message DisableExchangeRequest { string exchange = 1; } message PairsSupported { string available_pairs = 1; string enabled_pairs = 2; } message GetExchangeInfoResponse { string name = 1; bool enabled = 2; bool verbose = 3; bool using_sandbox = 4; string http_timeout = 5; string http_useragent = 6; string http_proxy = 7; string base_currencies = 8; map supported_assets = 9; bool authenticated_api = 10; } message GetTickerRequest { string exchange = 1; CurrencyPair pair = 2; string asset_type = 3; } message CurrencyPair { string delimiter = 1; string base = 2; string quote = 3; } message TickerResponse { CurrencyPair pair = 1; int64 last_updated = 2; string currency_pair = 3; double last = 4; double high = 5; double low = 6; double bid = 7; double ask = 8; double volume = 9; double price_ath = 10; } message GetTickersRequest {} message Tickers { string exchange = 1; repeated TickerResponse tickers = 2; } message GetTickersResponse { repeated Tickers tickers = 1; } message GetOrderbookRequest { string exchange = 1; CurrencyPair pair = 2; string asset_type = 3; } message OrderbookItem { double amount = 1; double price = 2; int64 id = 3; } message OrderbookResponse { CurrencyPair pair = 1; string currency_pair = 2; repeated OrderbookItem bids = 3; repeated OrderbookItem asks = 4; int64 last_updated = 5; string asset_type = 6; } message GetOrderbooksRequest {} message Orderbooks { string exchange = 1; repeated OrderbookResponse orderbooks = 2; } message GetOrderbooksResponse { repeated Orderbooks orderbooks = 1; } message GetAccountInfoRequest { string exchange = 1; string asset_type = 2; } message Account { string id = 1; repeated AccountCurrencyInfo currencies = 2; } message AccountCurrencyInfo { string currency = 1; double total_value = 2; double hold = 3; } message GetAccountInfoResponse { string exchange = 1; repeated Account accounts = 2; } message GetConfigRequest {} message GetConfigResponse { bytes data = 1; } message PortfolioAddress { string address = 1; string coin_type = 2; string description = 3; double balance = 4; } message GetPortfolioRequest {} message GetPortfolioResponse { repeated PortfolioAddress portfolio = 1; } message GetPortfolioSummaryRequest {} message Coin { string coin = 1; double balance = 2; string address = 3; double percentage = 4; } message OfflineCoinSummary { string address = 1; double balance = 2; double percentage = 3; } message OnlineCoinSummary { double balance = 1; double percentage = 2; } message OfflineCoins { repeated OfflineCoinSummary addresses = 1; } message OnlineCoins { map coins = 1; } message GetPortfolioSummaryResponse { repeated Coin coin_totals = 1; repeated Coin coins_offline = 2; map coins_offline_summary = 3; repeated Coin coins_online = 4; map coins_online_summary = 5; } message AddPortfolioAddressRequest { string address = 1; string coin_type = 2; string description = 3; double balance = 4; string supported_exchanges = 5; bool cold_storage = 6; } message RemovePortfolioAddressRequest { string address = 1; string coin_type = 2; string description = 3; } message GetForexProvidersRequest {} message ForexProvider { string name = 1; bool enabled = 2; bool verbose = 3; string rest_polling_delay = 4; string api_key = 5; int64 api_key_level =6; bool primary_provider = 7; } message GetForexProvidersResponse { repeated ForexProvider forex_providers = 1; } message GetForexRatesRequest {} message ForexRatesConversion { string from = 1; string to = 2; double rate = 3; double inverse_rate = 4; } message GetForexRatesResponse { repeated ForexRatesConversion forex_rates = 1; } message OrderDetails { string exchange = 1; string id = 2; string client_order_id = 3; string base_currency = 4; string quote_currency = 5; string asset_type = 6; string order_side = 7; string order_type = 8; int64 creation_time = 9; int64 update_time = 10; string status = 11; double price = 12; double amount = 13; double open_volume = 14; double fee = 15; double cost = 16; repeated TradeHistory trades = 17; } message TradeHistory { int64 creation_time = 1; string id = 2; double price = 3; double amount = 4; string exchange = 5; string asset_type = 6; string order_side = 7; double fee = 8; double total = 9; } message GetOrdersRequest { string exchange = 1; string asset_type = 2; CurrencyPair pair = 3; string start_date = 4; string end_date = 5; } message GetOrdersResponse { repeated OrderDetails orders = 1; } message GetOrderRequest { string exchange = 1; string order_id = 2; CurrencyPair pair = 3; string asset = 4; } message SubmitOrderRequest { string exchange = 1; CurrencyPair pair = 2; string side = 3; string order_type = 4; double amount = 5; double price = 6; string client_id = 7; string asset_type = 8; } message Trades { double amount = 1; double price = 2; double fee = 3; string fee_asset = 4; } message SubmitOrderResponse { bool order_placed = 1; string order_id = 2; repeated Trades trades= 3; } message SimulateOrderRequest { string exchange = 1; CurrencyPair pair = 2; double amount = 3; string side = 4; } message SimulateOrderResponse { repeated OrderbookItem orders = 1; double amount = 2; double minimum_price = 3; double maximum_price = 4; double percentage_gain_loss = 5; string status = 6; } message WhaleBombRequest { string exchange = 1; CurrencyPair pair = 2; double price_target = 3; string side = 4; } message CancelOrderRequest { string exchange = 1; string account_id = 2; string order_id = 3; CurrencyPair pair = 4; string asset_type = 5; string wallet_address = 6; string side = 7; } message CancelBatchOrdersRequest { string exchange = 1; string account_id = 2; string orders_id = 3; CurrencyPair pair = 4; string asset_type = 5; string wallet_address = 6; string side = 7; } message CancelBatchOrdersResponse { message Orders { map order_status = 1; } repeated Orders orders = 1; } message CancelAllOrdersRequest { string exchange = 1; } message CancelAllOrdersResponse { message Orders { string exchange = 1; map order_status = 2; } repeated Orders orders = 1; int64 count = 2; } message GetEventsRequest {} message ConditionParams { string condition = 1; double price = 2; bool check_bids = 3; bool check_asks = 4; double orderbook_amount = 5; } message GetEventsResponse { int64 id = 1; string exchange = 2; string item = 3; ConditionParams condition_params = 4; CurrencyPair pair = 5; string action = 6; bool executed = 7; } message AddEventRequest { string exchange = 1; string item = 2; ConditionParams condition_params = 3; CurrencyPair pair = 4; string asset_type = 5; string action = 6; } message AddEventResponse { int64 id = 1; } message RemoveEventRequest { int64 id = 1; } message GetCryptocurrencyDepositAddressesRequest { string exchange = 1; } message DepositAddress { string address = 1; string tag = 2; string chain = 3; } message DepositAddresses { repeated DepositAddress addresses = 1; } message GetCryptocurrencyDepositAddressesResponse { map addresses = 1; } message GetCryptocurrencyDepositAddressRequest { string exchange = 1; string cryptocurrency = 2; string chain = 3; bool bypass = 4; } message GetCryptocurrencyDepositAddressResponse { string address = 1; string tag = 2; } message GetAvailableTransferChainsRequest { string exchange = 1; string cryptocurrency = 2; } message GetAvailableTransferChainsResponse { repeated string chains = 1; } message WithdrawFiatRequest { string exchange = 1; string currency = 2; double amount = 3; string description = 4; string bank_account_id = 5; } message WithdrawCryptoRequest { string exchange = 1; string address = 2; string address_tag = 3; string currency = 4; double amount = 5; double fee = 6; string description = 7; string chain = 8; } message WithdrawResponse { string id = 1; string status = 2; } message WithdrawalEventByIDRequest { string id = 1; } message WithdrawalEventByIDResponse { WithdrawalEventResponse event = 2; } message WithdrawalEventsByExchangeRequest { string exchange = 1; string id = 2; int32 limit = 3; string currency = 4; } message WithdrawalEventsByDateRequest { string exchange = 1; string start = 2; string end = 3; int32 limit = 4; } message WithdrawalEventsByExchangeResponse { repeated WithdrawalEventResponse event = 2; } message WithdrawalEventResponse { string id = 2; WithdrawlExchangeEvent exchange = 3; WithdrawalRequestEvent request = 4; google.protobuf.Timestamp created_at = 5; google.protobuf.Timestamp updated_at = 6; } message WithdrawlExchangeEvent { string name = 1; string id = 2; string status = 3; } message WithdrawalRequestEvent { string currency = 2; string description = 3; double amount = 4; int32 type = 5; FiatWithdrawalEvent fiat = 6; CryptoWithdrawalEvent crypto = 7; } message FiatWithdrawalEvent { string bank_name = 1; string account_name = 2; string account_number = 3; string bsb = 4; string swift = 5; string iban = 6; } message CryptoWithdrawalEvent { string address = 1; string address_tag = 2; double fee = 3; string tx_id = 4; } message GetLoggerDetailsRequest { string logger = 1; } message GetLoggerDetailsResponse{ bool info = 1; bool debug = 2; bool warn = 3; bool error = 4; } message SetLoggerDetailsRequest { string logger = 1; string level = 2; } message GetExchangePairsRequest { string exchange = 1; string asset = 2; } message GetExchangePairsResponse { map supported_assets = 1; } message SetExchangePairRequest { string exchange = 1; string asset_type = 2; repeated CurrencyPair pairs = 3; bool enable = 4; } message GetOrderbookStreamRequest { string exchange = 1; CurrencyPair pair = 2; string asset_type = 3; } message GetExchangeOrderbookStreamRequest { string exchange = 1; } message GetTickerStreamRequest { string exchange = 1; CurrencyPair pair = 2; string asset_type = 3; } message GetExchangeTickerStreamRequest { string exchange = 1; } message GetAuditEventRequest { string start_date = 1; string end_date = 2; string order_by = 3; int32 limit = 4; int32 offset = 5; } message GetAuditEventResponse { repeated AuditEvent events = 1; } message GetSavedTradesRequest { string exchange = 1; CurrencyPair pair = 2; string asset_type = 3; string start = 4; string end = 5; } message SavedTrades { double price = 1; double amount = 2; string side = 3; string timestamp = 4; string trade_id = 5; } message SavedTradesResponse { string exchange_name = 1; string asset = 2; CurrencyPair pair = 3; repeated SavedTrades trades = 4; } message ConvertTradesToCandlesRequest { string exchange = 1; CurrencyPair pair = 2; string asset_type = 3; string start = 4; string end = 5; int64 time_interval = 6; bool sync = 7; bool force = 8; } message GetHistoricCandlesRequest { string exchange = 1; CurrencyPair pair = 2; string asset_type = 3; string start = 4; string end = 5; int64 time_interval = 6; bool ex_request = 7; bool sync = 8; bool use_db = 9; bool fill_missing_with_trades = 10; bool force = 11; } message GetHistoricCandlesResponse { string exchange = 1; CurrencyPair pair = 2; string start = 3; string end = 4; string interval = 6; repeated Candle candle = 5; } message Candle { string time = 1; double low = 2; double high = 3; double open = 4; double close = 5; double volume = 6; } message AuditEvent { string type = 1; string identifier = 2; string message = 3; string timestamp = 4; } message GCTScript { string UUID = 1; string name = 2; string path = 3; string next_run = 4; } message GCTScriptExecuteRequest { GCTScript script = 1; } message GCTScriptStopRequest { GCTScript script = 1; } message GCTScriptStopAllRequest{} message GCTScriptStatusRequest {} message GCTScriptListAllRequest{} message GCTScriptUploadRequest { string script_name = 1; string script_data = 2; bytes data = 3; bool archived = 4; bool overwrite = 5; } message GCTScriptReadScriptRequest{ GCTScript script = 1; } message GCTScriptQueryRequest{ GCTScript script = 1; } message GCTScriptAutoLoadRequest{ string script = 1; bool status = 2; } message GCTScriptStatusResponse{ string status = 1; repeated GCTScript scripts = 2; } message GCTScriptQueryResponse{ string status = 1; GCTScript script = 2; string data = 3; } message GenericResponse { string status = 1; string data = 2; } message SetExchangeAssetRequest { string exchange = 1; string asset = 2; bool enable = 3; } message SetExchangeAllPairsRequest { string exchange = 1; bool enable = 2; } message UpdateExchangeSupportedPairsRequest { string exchange = 1; } message GetExchangeAssetsRequest { string exchange = 1; } message GetExchangeAssetsResponse { string assets = 1; } message WebsocketGetInfoRequest { string exchange = 1; } message WebsocketGetInfoResponse { string exchange = 1; bool supported = 2; bool enabled = 3; bool authenticated_supported = 4; bool authenticated = 5; string running_url = 6; string proxy_address = 7; } message WebsocketSetEnabledRequest { string exchange = 1; bool enable = 2; } message WebsocketGetSubscriptionsRequest { string exchange = 1; } message WebsocketSubscription { string channel = 1; string currency = 2; string asset = 3; string params = 4; } message WebsocketGetSubscriptionsResponse { string exchange = 1; repeated WebsocketSubscription subscriptions = 2; } message WebsocketSetProxyRequest { string exchange = 1; string proxy = 2; } message WebsocketSetURLRequest { string exchange = 1; string url = 2; } message FindMissingCandlePeriodsRequest { string exchange_name = 1; string asset_type = 2; CurrencyPair pair = 3; int64 interval = 4; string start = 5; string end = 6; } message FindMissingTradePeriodsRequest { string exchange_name = 1; string asset_type = 2; CurrencyPair pair = 3; string start = 4; string end = 5; } message FindMissingIntervalsResponse { string exchange_name = 1; string asset_type = 2; CurrencyPair pair = 3; repeated string missing_periods = 4; string status = 5; } message SetExchangeTradeProcessingRequest { string Exchange = 1; bool Status = 2; } message UpsertDataHistoryJobRequest { string nickname = 1; string exchange = 2; string asset = 3; CurrencyPair pair = 4; string start_date = 5; string end_date = 6; int64 interval = 7; int64 request_size_limit = 8; int64 data_type = 9; int64 max_retry_attempts = 10; int64 batch_size = 11; bool insert_only = 12; int64 conversion_interval = 13; bool overwrite_existing_data = 14; string prerequisite_job_nickname = 15; int64 decimal_place_comparison = 16; string secondary_exchange_name = 17; double issue_tolerance_percentage = 18; bool replace_on_issue = 19; } message InsertSequentialJobsRequest { repeated UpsertDataHistoryJobRequest jobs = 1; } message InsertSequentialJobsResponse { repeated UpsertDataHistoryJobResponse jobs = 1; } message UpsertDataHistoryJobResponse { string message = 1; string job_id = 2; } message GetDataHistoryJobDetailsRequest { string id = 1; string nickname = 2; bool fullDetails = 3; } message DataHistoryJob { string id = 1; string nickname = 2; string exchange =3; string asset = 4; CurrencyPair pair = 5; string start_date = 6; string end_date = 7; int64 interval = 8; int64 request_size_limit = 9; int64 max_retry_attempts = 10; int64 batch_size = 11; string status = 12; string data_type = 13; int64 conversion_interval = 14; bool overwrite_existing_data = 15; string prerequisite_job_nickname = 16; int64 decimal_place_comparison = 17; string secondary_exchange_name = 18; double issue_tolerance_percentage = 19; bool replace_on_issue = 20; repeated DataHistoryJobResult job_results = 21; repeated string result_summaries = 22; } message DataHistoryJobResult { string start_date = 1; string end_date = 2; bool has_data = 3; string message = 4; string run_date = 5; } message DataHistoryJobs { repeated DataHistoryJob results = 1; } message GetDataHistoryJobsBetweenRequest { string start_date = 1; string end_date = 2; } message SetDataHistoryJobStatusRequest { string id = 1; string nickname = 2; int64 status = 3; } message UpdateDataHistoryJobPrerequisiteRequest { string nickname = 1; string prerequisite_job_nickname = 2; } message ModifyOrderRequest { string exchange = 1; string order_id = 2; CurrencyPair pair = 3; string asset = 4; double amount = 5; double price = 6; } message ModifyOrderResponse { string modified_order_id = 1; } message CurrencyStateGetAllRequest { string exchange = 1; } message CurrencyStateTradingRequest { string exchange = 1; string code = 2; string asset = 3; } message CurrencyStateTradingPairRequest { string exchange = 1; string pair = 2; string asset = 3; } message CurrencyStateWithdrawRequest { string exchange = 1; string code = 2; string asset = 3; } message CurrencyStateDepositRequest { string exchange = 1; string code = 2; string asset = 3; } message CurrencyStateResponse { repeated CurrencyState currency_states = 1; } message CurrencyState { string currency = 1; string asset = 2; bool withdraw_enabled = 3; bool deposit_enabled = 4; bool trading_enabled = 5; } service GoCryptoTrader { rpc GetInfo (GetInfoRequest) returns (GetInfoResponse) { option (google.api.http) = { get :"/v1/getinfo" }; } rpc GetSubsystems (GetSubsystemsRequest) returns (GetSusbsytemsResponse) { option (google.api.http) = { get: "/v1/getsubsystems" }; } rpc EnableSubsystem (GenericSubsystemRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/enablesubsystem" }; } rpc DisableSubsystem (GenericSubsystemRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/disablesubsystem" }; } rpc GetRPCEndpoints (GetRPCEndpointsRequest) returns (GetRPCEndpointsResponse) { option (google.api.http) = { get: "/v1/getrpcendpoints" }; } rpc GetCommunicationRelayers (GetCommunicationRelayersRequest) returns (GetCommunicationRelayersResponse) { option (google.api.http) = { get: "/v1/getcommunicationrelayers" }; } rpc GetExchanges (GetExchangesRequest) returns (GetExchangesResponse) { option (google.api.http) = { get: "/v1/getexchanges" }; } rpc DisableExchange (GenericExchangeNameRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/disableexchange" body: "*" }; } rpc GetExchangeInfo (GenericExchangeNameRequest) returns (GetExchangeInfoResponse) { option (google.api.http) = { get: "/v1/getexchangeinfo" }; } rpc GetExchangeOTPCode (GenericExchangeNameRequest) returns (GetExchangeOTPResponse) { option (google.api.http) = { get: "/v1/getexchangeotp" }; } rpc GetExchangeOTPCodes (GetExchangeOTPsRequest) returns (GetExchangeOTPsResponse) { option (google.api.http) = { get: "/v1/getexchangeotps" }; } rpc EnableExchange (GenericExchangeNameRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/enableexchange" body: "*" }; } rpc GetTicker (GetTickerRequest) returns (TickerResponse) { option (google.api.http) = { post: "/v1/getticker" body: "*" }; } rpc GetTickers (GetTickersRequest) returns (GetTickersResponse) { option (google.api.http) = { get: "/v1/gettickers" }; } rpc GetOrderbook (GetOrderbookRequest) returns (OrderbookResponse) { option (google.api.http) = { post: "/v1/getorderbook" body: "*" }; } rpc GetOrderbooks (GetOrderbooksRequest) returns (GetOrderbooksResponse) { option (google.api.http) = { get: "/v1/getorderbooks" }; } rpc GetAccountInfo (GetAccountInfoRequest) returns (GetAccountInfoResponse) { option (google.api.http) = { get: "/v1/getaccountinfo" }; } rpc UpdateAccountInfo (GetAccountInfoRequest) returns (GetAccountInfoResponse) { option (google.api.http) = { get: "/v1/updateaccountinfo" }; } rpc GetAccountInfoStream (GetAccountInfoRequest) returns (stream GetAccountInfoResponse) { option (google.api.http) = { get: "/v1/getaccountinfostream" }; } rpc GetConfig (GetConfigRequest) returns (GetConfigResponse) { option (google.api.http) = { get: "/v1/getconfig" }; } rpc GetPortfolio (GetPortfolioRequest) returns (GetPortfolioResponse) { option (google.api.http) = { get: "/v1/getportfolio" }; } rpc GetPortfolioSummary (GetPortfolioSummaryRequest) returns (GetPortfolioSummaryResponse) { option (google.api.http) = { get: "/v1/getportfoliosummary" }; } rpc AddPortfolioAddress (AddPortfolioAddressRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/addportfolioaddress" body: "*" }; } rpc RemovePortfolioAddress (RemovePortfolioAddressRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/removeportfolioaddress" body: "*" }; } rpc GetForexProviders (GetForexProvidersRequest) returns (GetForexProvidersResponse) { option (google.api.http) = { get: "/v1/getforexproviders" }; } rpc GetForexRates (GetForexRatesRequest) returns (GetForexRatesResponse) { option (google.api.http) = { get: "/v1/getforexrates" }; } rpc GetOrders (GetOrdersRequest) returns (GetOrdersResponse) { option (google.api.http) = { post: "/v1/getorders" body: "*" }; } rpc GetOrder (GetOrderRequest) returns (OrderDetails) { option (google.api.http) = { post: "/v1/getorder" body: "*" }; } rpc SubmitOrder (SubmitOrderRequest) returns (SubmitOrderResponse) { option (google.api.http) = { post: "/v1/submitorder" body: "*" }; } rpc SimulateOrder (SimulateOrderRequest) returns (SimulateOrderResponse) { option (google.api.http) = { post: "/v1/simulateorder" body: "*" }; } rpc WhaleBomb (WhaleBombRequest) returns (SimulateOrderResponse) { option (google.api.http) = { post: "/v1/whalebomb" body: "*" }; } rpc CancelOrder (CancelOrderRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/cancelorder" body: "*" }; } rpc CancelBatchOrders (CancelBatchOrdersRequest) returns (CancelBatchOrdersResponse) { option (google.api.http) = { post: "/v1/cancelbatchorders" body: "*" }; } rpc CancelAllOrders (CancelAllOrdersRequest) returns (CancelAllOrdersResponse) { option (google.api.http) = { post: "/v1/cancelallorders" body: "*" }; } rpc GetEvents(GetEventsRequest) returns (GetEventsResponse) { option (google.api.http) = { get: "/v1/getevents" }; } rpc AddEvent(AddEventRequest) returns (AddEventResponse) { option (google.api.http) = { post: "/v1/addevent" body: "*" }; } rpc RemoveEvent(RemoveEventRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/removeevent" body: "*" }; } rpc GetCryptocurrencyDepositAddresses(GetCryptocurrencyDepositAddressesRequest) returns (GetCryptocurrencyDepositAddressesResponse) { option (google.api.http) = { post: "/v1/getcryptodepositaddresses" body: "*" }; } rpc GetCryptocurrencyDepositAddress(GetCryptocurrencyDepositAddressRequest) returns (GetCryptocurrencyDepositAddressResponse) { option (google.api.http) = { post: "/v1/getcryptodepositaddress" body: "*" }; } rpc GetAvailableTransferChains(GetAvailableTransferChainsRequest) returns (GetAvailableTransferChainsResponse) { option (google.api.http) = { post: "/v1/getavailabletransferchains" body: "*" }; } rpc WithdrawFiatFunds(WithdrawFiatRequest) returns (WithdrawResponse) { option (google.api.http) = { post: "/v1/withdrawfiatfunds" body: "*" }; } rpc WithdrawCryptocurrencyFunds(WithdrawCryptoRequest) returns (WithdrawResponse) { option (google.api.http) = { post: "/v1/withdrawithdrawcryptofundswfiatfunds" body: "*" }; } rpc WithdrawalEventByID(WithdrawalEventByIDRequest) returns (WithdrawalEventByIDResponse) { option (google.api.http) = { post: "/v1/withdrawaleventbyid" body: "*" }; } rpc WithdrawalEventsByExchange(WithdrawalEventsByExchangeRequest) returns (WithdrawalEventsByExchangeResponse) { option (google.api.http) = { post: "/v1/withdrawaleventbyid" body: "*" }; } rpc WithdrawalEventsByDate(WithdrawalEventsByDateRequest) returns (WithdrawalEventsByExchangeResponse) { option (google.api.http) = { post: "/v1/withdrawaleventbydate" body: "*" }; } rpc GetLoggerDetails(GetLoggerDetailsRequest) returns (GetLoggerDetailsResponse) { option (google.api.http) = { get: "/v1/getloggerdetails" }; } rpc SetLoggerDetails(SetLoggerDetailsRequest) returns (GetLoggerDetailsResponse) { option (google.api.http) = { post: "/v1/setloggerdetails", body: "*" }; } rpc GetExchangePairs(GetExchangePairsRequest) returns (GetExchangePairsResponse) { option (google.api.http) = { post: "/v1/getexchangepairs", body: "*" }; } rpc SetExchangePair(SetExchangePairRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/setexchangepair", body: "*" }; } rpc GetOrderbookStream(GetOrderbookStreamRequest) returns (stream OrderbookResponse) { option (google.api.http) = { get: "/v1/getorderbookstream" }; } rpc GetExchangeOrderbookStream(GetExchangeOrderbookStreamRequest) returns (stream OrderbookResponse) { option (google.api.http) = { get: "/v1/getexchangeorderbookstream" }; } rpc GetTickerStream(GetTickerStreamRequest) returns (stream TickerResponse) { option (google.api.http) = { get: "/v1/gettickerstream" }; } rpc GetExchangeTickerStream(GetExchangeTickerStreamRequest) returns (stream TickerResponse) { option (google.api.http) = { get: "/v1/getexchangetickerstream", }; } rpc GetAuditEvent(GetAuditEventRequest) returns (GetAuditEventResponse) { option (google.api.http) = { get: "/v1/getauditevent", }; } rpc GCTScriptExecute(GCTScriptExecuteRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/gctscript/execute", }; } rpc GCTScriptUpload(GCTScriptUploadRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/gctscript/upload", body: "*" }; } rpc GCTScriptReadScript(GCTScriptReadScriptRequest) returns (GCTScriptQueryResponse) { option (google.api.http) = { post: "/v1/gctscript/read", body: "*" }; } rpc GCTScriptStatus(GCTScriptStatusRequest) returns (GCTScriptStatusResponse) { option (google.api.http) = { get: "/v1/gctscript/status", }; } rpc GCTScriptQuery(GCTScriptQueryRequest) returns (GCTScriptQueryResponse) { option (google.api.http) = { get: "/v1/gctscript/query", }; } rpc GCTScriptStop(GCTScriptStopRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/gctscript/stop", body: "*" }; } rpc GCTScriptStopAll(GCTScriptStopAllRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/gctscript/stop", body: "*" }; } rpc GCTScriptListAll(GCTScriptListAllRequest) returns (GCTScriptStatusResponse) { option (google.api.http) = { post: "/v1/gctscript/stop", body: "*" }; } rpc GCTScriptAutoLoadToggle(GCTScriptAutoLoadRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/gctscript/autoload", body: "*" }; } rpc GetHistoricCandles(GetHistoricCandlesRequest) returns (GetHistoricCandlesResponse) { option (google.api.http) = { get: "/v1/gethistoriccandles" }; } rpc SetExchangeAsset(SetExchangeAssetRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/setexchangeasset" }; } rpc SetAllExchangePairs(SetExchangeAllPairsRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/setallexchangepairs" }; } rpc UpdateExchangeSupportedPairs(UpdateExchangeSupportedPairsRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/updateexchangesupportedpairs" }; } rpc GetExchangeAssets(GetExchangeAssetsRequest) returns (GetExchangeAssetsResponse) { option (google.api.http) = { get: "/v1/getexchangeassets" }; } rpc WebsocketGetInfo(WebsocketGetInfoRequest) returns (WebsocketGetInfoResponse) { option (google.api.http) = { get: "/v1/websocketgetinfo" }; } rpc WebsocketSetEnabled(WebsocketSetEnabledRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/websocketsetenabled" }; } rpc WebsocketGetSubscriptions(WebsocketGetSubscriptionsRequest) returns (WebsocketGetSubscriptionsResponse) { option (google.api.http) = { get: "/v1/websocketgetsubscriptions" }; } rpc WebsocketSetProxy(WebsocketSetProxyRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/websocketsetproxy" }; } rpc WebsocketSetURL(WebsocketSetURLRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/websocketseturl" }; } rpc GetRecentTrades(GetSavedTradesRequest) returns (SavedTradesResponse) { option (google.api.http) = { get: "/v1/getsavedtrades" }; } rpc GetHistoricTrades(GetSavedTradesRequest) returns (stream SavedTradesResponse) { option (google.api.http) = { get: "/v1/getsavedtrades" }; } rpc GetSavedTrades(GetSavedTradesRequest) returns (SavedTradesResponse) { option (google.api.http) = { get: "/v1/getsavedtrades" }; } rpc ConvertTradesToCandles (ConvertTradesToCandlesRequest) returns (GetHistoricCandlesResponse) { option (google.api.http) = { get: "/v1/converttradestocandles" }; } rpc FindMissingSavedCandleIntervals (FindMissingCandlePeriodsRequest) returns (FindMissingIntervalsResponse) { option (google.api.http) = { get: "/v1/findmissingsavedcandleintervals" }; } rpc FindMissingSavedTradeIntervals (FindMissingTradePeriodsRequest) returns (FindMissingIntervalsResponse) { option (google.api.http) = { get: "/v1/findmissingsavedtradeintervals" }; } rpc SetExchangeTradeProcessing (SetExchangeTradeProcessingRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/setexchangetradeprocessing" }; } rpc UpsertDataHistoryJob (UpsertDataHistoryJobRequest) returns (UpsertDataHistoryJobResponse) { option (google.api.http) = { post: "/v1/upsertdatahistoryjob", body: "*" }; } rpc GetDataHistoryJobDetails (GetDataHistoryJobDetailsRequest) returns (DataHistoryJob) { option (google.api.http) = { get: "/v1/getdatahistoryjobdetails" }; } rpc GetActiveDataHistoryJobs (GetInfoRequest) returns (DataHistoryJobs) { option (google.api.http) = { get: "/v1/getactivedatahistoryjobs" }; } rpc GetDataHistoryJobsBetween (GetDataHistoryJobsBetweenRequest) returns (DataHistoryJobs) { option (google.api.http) = { get: "/v1/getdatahistoryjobsbetween" }; } rpc GetDataHistoryJobSummary (GetDataHistoryJobDetailsRequest) returns (DataHistoryJob) { option (google.api.http) = { get: "/v1/getdatahistoryjobsummary" }; } rpc SetDataHistoryJobStatus (SetDataHistoryJobStatusRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/setdatahistoryjobstatus", body: "*" }; } rpc UpdateDataHistoryJobPrerequisite (UpdateDataHistoryJobPrerequisiteRequest) returns (GenericResponse) { option (google.api.http) = { post: "/v1/updatedatahistoryjobprerequisite", body: "*" }; } rpc GetManagedOrders (GetOrdersRequest) returns (GetOrdersResponse) { option (google.api.http) = { post: "/v1/getmanagedorders" body: "*" }; } rpc ModifyOrder (ModifyOrderRequest) returns (ModifyOrderResponse) { option (google.api.http) = { get: "/v1/modifyorder" }; } rpc CurrencyStateGetAll (CurrencyStateGetAllRequest) returns (CurrencyStateResponse) { option (google.api.http) = { get: "/v1/currencystategetall" }; } rpc CurrencyStateTrading (CurrencyStateTradingRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/currencystatetrading" }; } rpc CurrencyStateDeposit (CurrencyStateDepositRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/currencystatedeposit" }; } rpc CurrencyStateWithdraw (CurrencyStateWithdrawRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/currencystatewithdraw" }; } rpc CurrencyStateTradingPair (CurrencyStateTradingPairRequest) returns (GenericResponse) { option (google.api.http) = { get: "/v1/currencystatetradingpair" }; } }