@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 +24 -0
- package/gen/user.ts +44 -1
- package/package.json +1 -1
- package/proto/ledger.proto +15 -0
- package/proto/user.proto +38 -0
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.
|
|
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
|
},
|
package/proto/ledger.proto
CHANGED
|
@@ -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
|
+
}
|