// Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.11.4 // protoc v7.34.0 // source: custody.proto /* eslint-disable */ import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices"; import { Observable } from "rxjs"; export const protobufPackage = "custody.v1"; /** Статус отслеживания депозита в рамках ответа GetDepositStatus (не полный on-chain индекс). */ export enum DepositTrackingStatus { DEPOSIT_TRACKING_STATUS_UNSPECIFIED = 0, /** DEPOSIT_TRACKING_STATUS_UNKNOWN - Адрес не найден / нет данных. */ DEPOSIT_TRACKING_STATUS_UNKNOWN = 1, /** DEPOSIT_TRACKING_STATUS_PENDING - Адрес выдан, ожидание/не подтверждено в этом сервисе. */ DEPOSIT_TRACKING_STATUS_PENDING = 2, /** DEPOSIT_TRACKING_STATUS_CONFIRMED - Подтверждено (если сервис отдаёт такой уровень детализации). */ DEPOSIT_TRACKING_STATUS_CONFIRMED = 3, DEPOSIT_TRACKING_STATUS_FAILED = 4, UNRECOGNIZED = -1, } export interface ListDepositAddressesRequest { /** TRON | BSC */ network: string; /** По умолчанию USDT */ asset: string; } export interface ListDepositAddressRow { userId: number; network: string; asset: string; address: string; } export interface ListDepositAddressesResponse { items: ListDepositAddressRow[]; } export interface GetDepositAddressRequest { /** Идентификатор пользователя (на wire при longs:String — строка). */ userId: number; /** TRON | BSC и т.д. */ network: string; /** По умолчанию USDT. */ asset: string; } export interface GetDepositAddressResponse { userId: number; network: string; asset: string; /** Депозитный адрес для пополнения. */ address: string; } export interface CreateWithdrawalRequest { /** Уникальный id заявки со стороны продукта (идемпотентность на уровне mpc/БД). */ withdrawRequestId: string; userId: number; network: string; /** Сумма в decimal-строке. */ amount: string; /** Адрес получателя в целевой сети. */ toAddress: string; /** USDT и т.д. (опционально для обратной совместимости). */ asset?: string | undefined; } export interface CreateWithdrawalResponse { withdrawRequestId: string; /** Id трансфера в BitGo (исторически назывался fireblocks_tx_id). */ custodyTransferId: string; /** Унифицированный статус вывода для внутренней логики (CREATED, BROADCASTING, …). */ mappedStatus: string; } export interface GetWithdrawalStatusRequest { withdrawRequestId: string; } export interface GetWithdrawalStatusResponse { withdrawRequestId: string; custodyTransferId: string; mappedStatus: string; /** Сырой статус от BitGo. */ rawCustodyStatus: string; txHash?: string | undefined; errorCode?: string | undefined; errorMessage?: string | undefined; } export interface GetDepositStatusRequest { userId: number; network: string; /** Ранее выданный депозитный адрес. */ address: string; /** Опционально: подсказка по конкретной транзакции (информативно). */ txHash?: string | undefined; } export interface GetDepositStatusResponse { status: DepositTrackingStatus; /** Человекочитаемое пояснение (например, куда смотреть дальше — Ledger). */ message: string; txHash?: string | undefined; } export const CUSTODY_V1_PACKAGE_NAME = "custody.v1"; /** CustodyService — операции с кастоди-кошельком от имени пользователя (без прямого доступа клиента к BitGo). */ export interface CustodyServiceClient { /** * Выдать существующий или создать новый депозитный адрес пользователя для пары (сеть, актив). * При создании адрес регистрируется в Ledger через исходящий gRPC mpc → ledger. */ getOrCreateDepositAddress(request: GetDepositAddressRequest): Observable; /** Список всех депозитных адресов для сканирования on-chain (внутренний вызов Deposit Service и др.). */ listDepositAddresses(request: ListDepositAddressesRequest): Observable; /** Инициировать вывод средств на указанный on-chain адрес; возвращает id трансфера в custody и унифицированный статус. */ createWithdrawal(request: CreateWithdrawalRequest): Observable; /** Получить текущий статус ранее созданного вывода по внешнему id заявки (withdraw_request_id). */ getWithdrawalStatus(request: GetWithdrawalStatusRequest): Observable; /** Упрощённый статус «депозита по адресу» на стороне custody (выдача адреса / ожидание on-chain — без полного трекинга в этой БД). */ getDepositStatus(request: GetDepositStatusRequest): Observable; } /** CustodyService — операции с кастоди-кошельком от имени пользователя (без прямого доступа клиента к BitGo). */ export interface CustodyServiceController { /** * Выдать существующий или создать новый депозитный адрес пользователя для пары (сеть, актив). * При создании адрес регистрируется в Ledger через исходящий gRPC mpc → ledger. */ getOrCreateDepositAddress( request: GetDepositAddressRequest, ): Promise | Observable | GetDepositAddressResponse; /** Список всех депозитных адресов для сканирования on-chain (внутренний вызов Deposit Service и др.). */ listDepositAddresses( request: ListDepositAddressesRequest, ): Promise | Observable | ListDepositAddressesResponse; /** Инициировать вывод средств на указанный on-chain адрес; возвращает id трансфера в custody и унифицированный статус. */ createWithdrawal( request: CreateWithdrawalRequest, ): Promise | Observable | CreateWithdrawalResponse; /** Получить текущий статус ранее созданного вывода по внешнему id заявки (withdraw_request_id). */ getWithdrawalStatus( request: GetWithdrawalStatusRequest, ): Promise | Observable | GetWithdrawalStatusResponse; /** Упрощённый статус «депозита по адресу» на стороне custody (выдача адреса / ожидание on-chain — без полного трекинга в этой БД). */ getDepositStatus( request: GetDepositStatusRequest, ): Promise | Observable | GetDepositStatusResponse; } export function CustodyServiceControllerMethods() { return function (constructor: Function) { const grpcMethods: string[] = [ "getOrCreateDepositAddress", "listDepositAddresses", "createWithdrawal", "getWithdrawalStatus", "getDepositStatus", ]; for (const method of grpcMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcMethod("CustodyService", method)(constructor.prototype[method], method, descriptor); } const grpcStreamMethods: string[] = []; for (const method of grpcStreamMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcStreamMethod("CustodyService", method)(constructor.prototype[method], method, descriptor); } }; } export const CUSTODY_SERVICE_NAME = "CustodyService";