@arbiwallet/contracts 1.0.30 → 1.0.32

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.
package/gen/ledger.ts CHANGED
@@ -252,6 +252,19 @@ export interface GetBalancesResponse {
252
252
  balances: BalanceRow[];
253
253
  }
254
254
 
255
+ export interface GetBalancesBatchRequest {
256
+ userIds: string[];
257
+ }
258
+
259
+ export interface UserBalancesRow {
260
+ userId: string;
261
+ balances: BalanceRow[];
262
+ }
263
+
264
+ export interface GetBalancesBatchResponse {
265
+ users: UserBalancesRow[];
266
+ }
267
+
255
268
  export interface TransactionFeedItem {
256
269
  id: string;
257
270
  /** Тип события ленты (строка, см. TransactionFeedType в реализации). */
@@ -372,6 +385,10 @@ export interface LedgerServiceClient {
372
385
 
373
386
  getBalances(request: GetBalancesRequest): Observable<GetBalancesResponse>;
374
387
 
388
+ /** Балансовые позиции сразу для массива пользователей. */
389
+
390
+ getBalancesBatch(request: GetBalancesBatchRequest): Observable<GetBalancesBatchResponse>;
391
+
375
392
  /** Постраничная лента операций пользователя (история для UI); курсор и offset — на усмотрение сервера. */
376
393
 
377
394
  getTransactionFeed(request: GetTransactionFeedRequest): Observable<GetTransactionFeedResponse>;
@@ -460,6 +477,12 @@ export interface LedgerServiceController {
460
477
  request: GetBalancesRequest,
461
478
  ): Promise<GetBalancesResponse> | Observable<GetBalancesResponse> | GetBalancesResponse;
462
479
 
480
+ /** Балансовые позиции сразу для массива пользователей. */
481
+
482
+ getBalancesBatch(
483
+ request: GetBalancesBatchRequest,
484
+ ): Promise<GetBalancesBatchResponse> | Observable<GetBalancesBatchResponse> | GetBalancesBatchResponse;
485
+
463
486
  /** Постраничная лента операций пользователя (история для UI); курсор и offset — на усмотрение сервера. */
464
487
 
465
488
  getTransactionFeed(
@@ -488,6 +511,7 @@ export function LedgerServiceControllerMethods() {
488
511
  "updateWithdrawalStatus",
489
512
  "getBalance",
490
513
  "getBalances",
514
+ "getBalancesBatch",
491
515
  "getTransactionFeed",
492
516
  "internalTransfer",
493
517
  ];
package/gen/user.ts CHANGED
@@ -16,6 +16,19 @@ export enum UserStatus {
16
16
  UNRECOGNIZED = -1,
17
17
  }
18
18
 
19
+ export enum UserSortBy {
20
+ CREATED_AT = 0,
21
+ STATUS = 1,
22
+ REGISTRATION_TYPE = 2,
23
+ UNRECOGNIZED = -1,
24
+ }
25
+
26
+ export enum SortOrder {
27
+ DESC = 0,
28
+ ASC = 1,
29
+ UNRECOGNIZED = -1,
30
+ }
31
+
19
32
  export interface GetUserRequest {
20
33
  id: number;
21
34
  }
@@ -35,6 +48,7 @@ export interface UserResponse {
35
48
  avatar?: string | undefined;
36
49
  createdAt: string;
37
50
  updatedAt: string;
51
+ balances: UserBalance[];
38
52
  }
39
53
 
40
54
  export interface UpdateUserRequest {
@@ -49,6 +63,23 @@ export interface UpdateUserStatusRequest {
49
63
  status: UserStatus;
50
64
  }
51
65
 
66
+ export interface ListUsersRequest {
67
+ page?: number | undefined;
68
+ limit?: number | undefined;
69
+ sortBy?: UserSortBy | undefined;
70
+ order?: SortOrder | undefined;
71
+ search?: string | undefined;
72
+ statusValue?: UserStatus | undefined;
73
+ registrationTypeValue?: string | undefined;
74
+ }
75
+
76
+ export interface ListUsersResponse {
77
+ items: UserResponse[];
78
+ allCount: number;
79
+ page: number;
80
+ limit: number;
81
+ }
82
+
52
83
  export interface ResolveUserForTransferRequest {
53
84
  userId?: number | undefined;
54
85
  email?: string | undefined;
@@ -61,6 +92,14 @@ export interface ResolveUserForTransferResponse {
61
92
  id: number;
62
93
  }
63
94
 
95
+ export interface UserBalance {
96
+ asset: string;
97
+ network: string;
98
+ available: string;
99
+ reserved: string;
100
+ total: string;
101
+ }
102
+
64
103
  export const USER_PACKAGE_NAME = "user";
65
104
 
66
105
  export interface UserServiceClient {
@@ -70,6 +109,8 @@ export interface UserServiceClient {
70
109
 
71
110
  updateUserStatus(request: UpdateUserStatusRequest): Observable<UserResponse>;
72
111
 
112
+ listUsers(request: ListUsersRequest): Observable<ListUsersResponse>;
113
+
73
114
  /** Ровно одно из полей: user_id, email, phone, telegram_username → id получателя для внутреннего перевода. */
74
115
 
75
116
  resolveUserForTransfer(request: ResolveUserForTransferRequest): Observable<ResolveUserForTransferResponse>;
@@ -82,6 +123,8 @@ export interface UserServiceController {
82
123
 
83
124
  updateUserStatus(request: UpdateUserStatusRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
84
125
 
126
+ listUsers(request: ListUsersRequest): Promise<ListUsersResponse> | Observable<ListUsersResponse> | ListUsersResponse;
127
+
85
128
  /** Ровно одно из полей: user_id, email, phone, telegram_username → id получателя для внутреннего перевода. */
86
129
 
87
130
  resolveUserForTransfer(
@@ -94,7 +137,7 @@ export interface UserServiceController {
94
137
 
95
138
  export function UserServiceControllerMethods() {
96
139
  return function (constructor: Function) {
97
- const grpcMethods: string[] = ["getUser", "updateUser", "updateUserStatus", "resolveUserForTransfer"];
140
+ const grpcMethods: string[] = ["getUser", "updateUser", "updateUserStatus", "listUsers", "resolveUserForTransfer"];
98
141
  for (const method of grpcMethods) {
99
142
  const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
100
143
  GrpcMethod("UserService", 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.30",
4
+ "version": "1.0.32",
5
5
  "scripts": {
6
6
  "generate": "protoc -I ./proto ./proto/*.proto --ts_proto_out=./gen --ts_proto_opt=nestJs=true,package=omit"
7
7
  },
@@ -33,6 +33,8 @@ service LedgerService {
33
33
  rpc GetBalance(GetBalanceRequest) returns (GetBalanceResponse);
34
34
  // Все балансовые позиции пользователя по всем активам и сетям.
35
35
  rpc GetBalances(GetBalancesRequest) returns (GetBalancesResponse);
36
+ // Балансовые позиции сразу для массива пользователей.
37
+ rpc GetBalancesBatch(GetBalancesBatchRequest) returns (GetBalancesBatchResponse);
36
38
  // Постраничная лента операций пользователя (история для UI); курсор и offset — на усмотрение сервера.
37
39
  rpc GetTransactionFeed(GetTransactionFeedRequest) returns (GetTransactionFeedResponse);
38
40
  // Внутренний перевод между пользователями приложения (только ledger, без сетевой комиссии).
@@ -237,6 +239,19 @@ message GetBalancesResponse {
237
239
  repeated BalanceRow balances = 1;
238
240
  }
239
241
 
242
+ message GetBalancesBatchRequest {
243
+ repeated string user_ids = 1;
244
+ }
245
+
246
+ message UserBalancesRow {
247
+ string user_id = 1;
248
+ repeated BalanceRow balances = 2;
249
+ }
250
+
251
+ message GetBalancesBatchResponse {
252
+ repeated UserBalancesRow users = 1;
253
+ }
254
+
240
255
  message TransactionFeedItem {
241
256
  string id = 1;
242
257
  string type = 2; // Тип события ленты (строка, см. TransactionFeedType в реализации).
package/proto/user.proto CHANGED
@@ -5,6 +5,7 @@ service UserService {
5
5
  rpc GetUser (GetUserRequest) returns (UserResponse);
6
6
  rpc UpdateUser (UpdateUserRequest) returns (UserResponse);
7
7
  rpc UpdateUserStatus (UpdateUserStatusRequest) returns (UserResponse);
8
+ rpc ListUsers (ListUsersRequest) returns (ListUsersResponse);
8
9
  // Ровно одно из полей: user_id, email, phone, telegram_username → id получателя для внутреннего перевода.
9
10
  rpc ResolveUserForTransfer (ResolveUserForTransferRequest) returns (ResolveUserForTransferResponse);
10
11
  }
@@ -33,6 +34,7 @@ message UserResponse {
33
34
  optional string avatar = 10;
34
35
  string created_at = 11;
35
36
  string updated_at = 12;
37
+ repeated UserBalance balances = 15;
36
38
  }
37
39
 
38
40
  message UpdateUserRequest {
@@ -47,6 +49,34 @@ message UpdateUserStatusRequest {
47
49
  UserStatus status = 2;
48
50
  }
49
51
 
52
+ enum UserSortBy {
53
+ CREATED_AT = 0;
54
+ STATUS = 1;
55
+ REGISTRATION_TYPE = 2;
56
+ }
57
+
58
+ enum SortOrder {
59
+ DESC = 0;
60
+ ASC = 1;
61
+ }
62
+
63
+ message ListUsersRequest {
64
+ optional int32 page = 1;
65
+ optional int32 limit = 2;
66
+ optional UserSortBy sort_by = 3;
67
+ optional SortOrder order = 4;
68
+ optional string search = 5;
69
+ optional UserStatus status_value = 6;
70
+ optional string registration_type_value = 7;
71
+ }
72
+
73
+ message ListUsersResponse {
74
+ repeated UserResponse items = 1;
75
+ int32 all_count = 2;
76
+ int32 page = 3;
77
+ int32 limit = 4;
78
+ }
79
+
50
80
  message ResolveUserForTransferRequest {
51
81
  optional int32 user_id = 1;
52
82
  optional string email = 2;
@@ -58,3 +88,11 @@ message ResolveUserForTransferRequest {
58
88
  message ResolveUserForTransferResponse {
59
89
  int32 id = 1;
60
90
  }
91
+
92
+ message UserBalance {
93
+ string asset = 1;
94
+ string network = 2;
95
+ string available = 3;
96
+ string reserved = 4;
97
+ string total = 5;
98
+ }