@arbiwallet/contracts 1.0.287 → 1.0.290

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.
@@ -655,6 +655,83 @@ export interface GetWalletsMonikaResponse {
655
655
  wallets: WalletMonikaItem[];
656
656
  }
657
657
 
658
+ export interface ListExchangePayoutsRequest {
659
+ authManagerContext: AuthManagerContext | undefined;
660
+ page?: number | undefined;
661
+ pageSize?: number | undefined;
662
+ managerId?: string | undefined;
663
+ }
664
+
665
+ export interface ExchangePayoutManager {
666
+ id: string;
667
+ email?: string | undefined;
668
+ username?: string | undefined;
669
+ }
670
+
671
+ export interface ExchangePayoutItem {
672
+ id: string;
673
+ payoutAgentId?: string | undefined;
674
+ uuid?: string | undefined;
675
+ paymentAgent: number;
676
+ amount: number;
677
+ status: number;
678
+ paymentAgentStatus?: string | undefined;
679
+ pan?: string | undefined;
680
+ cardholder?: string | undefined;
681
+ managerId?: string | undefined;
682
+ manager?: ExchangePayoutManager | undefined;
683
+ createdAt: string;
684
+ updatedAt: string;
685
+ }
686
+
687
+ export interface ListExchangePayoutsResponse {
688
+ count: number;
689
+ next?: string | undefined;
690
+ previous?: string | undefined;
691
+ results: ExchangePayoutItem[];
692
+ }
693
+
694
+ export interface GetExchangePayoutRequest {
695
+ authManagerContext: AuthManagerContext | undefined;
696
+ id: string;
697
+ }
698
+
699
+ export interface GetExchangePayoutResponse {
700
+ ok: boolean;
701
+ result?: ExchangePayoutItem | undefined;
702
+ error?: string | undefined;
703
+ validationErrors?: { [key: string]: any } | undefined;
704
+ }
705
+
706
+ export interface CreateExchangePayoutRequest {
707
+ authManagerContext: AuthManagerContext | undefined;
708
+ amount: number;
709
+ pan: string;
710
+ holder: string;
711
+ cvv: string;
712
+ month: number;
713
+ year: number;
714
+ uuid: string;
715
+ paymentAgent?: number | undefined;
716
+ managerId?: string | undefined;
717
+ }
718
+
719
+ export interface CreateExchangePayoutResponse {
720
+ ok: boolean;
721
+ result?: ExchangePayoutItem | undefined;
722
+ error?: string | undefined;
723
+ validationErrors?: { [key: string]: any } | undefined;
724
+ }
725
+
726
+ export interface HandleExchangePayoutWebhookRequest {
727
+ jsonPayload: string;
728
+ }
729
+
730
+ export interface HandleExchangePayoutWebhookResponse {
731
+ ok: boolean;
732
+ status: string;
733
+ }
734
+
658
735
  export const EXCHANGE_CORE_PACKAGE_NAME = "exchange_core";
659
736
 
660
737
  wrappers[".google.protobuf.Struct"] = { fromObject: Struct.wrap, toObject: Struct.unwrap } as any;
