@arbiwallet/contracts 1.0.205 → 1.0.207

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,158 @@ import { Struct } from "./google/protobuf/struct";
12
12
 
13
13
  export const protobufPackage = "exchange_rates";
14
14
 
15
+ export interface CurrencySetting {
16
+ id: string;
17
+ shortName: string;
18
+ priorityBuy?: number | undefined;
19
+ prioritySell?: number | undefined;
20
+ priceBuy?: string | undefined;
21
+ priceSell?: string | undefined;
22
+ onePriceForVariationsBuy: boolean;
23
+ onePriceBuyTypeId?: string | undefined;
24
+ onePriceBuyType?: string | undefined;
25
+ onePriceForVariationsSell: boolean;
26
+ onePriceSellTypeId?: string | undefined;
27
+ onePriceSellType?: string | undefined;
28
+ outputRounding?: number | undefined;
29
+ }
30
+
31
+ export interface GetCurrencySettingsRequest {
32
+ }
33
+
34
+ export interface GetCurrencySettingsResponse {
35
+ exist: boolean;
36
+ settings: CurrencySetting[];
37
+ }
38
+
39
+ export interface UpdateCurrencySettingRequest {
40
+ id: string;
41
+ priorityBuy?: number | undefined;
42
+ prioritySell?: number | undefined;
43
+ priceBuy?: string | undefined;
44
+ priceSell?: string | undefined;
45
+ onePriceForVariationsBuy?: boolean | undefined;
46
+ onePriceBuyTypeId?: string | undefined;
47
+ onePriceForVariationsSell?: boolean | undefined;
48
+ onePriceSellTypeId?: string | undefined;
49
+ outputRounding?: number | undefined;
50
+ }
51
+
52
+ export interface UpdateCurrencySettingResponse {
53
+ ok: boolean;
54
+ setting?: CurrencySetting | undefined;
55
+ error?: string | undefined;
56
+ }
57
+
58
+ export interface GetExchangeRatesRequest {
59
+ }
60
+
61
+ export interface GetExchangeRatesResponse {
62
+ exist: boolean;
63
+ result?: string | undefined;
64
+ }
65
+
66
+ export interface PrimeRate {
67
+ id: string;
68
+ inputCurrencyId: string;
69
+ outputCurrencyId: string;
70
+ inputCurrency?: string | undefined;
71
+ outputCurrency?: string | undefined;
72
+ rate: number;
73
+ }
74
+
75
+ export interface CreatePrimeRateRequest {
76
+ inputCurrencyId: string;
77
+ outputCurrencyId: string;
78
+ rate: number;
79
+ }
80
+
81
+ export interface CreatePrimeRateResponse {
82
+ ok: boolean;
83
+ rate?: PrimeRate | undefined;
84
+ error?: string | undefined;
85
+ }
86
+
87
+ export interface GetPrimeRatesRequest {
88
+ }
89
+
90
+ export interface GetPrimeRatesResponse {
91
+ exist: boolean;
92
+ rates: PrimeRate[];
93
+ }
94
+
95
+ export interface UpdatePrimeRateRequest {
96
+ id: string;
97
+ inputCurrencyId?: string | undefined;
98
+ outputCurrencyId?: string | undefined;
99
+ rate?: number | undefined;
100
+ }
101
+
102
+ export interface UpdatePrimeRateResponse {
103
+ ok: boolean;
104
+ rate?: PrimeRate | undefined;
105
+ error?: string | undefined;
106
+ }
107
+
108
+ export interface DeletePrimeRateRequest {
109
+ id: string;
110
+ }
111
+
112
+ export interface DeletePrimeRateResponse {
113
+ ok: boolean;
114
+ error?: string | undefined;
115
+ }
116
+
117
+ export interface GetCustomRatesRequest {
118
+ }
119
+
120
+ export interface CustomRate {
121
+ id: string;
122
+ inputCurrencyId: string;
123
+ outputCurrencyId: string;
124
+ inputCurrency?: string | undefined;
125
+ outputCurrency?: string | undefined;
126
+ rate: number;
127
+ rateProfit: string;
128
+ }
129
+
130
+ export interface GetCustomRatesResponse {
131
+ exist: boolean;
132
+ rates: CustomRate[];
133
+ }
134
+
135
+ export interface UpdateCustomRateRequest {
136
+ id: string;
137
+ inputCurrencyId?: string | undefined;
138
+ outputCurrencyId?: string | undefined;
139
+ rate?: number | undefined;
140
+ rateProfit?: string | undefined;
141
+ }
142
+
143
+ export interface UpdateCustomRateResponse {
144
+ ok: boolean;
145
+ rate?: CustomRate | undefined;
146
+ error?: string | undefined;
147
+ }
148
+
149
+ export interface GetBybitRateProfitRequest {
150
+ }
151
+
152
+ export interface GetBybitRateProfitResponse {
153
+ exist: boolean;
154
+ rateProfit?: string | undefined;
155
+ }
156
+
157
+ export interface UpdateBybitRateProfitRequest {
158
+ rateProfit: string;
159
+ }
160
+
161
+ export interface UpdateBybitRateProfitResponse {
162
+ ok: boolean;
163
+ rateProfit?: string | undefined;
164
+ error?: string | undefined;
165
+ }
166
+
15
167
  export interface CalculateExchangeRequest {
16
168
  managerUserId: string;
17
169
  managerId?: string | undefined;
@@ -76,12 +228,70 @@ export interface GetExchangeCalculationResponse {
76
228
  result?: ExchangeCalculation | undefined;
77
229
  }
78
230
 
79
- export interface GetExchangeRatesRequest {
231
+ export interface GetExchangeCalculationHistoryRequest {
232
+ dateFrom?: string | undefined;
233
+ dateTo?: string | undefined;
234
+ amountFrom?: number | undefined;
235
+ amountTo?: number | undefined;
236
+ inputCurrency?: string | undefined;
237
+ outputCurrency?:
238
+ | string
239
+ | undefined;
240
+ /** no_payment | with_payment | with_exchange | completed */
241
+ status?: string | undefined;
242
+ search?: string | undefined;
243
+ page?: number | undefined;
244
+ pageSize?: number | undefined;
80
245
  }
81
246
 
82
- export interface GetExchangeRatesResponse {
247
+ export interface ExchangeCalculationHistoryAppliedFilters {
248
+ dateFrom?: string | undefined;
249
+ dateTo?: string | undefined;
250
+ amountFrom?: number | undefined;
251
+ amountTo?: number | undefined;
252
+ inputCurrency?: string | undefined;
253
+ outputCurrency?: string | undefined;
254
+ status?: string | undefined;
255
+ search?: string | undefined;
256
+ }
257
+
258
+ export interface ExchangeCalculationHistoryPagination {
259
+ page: number;
260
+ pageSize: number;
261
+ totalPages: number;
262
+ totalCount: number;
263
+ hasNext: boolean;
264
+ hasPrevious: boolean;
265
+ }
266
+
267
+ export interface ExchangeCalculationHistoryItem {
268
+ id: string;
269
+ createdAt: string;
270
+ customerName?: string | undefined;
271
+ inputCurrency: string;
272
+ outputCurrency: string;
273
+ inputCurrencyQuantity: number;
274
+ outputCurrencyQuantity: number;
275
+ exchangeRate: number;
276
+ finalPercent: number;
277
+ managerUsername?: string | undefined;
278
+ hasPayment: boolean;
279
+ paymentUuid?: string | undefined;
280
+ hasExchange: boolean;
281
+ exchangeId?: string | undefined;
282
+ exchangeCompleted?:
283
+ | boolean
284
+ | undefined;
285
+ /** no_payment | with_payment | with_exchange | completed */
286
+ status: string;
287
+ }
288
+
289
+ export interface GetExchangeCalculationHistoryResponse {
83
290
  exist: boolean;
84
- result?: string | undefined;
291
+ items: ExchangeCalculationHistoryItem[];
292
+ currencies: string[];
293
+ filters?: ExchangeCalculationHistoryAppliedFilters | undefined;
294
+ pagination?: ExchangeCalculationHistoryPagination | undefined;
85
295
  }
86
296
 
87
297
  export const EXCHANGE_RATES_PACKAGE_NAME = "exchange_rates";
@@ -89,14 +299,82 @@ export const EXCHANGE_RATES_PACKAGE_NAME = "exchange_rates";
89
299
  wrappers[".google.protobuf.Struct"] = { fromObject: Struct.wrap, toObject: Struct.unwrap } as any;
90
300
 
91
301
  export interface ExchangeRatesServiceClient {
302
+ getCurrencySettings(request: GetCurrencySettingsRequest): Observable<GetCurrencySettingsResponse>;
303
+
304
+ updateCurrencySetting(request: UpdateCurrencySettingRequest): Observable<UpdateCurrencySettingResponse>;
305
+
306
+ createPrimeRate(request: CreatePrimeRateRequest): Observable<CreatePrimeRateResponse>;
307
+
308
+ getPrimeRates(request: GetPrimeRatesRequest): Observable<GetPrimeRatesResponse>;
309
+
310
+ updatePrimeRate(request: UpdatePrimeRateRequest): Observable<UpdatePrimeRateResponse>;
311
+
312
+ deletePrimeRate(request: DeletePrimeRateRequest): Observable<DeletePrimeRateResponse>;
313
+
314
+ getExchangeRates(request: GetExchangeRatesRequest): Observable<GetExchangeRatesResponse>;
315
+
316
+ getCustomRates(request: GetCustomRatesRequest): Observable<GetCustomRatesResponse>;
317
+
318
+ updateCustomRate(request: UpdateCustomRateRequest): Observable<UpdateCustomRateResponse>;
319
+
320
+ getBybitRateProfit(request: GetBybitRateProfitRequest): Observable<GetBybitRateProfitResponse>;
321
+
322
+ updateBybitRateProfit(request: UpdateBybitRateProfitRequest): Observable<UpdateBybitRateProfitResponse>;
323
+
92
324
  calculateExchange(request: CalculateExchangeRequest): Observable<CalculateExchangeResponse>;
93
325
 
94
326
  getExchangeCalculation(request: GetExchangeCalculationRequest): Observable<GetExchangeCalculationResponse>;
95
327
 
96
- getExchangeRates(request: GetExchangeRatesRequest): Observable<GetExchangeRatesResponse>;
328
+ getExchangeCalculationHistory(
329
+ request: GetExchangeCalculationHistoryRequest,
330
+ ): Observable<GetExchangeCalculationHistoryResponse>;
97
331
  }
98
332
 
99
333
  export interface ExchangeRatesServiceController {
334
+ getCurrencySettings(
335
+ request: GetCurrencySettingsRequest,
336
+ ): Promise<GetCurrencySettingsResponse> | Observable<GetCurrencySettingsResponse> | GetCurrencySettingsResponse;
337
+
338
+ updateCurrencySetting(
339
+ request: UpdateCurrencySettingRequest,
340
+ ): Promise<UpdateCurrencySettingResponse> | Observable<UpdateCurrencySettingResponse> | UpdateCurrencySettingResponse;
341
+
342
+ createPrimeRate(
343
+ request: CreatePrimeRateRequest,
344
+ ): Promise<CreatePrimeRateResponse> | Observable<CreatePrimeRateResponse> | CreatePrimeRateResponse;
345
+
346
+ getPrimeRates(
347
+ request: GetPrimeRatesRequest,
348
+ ): Promise<GetPrimeRatesResponse> | Observable<GetPrimeRatesResponse> | GetPrimeRatesResponse;
349
+
350
+ updatePrimeRate(
351
+ request: UpdatePrimeRateRequest,
352
+ ): Promise<UpdatePrimeRateResponse> | Observable<UpdatePrimeRateResponse> | UpdatePrimeRateResponse;
353
+
354
+ deletePrimeRate(
355
+ request: DeletePrimeRateRequest,
356
+ ): Promise<DeletePrimeRateResponse> | Observable<DeletePrimeRateResponse> | DeletePrimeRateResponse;
357
+
358
+ getExchangeRates(
359
+ request: GetExchangeRatesRequest,
360
+ ): Promise<GetExchangeRatesResponse> | Observable<GetExchangeRatesResponse> | GetExchangeRatesResponse;
361
+
362
+ getCustomRates(
363
+ request: GetCustomRatesRequest,
364
+ ): Promise<GetCustomRatesResponse> | Observable<GetCustomRatesResponse> | GetCustomRatesResponse;
365
+
366
+ updateCustomRate(
367
+ request: UpdateCustomRateRequest,
368
+ ): Promise<UpdateCustomRateResponse> | Observable<UpdateCustomRateResponse> | UpdateCustomRateResponse;
369
+
370
+ getBybitRateProfit(
371
+ request: GetBybitRateProfitRequest,
372
+ ): Promise<GetBybitRateProfitResponse> | Observable<GetBybitRateProfitResponse> | GetBybitRateProfitResponse;
373
+
374
+ updateBybitRateProfit(
375
+ request: UpdateBybitRateProfitRequest,
376
+ ): Promise<UpdateBybitRateProfitResponse> | Observable<UpdateBybitRateProfitResponse> | UpdateBybitRateProfitResponse;
377
+
100
378
  calculateExchange(
101
379
  request: CalculateExchangeRequest,
102
380
  ): Promise<CalculateExchangeResponse> | Observable<CalculateExchangeResponse> | CalculateExchangeResponse;
@@ -108,14 +386,32 @@ export interface ExchangeRatesServiceController {
108
386
  | Observable<GetExchangeCalculationResponse>
109
387
  | GetExchangeCalculationResponse;
110
388
 
111
- getExchangeRates(
112
- request: GetExchangeRatesRequest,
113
- ): Promise<GetExchangeRatesResponse> | Observable<GetExchangeRatesResponse> | GetExchangeRatesResponse;
389
+ getExchangeCalculationHistory(
390
+ request: GetExchangeCalculationHistoryRequest,
391
+ ):
392
+ | Promise<GetExchangeCalculationHistoryResponse>
393
+ | Observable<GetExchangeCalculationHistoryResponse>
394
+ | GetExchangeCalculationHistoryResponse;
114
395
  }
115
396
 
116
397
  export function ExchangeRatesServiceControllerMethods() {
117
398
  return function (constructor: Function) {
118
- const grpcMethods: string[] = ["calculateExchange", "getExchangeCalculation", "getExchangeRates"];
399
+ const grpcMethods: string[] = [
400
+ "getCurrencySettings",
401
+ "updateCurrencySetting",
402
+ "createPrimeRate",
403
+ "getPrimeRates",
404
+ "updatePrimeRate",
405
+ "deletePrimeRate",
406
+ "getExchangeRates",
407
+ "getCustomRates",
408
+ "updateCustomRate",
409
+ "getBybitRateProfit",
410
+ "updateBybitRateProfit",
411
+ "calculateExchange",
412
+ "getExchangeCalculation",
413
+ "getExchangeCalculationHistory",
414
+ ];
119
415
  for (const method of grpcMethods) {
120
416
  const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
121
417
  GrpcMethod("ExchangeRatesService", method)(constructor.prototype[method], method, descriptor);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@arbiwallet/contracts",
3
3
  "descriptions": "Generate and manage smart contracts for ArbiWallet",
4
- "version": "1.0.205",
4
+ "version": "1.0.207",
5
5
  "scripts": {
6
6
  "generate": "protoc -I ./proto ./proto/*.proto --ts_proto_out=./gen --ts_proto_opt=nestJs=true,package=omit"
7
7
  },
@@ -9,9 +9,172 @@ option java_multiple_files = true;
9
9
  option java_package = "com.arbiwallet.exchange.rates";
10
10
 
11
11
  service ExchangeRatesService {
12
+ rpc GetCurrencySettings(GetCurrencySettingsRequest) returns (GetCurrencySettingsResponse);
13
+ rpc UpdateCurrencySetting(UpdateCurrencySettingRequest) returns (UpdateCurrencySettingResponse);
14
+
15
+ rpc CreatePrimeRate(CreatePrimeRateRequest) returns (CreatePrimeRateResponse);
16
+ rpc GetPrimeRates(GetPrimeRatesRequest) returns (GetPrimeRatesResponse);
17
+ rpc UpdatePrimeRate(UpdatePrimeRateRequest) returns (UpdatePrimeRateResponse);
18
+ rpc DeletePrimeRate(DeletePrimeRateRequest) returns (DeletePrimeRateResponse);
19
+
20
+ rpc GetExchangeRates(GetExchangeRatesRequest) returns (GetExchangeRatesResponse);
21
+
22
+ rpc GetCustomRates(GetCustomRatesRequest) returns (GetCustomRatesResponse);
23
+ rpc UpdateCustomRate(UpdateCustomRateRequest) returns (UpdateCustomRateResponse);
24
+
25
+ rpc GetBybitRateProfit(GetBybitRateProfitRequest) returns (GetBybitRateProfitResponse);
26
+ rpc UpdateBybitRateProfit(UpdateBybitRateProfitRequest) returns (UpdateBybitRateProfitResponse);
27
+
12
28
  rpc CalculateExchange(CalculateExchangeRequest) returns (CalculateExchangeResponse);
13
29
  rpc GetExchangeCalculation(GetExchangeCalculationRequest) returns (GetExchangeCalculationResponse);
14
- rpc GetExchangeRates(GetExchangeRatesRequest) returns (GetExchangeRatesResponse);
30
+ rpc GetExchangeCalculationHistory(GetExchangeCalculationHistoryRequest) returns (GetExchangeCalculationHistoryResponse);
31
+ }
32
+
33
+ message CurrencySetting {
34
+ string id = 1;
35
+ string short_name = 2;
36
+ optional double priority_buy = 3;
37
+ optional double priority_sell = 4;
38
+ optional string price_buy = 5;
39
+ optional string price_sell = 6;
40
+ bool one_price_for_variations_buy = 7;
41
+ optional string one_price_buy_type_id = 8;
42
+ optional string one_price_buy_type = 9;
43
+ bool one_price_for_variations_sell = 10;
44
+ optional string one_price_sell_type_id = 11;
45
+ optional string one_price_sell_type = 12;
46
+ optional int32 output_rounding = 13;
47
+ }
48
+
49
+ message GetCurrencySettingsRequest {}
50
+
51
+ message GetCurrencySettingsResponse {
52
+ bool exist = 1;
53
+ repeated CurrencySetting settings = 2;
54
+ }
55
+
56
+ message UpdateCurrencySettingRequest {
57
+ string id = 1;
58
+ optional double priority_buy = 2;
59
+ optional double priority_sell = 3;
60
+ optional string price_buy = 4;
61
+ optional string price_sell = 5;
62
+ optional bool one_price_for_variations_buy = 6;
63
+ optional string one_price_buy_type_id = 7;
64
+ optional bool one_price_for_variations_sell = 8;
65
+ optional string one_price_sell_type_id = 9;
66
+ optional int32 output_rounding = 10;
67
+ }
68
+
69
+ message UpdateCurrencySettingResponse {
70
+ bool ok = 1;
71
+ optional CurrencySetting setting = 2;
72
+ optional string error = 3;
73
+ }
74
+
75
+ message GetExchangeRatesRequest {}
76
+
77
+ message GetExchangeRatesResponse {
78
+ bool exist = 1;
79
+ optional string result = 2;
80
+ }
81
+
82
+ message PrimeRate {
83
+ string id = 1;
84
+ string input_currency_id = 2;
85
+ string output_currency_id = 3;
86
+ optional string input_currency = 4;
87
+ optional string output_currency = 5;
88
+ double rate = 6;
89
+ }
90
+
91
+ message CreatePrimeRateRequest {
92
+ string input_currency_id = 1;
93
+ string output_currency_id = 2;
94
+ double rate = 3;
95
+ }
96
+
97
+ message CreatePrimeRateResponse {
98
+ bool ok = 1;
99
+ optional PrimeRate rate = 2;
100
+ optional string error = 3;
101
+ }
102
+
103
+ message GetPrimeRatesRequest {}
104
+
105
+ message GetPrimeRatesResponse {
106
+ bool exist = 1;
107
+ repeated PrimeRate rates = 2;
108
+ }
109
+
110
+ message UpdatePrimeRateRequest {
111
+ string id = 1;
112
+ optional string input_currency_id = 2;
113
+ optional string output_currency_id = 3;
114
+ optional double rate = 4;
115
+ }
116
+
117
+ message UpdatePrimeRateResponse {
118
+ bool ok = 1;
119
+ optional PrimeRate rate = 2;
120
+ optional string error = 3;
121
+ }
122
+
123
+ message DeletePrimeRateRequest {
124
+ string id = 1;
125
+ }
126
+
127
+ message DeletePrimeRateResponse {
128
+ bool ok = 1;
129
+ optional string error = 2;
130
+ }
131
+
132
+ message GetCustomRatesRequest {}
133
+
134
+ message CustomRate {
135
+ string id = 1;
136
+ string input_currency_id = 2;
137
+ string output_currency_id = 3;
138
+ optional string input_currency = 4;
139
+ optional string output_currency = 5;
140
+ double rate = 6;
141
+ string rate_profit = 7;
142
+ }
143
+
144
+ message GetCustomRatesResponse {
145
+ bool exist = 1;
146
+ repeated CustomRate rates = 2;
147
+ }
148
+
149
+ message UpdateCustomRateRequest {
150
+ string id = 1;
151
+ optional string input_currency_id = 2;
152
+ optional string output_currency_id = 3;
153
+ optional double rate = 4;
154
+ optional string rate_profit = 5;
155
+ }
156
+
157
+ message UpdateCustomRateResponse {
158
+ bool ok = 1;
159
+ optional CustomRate rate = 2;
160
+ optional string error = 3;
161
+ }
162
+
163
+ message GetBybitRateProfitRequest {}
164
+
165
+ message GetBybitRateProfitResponse {
166
+ bool exist = 1;
167
+ optional string rate_profit = 2;
168
+ }
169
+
170
+ message UpdateBybitRateProfitRequest {
171
+ string rate_profit = 1;
172
+ }
173
+
174
+ message UpdateBybitRateProfitResponse {
175
+ bool ok = 1;
176
+ optional string rate_profit = 2;
177
+ optional string error = 3;
15
178
  }
16
179
 
17
180
  message CalculateExchangeRequest {
@@ -79,9 +242,65 @@ message GetExchangeCalculationResponse {
79
242
  optional ExchangeCalculation result = 2;
80
243
  }
81
244
 
82
- message GetExchangeRatesRequest {}
245
+ message GetExchangeCalculationHistoryRequest {
246
+ optional string date_from = 1;
247
+ optional string date_to = 2;
248
+ optional double amount_from = 3;
249
+ optional double amount_to = 4;
250
+ optional string input_currency = 5;
251
+ optional string output_currency = 6;
252
+ optional string status = 7; // no_payment | with_payment | with_exchange | completed
253
+ optional string search = 8;
254
+ optional int32 page = 9;
255
+ optional int32 page_size = 10;
256
+ }
83
257
 
84
- message GetExchangeRatesResponse {
258
+ message ExchangeCalculationHistoryAppliedFilters {
259
+ optional string date_from = 1;
260
+ optional string date_to = 2;
261
+ optional double amount_from = 3;
262
+ optional double amount_to = 4;
263
+ optional string input_currency = 5;
264
+ optional string output_currency = 6;
265
+ optional string status = 7;
266
+ optional string search = 8;
267
+ }
268
+
269
+ message ExchangeCalculationHistoryPagination {
270
+ int32 page = 1;
271
+ int32 page_size = 2;
272
+ int32 total_pages = 3;
273
+ int32 total_count = 4;
274
+ bool has_next = 5;
275
+ bool has_previous = 6;
276
+ }
277
+
278
+ message ExchangeCalculationHistoryItem {
279
+ string id = 1;
280
+ string created_at = 2;
281
+
282
+ optional string customer_name = 3;
283
+ string input_currency = 4;
284
+ string output_currency = 5;
285
+ double input_currency_quantity = 6;
286
+ double output_currency_quantity = 7;
287
+ double exchange_rate = 8;
288
+ double final_percent = 9;
289
+ optional string manager_username = 10;
290
+
291
+ bool has_payment = 11;
292
+ optional string payment_uuid = 12;
293
+ bool has_exchange = 13;
294
+ optional string exchange_id = 14;
295
+ optional bool exchange_completed = 15;
296
+
297
+ string status = 16; // no_payment | with_payment | with_exchange | completed
298
+ }
299
+
300
+ message GetExchangeCalculationHistoryResponse {
85
301
  bool exist = 1;
86
- optional string result = 2;
302
+ repeated ExchangeCalculationHistoryItem items = 2;
303
+ repeated string currencies = 3;
304
+ optional ExchangeCalculationHistoryAppliedFilters filters = 4;
305
+ optional ExchangeCalculationHistoryPagination pagination = 5;
87
306
  }