-
Notifications
You must be signed in to change notification settings - Fork 5
/
privateService.proto
294 lines (246 loc) · 6.54 KB
/
privateService.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
syntax = "proto3";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "common.proto";
option csharp_namespace = "Lykke.HftApi.ApiContract";
package hft;
service PrivateService {
rpc GetBalances (google.protobuf.Empty) returns (BalancesResponse);
rpc PlaceLimitOrder (LimitOrderRequest) returns (LimitOrderResponse);
rpc PlaceBulkLimitOrder (BulkLimitOrderRequest) returns (BulkLimitOrderResponse);
rpc PlaceMarketOrder (MarketOrderRequest) returns (MarketOrderResponse);
rpc GetOrder (OrderRequest) returns (OrderResponse);
rpc GetActiveOrders (OrdersRequest) returns (OrdersResponse);
rpc GetClosedOrders (OrdersRequest) returns (OrdersResponse);
rpc CancelAllOrders (CancelOrdersRequest) returns (CancelOrderResponse);
rpc CancelOrder (CancelOrderRequest) returns (CancelOrderResponse);
rpc GetTrades (TradesRequest) returns (TradesResponse);
rpc GetOrderTrades (OrderTradesRequest) returns (TradesResponse);
rpc GetBalanceUpdates (google.protobuf.Empty) returns (stream BalanceUpdate);
rpc GetTradeUpdates (google.protobuf.Empty) returns (stream TradeUpdate);
rpc GetOperationsHistory (GetOperationsHistoryRequest) returns (GetOperationsHistoryResponse);
rpc CreateDepositAddresses(google.protobuf.Empty) returns (CreateDepositAddressesResponse);
rpc GetDepositAddress(GetDepositAddressRequest) returns (GetDepositAddressResponse);
rpc GetDepositAddresses(google.protobuf.Empty) returns (GetDepositAddressesResponse);
rpc CreateWithdrawal(CreateWithdrawalRequest) returns (CreateWithdrawalResponse);
}
message LimitOrderRequest {
string assetPairId = 1;
Side side = 2;
string volume = 3;
string price = 4;
}
message BulkLimitOrderRequest {
string assetPairId = 1;
bool cancelPreviousOrders = 2;
oneof optional_cancelMode {
CancelMode cancelMode = 3;
}
repeated BulkOrder orders = 4;
}
message BulkOrder {
Side side = 1;
string volume = 2;
string price = 3;
string oldId = 4;
}
enum Side {
buy = 0;
sell = 1;
}
enum CancelMode {
notEmptySide = 0;
bothSides = 1;
sellSide = 2;
buySide = 3;
}
message MarketOrderRequest {
string assetPairId = 1;
Side side = 2;
string volume = 3;
}
message OrderRequest {
string orderId = 1;
}
message OrdersRequest {
string assetPairId = 1;
int32 offset = 2;
int32 take = 3;
}
message CancelOrdersRequest {
string assetPairId = 1;
Side side = 2;
}
message CancelOrderRequest {
string orderId = 1;
}
message TradesRequest {
string assetPairId = 1;
oneof optional_side {
Side side = 2;
}
int32 offset = 3;
int32 take = 4;
oneof optional_from {
google.protobuf.Timestamp from = 5;
}
oneof optional_to {
google.protobuf.Timestamp to = 6;
}
}
message GetOperationsHistoryRequest {
int32 offset = 1;
int32 take = 2;
}
message OrderTradesRequest {
string orderId = 1;
}
message BalancesResponse {
repeated Balance payload = 1;
hft.common.Error error = 2;
}
message LimitOrderResponse {
LimitOrderPayload payload = 1;
hft.common.Error error = 2;
message LimitOrderPayload {
string orderId = 1;
}
}
message BulkLimitOrderResponse {
BulkLimitOrderPayload payload = 1;
hft.common.Error error = 2;
message BulkLimitOrderPayload {
string assetPairId = 1;
repeated BulkOrderItemStatus statuses = 3;
}
}
message BulkOrderItemStatus {
string id = 1;
hft.common.ErrorCode error = 2;
string volume = 3;
string price = 4;
}
enum BulkErrorCode {
invalidInputField = 0;
rejected = 1;
runtime = 500;
}
message MarketOrderResponse {
MarketOrderPayload payload = 1;
hft.common.Error error = 2;
message MarketOrderPayload {
string orderId = 1;
string price = 2;
}
}
message OrderResponse {
Order payload = 1;
hft.common.Error error = 2;
}
message OrdersResponse {
repeated Order payload = 1;
hft.common.Error error = 2;
}
message CancelOrderResponse {
bool payload = 1;
hft.common.Error error = 2;
}
message TradesResponse {
repeated Trade payload = 1;
hft.common.Error error = 2;
}
message Balance {
string assetId = 1;
string available = 2;
string reserved = 3;
google.protobuf.Timestamp timestamp = 4;
}
message Order {
string id = 1;
google.protobuf.Timestamp timestamp = 2;
oneof optional_lastTradeTimestamp {
google.protobuf.Timestamp lastTradeTimestamp = 3;
}
string status = 4;
string assetPairId = 5;
string type = 6;
Side side = 7;
string price = 8;
string volume = 9;
string filledVolume = 10;//> Volume - RemainingVolume;
string remainingVolume = 11;
string cost = 12;// FilledVolume * Price;
}
message Trade {
string id = 1;
google.protobuf.Timestamp timestamp = 2;
string assetPairId = 3;
string orderId = 4;
string role = 5;
string price = 6;
string baseVolume = 7;
string quoteVolume = 8;
string baseAssetId = 9;
string quoteAssetId = 10;
TradeFee fee = 11;
Side side = 12;
}
message TradeFee {
string size = 1;
string assetId = 2;
}
message BalanceUpdate {
repeated Balance balances = 1;
}
message OrderUpdate {
repeated Order orders = 1;
}
message TradeUpdate {
repeated Trade trades = 1;
}
message GetOperationsHistoryResponse {
repeated OperationHistory operations = 1;
}
message OperationHistory {
string operationId = 1;
string assetId = 2;
string totalVolume = 3;
string fee = 4;
string type = 5;
google.protobuf.Timestamp timestamp = 6;
google.protobuf.StringValue blockchainHash = 7;
}
message CreateDepositAddressesResponse {
hft.common.Error error = 1;
}
message GetDepositAddressRequest {
string assetId = 1;
}
message GetDepositAddressResponse {
DepositAddress payload = 1;
hft.common.Error error = 2;
}
message GetDepositAddressesResponse {
repeated DepositAddress payload = 1;
hft.common.Error error = 2;
}
message DepositAddress {
google.protobuf.StringValue address = 1;
google.protobuf.StringValue baseAddress = 2;
google.protobuf.StringValue addressExtension = 3;
string state = 4;
string assetId = 5;
string symbol = 6;
}
message CreateWithdrawalRequest {
string requestId = 1;
string assetId = 2;
string volume = 3;
string destinationAddress = 4;
google.protobuf.StringValue destinationAddressExtension = 5;
}
message CreateWithdrawalResponse {
string payload = 1;
hft.common.Error error = 2;
}