@@ -694,6 +771,16 @@ export interface ExchangeCoreServiceClient {
694
771
 
695
772
  getExchangePayments(request: GetExchangePaymentsRequest): Observable<GetExchangePaymentsResponse>;
696
773
 
774
+ listExchangePayouts(request: ListExchangePayoutsRequest): Observable<ListExchangePayoutsResponse>;
775
+
776
+ getExchangePayout(request: GetExchangePayoutRequest): Observable<GetExchangePayoutResponse>;
777
+
778
+ createExchangePayout(request: CreateExchangePayoutRequest): Observable<CreateExchangePayoutResponse>;
779
+
780
+ handleExchangePayoutWebhook(
781
+ request: HandleExchangePayoutWebhookRequest,
782
+ ): Observable<HandleExchangePayoutWebhookResponse>;
783
+
697
784
  getExchangePayment(request: GetExchangePaymentRequest): Observable<GetExchangePaymentResponse>;
698
785
 
699
786
  getPaymentsSummary(request: ExchangeCalculationsFiltersRequest): Observable<GetPaymentsSummaryResponse>;
@@ -787,6 +874,25 @@ export interface ExchangeCoreServiceController {
787
874
  request: GetExchangePaymentsRequest,
788
875
  ): Promise<GetExchangePaymentsResponse> | Observable<GetExchangePaymentsResponse> | GetExchangePaymentsResponse;
789
876
 
877
+ listExchangePayouts(
878
+ request: ListExchangePayoutsRequest,
879
+ ): Promise<ListExchangePayoutsResponse> | Observable<ListExchangePayoutsResponse> | ListExchangePayoutsResponse;
880
+
881
+ getExchangePayout(
882
+ request: GetExchangePayoutRequest,
883
+ ): Promise<GetExchangePayoutResponse> | Observable<GetExchangePayoutResponse> | GetExchangePayoutResponse;
884
+
885
+ createExchangePayout(
886
+ request: CreateExchangePayoutRequest,
887
+ ): Promise<CreateExchangePayoutResponse> | Observable<CreateExchangePayoutResponse> | CreateExchangePayoutResponse;
888
+
889
+ handleExchangePayoutWebhook(
890
+ request: HandleExchangePayoutWebhookRequest,
891
+ ):
892
+ | Promise<HandleExchangePayoutWebhookResponse>
893
+ | Observable<HandleExchangePayoutWebhookResponse>
894
+ | HandleExchangePayoutWebhookResponse;
895
+
790
896
  getExchangePayment(
791
897
  request: GetExchangePaymentRequest,
792
898
  ): Promise<GetExchangePaymentResponse> | Observable<GetExchangePaymentResponse> | GetExchangePaymentResponse;
@@ -842,6 +948,10 @@ export function ExchangeCoreServiceControllerMethods() {
842
948
  "createExchangePayment",
843
949
  "handlePaymentWebhook",
844
950
  "getExchangePayments",
951
+ "listExchangePayouts",
952
+ "getExchangePayout",
953
+ "createExchangePayout",
954
+ "handleExchangePayoutWebhook",
845
955
  "getExchangePayment",
846
956
  "getPaymentsSummary",
847
957
  "searchExchangePayment",
package/gen/user.ts CHANGED
@@ -225,6 +225,19 @@ export interface ListUsersResponse {
225
225
  limit: number;
226
226
  }
227
227
 
228
+ export interface ListUserSourcesRequest {
229
+ }
230
+
231
+ export interface UserSourceItem {
232
+ id: number;
233
+ name: string;
234
+ code?: string | undefined;
235
+ }
236
+
237
+ export interface ListUserSourcesResponse {
238
+ sources: UserSourceItem[];
239
+ }
240
+
228
241
  export interface UserSearchExchangeStats {
229
242
  exchangesCount: number;
230
243
  exchangeCountLastYear: number;
@@ -598,6 +611,19 @@ export interface BatchGetUserIdsBySearchResponse {
598
611
  totalMatches: number;
599
612
  }
600
613
 
614
+ export interface BatchGetUserIdsByAdvChannelRequest {
615
+ advChannel: string;
616
+ /** Максимум возвращаемых id; сервис может дополнительно ограничить. */
617
+ limit: number;
618
+ }
619
+
620
+ export interface BatchGetUserIdsByAdvChannelResponse {
621
+ userIds: number[];
622
+ /** true, если совпадений больше, чем limit (результат был обрезан). */
623
+ tooManyMatches: boolean;
624
+ totalMatches: number;
625
+ }
626
+
601
627
  export interface SearchUserRequest {
602
628
  /** Строка поиска по полям: telegram_username, email, phone, whatsapp. */
603
629
  search: string;
@@ -685,6 +711,8 @@ export interface UserServiceClient {
685
711
 
686
712
  listUsers(request: ListUsersRequest): Observable<ListUsersResponse>;
687
713
 
714
+ listUserSources(request: ListUserSourcesRequest): Observable<ListUserSourcesResponse>;
715
+
688
716
  updateUserSearchStats(request: UpdateUserSearchStatsRequest): Observable<UpdateUserSearchStatsResponse>;
689
717
 
690
718
  /** Батч-резолв полных имен пользователей по их id (для enrichment в других сервисах). */
@@ -799,6 +827,12 @@ export interface UserServiceClient {
799
827
 
800
828
  batchGetUserIdsBySearch(request: BatchGetUserIdsBySearchRequest): Observable<BatchGetUserIdsBySearchResponse>;
801
829
 
830
+ /** Батч-поиск пользователей по adv channel (name/code/legacy string): возвращает только id. */
831
+
832
+ batchGetUserIdsByAdvChannel(
833
+ request: BatchGetUserIdsByAdvChannelRequest,
834
+ ): Observable<BatchGetUserIdsByAdvChannelResponse>;
835
+
802
836
  /** Поиск пользователей по строке (telegram_username, email, phone, whatsapp): возвращает до 50 совпадений. */
803
837
 
804
838
  searchUser(request: SearchUserRequest): Observable<SearchUserResponse>;
@@ -833,6 +867,10 @@ export interface UserServiceController {
833
867
 
834
868
  listUsers(request: ListUsersRequest): Promise<ListUsersResponse> | Observable<ListUsersResponse> | ListUsersResponse;
835
869
 
870
+ listUserSources(
871
+ request: ListUserSourcesRequest,
872
+ ): Promise<ListUserSourcesResponse> | Observable<ListUserSourcesResponse> | ListUserSourcesResponse;
873
+
836
874
  updateUserSearchStats(
837
875
  request: UpdateUserSearchStatsRequest,
838
876
  ): Promise<UpdateUserSearchStatsResponse> | Observable<UpdateUserSearchStatsResponse> | UpdateUserSearchStatsResponse;
@@ -1045,6 +1083,15 @@ export interface UserServiceController {
1045
1083
  | Observable<BatchGetUserIdsBySearchResponse>
1046
1084
  | BatchGetUserIdsBySearchResponse;
1047
1085
 
1086
+ /** Батч-поиск пользователей по adv channel (name/code/legacy string): возвращает только id. */
1087
+
1088
+ batchGetUserIdsByAdvChannel(
1089
+ request: BatchGetUserIdsByAdvChannelRequest,
1090
+ ):
1091
+ | Promise<BatchGetUserIdsByAdvChannelResponse>
1092
+ | Observable<BatchGetUserIdsByAdvChannelResponse>
1093
+ | BatchGetUserIdsByAdvChannelResponse;
1094
+
1048
1095
  /** Поиск пользователей по строке (telegram_username, email, phone, whatsapp): возвращает до 50 совпадений. */
1049
1096
 
1050
1097
  searchUser(
@@ -1073,6 +1120,7 @@ export function UserServiceControllerMethods() {
1073
1120
  "adminUpdateUserProfile",
1074
1121
  "updateUserStatus",
1075
1122
  "listUsers",
1123
+ "listUserSources",
1076
1124
  "updateUserSearchStats",
1077
1125
  "getUserFullNamesByIds",
1078
1126
  "resolveUserForTransfer",
@@ -1103,6 +1151,7 @@ export function UserServiceControllerMethods() {
1103
1151
  "requestChangePhoneCode",
1104
1152
  "verifyChangePhoneCode",
1105
1153
  "batchGetUserIdsBySearch",
1154
+ "batchGetUserIdsByAdvChannel",
1106
1155
  "searchUser",
1107
1156
  "prealoadUserForSearch",
1108
1157
  "batchGetUsersByIds",
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.287",
4
+ "version": "1.0.290",
5
5
  "scripts": {
6
6
  "generate": "protoc -I ./proto ./proto/*.proto --ts_proto_out=./gen --ts_proto_opt=nestJs=true,package=omit"
7
7
  },
@@ -27,6 +27,11 @@ service ExchangeCoreService {
27
27
  rpc CreateExchangePayment(CreateExchangePaymentRequest) returns (CreateExchangePaymentResponse);
28
28
  rpc HandlePaymentWebhook(HandlePaymentWebhookRequest) returns (HandlePaymentWebhookResponse);
29
29
  rpc GetExchangePayments(GetExchangePaymentsRequest) returns (GetExchangePaymentsResponse);
30
+
31
+ rpc ListExchangePayouts(ListExchangePayoutsRequest) returns (ListExchangePayoutsResponse);
32
+ rpc GetExchangePayout(GetExchangePayoutRequest) returns (GetExchangePayoutResponse);
33
+ rpc CreateExchangePayout(CreateExchangePayoutRequest) returns (CreateExchangePayoutResponse);
34
+ rpc HandleExchangePayoutWebhook(HandleExchangePayoutWebhookRequest) returns (HandleExchangePayoutWebhookResponse);
30
35
  rpc GetExchangePayment(GetExchangePaymentRequest) returns (GetExchangePaymentResponse);
31
36
  rpc GetPaymentsSummary(ExchangeCalculationsFiltersRequest) returns (GetPaymentsSummaryResponse);
32
37
  rpc SearchExchangePayment(SearchExchangePaymentRequest) returns (SearchExchangePaymentResponse);
@@ -688,3 +693,82 @@ message WalletMonikaItem {
688
693
  message GetWalletsMonikaResponse {
689
694
  repeated WalletMonikaItem wallets = 2;
690
695
  }
696
+
697
+ // --- Exchange Overpay payouts (CRM «Выплаты по обменам») ---
698
+
699
+ message ListExchangePayoutsRequest {
700
+ AuthManagerContext auth_manager_context = 1;
701
+ optional int32 page = 2;
702
+ optional int32 page_size = 3;
703
+ optional string manager_id = 4;
704
+ }
705
+
706
+ message ExchangePayoutManager {
707
+ string id = 1;
708
+ optional string email = 2;
709
+ optional string username = 3;
710
+ }
711
+
712
+ message ExchangePayoutItem {
713
+ string id = 1;
714
+ optional string payout_agent_id = 2;
715
+ optional string uuid = 3;
716
+ int32 payment_agent = 4;
717
+ double amount = 5;
718
+ int32 status = 6;
719
+ optional string payment_agent_status = 7;
720
+ optional string pan = 8;
721
+ optional string cardholder = 9;
722
+ optional string manager_id = 10;
723
+ optional ExchangePayoutManager manager = 11;
724
+ string created_at = 12;
725
+ string updated_at = 13;
726
+ }
727
+
728
+ message ListExchangePayoutsResponse {
729
+ int32 count = 1;
730
+ optional string next = 2;
731
+ optional string previous = 3;
732
+ repeated ExchangePayoutItem results = 4;
733
+ }
734
+
735
+ message GetExchangePayoutRequest {
736
+ AuthManagerContext auth_manager_context = 1;
737
+ string id = 2;
738
+ }
739
+
740
+ message GetExchangePayoutResponse {
741
+ bool ok = 1;
742
+ optional ExchangePayoutItem result = 2;
743
+ optional string error = 3;
744
+ optional google.protobuf.Struct validationErrors = 4;
745
+ }
746
+
747
+ message CreateExchangePayoutRequest {
748
+ AuthManagerContext auth_manager_context = 1;
749
+ double amount = 2;
750
+ string pan = 3;
751
+ string holder = 4;
752
+ string cvv = 5;
753
+ int32 month = 6;
754
+ int32 year = 7;
755
+ string uuid = 8;
756
+ optional int32 payment_agent = 9;
757
+ optional string manager_id = 10;
758
+ }
759
+
760
+ message CreateExchangePayoutResponse {
761
+ bool ok = 1;
762
+ optional ExchangePayoutItem result = 2;
763
+ optional string error = 3;
764
+ optional google.protobuf.Struct validationErrors = 4;
765
+ }
766
+
767
+ message HandleExchangePayoutWebhookRequest {
768
+ string json_payload = 1;
769
+ }
770
+
771
+ message HandleExchangePayoutWebhookResponse {
772
+ bool ok = 1;
773
+ string status = 2;
774
+ }
package/proto/user.proto CHANGED
@@ -10,6 +10,7 @@ service UserService {
10
10
  rpc AdminUpdateUserProfile (AdminUpdateUserProfileRequest) returns (AdminUserForUpdateResponse);
11
11
  rpc UpdateUserStatus (UpdateUserStatusRequest) returns (UserResponse);
12
12
  rpc ListUsers (ListUsersRequest) returns (ListUsersResponse);
13
+ rpc ListUserSources (ListUserSourcesRequest) returns (ListUserSourcesResponse);
13
14
  rpc UpdateUserSearchStats (UpdateUserSearchStatsRequest) returns (UpdateUserSearchStatsResponse);
14
15
  // Батч-резолв полных имен пользователей по их id (для enrichment в других сервисах).
15
16
  rpc GetUserFullNamesByIds (GetUserFullNamesByIdsRequest) returns (GetUserFullNamesByIdsResponse);
@@ -62,6 +63,8 @@ service UserService {
62
63
  rpc VerifyChangePhoneCode (VerifyChangePhoneCodeRequest) returns (UserResponse);
63
64
  // Батч-поиск пользователей по строке (telegram_username, email, phone, whatsapp): возвращает только id.
64
65
  rpc BatchGetUserIdsBySearch (BatchGetUserIdsBySearchRequest) returns (BatchGetUserIdsBySearchResponse);
66
+ // Батч-поиск пользователей по adv channel (name/code/legacy string): возвращает только id.
67
+ rpc BatchGetUserIdsByAdvChannel (BatchGetUserIdsByAdvChannelRequest) returns (BatchGetUserIdsByAdvChannelResponse);
65
68
  // Поиск пользователей по строке (telegram_username, email, phone, whatsapp): возвращает до 50 совпадений.
66
69
  rpc SearchUser (SearchUserRequest) returns (SearchUserResponse);
67
70
  // Прелоад выбранного пользователя по id для поиска пользователей: возвращает один элемент.
@@ -262,6 +265,18 @@ message ListUsersResponse {
262
265
  int32 limit = 4;
263
266
  }
264
267
 
268
+ message ListUserSourcesRequest {}
269
+
270
+ message UserSourceItem {
271
+ int32 id = 1;
272
+ string name = 2;
273
+ optional string code = 3;
274
+ }
275
+
276
+ message ListUserSourcesResponse {
277
+ repeated UserSourceItem sources = 1;
278
+ }
279
+
265
280
  message UserSearchExchangeStats {
266
281
  int32 exchanges_count = 1;
267
282
  int32 exchange_count_last_year = 2;
@@ -632,6 +647,19 @@ message BatchGetUserIdsBySearchResponse {
632
647
  int32 total_matches = 3;
633
648
  }
634
649
 
650
+ message BatchGetUserIdsByAdvChannelRequest {
651
+ string adv_channel = 1;
652
+ // Максимум возвращаемых id; сервис может дополнительно ограничить.
653
+ int32 limit = 2;
654
+ }
655
+
656
+ message BatchGetUserIdsByAdvChannelResponse {
657
+ repeated int32 user_ids = 1;
658
+ // true, если совпадений больше, чем limit (результат был обрезан).
659
+ bool too_many_matches = 2;
660
+ int32 total_matches = 3;
661
+ }
662
+
635
663
  message SearchUserRequest {
636
664
  // Строка поиска по полям: telegram_username, email, phone, whatsapp.
637
665
  string search = 1;