// Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.11.4 // protoc v7.34.0 // source: exchange_core.proto /* eslint-disable */ import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices"; import { wrappers } from "protobufjs"; import { Observable } from "rxjs"; import { Struct } from "./google/protobuf/struct"; export const protobufPackage = "exchange_core"; export enum FinModelDealBucket { FIN_MODEL_DEAL_BUCKET_UNSPECIFIED = 0, FIN_MODEL_DEAL_BUCKET_ONE_CURRENCY = 1, FIN_MODEL_DEAL_BUCKET_BIG = 2, FIN_MODEL_DEAL_BUCKET_MEDIUM = 3, FIN_MODEL_DEAL_BUCKET_SMALL = 4, UNRECOGNIZED = -1, } export interface AuthManagerContext { managerId: string; officeIds: string[]; canCrossOffice: boolean; requestId?: string | undefined; clientType?: string | undefined; permissions: string[]; isSuperAdmin: boolean; } export interface CreateExchangeOrderRequest { authManagerContext: AuthManagerContext | undefined; inputAmount: number; outputAmount: number; inputCurrencyId: string; outputCurrencyId: string; withdrawTypeId: string; customerId: string; receiveBankId?: string | undefined; } export interface CreateExchangeOrderResponse { success: boolean; orderId?: string | undefined; message?: string | undefined; warning?: string | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface WithdrawTypeItem { id: number; name: string; sort: number; isActive: boolean; } export interface GetWithdrawTypesRequest { authManagerContext: AuthManagerContext | undefined; isActive?: boolean | undefined; } export interface GetWithdrawTypesResponse { withdrawTypes: WithdrawTypeItem[]; } export interface ReceiveBankItem { id: number; name: string; code?: string | undefined; isActive: boolean; } export interface GetReceiveBanksRequest { authManagerContext: AuthManagerContext | undefined; isActive?: boolean | undefined; search?: string | undefined; } export interface GetReceiveBanksResponse { receiveBanks: ReceiveBankItem[]; } export interface CreateExchangeDealRequest { authManagerContext: AuthManagerContext | undefined; calculationId?: string | undefined; paymentId?: string | undefined; methodId: string; inputWalletId: string; outputWalletId: string; inputAmount?: number | undefined; outputAmount?: number | undefined; factOutputAmount?: number | undefined; inputCurrencyId?: string | undefined; outputCurrencyId?: string | undefined; userId?: string | undefined; managerPersonId?: string | undefined; expensesForCourier?: number | undefined; includeInTotalCalculation?: boolean | undefined; oneCurrencyExchange?: boolean | undefined; receivedFromDealer?: number | undefined; receivedFromDealerWalletId?: string | undefined; customerDocName?: string | undefined; customerDocNationality?: string | undefined; customerDocNumber?: string | undefined; customerSource?: string | undefined; customerReferrer?: string | undefined; receipts: number[]; officeId?: string | undefined; } export interface CreateExchangeDealResult { exchangeId: string; userId: string; inputAmount: number; inputCurrencyId: string; outputAmount: number; outputCurrencyId: string; status: string; } export interface CreateExchangeDealResponse { ok: boolean; result?: CreateExchangeDealResult | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface GetExchangeDealsRequest { authManagerContext: AuthManagerContext | undefined; filter: ExchangeDealsFiltersRequest | undefined; page?: number | undefined; pageSize?: number | undefined; } export interface GetExchangeDealsManager { id: string; email: string; } export interface GetExchangeDealsReceipt { id: string; amount?: number | undefined; createdAt?: string | undefined; } export interface GetExchangeDealsItem { id: string; dailyId: string; userId: string; userText: string; createdAt: string; inputAmount: number; inputCurrencyId: string; inputWalletId: string; methodId: string; outputAmount: number; factOutputAmount: number; outputCurrencyId: string; outputWalletId: string; exchangeStatusId: string; exchangeStatusName: string; status: boolean; payed: boolean; referrerId?: string | undefined; referrerText?: string | undefined; officeId?: string | undefined; receipts: GetExchangeDealsReceipt[]; manager?: GetExchangeDealsManager | undefined; paymentId?: string | undefined; payerName: string; payerData: string; calculationSourceId?: string | undefined; exchangeRate1Iter?: number | undefined; exchangeRate2Iter?: number | undefined; usdtRate?: number | undefined; outputAmountInUsdt?: number | undefined; includeInTotalCalculation: boolean; oneCurrencyExchange: boolean; profitPercent?: number | undefined; profit?: number | undefined; profitCurrencyId?: string | undefined; usdtProfit?: number | undefined; expensesForCourier?: number | undefined; referrerBonusAmount?: number | undefined; referrerPercent?: number | undefined; managerPersonId?: string | undefined; managerPersonName?: string | undefined; receivedFromDealer?: number | undefined; receivedFromDealerWalletId?: string | undefined; paymentAgent?: number | undefined; } export interface GetExchangeDealsResponse { count: number; next?: string | undefined; previous?: string | undefined; results: GetExchangeDealsItem[]; } export interface GetExchangeDealDetailsRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface GetExchangeDealDetailsResult { id: string; userId: string; customerId: string; customerFullName: string; customerChatLink?: string | undefined; customerUrl?: string | undefined; referrerId?: string | undefined; referrerFullName?: string | undefined; referrerUrl?: string | undefined; referrerPercent?: number | undefined; createdAt: string; inputAmount: number; inputCurrencyId: string; inputCurrencyShortName?: string | undefined; inputWalletId: string; inputWalletName?: string | undefined; methodId: string; methodName?: string | undefined; outputAmount: number; outputCurrencyId: string; outputCurrencyShortName?: string | undefined; outputWalletId: string; outputWalletName?: string | undefined; oneCurrencyExchange: boolean; receivedFromDealer?: number | undefined; receivedFromDealerWalletId?: string | undefined; receivedFromDealerWalletName?: string | undefined; exchangeStatusId?: string | undefined; exchangeStatusName?: string | undefined; payed: boolean; buyPrice?: number | undefined; sellPrice?: number | undefined; profitPercent?: number | undefined; profit?: number | undefined; profitCurrencyId?: string | undefined; profitCurrencyShortName?: string | undefined; usdtRate?: number | undefined; usdtProfit?: number | undefined; profitAccounting: boolean; profitDate?: string | undefined; expensesCurrencyId?: string | undefined; expensesCurrencyShortName?: string | undefined; expensesForCourier?: number | undefined; expensesForReferrer?: number | undefined; } export interface GetExchangeDealDetailsResponse { ok: boolean; result?: GetExchangeDealDetailsResult | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface GetExchangeDealsDetailsRequest { authManagerContext: AuthManagerContext | undefined; ids: string[]; } export interface GetExchangeDealsDetailsItem { id: string; ok: boolean; result?: GetExchangeDealDetailsResult | undefined; error?: string | undefined; } export interface GetExchangeDealsDetailsResponse { ok: boolean; results: GetExchangeDealsDetailsItem[]; } export interface BatchGetReferralRecreateDealsRequest { userIds: number[]; exchangeIds: string[]; } export interface ReferralRecreateDealItem { exchangeId: string; userId: number; createdAt: string; inputCurrency: string; inputAmount: string; outputCurrency: string; outputAmount: string; factOutputAmount: string; profitAmount: string; profitCurrency: string; courierExpenses: string; usdtRate: string; status: boolean; } export interface BatchGetReferralRecreateDealsResponse { items: ReferralRecreateDealItem[]; } export interface UpdateExchangeDealRequest { authManagerContext: AuthManagerContext | undefined; id: string; userId?: string | undefined; inputAmount?: number | undefined; inputCurrencyId?: string | undefined; inputWalletId?: string | undefined; methodId?: string | undefined; outputCurrencyId?: string | undefined; outputAmount?: number | undefined; factOutputAmount?: number | undefined; outputWalletId?: string | undefined; exchangeStatusId?: string | undefined; payed?: boolean | undefined; managerPersonId?: string | undefined; exchangeRate1Iter?: number | undefined; exchangeRate2Iter?: number | undefined; usdtRate?: number | undefined; includeInTotalCalculation?: boolean | undefined; receipts: number[]; customerDocName?: string | undefined; customerDocNationality?: string | undefined; customerDocNumber?: string | undefined; priorityManagerId?: string | undefined; priorityOutcomeWalletId?: string | undefined; } export interface UpdateExchangeDealResult { id: string; userId: string; inputAmount: number; inputCurrencyId: string; outputAmount: number; outputCurrencyId: string; factOutputAmount: number; exchangeStatusId: string; payed: boolean; includeInTotalCalculation: boolean; } export interface UpdateExchangeDealResponse { ok: boolean; result?: UpdateExchangeDealResult | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface CompleteExchangeDealRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface CompleteExchangeDealResponse { success: boolean; message?: string | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface CancelExchangeDealRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface CancelExchangeDealResponse { success: boolean; message?: string | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface DeleteExchangeDealRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface DeleteExchangeDealResponse { success: boolean; message?: string | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface GetUserIdsWithDealsInPeriodRequest { dateFrom?: string | undefined; dateTo?: string | undefined; } export interface GetUserIdsWithDealsInPeriodResponse { userIds: number[]; } export interface BatchGetUserDealStatsRequest { userIds: number[]; } export interface UserDealStats { userId: number; exchangeCountLastMonth: number; totalProfit: number; } export interface BatchGetUserDealStatsResponse { items: UserDealStats[]; } export interface BatchGetManagerPersonDealStatsRequest { managerPersonIds: number[]; startDate?: string | undefined; endDate?: string | undefined; } export interface ManagerPersonDealStats { managerPersonId: number; allExchanges: number; completedExchanges: number; avgCheck: number; totalAmount: number; avgProfitPercent: number; profit: number; } export interface BatchGetManagerPersonDealStatsResponse { items: ManagerPersonDealStats[]; } export interface GetUserMetricsRequest { userId: number; dateFrom?: string | undefined; dateTo?: string | undefined; } export interface UserDebtByCurrency { currency: string; amount: number; } export interface UserMetricsSnapshot { totalProfit: number; dealsCount: number; clientDebt: UserDebtByCurrency[]; averageMarkup: number; averageCheck: number; } export interface GetUserMetricsResponse { period: UserMetricsSnapshot | undefined; today: UserMetricsSnapshot | undefined; } export interface ExchangeCalculationsFiltersRequest { dateFrom?: string | undefined; dateTo?: string | undefined; amountFrom?: number | undefined; amountTo?: number | undefined; inputCurrency?: string | undefined; outputCurrency?: | string | undefined; /** no_payment | with_payment | with_exchange | completed */ status?: string | undefined; search?: string | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface ExchangeDealsFiltersRequest { customers?: string | undefined; managers?: string | undefined; inputCurrency?: string | undefined; outputCurrency?: string | undefined; status?: string | undefined; startDate?: string | undefined; endDate?: string | undefined; source?: string | undefined; referrer?: string | undefined; isPartner?: boolean | undefined; oneCurrency?: boolean | undefined; includeInTotalCalculation?: boolean | undefined; amountMin?: number | undefined; amountMax?: number | undefined; search?: string | undefined; sort?: string | undefined; office?: string | undefined; paymentAgent?: number | undefined; } export interface CreateExchangePaymentRequest { authManagerContext: AuthManagerContext | undefined; calculationId?: string | undefined; agentId: number; amount?: number | undefined; customerId?: string | undefined; cryptoNetwork?: string | undefined; customerSource?: string | undefined; customerReferrer?: string | undefined; } export interface CreateExchangePaymentResult { paymentId: string; paymentUuid: string; amount: number; status: number; agent: string; walletId?: string | undefined; cryptoNetwork?: string | undefined; cryptoAddress?: string | undefined; arbiLink?: string | undefined; paymentLink?: string | undefined; } export interface CreateExchangePaymentResponse { ok: boolean; result?: CreateExchangePaymentResult | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface HandlePaymentWebhookRequest { jsonPayload: string; xApiKey: string; } export interface HandlePaymentWebhookResponse { ok: boolean; status: string; } export interface GetExchangePaymentsRequest { page?: number | undefined; limit?: number | undefined; authManagerContext?: AuthManagerContext | undefined; paymentNumber?: string | undefined; customerId?: string | undefined; startDate?: string | undefined; endDate?: | string | undefined; /** all | RUB | USDT */ currency?: string | undefined; amountFrom?: number | undefined; amountTo?: number | undefined; status?: string | undefined; paymentAgent?: | number | undefined; /** date_asc | date_desc | amount_asc | amount_desc */ sort?: string | undefined; } export interface GetExchangePaymentsItem { id: string; arbipayId: string; qrLink?: string | undefined; arbipayLink: string; paymentAgent: number; amount?: number | undefined; amountUsdt?: number | undefined; status: number; cryptoAddress?: string | undefined; createdAt: string; customerName?: string | undefined; managerName?: string | undefined; calculationId?: string | undefined; cryptoNetwork?: | string | undefined; /** Tx hash / provider track id for crypto payments. */ trackId?: | string | undefined; /** Network fee in USDT (crypto), when stored. */ networkFee?: | number | undefined; /** Base amount without network fee (crypto), when stored. */ amountBase?: number | undefined; uuid?: string | undefined; realPrimeRateIsFixed?: | boolean | undefined; /** Provider/agent raw status (UNDERPAID, MANUAL_REVIEW, ...). */ paymentAgentStatus?: | string | undefined; /** True when CRYPTO_GATEWAY + refund-eligible agent status. */ canRefund?: boolean | undefined; canConfirm?: boolean | undefined; trackUuid?: | string | undefined; /** Actual USDT amount received (underpayment). */ receivedAmount?: | number | undefined; /** Actual provider code from ARBIPAY (crypto / gatepay). */ providerCode?: | string | undefined; /** Gatepay refund intent status: PENDING | CREATED | PAID | FAILED. */ refundStatus?: string | undefined; } export interface GetExchangePaymentsResponse { payments: GetExchangePaymentsItem[]; page: number; limit: number; total: number; totalPages: number; } export interface GetExchangePaymentRequest { id: string; } export interface GetExchangePaymentResponse { payment?: GetExchangePaymentsItem | undefined; } export interface SetPaymentRealPrimeRateFixedRequest { authManagerContext?: AuthManagerContext | undefined; paymentId: string; isFixed: boolean; } export interface SetPaymentRealPrimeRateFixedResponse { ok: boolean; error?: string | undefined; paymentId?: string | undefined; realPrimeRateIsFixed?: boolean | undefined; } export interface RefundExchangePaymentRequest { paymentId: string; refundAddress: string; commission?: string | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface RefundExchangePaymentResponse { ok: boolean; error?: string | undefined; errorCode?: string | undefined; } export interface ConfirmExchangePaymentRequest { paymentId: string; authManagerContext?: AuthManagerContext | undefined; } export interface ConfirmExchangePaymentResponse { ok: boolean; error?: string | undefined; errorCode?: string | undefined; } export interface EstimateExchangePaymentRefundFeeRequest { paymentId: string; refundAddress?: string | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface EstimateExchangePaymentRefundFeeResponse { ok: boolean; error?: string | undefined; errorCode?: string | undefined; totalCommissionUsdt?: string | undefined; disclaimer?: string | undefined; } export interface PrepareGatepayPaymentRefundRequest { paymentId: string; refundAddress: string; commission?: string | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface PrepareGatepayPaymentRefundResponse { ok: boolean; error?: string | undefined; errorCode?: string | undefined; refundId?: string | undefined; receivedAmount?: number | undefined; commission?: number | undefined; payoutAmount?: number | undefined; chain?: string | undefined; refundAddress?: string | undefined; status?: string | undefined; gatepayMerchantTradeNo?: string | undefined; customer?: string | undefined; } export interface AttachGatepayPaymentRefundRequest { paymentId: string; gatepayMerchantTradeNo: string; gatepayBatchId?: string | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface AttachGatepayPaymentRefundResponse { ok: boolean; error?: string | undefined; errorCode?: string | undefined; refundId?: string | undefined; status?: string | undefined; } export interface FinalizeGatepayPaymentRefundRequest { paymentId: string; gatepayMerchantTradeNo?: string | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface FinalizeGatepayPaymentRefundResponse { ok: boolean; error?: string | undefined; errorCode?: string | undefined; refundId?: string | undefined; status?: string | undefined; } export interface ListPendingGatepayPaymentRefundsRequest { limit?: number | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface GatepayPaymentRefundItem { refundId: string; paymentId: string; refundAddress: string; chain: string; receivedAmount: number; commission: number; payoutAmount: number; status: string; gatepayMerchantTradeNo?: string | undefined; gatepayBatchId?: string | undefined; arbipayId?: string | undefined; } export interface ListPendingGatepayPaymentRefundsResponse { items: GatepayPaymentRefundItem[]; } export interface MarkGatepayPaymentRefundFailedRequest { paymentId: string; error?: string | undefined; authManagerContext?: AuthManagerContext | undefined; } export interface MarkGatepayPaymentRefundFailedResponse { ok: boolean; error?: string | undefined; errorCode?: string | undefined; refundId?: string | undefined; status?: string | undefined; } export interface SearchExchangePaymentRequest { search: string; limit: number; authManagerContext?: AuthManagerContext | undefined; } export interface SearchExchangePaymentItem { id: string; amount?: number | undefined; usdtAmount?: number | undefined; } export interface SearchExchangePaymentResponse { items: SearchExchangePaymentItem[]; } export interface PrealoadExchangePaymentForSearchRequest { paymentId: string; authManagerContext?: AuthManagerContext | undefined; } export interface PrealoadExchangePaymentForSearchResponse { item?: SearchExchangePaymentItem | undefined; } export interface PaymentsSummaryItem { currency: string; total: number; paid: number; unpaid: number; percent: number; } export interface GetPaymentsSummaryResponse { withPaymentCount: number; items: PaymentsSummaryItem[]; } export interface GetFinModelExchangeAggregatesRequest { authManagerContext?: AuthManagerContext | undefined; dateFrom: string; dateTo: string; officeId?: string | undefined; } export interface FinModelExchangeAggregateItem { userId: number; bucket: FinModelDealBucket; dealsCount: number; amountUsdt: number; profitUsdt: number; } export interface FinModelDebtByCurrency { outputCurrencyId: string; amount: number; } export interface GetFinModelExchangeAggregatesResponse { items: FinModelExchangeAggregateItem[]; totalExchangesCount: number; allCompletedExchangesCount: number; totalAmountUsdt: number; debt: FinModelDebtByCurrency[]; } export interface ExchangeMethodItem { id: number; name: string; sort: number; } export interface GetExchangeMethodsRequest { authManagerContext: AuthManagerContext | undefined; } export interface GetExchangeMethodsResponse { methods: ExchangeMethodItem[]; } export interface ExchangeStatusItem { id: number; name: string; isCompleted: boolean; } export interface GetExchangeStatusesRequest { authManagerContext: AuthManagerContext | undefined; } export interface GetExchangeStatusesResponse { statuses: ExchangeStatusItem[]; } export interface WalletItem { id: string; name: string; sort: number; balance: number; status: boolean; currentManagerId?: string | undefined; managerChanged?: string | undefined; isGeneral: boolean; showOnBalances: boolean; cryptoAddress?: string | undefined; cryptoNetwork?: number | undefined; isActive: boolean; currencyIds: string[]; } export interface GetWalletsRequest { authManagerContext: AuthManagerContext | undefined; search?: string | undefined; isActive?: boolean | undefined; page?: number | undefined; pageSize?: number | undefined; } export interface GetWalletsResponse { count: number; next?: string | undefined; previous?: string | undefined; results: WalletItem[]; } export interface GetWalletsMonikaRequest { currencyId?: string | undefined; isActive?: string | undefined; } export interface WalletMonikaCurrency { id: number; shortName: string; name: string; } export interface WalletMonikaItem { id: string; name: string; currencies: WalletMonikaCurrency[]; balance: number; status: boolean; isActive: boolean; cryptoAddress?: string | undefined; cryptoNetwork?: number | undefined; isGeneral: boolean; } export interface GetWalletsMonikaResponse { wallets: WalletMonikaItem[]; } export interface PaymentAgentDailyRateItem { id: string; paymentAgent: number; /** YYYY-MM-DD */ rateDate: string; actualCost: number; isApplied: boolean; affectedPayments: number; createdAt: string; createdByManagerId?: string | undefined; recalculatePayouts: boolean; } export interface ListPaymentAgentDailyRatesRequest { authManagerContext: AuthManagerContext | undefined; } export interface ListPaymentAgentDailyRatesResponse { items: PaymentAgentDailyRateItem[]; } export interface CreatePaymentAgentDailyRateRequest { authManagerContext: AuthManagerContext | undefined; paymentAgent: number; /** YYYY-MM-DD */ rateDate: string; actualCost: number; recalculatePayouts: boolean; } export interface CreatePaymentAgentDailyRateResponse { ok: boolean; error?: string | undefined; item?: PaymentAgentDailyRateItem | undefined; } export interface PreviewPaymentAgentDailyRateRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface PaymentAgentDailyRatePaymentPreviewItem { id: string; currentRate?: number | undefined; createdAt: string; } export interface PaymentAgentDailyRateExchangePreviewItem { id: string; paymentId?: string | undefined; currentRate1Iter?: number | undefined; currentProfit?: number | undefined; inputCurrencyId?: string | undefined; outputCurrencyId?: string | undefined; } export interface PreviewPaymentAgentDailyRateResponse { ok: boolean; error?: string | undefined; item?: PaymentAgentDailyRateItem | undefined; paymentsCount: number; exchangesCount: number; paymentsFirst: PaymentAgentDailyRatePaymentPreviewItem[]; paymentsLast: PaymentAgentDailyRatePaymentPreviewItem[]; exchangesFirst: PaymentAgentDailyRateExchangePreviewItem[]; exchangesLast: PaymentAgentDailyRateExchangePreviewItem[]; } export interface ApplyPaymentAgentDailyRateRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface ApplyPaymentAgentDailyRateResponse { ok: boolean; error?: string | undefined; item?: PaymentAgentDailyRateItem | undefined; paymentsUpdated: number; exchangesUpdated: number; taskId?: string | undefined; transactionsUpdated: number; } export interface DeletePaymentAgentDailyRateRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface DeletePaymentAgentDailyRateResponse { ok: boolean; error?: string | undefined; deleted: boolean; } export interface ListExchangePayoutsRequest { authManagerContext: AuthManagerContext | undefined; page?: number | undefined; pageSize?: number | undefined; managerId?: string | undefined; } export interface ExchangePayoutManager { id: string; email?: string | undefined; username?: string | undefined; } export interface ExchangePayoutItem { id: string; payoutAgentId?: string | undefined; uuid?: string | undefined; paymentAgent: number; amount: number; status: number; paymentAgentStatus?: string | undefined; pan?: string | undefined; cardholder?: string | undefined; managerId?: string | undefined; manager?: ExchangePayoutManager | undefined; createdAt: string; updatedAt: string; /** CARD | SBP | WALLET | ACCOUNT */ payoutKind?: string | undefined; destinationMask?: string | undefined; bank?: string | undefined; } export interface ListExchangePayoutsResponse { count: number; next?: string | undefined; previous?: string | undefined; results: ExchangePayoutItem[]; } export interface GetExchangePayoutRequest { authManagerContext: AuthManagerContext | undefined; id: string; } export interface GetExchangePayoutResponse { ok: boolean; result?: ExchangePayoutItem | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface CreateExchangePayoutRequest { authManagerContext: AuthManagerContext | undefined; amount: number; pan: string; holder: string; cvv: string; month: number; year: number; uuid: string; paymentAgent?: number | undefined; managerId?: | string | undefined; /** CARD | SBP | WALLET | ACCOUNT (Pay1Time); Overpay implies CARD. */ payoutKind?: string | undefined; phone?: string | undefined; bank?: string | undefined; wallet?: string | undefined; account?: string | undefined; fio?: string | undefined; } export interface CreateExchangePayoutResponse { ok: boolean; result?: ExchangePayoutItem | undefined; error?: string | undefined; validationErrors?: { [key: string]: any } | undefined; } export interface HandleExchangePayoutWebhookRequest { jsonPayload: string; } export interface HandleExchangePayoutWebhookResponse { ok: boolean; status: string; } export const EXCHANGE_CORE_PACKAGE_NAME = "exchange_core"; wrappers[".google.protobuf.Struct"] = { fromObject: Struct.wrap, toObject: Struct.unwrap } as any; export interface ExchangeCoreServiceClient { createExchangeOrder(request: CreateExchangeOrderRequest): Observable; getWithdrawTypes(request: GetWithdrawTypesRequest): Observable; getReceiveBanks(request: GetReceiveBanksRequest): Observable; createExchangeDeal(request: CreateExchangeDealRequest): Observable; getExchangeDeals(request: GetExchangeDealsRequest): Observable; getExchangeDealDetails(request: GetExchangeDealDetailsRequest): Observable; getExchangeDealsDetails(request: GetExchangeDealsDetailsRequest): Observable; batchGetReferralRecreateDeals( request: BatchGetReferralRecreateDealsRequest, ): Observable; updateExchangeDeal(request: UpdateExchangeDealRequest): Observable; completeExchangeDeal(request: CompleteExchangeDealRequest): Observable; cancelExchangeDeal(request: CancelExchangeDealRequest): Observable; deleteExchangeDeal(request: DeleteExchangeDealRequest): Observable; getUserIdsWithDealsInPeriod( request: GetUserIdsWithDealsInPeriodRequest, ): Observable; batchGetUserDealStats(request: BatchGetUserDealStatsRequest): Observable; batchGetManagerPersonDealStats( request: BatchGetManagerPersonDealStatsRequest, ): Observable; getUserMetrics(request: GetUserMetricsRequest): Observable; getFinModelExchangeAggregates( request: GetFinModelExchangeAggregatesRequest, ): Observable; createExchangePayment(request: CreateExchangePaymentRequest): Observable; handlePaymentWebhook(request: HandlePaymentWebhookRequest): Observable; getExchangePayments(request: GetExchangePaymentsRequest): Observable; listExchangePayouts(request: ListExchangePayoutsRequest): Observable; getExchangePayout(request: GetExchangePayoutRequest): Observable; createExchangePayout(request: CreateExchangePayoutRequest): Observable; handleExchangePayoutWebhook( request: HandleExchangePayoutWebhookRequest, ): Observable; getExchangePayment(request: GetExchangePaymentRequest): Observable; setPaymentRealPrimeRateFixed( request: SetPaymentRealPrimeRateFixedRequest, ): Observable; getPaymentsSummary(request: ExchangeCalculationsFiltersRequest): Observable; searchExchangePayment(request: SearchExchangePaymentRequest): Observable; prealoadExchangePaymentForSearch( request: PrealoadExchangePaymentForSearchRequest, ): Observable; /** CRM crypto refund via ARBIPAY platform API (CRYPTO_GATEWAY / agent 5). */ refundExchangePayment(request: RefundExchangePaymentRequest): Observable; estimateExchangePaymentRefundFee( request: EstimateExchangePaymentRefundFeeRequest, ): Observable; confirmExchangePayment(request: ConfirmExchangePaymentRequest): Observable; /** Gatepay underpayment refund intent lifecycle (Exchange-side payout). */ prepareGatepayPaymentRefund( request: PrepareGatepayPaymentRefundRequest, ): Observable; attachGatepayPaymentRefund( request: AttachGatepayPaymentRefundRequest, ): Observable; finalizeGatepayPaymentRefund( request: FinalizeGatepayPaymentRefundRequest, ): Observable; listPendingGatepayPaymentRefunds( request: ListPendingGatepayPaymentRefundsRequest, ): Observable; markGatepayPaymentRefundFailed( request: MarkGatepayPaymentRefundFailedRequest, ): Observable; getExchangeMethods(request: GetExchangeMethodsRequest): Observable; getExchangeStatuses(request: GetExchangeStatusesRequest): Observable; getWallets(request: GetWalletsRequest): Observable; getWalletsMonika(request: GetWalletsMonikaRequest): Observable; listPaymentAgentDailyRates( request: ListPaymentAgentDailyRatesRequest, ): Observable; createPaymentAgentDailyRate( request: CreatePaymentAgentDailyRateRequest, ): Observable; previewPaymentAgentDailyRate( request: PreviewPaymentAgentDailyRateRequest, ): Observable; applyPaymentAgentDailyRate( request: ApplyPaymentAgentDailyRateRequest, ): Observable; deletePaymentAgentDailyRate( request: DeletePaymentAgentDailyRateRequest, ): Observable; } export interface ExchangeCoreServiceController { createExchangeOrder( request: CreateExchangeOrderRequest, ): Promise | Observable | CreateExchangeOrderResponse; getWithdrawTypes( request: GetWithdrawTypesRequest, ): Promise | Observable | GetWithdrawTypesResponse; getReceiveBanks( request: GetReceiveBanksRequest, ): Promise | Observable | GetReceiveBanksResponse; createExchangeDeal( request: CreateExchangeDealRequest, ): Promise | Observable | CreateExchangeDealResponse; getExchangeDeals( request: GetExchangeDealsRequest, ): Promise | Observable | GetExchangeDealsResponse; getExchangeDealDetails( request: GetExchangeDealDetailsRequest, ): | Promise | Observable | GetExchangeDealDetailsResponse; getExchangeDealsDetails( request: GetExchangeDealsDetailsRequest, ): | Promise | Observable | GetExchangeDealsDetailsResponse; batchGetReferralRecreateDeals( request: BatchGetReferralRecreateDealsRequest, ): | Promise | Observable | BatchGetReferralRecreateDealsResponse; updateExchangeDeal( request: UpdateExchangeDealRequest, ): Promise | Observable | UpdateExchangeDealResponse; completeExchangeDeal( request: CompleteExchangeDealRequest, ): Promise | Observable | CompleteExchangeDealResponse; cancelExchangeDeal( request: CancelExchangeDealRequest, ): Promise | Observable | CancelExchangeDealResponse; deleteExchangeDeal( request: DeleteExchangeDealRequest, ): Promise | Observable | DeleteExchangeDealResponse; getUserIdsWithDealsInPeriod( request: GetUserIdsWithDealsInPeriodRequest, ): | Promise | Observable | GetUserIdsWithDealsInPeriodResponse; batchGetUserDealStats( request: BatchGetUserDealStatsRequest, ): Promise | Observable | BatchGetUserDealStatsResponse; batchGetManagerPersonDealStats( request: BatchGetManagerPersonDealStatsRequest, ): | Promise | Observable | BatchGetManagerPersonDealStatsResponse; getUserMetrics( request: GetUserMetricsRequest, ): Promise | Observable | GetUserMetricsResponse; getFinModelExchangeAggregates( request: GetFinModelExchangeAggregatesRequest, ): | Promise | Observable | GetFinModelExchangeAggregatesResponse; createExchangePayment( request: CreateExchangePaymentRequest, ): Promise | Observable | CreateExchangePaymentResponse; handlePaymentWebhook( request: HandlePaymentWebhookRequest, ): Promise | Observable | HandlePaymentWebhookResponse; getExchangePayments( request: GetExchangePaymentsRequest, ): Promise | Observable | GetExchangePaymentsResponse; listExchangePayouts( request: ListExchangePayoutsRequest, ): Promise | Observable | ListExchangePayoutsResponse; getExchangePayout( request: GetExchangePayoutRequest, ): Promise | Observable | GetExchangePayoutResponse; createExchangePayout( request: CreateExchangePayoutRequest, ): Promise | Observable | CreateExchangePayoutResponse; handleExchangePayoutWebhook( request: HandleExchangePayoutWebhookRequest, ): | Promise | Observable | HandleExchangePayoutWebhookResponse; getExchangePayment( request: GetExchangePaymentRequest, ): Promise | Observable | GetExchangePaymentResponse; setPaymentRealPrimeRateFixed( request: SetPaymentRealPrimeRateFixedRequest, ): | Promise | Observable | SetPaymentRealPrimeRateFixedResponse; getPaymentsSummary( request: ExchangeCalculationsFiltersRequest, ): Promise | Observable | GetPaymentsSummaryResponse; searchExchangePayment( request: SearchExchangePaymentRequest, ): Promise | Observable | SearchExchangePaymentResponse; prealoadExchangePaymentForSearch( request: PrealoadExchangePaymentForSearchRequest, ): | Promise | Observable | PrealoadExchangePaymentForSearchResponse; /** CRM crypto refund via ARBIPAY platform API (CRYPTO_GATEWAY / agent 5). */ refundExchangePayment( request: RefundExchangePaymentRequest, ): Promise | Observable | RefundExchangePaymentResponse; estimateExchangePaymentRefundFee( request: EstimateExchangePaymentRefundFeeRequest, ): | Promise | Observable | EstimateExchangePaymentRefundFeeResponse; confirmExchangePayment( request: ConfirmExchangePaymentRequest, ): | Promise | Observable | ConfirmExchangePaymentResponse; /** Gatepay underpayment refund intent lifecycle (Exchange-side payout). */ prepareGatepayPaymentRefund( request: PrepareGatepayPaymentRefundRequest, ): | Promise | Observable | PrepareGatepayPaymentRefundResponse; attachGatepayPaymentRefund( request: AttachGatepayPaymentRefundRequest, ): | Promise | Observable | AttachGatepayPaymentRefundResponse; finalizeGatepayPaymentRefund( request: FinalizeGatepayPaymentRefundRequest, ): | Promise | Observable | FinalizeGatepayPaymentRefundResponse; listPendingGatepayPaymentRefunds( request: ListPendingGatepayPaymentRefundsRequest, ): | Promise | Observable | ListPendingGatepayPaymentRefundsResponse; markGatepayPaymentRefundFailed( request: MarkGatepayPaymentRefundFailedRequest, ): | Promise | Observable | MarkGatepayPaymentRefundFailedResponse; getExchangeMethods( request: GetExchangeMethodsRequest, ): Promise | Observable | GetExchangeMethodsResponse; getExchangeStatuses( request: GetExchangeStatusesRequest, ): Promise | Observable | GetExchangeStatusesResponse; getWallets( request: GetWalletsRequest, ): Promise | Observable | GetWalletsResponse; getWalletsMonika( request: GetWalletsMonikaRequest, ): Promise | Observable | GetWalletsMonikaResponse; listPaymentAgentDailyRates( request: ListPaymentAgentDailyRatesRequest, ): | Promise | Observable | ListPaymentAgentDailyRatesResponse; createPaymentAgentDailyRate( request: CreatePaymentAgentDailyRateRequest, ): | Promise | Observable | CreatePaymentAgentDailyRateResponse; previewPaymentAgentDailyRate( request: PreviewPaymentAgentDailyRateRequest, ): | Promise | Observable | PreviewPaymentAgentDailyRateResponse; applyPaymentAgentDailyRate( request: ApplyPaymentAgentDailyRateRequest, ): | Promise | Observable | ApplyPaymentAgentDailyRateResponse; deletePaymentAgentDailyRate( request: DeletePaymentAgentDailyRateRequest, ): | Promise | Observable | DeletePaymentAgentDailyRateResponse; } export function ExchangeCoreServiceControllerMethods() { return function (constructor: Function) { const grpcMethods: string[] = [ "createExchangeOrder", "getWithdrawTypes", "getReceiveBanks", "createExchangeDeal", "getExchangeDeals", "getExchangeDealDetails", "getExchangeDealsDetails", "batchGetReferralRecreateDeals", "updateExchangeDeal", "completeExchangeDeal", "cancelExchangeDeal", "deleteExchangeDeal", "getUserIdsWithDealsInPeriod", "batchGetUserDealStats", "batchGetManagerPersonDealStats", "getUserMetrics", "getFinModelExchangeAggregates", "createExchangePayment", "handlePaymentWebhook", "getExchangePayments", "listExchangePayouts", "getExchangePayout", "createExchangePayout", "handleExchangePayoutWebhook", "getExchangePayment", "setPaymentRealPrimeRateFixed", "getPaymentsSummary", "searchExchangePayment", "prealoadExchangePaymentForSearch", "refundExchangePayment", "estimateExchangePaymentRefundFee", "confirmExchangePayment", "prepareGatepayPaymentRefund", "attachGatepayPaymentRefund", "finalizeGatepayPaymentRefund", "listPendingGatepayPaymentRefunds", "markGatepayPaymentRefundFailed", "getExchangeMethods", "getExchangeStatuses", "getWallets", "getWalletsMonika", "listPaymentAgentDailyRates", "createPaymentAgentDailyRate", "previewPaymentAgentDailyRate", "applyPaymentAgentDailyRate", "deletePaymentAgentDailyRate", ]; for (const method of grpcMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcMethod("ExchangeCoreService", method)(constructor.prototype[method], method, descriptor); } const grpcStreamMethods: string[] = []; for (const method of grpcStreamMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcStreamMethod("ExchangeCoreService", method)(constructor.prototype[method], method, descriptor); } }; } export const EXCHANGE_CORE_SERVICE_NAME = "ExchangeCoreService";