@arbiwallet/contracts 1.0.24 → 1.0.26
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 +49 -1
- package/gen/user.ts +26 -1
- package/package.json +1 -1
- package/proto/ledger.proto +28 -0
- package/proto/user.proto +14 -0
package/gen/ledger.ts
CHANGED
|
@@ -270,7 +270,22 @@ export interface GetTransactionFeedRequest {
|
|
|
270
270
|
limit: number;
|
|
271
271
|
/** Курсор для следующей страницы. */
|
|
272
272
|
cursorId?: string | undefined;
|
|
273
|
-
offset?:
|
|
273
|
+
offset?:
|
|
274
|
+
| number
|
|
275
|
+
| undefined;
|
|
276
|
+
/** Фильтр по активу, напр. USDT. */
|
|
277
|
+
asset?:
|
|
278
|
+
| string
|
|
279
|
+
| undefined;
|
|
280
|
+
/** Фильтр по сети, напр. TRON, BSC. */
|
|
281
|
+
network?:
|
|
282
|
+
| string
|
|
283
|
+
| undefined;
|
|
284
|
+
/**
|
|
285
|
+
* Фильтр по «типу» операции для UI: "withdrawal" | "deposit" | "internal_transfer".
|
|
286
|
+
* deposit включает записи reference_type deposit и deposit_hold.
|
|
287
|
+
*/
|
|
288
|
+
referenceKind?: string | undefined;
|
|
274
289
|
}
|
|
275
290
|
|
|
276
291
|
export interface GetTransactionFeedResponse {
|
|
@@ -282,6 +297,28 @@ export interface GetTransactionFeedResponse {
|
|
|
282
297
|
totalReturned: number;
|
|
283
298
|
}
|
|
284
299
|
|
|
300
|
+
export interface InternalTransferRequest {
|
|
301
|
+
fromUserId: string;
|
|
302
|
+
toUserId: string;
|
|
303
|
+
asset: string;
|
|
304
|
+
network: string;
|
|
305
|
+
/** Десятичная строка; списание с available отправителя. */
|
|
306
|
+
amount: string;
|
|
307
|
+
idempotencyKey: string;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export interface InternalTransferResponse {
|
|
311
|
+
transferId: string;
|
|
312
|
+
senderLedgerOperationId: string;
|
|
313
|
+
receiverLedgerOperationId: string;
|
|
314
|
+
senderAvailable: string;
|
|
315
|
+
senderReserved: string;
|
|
316
|
+
senderTotal: string;
|
|
317
|
+
receiverAvailable: string;
|
|
318
|
+
receiverReserved: string;
|
|
319
|
+
receiverTotal: string;
|
|
320
|
+
}
|
|
321
|
+
|
|
285
322
|
export const LEDGER_V1_PACKAGE_NAME = "ledger.v1";
|
|
286
323
|
|
|
287
324
|
export interface LedgerServiceClient {
|
|
@@ -336,6 +373,10 @@ export interface LedgerServiceClient {
|
|
|
336
373
|
/** Постраничная лента операций пользователя (история для UI); курсор и offset — на усмотрение сервера. */
|
|
337
374
|
|
|
338
375
|
getTransactionFeed(request: GetTransactionFeedRequest): Observable<GetTransactionFeedResponse>;
|
|
376
|
+
|
|
377
|
+
/** Внутренний перевод между пользователями приложения (только ledger, без сетевой комиссии). */
|
|
378
|
+
|
|
379
|
+
internalTransfer(request: InternalTransferRequest): Observable<InternalTransferResponse>;
|
|
339
380
|
}
|
|
340
381
|
|
|
341
382
|
export interface LedgerServiceController {
|
|
@@ -422,6 +463,12 @@ export interface LedgerServiceController {
|
|
|
422
463
|
getTransactionFeed(
|
|
423
464
|
request: GetTransactionFeedRequest,
|
|
424
465
|
): Promise<GetTransactionFeedResponse> | Observable<GetTransactionFeedResponse> | GetTransactionFeedResponse;
|
|
466
|
+
|
|
467
|
+
/** Внутренний перевод между пользователями приложения (только ledger, без сетевой комиссии). */
|
|
468
|
+
|
|
469
|
+
internalTransfer(
|
|
470
|
+
request: InternalTransferRequest,
|
|
471
|
+
): Promise<InternalTransferResponse> | Observable<InternalTransferResponse> | InternalTransferResponse;
|
|
425
472
|
}
|
|
426
473
|
|
|
427
474
|
export function LedgerServiceControllerMethods() {
|
|
@@ -440,6 +487,7 @@ export function LedgerServiceControllerMethods() {
|
|
|
440
487
|
"getBalance",
|
|
441
488
|
"getBalances",
|
|
442
489
|
"getTransactionFeed",
|
|
490
|
+
"internalTransfer",
|
|
443
491
|
];
|
|
444
492
|
for (const method of grpcMethods) {
|
|
445
493
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
package/gen/user.ts
CHANGED
|
@@ -36,23 +36,48 @@ export interface UpdateUserRequest {
|
|
|
36
36
|
avatar?: string | undefined;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export interface ResolveUserForTransferRequest {
|
|
40
|
+
userId?: number | undefined;
|
|
41
|
+
email?: string | undefined;
|
|
42
|
+
phone?: string | undefined;
|
|
43
|
+
telegramUsername?: string | undefined;
|
|
44
|
+
uid?: string | undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface ResolveUserForTransferResponse {
|
|
48
|
+
id: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
39
51
|
export const USER_PACKAGE_NAME = "user";
|
|
40
52
|
|
|
41
53
|
export interface UserServiceClient {
|
|
42
54
|
getUser(request: GetUserRequest): Observable<UserResponse>;
|
|
43
55
|
|
|
44
56
|
updateUser(request: UpdateUserRequest): Observable<UserResponse>;
|
|
57
|
+
|
|
58
|
+
/** Ровно одно из полей: user_id, email, phone, telegram_username → id получателя для внутреннего перевода. */
|
|
59
|
+
|
|
60
|
+
resolveUserForTransfer(request: ResolveUserForTransferRequest): Observable<ResolveUserForTransferResponse>;
|
|
45
61
|
}
|
|
46
62
|
|
|
47
63
|
export interface UserServiceController {
|
|
48
64
|
getUser(request: GetUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
|
|
49
65
|
|
|
50
66
|
updateUser(request: UpdateUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
|
|
67
|
+
|
|
68
|
+
/** Ровно одно из полей: user_id, email, phone, telegram_username → id получателя для внутреннего перевода. */
|
|
69
|
+
|
|
70
|
+
resolveUserForTransfer(
|
|
71
|
+
request: ResolveUserForTransferRequest,
|
|
72
|
+
):
|
|
73
|
+
| Promise<ResolveUserForTransferResponse>
|
|
74
|
+
| Observable<ResolveUserForTransferResponse>
|
|
75
|
+
| ResolveUserForTransferResponse;
|
|
51
76
|
}
|
|
52
77
|
|
|
53
78
|
export function UserServiceControllerMethods() {
|
|
54
79
|
return function (constructor: Function) {
|
|
55
|
-
const grpcMethods: string[] = ["getUser", "updateUser"];
|
|
80
|
+
const grpcMethods: string[] = ["getUser", "updateUser", "resolveUserForTransfer"];
|
|
56
81
|
for (const method of grpcMethods) {
|
|
57
82
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
58
83
|
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.26",
|
|
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
|
@@ -35,6 +35,8 @@ service LedgerService {
|
|
|
35
35
|
rpc GetBalances(GetBalancesRequest) returns (GetBalancesResponse);
|
|
36
36
|
// Постраничная лента операций пользователя (история для UI); курсор и offset — на усмотрение сервера.
|
|
37
37
|
rpc GetTransactionFeed(GetTransactionFeedRequest) returns (GetTransactionFeedResponse);
|
|
38
|
+
// Внутренний перевод между пользователями приложения (только ledger, без сетевой комиссии).
|
|
39
|
+
rpc InternalTransfer(InternalTransferRequest) returns (InternalTransferResponse);
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
message RegisterDepositAddressRequest {
|
|
@@ -252,6 +254,11 @@ message GetTransactionFeedRequest {
|
|
|
252
254
|
int32 limit = 2;
|
|
253
255
|
optional string cursor_id = 3; // Курсор для следующей страницы.
|
|
254
256
|
optional int32 offset = 4;
|
|
257
|
+
optional string asset = 5; // Фильтр по активу, напр. USDT.
|
|
258
|
+
optional string network = 6; // Фильтр по сети, напр. TRON, BSC.
|
|
259
|
+
// Фильтр по «типу» операции для UI: "withdrawal" | "deposit" | "internal_transfer".
|
|
260
|
+
// deposit включает записи reference_type deposit и deposit_hold.
|
|
261
|
+
optional string reference_kind = 7;
|
|
255
262
|
}
|
|
256
263
|
|
|
257
264
|
message GetTransactionFeedResponse {
|
|
@@ -259,3 +266,24 @@ message GetTransactionFeedResponse {
|
|
|
259
266
|
optional string next_cursor_id = 2;
|
|
260
267
|
int32 total_returned = 3; // Число элементов в этом ответе.
|
|
261
268
|
}
|
|
269
|
+
|
|
270
|
+
message InternalTransferRequest {
|
|
271
|
+
string from_user_id = 1;
|
|
272
|
+
string to_user_id = 2;
|
|
273
|
+
string asset = 3;
|
|
274
|
+
string network = 4;
|
|
275
|
+
string amount = 5; // Десятичная строка; списание с available отправителя.
|
|
276
|
+
string idempotency_key = 6;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
message InternalTransferResponse {
|
|
280
|
+
string transfer_id = 1;
|
|
281
|
+
string sender_ledger_operation_id = 2;
|
|
282
|
+
string receiver_ledger_operation_id = 3;
|
|
283
|
+
string sender_available = 4;
|
|
284
|
+
string sender_reserved = 5;
|
|
285
|
+
string sender_total = 6;
|
|
286
|
+
string receiver_available = 7;
|
|
287
|
+
string receiver_reserved = 8;
|
|
288
|
+
string receiver_total = 9;
|
|
289
|
+
}
|
package/proto/user.proto
CHANGED
|
@@ -4,6 +4,8 @@ package user;
|
|
|
4
4
|
service UserService {
|
|
5
5
|
rpc GetUser (GetUserRequest) returns (UserResponse);
|
|
6
6
|
rpc UpdateUser (UpdateUserRequest) returns (UserResponse);
|
|
7
|
+
// Ровно одно из полей: user_id, email, phone, telegram_username → id получателя для внутреннего перевода.
|
|
8
|
+
rpc ResolveUserForTransfer (ResolveUserForTransferRequest) returns (ResolveUserForTransferResponse);
|
|
7
9
|
}
|
|
8
10
|
|
|
9
11
|
message GetUserRequest {
|
|
@@ -31,3 +33,15 @@ message UpdateUserRequest {
|
|
|
31
33
|
optional string last_name = 3;
|
|
32
34
|
optional string avatar = 4;
|
|
33
35
|
}
|
|
36
|
+
|
|
37
|
+
message ResolveUserForTransferRequest {
|
|
38
|
+
optional int32 user_id = 1;
|
|
39
|
+
optional string email = 2;
|
|
40
|
+
optional string phone = 3;
|
|
41
|
+
optional string telegram_username = 4;
|
|
42
|
+
optional string uid = 5;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
message ResolveUserForTransferResponse {
|
|
46
|
+
int32 id = 1;
|
|
47
|
+
}
|