@arbiwallet/contracts 1.0.25 → 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 +34 -1
- package/gen/user.ts +26 -1
- package/package.json +1 -1
- package/proto/ledger.proto +24 -1
- package/proto/user.proto +14 -0
package/gen/ledger.ts
CHANGED
|
@@ -282,7 +282,7 @@ export interface GetTransactionFeedRequest {
|
|
|
282
282
|
| string
|
|
283
283
|
| undefined;
|
|
284
284
|
/**
|
|
285
|
-
* Фильтр по «типу» операции для UI: "withdrawal" | "deposit".
|
|
285
|
+
* Фильтр по «типу» операции для UI: "withdrawal" | "deposit" | "internal_transfer".
|
|
286
286
|
* deposit включает записи reference_type deposit и deposit_hold.
|
|
287
287
|
*/
|
|
288
288
|
referenceKind?: string | undefined;
|
|
@@ -297,6 +297,28 @@ export interface GetTransactionFeedResponse {
|
|
|
297
297
|
totalReturned: number;
|
|
298
298
|
}
|
|
299
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
|
+
|
|
300
322
|
export const LEDGER_V1_PACKAGE_NAME = "ledger.v1";
|
|
301
323
|
|
|
302
324
|
export interface LedgerServiceClient {
|
|
@@ -351,6 +373,10 @@ export interface LedgerServiceClient {
|
|
|
351
373
|
/** Постраничная лента операций пользователя (история для UI); курсор и offset — на усмотрение сервера. */
|
|
352
374
|
|
|
353
375
|
getTransactionFeed(request: GetTransactionFeedRequest): Observable<GetTransactionFeedResponse>;
|
|
376
|
+
|
|
377
|
+
/** Внутренний перевод между пользователями приложения (только ledger, без сетевой комиссии). */
|
|
378
|
+
|
|
379
|
+
internalTransfer(request: InternalTransferRequest): Observable<InternalTransferResponse>;
|
|
354
380
|
}
|
|
355
381
|
|
|
356
382
|
export interface LedgerServiceController {
|
|
@@ -437,6 +463,12 @@ export interface LedgerServiceController {
|
|
|
437
463
|
getTransactionFeed(
|
|
438
464
|
request: GetTransactionFeedRequest,
|
|
439
465
|
): Promise<GetTransactionFeedResponse> | Observable<GetTransactionFeedResponse> | GetTransactionFeedResponse;
|
|
466
|
+
|
|
467
|
+
/** Внутренний перевод между пользователями приложения (только ledger, без сетевой комиссии). */
|
|
468
|
+
|
|
469
|
+
internalTransfer(
|
|
470
|
+
request: InternalTransferRequest,
|
|
471
|
+
): Promise<InternalTransferResponse> | Observable<InternalTransferResponse> | InternalTransferResponse;
|
|
440
472
|
}
|
|
441
473
|
|
|
442
474
|
export function LedgerServiceControllerMethods() {
|
|
@@ -455,6 +487,7 @@ export function LedgerServiceControllerMethods() {
|
|
|
455
487
|
"getBalance",
|
|
456
488
|
"getBalances",
|
|
457
489
|
"getTransactionFeed",
|
|
490
|
+
"internalTransfer",
|
|
458
491
|
];
|
|
459
492
|
for (const method of grpcMethods) {
|
|
460
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 {
|
|
@@ -254,7 +256,7 @@ message GetTransactionFeedRequest {
|
|
|
254
256
|
optional int32 offset = 4;
|
|
255
257
|
optional string asset = 5; // Фильтр по активу, напр. USDT.
|
|
256
258
|
optional string network = 6; // Фильтр по сети, напр. TRON, BSC.
|
|
257
|
-
// Фильтр по «типу» операции для UI: "withdrawal" | "deposit".
|
|
259
|
+
// Фильтр по «типу» операции для UI: "withdrawal" | "deposit" | "internal_transfer".
|
|
258
260
|
// deposit включает записи reference_type deposit и deposit_hold.
|
|
259
261
|
optional string reference_kind = 7;
|
|
260
262
|
}
|
|
@@ -264,3 +266,24 @@ message GetTransactionFeedResponse {
|
|
|
264
266
|
optional string next_cursor_id = 2;
|
|
265
267
|
int32 total_returned = 3; // Число элементов в этом ответе.
|
|
266
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
|
+
}
|