mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
* Bybit: Fix race in TestUpdateAccountInfo and TestWSHandleData * DriveBy rename TestWSHandleData * This doesn't address running with -race=2+ due to the singleton * Accounts: Add account.GetService() * exchange: Assertify TestSetupDefaults * Exchanges: Add account.Service override for testing * Exchanges: Remove duplicate IsWebsocketEnabled test from TestSetupDefaults * Dispatch: Replace nil checks with NilGuard * Engine: Remove deprecated printAccountHoldingsChangeSummary * Dispatcher: Add EnsureRunning method * Accounts: Move singleton accounts service to exchange Accounts * Move singleton accounts service to exchange Accounts This maintains the concept of a global store, whilst allowing exchanges to override it when needed, particularly for testing. APIServer: * Remove getAllActiveAccounts from apiserver Deprecated apiserver only thing using this, so remove it instead of updating it * Update comment for UpdateAccountBalances everywhere * Docs: Add punctuation to function comments * Bybit: Coverage for wsProcessWalletPushData Save
2084 lines
49 KiB
Protocol Buffer
2084 lines
49 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package gctrpc;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
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<string, bool> subsystem_status = 6;
|
|
map<string, RPCEndpoint> rpc_endpoints = 7;
|
|
}
|
|
|
|
message GetCommunicationRelayersRequest {}
|
|
|
|
message CommunicationRelayer {
|
|
bool enabled = 1;
|
|
bool connected = 2;
|
|
}
|
|
|
|
message GetCommunicationRelayersResponse {
|
|
map<string, CommunicationRelayer> communication_relayers = 1;
|
|
}
|
|
|
|
message GenericSubsystemRequest {
|
|
string subsystem = 1;
|
|
}
|
|
|
|
message GetSubsystemsRequest {}
|
|
|
|
message GetSusbsytemsResponse {
|
|
map<string, bool> subsystems_status = 1;
|
|
}
|
|
|
|
message GetRPCEndpointsRequest {}
|
|
|
|
message RPCEndpoint {
|
|
bool started = 1;
|
|
string listen_address = 2;
|
|
}
|
|
|
|
message GetRPCEndpointsResponse {
|
|
map<string, RPCEndpoint> 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<string, string> 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<string, PairsSupported> 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;
|
|
string error = 7;
|
|
}
|
|
|
|
message GetOrderbooksRequest {}
|
|
|
|
message Orderbooks {
|
|
string exchange = 1;
|
|
repeated OrderbookResponse orderbooks = 2;
|
|
}
|
|
|
|
message GetOrderbooksResponse {
|
|
repeated Orderbooks orderbooks = 1;
|
|
}
|
|
|
|
message GetAccountBalancesRequest {
|
|
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;
|
|
double free = 4;
|
|
double free_without_borrow = 5;
|
|
double borrowed = 6;
|
|
google.protobuf.Timestamp updated_at = 7;
|
|
}
|
|
|
|
message GetAccountBalancesResponse {
|
|
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<string, OnlineCoinSummary> coins = 1;
|
|
}
|
|
|
|
message GetPortfolioSummaryResponse {
|
|
repeated Coin coin_totals = 1;
|
|
repeated Coin coins_offline = 2;
|
|
map<string, OfflineCoins> coins_offline_summary = 3;
|
|
repeated Coin coins_online = 4;
|
|
map<string, OnlineCoins> 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;
|
|
string creation_time = 9;
|
|
string 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;
|
|
double contract_amount = 18;
|
|
}
|
|
|
|
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;
|
|
string margin_type = 9;
|
|
}
|
|
|
|
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;
|
|
string margin_type = 5;
|
|
}
|
|
|
|
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;
|
|
string asset_type = 5;
|
|
}
|
|
|
|
message CancelOrderRequest {
|
|
string exchange = 1;
|
|
string account_id = 2;
|
|
string order_id = 3;
|
|
CurrencyPair pair = 4;
|
|
string asset_type = 5;
|
|
string side = 6;
|
|
}
|
|
|
|
message CancelBatchOrdersRequest {
|
|
string exchange = 1;
|
|
string account_id = 2;
|
|
string orders_id = 3;
|
|
CurrencyPair pair = 4;
|
|
string asset_type = 5;
|
|
string side = 6;
|
|
}
|
|
|
|
message Orders {
|
|
string exchange = 1;
|
|
map<string, string> order_status = 2;
|
|
}
|
|
|
|
message CancelBatchOrdersResponse {
|
|
repeated Orders orders = 1;
|
|
}
|
|
|
|
message CancelAllOrdersRequest {
|
|
string exchange = 1;
|
|
}
|
|
|
|
message CancelAllOrdersResponse {
|
|
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<string, DepositAddresses> 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;
|
|
string asset_type = 5;
|
|
}
|
|
|
|
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;
|
|
int64 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<string, PairsSupported> 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;
|
|
bool is_partial = 7;
|
|
}
|
|
|
|
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 pairs = 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;
|
|
uint64 request_size_limit = 8;
|
|
int64 data_type = 9;
|
|
uint64 max_retry_attempts = 10;
|
|
uint64 batch_size = 11;
|
|
bool insert_only = 12;
|
|
int64 conversion_interval = 13;
|
|
bool overwrite_existing_data = 14;
|
|
string prerequisite_job_nickname = 15;
|
|
uint64 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 full_details = 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;
|
|
uint64 request_size_limit = 9;
|
|
uint64 max_retry_attempts = 10;
|
|
uint64 batch_size = 11;
|
|
string status = 12;
|
|
string data_type = 13;
|
|
int64 conversion_interval = 14;
|
|
bool overwrite_existing_data = 15;
|
|
string prerequisite_job_nickname = 16;
|
|
uint64 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;
|
|
}
|
|
|
|
message FundingRate {
|
|
string date = 1;
|
|
string rate = 2;
|
|
string payment = 3;
|
|
}
|
|
|
|
message FundingData {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
string payment_currency = 4;
|
|
string start_date = 5;
|
|
string end_date = 6;
|
|
repeated FundingRate rates = 7;
|
|
FundingRate latest_rate = 8;
|
|
FundingRate upcoming_rate = 9;
|
|
string payment_sum = 10;
|
|
string payment_message = 11;
|
|
string time_of_next_rate = 12;
|
|
}
|
|
|
|
message FuturesPositionStats {
|
|
string maintenance_margin_requirement = 1;
|
|
string initial_margin_requirement = 2;
|
|
string estimated_liquidation_price = 3;
|
|
string collateral_used = 4;
|
|
string mark_price = 5;
|
|
string current_size = 6;
|
|
string contract_size = 7;
|
|
string contract_multiplier = 8;
|
|
string contract_settlement_type = 9;
|
|
string break_even_price = 10;
|
|
string average_open_price = 11;
|
|
string recent_pnl = 12;
|
|
string margin_fraction = 13;
|
|
string free_collateral = 14;
|
|
string total_collateral = 15;
|
|
string frozen_balance = 16;
|
|
string equity_of_currency = 17;
|
|
string available_equity = 18;
|
|
string cash_balance = 19;
|
|
string discount_equity = 20;
|
|
string equity_usd = 21;
|
|
string isolated_equity = 22;
|
|
string isolated_liabilities = 23;
|
|
string isolated_upl = 24;
|
|
string notional_leverage = 25;
|
|
string total_equity = 26;
|
|
string strategy_equity = 27;
|
|
}
|
|
|
|
message FuturePosition {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
string status = 4;
|
|
string opening_date = 5;
|
|
string opening_direction = 6;
|
|
string opening_price = 7;
|
|
string opening_size = 8;
|
|
string current_direction = 9;
|
|
string current_price = 10;
|
|
string current_size = 11;
|
|
string unrealised_pnl = 12;
|
|
string realised_pnl = 13;
|
|
string closing_date = 14;
|
|
int64 order_count = 15;
|
|
string contract_settlement_type = 16;
|
|
repeated OrderDetails orders = 17;
|
|
FuturesPositionStats position_stats = 18;
|
|
FundingData funding_data = 19;
|
|
}
|
|
|
|
message GetManagedPositionRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
bool include_full_order_data = 4;
|
|
bool get_funding_payments = 5;
|
|
bool include_full_funding_rates = 6;
|
|
bool include_predicted_rate = 7;
|
|
}
|
|
|
|
message GetAllManagedPositionsRequest {
|
|
bool include_full_order_data = 1;
|
|
bool get_funding_payments = 2;
|
|
bool include_full_funding_rates = 3;
|
|
bool include_predicted_rate = 4;
|
|
}
|
|
|
|
message GetManagedPositionsResponse {
|
|
repeated FuturePosition positions = 1;
|
|
}
|
|
|
|
message GetFuturesPositionsSummaryRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
CurrencyPair underlying_pair = 4;
|
|
}
|
|
|
|
message GetFuturesPositionsSummaryResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
FuturesPositionStats position_stats = 4;
|
|
}
|
|
|
|
message GetFuturesPositionsOrdersRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
CurrencyPair underlying_pair = 4;
|
|
string start_date = 5;
|
|
string end_date = 6;
|
|
bool respect_order_history_limits = 7;
|
|
bool sync_with_order_manager = 8;
|
|
}
|
|
|
|
message GetFuturesPositionsOrdersResponse {
|
|
repeated FuturePosition positions = 6;
|
|
}
|
|
|
|
message GetCollateralModeRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
}
|
|
|
|
message GetCollateralModeResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
string collateral_mode = 3;
|
|
}
|
|
|
|
message SetCollateralModeRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
string collateral_mode = 3;
|
|
}
|
|
|
|
message SetCollateralModeResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
bool success = 3;
|
|
}
|
|
|
|
message GetMarginTypeRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
}
|
|
|
|
message GetMarginTypeResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
string margin_type = 4;
|
|
}
|
|
|
|
message ChangePositionMarginRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
string margin_type = 4;
|
|
double original_allocated_margin = 5;
|
|
double new_allocated_margin = 6;
|
|
string margin_side = 7;
|
|
}
|
|
|
|
message ChangePositionMarginResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
string margin_type = 4;
|
|
double new_allocated_margin = 5;
|
|
string margin_side = 6;
|
|
}
|
|
|
|
message SetMarginTypeRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
string margin_type = 4;
|
|
}
|
|
|
|
message SetMarginTypeResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
bool success = 4;
|
|
}
|
|
|
|
message GetLeverageRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
CurrencyPair underlying_pair = 4;
|
|
string margin_type = 5;
|
|
string order_side = 6;
|
|
}
|
|
|
|
message GetLeverageResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
CurrencyPair underlying_pair = 4;
|
|
string margin_type = 5;
|
|
double leverage = 6;
|
|
string order_side = 7;
|
|
}
|
|
|
|
message SetLeverageRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
CurrencyPair underlying_pair = 4;
|
|
string margin_type = 5;
|
|
double leverage = 6;
|
|
string order_side = 7;
|
|
}
|
|
|
|
message SetLeverageResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
CurrencyPair underlying_pair = 4;
|
|
string margin_type = 5;
|
|
string order_side = 6;
|
|
bool success = 7;
|
|
}
|
|
|
|
message GetCollateralRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
bool include_breakdown = 3;
|
|
bool calculate_offline = 4;
|
|
bool include_zero_values = 5;
|
|
}
|
|
|
|
message GetCollateralResponse {
|
|
string sub_account = 1;
|
|
string collateral_currency = 2;
|
|
string total_value_of_positive_spot_balances = 3;
|
|
string collateral_contributed_by_positive_spot_balances = 4;
|
|
string used_collateral = 5;
|
|
CollateralUsedBreakdown used_breakdown = 6;
|
|
string available_collateral = 7;
|
|
string maintenance_collateral = 8;
|
|
string unrealised_pnl = 9;
|
|
repeated CollateralForCurrency currency_breakdown = 10;
|
|
repeated CollateralByPosition position_breakdown = 11;
|
|
}
|
|
|
|
message CollateralForCurrency {
|
|
string currency = 1;
|
|
bool excluded_from_collateral = 2;
|
|
string total_funds = 3;
|
|
string available_for_use_as_collateral = 4;
|
|
string approx_fair_market_value = 5;
|
|
string weighting = 6;
|
|
string collateral_contribution = 7;
|
|
string scaled_to_currency = 8;
|
|
string unrealised_pnl = 9;
|
|
string funds_in_use = 10;
|
|
string additional_collateral_used = 11;
|
|
CollateralUsedBreakdown used_breakdown = 12;
|
|
string error = 13;
|
|
}
|
|
|
|
message CollateralByPosition {
|
|
string currency = 1;
|
|
string size = 2;
|
|
string open_order_size = 3;
|
|
string position_size = 4;
|
|
string mark_price = 5;
|
|
string required_margin = 6;
|
|
string total_collateral_used = 7;
|
|
}
|
|
|
|
message CollateralUsedBreakdown {
|
|
string locked_in_stakes = 1;
|
|
string locked_in_nft_bids = 2;
|
|
string locked_in_fee_voucher = 3;
|
|
string locked_in_spot_margin_funding_offers = 4;
|
|
string locked_in_spot_orders = 5;
|
|
string locked_as_collateral = 6;
|
|
string used_in_futures = 7;
|
|
string used_in_spot_margin = 8;
|
|
}
|
|
|
|
message GetFundingRatesRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
string start_date = 4;
|
|
string end_date = 5;
|
|
string payment_currency = 6;
|
|
bool include_predicted = 7;
|
|
bool include_payments = 8;
|
|
bool respect_history_limits = 9;
|
|
}
|
|
|
|
message GetFundingRatesResponse {
|
|
FundingData rates = 1;
|
|
}
|
|
|
|
message GetLatestFundingRateRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
bool include_predicted = 4;
|
|
}
|
|
|
|
message GetLatestFundingRateResponse {
|
|
FundingData rate = 1;
|
|
}
|
|
|
|
message ShutdownRequest {}
|
|
|
|
message ShutdownResponse {}
|
|
|
|
message GetTechnicalAnalysisRequest {
|
|
string exchange = 1;
|
|
CurrencyPair pair = 2;
|
|
string asset_type = 3;
|
|
string algorithm_type = 4;
|
|
int64 interval = 5;
|
|
google.protobuf.Timestamp start = 6;
|
|
google.protobuf.Timestamp end = 7;
|
|
int64 period = 8;
|
|
int64 fast_period = 9;
|
|
int64 slow_period = 10;
|
|
double standard_deviation_up = 11;
|
|
double standard_deviation_down = 12;
|
|
int64 moving_average_type = 13;
|
|
string other_exchange = 14;
|
|
CurrencyPair other_pair = 15;
|
|
string other_asset_type = 16;
|
|
}
|
|
|
|
message ListOfSignals {
|
|
repeated double signals = 1;
|
|
}
|
|
|
|
message GetTechnicalAnalysisResponse {
|
|
map<string, ListOfSignals> signals = 1;
|
|
}
|
|
|
|
message GetMarginRatesHistoryRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
string currency = 3;
|
|
string start_date = 4;
|
|
string end_date = 5;
|
|
bool get_predicted_rate = 6;
|
|
bool get_lending_payments = 7;
|
|
bool get_borrow_rates = 8;
|
|
bool get_borrow_costs = 9;
|
|
bool include_all_rates = 10;
|
|
bool calculate_offline = 11;
|
|
string taker_fee_rate = 12;
|
|
repeated MarginRate rates = 13;
|
|
}
|
|
|
|
message LendingPayment {
|
|
string payment = 1;
|
|
string size = 2;
|
|
}
|
|
|
|
message BorrowCost {
|
|
string cost = 1;
|
|
string size = 2;
|
|
}
|
|
|
|
message MarginRate {
|
|
string time = 1;
|
|
string market_borrow_size = 2;
|
|
string hourly_rate = 3;
|
|
string yearly_rate = 4;
|
|
string hourly_borrow_rate = 5;
|
|
string yearly_borrow_rate = 6;
|
|
LendingPayment lending_payment = 7;
|
|
BorrowCost borrow_cost = 8;
|
|
}
|
|
|
|
message GetMarginRatesHistoryResponse {
|
|
repeated MarginRate rates = 1;
|
|
int64 total_rates = 2;
|
|
string sum_borrow_costs = 3;
|
|
string avg_borrow_size = 4;
|
|
string sum_lending_payments = 5;
|
|
string avg_lending_size = 6;
|
|
MarginRate latest_rate = 7;
|
|
MarginRate predicted_rate = 8;
|
|
string taker_fee_rate = 9;
|
|
}
|
|
|
|
message GetOrderbookMovementRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
double amount = 6;
|
|
bool sell = 7;
|
|
bool requires_rest_orderbook = 8;
|
|
bool purchase = 9;
|
|
}
|
|
|
|
message GetOrderbookMovementResponse {
|
|
double nominal_percentage = 1;
|
|
double impact_percentage = 2;
|
|
double slippage_cost = 3;
|
|
string currency_bought = 4;
|
|
double bought = 5;
|
|
string currency_sold = 6;
|
|
double sold = 7;
|
|
string side_affected = 8;
|
|
string update_protocol = 9;
|
|
bool full_orderbook_side_consumed = 10;
|
|
double start_price = 11;
|
|
double end_price = 12;
|
|
bool no_slippage_occurred = 13;
|
|
double average_order_cost = 14;
|
|
}
|
|
|
|
message GetOrderbookAmountByNominalRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
double nominal_percentage = 6;
|
|
bool sell = 7;
|
|
bool requires_rest_orderbook = 8;
|
|
}
|
|
|
|
message GetOrderbookAmountByNominalResponse {
|
|
double amount_required = 1;
|
|
string currency_selling = 2;
|
|
double amount_received = 3;
|
|
string currency_buying = 4;
|
|
double start_price = 5;
|
|
double end_price = 6;
|
|
double average_order_cost = 7;
|
|
string side_affected = 8;
|
|
double approximate_nominal_slippage_percentage = 9;
|
|
string update_protocol = 10;
|
|
bool full_orderbook_side_consumed = 11;
|
|
}
|
|
|
|
message GetOrderbookAmountByImpactRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
double impact_percentage = 6;
|
|
bool sell = 7;
|
|
bool requires_rest_orderbook = 8;
|
|
}
|
|
|
|
message GetOrderbookAmountByImpactResponse {
|
|
double amount_required = 1;
|
|
string currency_selling = 2;
|
|
double amount_received = 3;
|
|
string currency_buying = 4;
|
|
double start_price = 5;
|
|
double end_price = 6;
|
|
double average_order_cost = 7;
|
|
string side_affected = 8;
|
|
double approximate_impact_slippage_percentage = 9;
|
|
string update_protocol = 10;
|
|
bool full_orderbook_side_consumed = 11;
|
|
}
|
|
|
|
message GetOpenInterestRequest {
|
|
string exchange = 1;
|
|
repeated OpenInterestDataRequest data = 2;
|
|
}
|
|
|
|
message OpenInterestDataRequest {
|
|
string asset = 1;
|
|
CurrencyPair pair = 2;
|
|
}
|
|
|
|
message GetOpenInterestResponse {
|
|
repeated OpenInterestDataResponse data = 1;
|
|
}
|
|
|
|
message OpenInterestDataResponse {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
double open_interest = 4;
|
|
}
|
|
|
|
message GetCurrencyTradeURLRequest {
|
|
string exchange = 1;
|
|
string asset = 2;
|
|
CurrencyPair pair = 3;
|
|
}
|
|
|
|
message GetCurrencyTradeURLResponse {
|
|
string url = 1;
|
|
}
|
|
|
|
service GoCryptoTraderService {
|
|
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 GetAccountBalances(GetAccountBalancesRequest) returns (GetAccountBalancesResponse) {
|
|
option (google.api.http) = {get: "/v1/getaccountbalances"};
|
|
}
|
|
|
|
rpc UpdateAccountBalances(GetAccountBalancesRequest) returns (GetAccountBalancesResponse) {
|
|
option (google.api.http) = {get: "/v1/updateaccountbalances"};
|
|
}
|
|
|
|
rpc GetAccountBalancesStream(GetAccountBalancesRequest) returns (stream GetAccountBalancesResponse) {
|
|
option (google.api.http) = {get: "/v1/getaccountbalancesstream"};
|
|
}
|
|
|
|
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/withdrawaleventbyexchange"
|
|
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/stopall"
|
|
body: "*"
|
|
};
|
|
}
|
|
|
|
rpc GCTScriptListAll(GCTScriptListAllRequest) returns (GCTScriptStatusResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/gctscript/list"
|
|
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/getrecenttrades"};
|
|
}
|
|
|
|
rpc GetHistoricTrades(GetSavedTradesRequest) returns (stream SavedTradesResponse) {
|
|
option (google.api.http) = {get: "/v1/gethistorictrades"};
|
|
}
|
|
|
|
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"};
|
|
}
|
|
rpc GetFuturesPositionsSummary(GetFuturesPositionsSummaryRequest) returns (GetFuturesPositionsSummaryResponse) {
|
|
option (google.api.http) = {get: "/v1/getfuturespositionssummary"};
|
|
}
|
|
rpc GetFuturesPositionsOrders(GetFuturesPositionsOrdersRequest) returns (GetFuturesPositionsOrdersResponse) {
|
|
option (google.api.http) = {get: "/v1/getfuturespositionsorders"};
|
|
}
|
|
rpc GetCollateral(GetCollateralRequest) returns (GetCollateralResponse) {
|
|
option (google.api.http) = {get: "/v1/getcollateral"};
|
|
}
|
|
rpc Shutdown(ShutdownRequest) returns (ShutdownResponse) {
|
|
option (google.api.http) = {get: "/v1/shutdown"};
|
|
}
|
|
rpc GetTechnicalAnalysis(GetTechnicalAnalysisRequest) returns (GetTechnicalAnalysisResponse) {
|
|
option (google.api.http) = {get: "/v1/gettechnicalanalysis"};
|
|
}
|
|
rpc GetMarginRatesHistory(GetMarginRatesHistoryRequest) returns (GetMarginRatesHistoryResponse) {
|
|
option (google.api.http) = {get: "/v1/getmarginrateshistory"};
|
|
}
|
|
rpc GetManagedPosition(GetManagedPositionRequest) returns (GetManagedPositionsResponse) {
|
|
option (google.api.http) = {get: "/v1/getmanagedposition"};
|
|
}
|
|
rpc GetAllManagedPositions(GetAllManagedPositionsRequest) returns (GetManagedPositionsResponse) {
|
|
option (google.api.http) = {get: "/v1/getallmanagedpositions"};
|
|
}
|
|
rpc GetFundingRates(GetFundingRatesRequest) returns (GetFundingRatesResponse) {
|
|
option (google.api.http) = {get: "/v1/getfundingrates"};
|
|
}
|
|
rpc GetLatestFundingRate(GetLatestFundingRateRequest) returns (GetLatestFundingRateResponse) {
|
|
option (google.api.http) = {get: "/v1/getlatestfundingrate"};
|
|
}
|
|
rpc GetOrderbookMovement(GetOrderbookMovementRequest) returns (GetOrderbookMovementResponse) {
|
|
option (google.api.http) = {get: "/v1/getorderbookmovement"};
|
|
}
|
|
rpc GetOrderbookAmountByNominal(GetOrderbookAmountByNominalRequest) returns (GetOrderbookAmountByNominalResponse) {
|
|
option (google.api.http) = {get: "/v1/getorderbookamountbynominal"};
|
|
}
|
|
rpc GetOrderbookAmountByImpact(GetOrderbookAmountByImpactRequest) returns (GetOrderbookAmountByImpactResponse) {
|
|
option (google.api.http) = {get: "/v1/getorderbookamountbyimpact"};
|
|
}
|
|
rpc GetCollateralMode(GetCollateralModeRequest) returns (GetCollateralModeResponse) {
|
|
option (google.api.http) = {get: "/v1/getcollateralmode"};
|
|
}
|
|
rpc GetLeverage(GetLeverageRequest) returns (GetLeverageResponse) {
|
|
option (google.api.http) = {get: "/v1/getleverage"};
|
|
}
|
|
rpc SetCollateralMode(SetCollateralModeRequest) returns (SetCollateralModeResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/getcollateralmode"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc SetMarginType(SetMarginTypeRequest) returns (SetMarginTypeResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/getmargintype"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc SetLeverage(SetLeverageRequest) returns (SetLeverageResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/getleverage"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc ChangePositionMargin(ChangePositionMarginRequest) returns (ChangePositionMarginResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/changepositionmargin"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc GetOpenInterest(GetOpenInterestRequest) returns (GetOpenInterestResponse) {
|
|
option (google.api.http) = {get: "/v1/getopeninterest"};
|
|
}
|
|
rpc GetCurrencyTradeURL(GetCurrencyTradeURLRequest) returns (GetCurrencyTradeURLResponse) {
|
|
option (google.api.http) = {get: "/v1/getcurrencytradeurl"};
|
|
}
|
|
}
|