/* eslint-disable */ import Long from 'long'; import * as _m0 from 'protobufjs/minimal'; import { InstrumentType, MoneyValue, Quotation, PingDelaySettings, Ping, instrumentTypeFromJSON, instrumentTypeToJSON, } from './common'; import { Timestamp } from './google/protobuf/timestamp'; export const protobufPackage = 'tinkoff.public.invest.api.contract.v1'; /** Статус запрашиваемых операций. */ export enum OperationState { /** OPERATION_STATE_UNSPECIFIED - Статус операции не определен. */ OPERATION_STATE_UNSPECIFIED = 0, /** OPERATION_STATE_EXECUTED - Исполнена частично или полностью. */ OPERATION_STATE_EXECUTED = 1, /** OPERATION_STATE_CANCELED - Отменена. */ OPERATION_STATE_CANCELED = 2, /** OPERATION_STATE_PROGRESS - Исполняется. */ OPERATION_STATE_PROGRESS = 3, UNRECOGNIZED = -1, } export function operationStateFromJSON(object: any): OperationState { switch (object) { case 0: case 'OPERATION_STATE_UNSPECIFIED': return OperationState.OPERATION_STATE_UNSPECIFIED; case 1: case 'OPERATION_STATE_EXECUTED': return OperationState.OPERATION_STATE_EXECUTED; case 2: case 'OPERATION_STATE_CANCELED': return OperationState.OPERATION_STATE_CANCELED; case 3: case 'OPERATION_STATE_PROGRESS': return OperationState.OPERATION_STATE_PROGRESS; case -1: case 'UNRECOGNIZED': default: return OperationState.UNRECOGNIZED; } } export function operationStateToJSON(object: OperationState): string { switch (object) { case OperationState.OPERATION_STATE_UNSPECIFIED: return 'OPERATION_STATE_UNSPECIFIED'; case OperationState.OPERATION_STATE_EXECUTED: return 'OPERATION_STATE_EXECUTED'; case OperationState.OPERATION_STATE_CANCELED: return 'OPERATION_STATE_CANCELED'; case OperationState.OPERATION_STATE_PROGRESS: return 'OPERATION_STATE_PROGRESS'; default: return 'UNKNOWN'; } } /** Тип операции. */ export enum OperationType { /** OPERATION_TYPE_UNSPECIFIED - Тип операции не определен. */ OPERATION_TYPE_UNSPECIFIED = 0, /** OPERATION_TYPE_INPUT - Пополнение брокерского счета. */ OPERATION_TYPE_INPUT = 1, /** OPERATION_TYPE_BOND_TAX - Удержание НДФЛ по купонам. */ OPERATION_TYPE_BOND_TAX = 2, /** OPERATION_TYPE_OUTPUT_SECURITIES - Вывод ЦБ. */ OPERATION_TYPE_OUTPUT_SECURITIES = 3, /** OPERATION_TYPE_OVERNIGHT - Доход по сделке РЕПО овернайт. */ OPERATION_TYPE_OVERNIGHT = 4, /** OPERATION_TYPE_TAX - Удержание налога. */ OPERATION_TYPE_TAX = 5, /** OPERATION_TYPE_BOND_REPAYMENT_FULL - Полное погашение облигаций. */ OPERATION_TYPE_BOND_REPAYMENT_FULL = 6, /** OPERATION_TYPE_SELL_CARD - Продажа ЦБ с карты. */ OPERATION_TYPE_SELL_CARD = 7, /** OPERATION_TYPE_DIVIDEND_TAX - Удержание налога по дивидендам. */ OPERATION_TYPE_DIVIDEND_TAX = 8, /** OPERATION_TYPE_OUTPUT - Вывод денежных средств. */ OPERATION_TYPE_OUTPUT = 9, /** OPERATION_TYPE_BOND_REPAYMENT - Частичное погашение облигаций. */ OPERATION_TYPE_BOND_REPAYMENT = 10, /** OPERATION_TYPE_TAX_CORRECTION - Корректировка налога. */ OPERATION_TYPE_TAX_CORRECTION = 11, /** OPERATION_TYPE_SERVICE_FEE - Удержание комиссии за обслуживание брокерского счета. */ OPERATION_TYPE_SERVICE_FEE = 12, /** OPERATION_TYPE_BENEFIT_TAX - Удержание налога за материальную выгоду. */ OPERATION_TYPE_BENEFIT_TAX = 13, /** OPERATION_TYPE_MARGIN_FEE - Удержание комиссии за непокрытую позицию. */ OPERATION_TYPE_MARGIN_FEE = 14, /** OPERATION_TYPE_BUY - Покупка ЦБ. */ OPERATION_TYPE_BUY = 15, /** OPERATION_TYPE_BUY_CARD - Покупка ЦБ с карты. */ OPERATION_TYPE_BUY_CARD = 16, /** OPERATION_TYPE_INPUT_SECURITIES - Перевод ценных бумаг из другого депозитария. */ OPERATION_TYPE_INPUT_SECURITIES = 17, /** OPERATION_TYPE_SELL_MARGIN - Продажа в результате Margin-call. */ OPERATION_TYPE_SELL_MARGIN = 18, /** OPERATION_TYPE_BROKER_FEE - Удержание комиссии за операцию. */ OPERATION_TYPE_BROKER_FEE = 19, /** OPERATION_TYPE_BUY_MARGIN - Покупка в результате Margin-call. */ OPERATION_TYPE_BUY_MARGIN = 20, /** OPERATION_TYPE_DIVIDEND - Выплата дивидендов. */ OPERATION_TYPE_DIVIDEND = 21, /** OPERATION_TYPE_SELL - Продажа ЦБ. */ OPERATION_TYPE_SELL = 22, /** OPERATION_TYPE_COUPON - Выплата купонов. */ OPERATION_TYPE_COUPON = 23, /** OPERATION_TYPE_SUCCESS_FEE - Удержание комиссии SuccessFee. */ OPERATION_TYPE_SUCCESS_FEE = 24, /** OPERATION_TYPE_DIVIDEND_TRANSFER - Передача дивидендного дохода. */ OPERATION_TYPE_DIVIDEND_TRANSFER = 25, /** OPERATION_TYPE_ACCRUING_VARMARGIN - Зачисление вариационной маржи. */ OPERATION_TYPE_ACCRUING_VARMARGIN = 26, /** OPERATION_TYPE_WRITING_OFF_VARMARGIN - Списание вариационной маржи. */ OPERATION_TYPE_WRITING_OFF_VARMARGIN = 27, /** OPERATION_TYPE_DELIVERY_BUY - Покупка в рамках экспирации фьючерсного контракта. */ OPERATION_TYPE_DELIVERY_BUY = 28, /** OPERATION_TYPE_DELIVERY_SELL - Продажа в рамках экспирации фьючерсного контракта. */ OPERATION_TYPE_DELIVERY_SELL = 29, /** OPERATION_TYPE_TRACK_MFEE - Комиссия за управление по счету автоследования. */ OPERATION_TYPE_TRACK_MFEE = 30, /** OPERATION_TYPE_TRACK_PFEE - Комиссия за результат по счету автоследования. */ OPERATION_TYPE_TRACK_PFEE = 31, /** OPERATION_TYPE_TAX_PROGRESSIVE - Удержание налога по ставке 15%. */ OPERATION_TYPE_TAX_PROGRESSIVE = 32, /** OPERATION_TYPE_BOND_TAX_PROGRESSIVE - Удержание налога по купонам по ставке 15%. */ OPERATION_TYPE_BOND_TAX_PROGRESSIVE = 33, /** OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE - Удержание налога по дивидендам по ставке 15%. */ OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE = 34, /** OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE - Удержание налога за материальную выгоду по ставке 15%. */ OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE = 35, /** OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE - Корректировка налога по ставке 15%. */ OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE = 36, /** OPERATION_TYPE_TAX_REPO_PROGRESSIVE - Удержание налога за возмещение по сделкам РЕПО по ставке 15%. */ OPERATION_TYPE_TAX_REPO_PROGRESSIVE = 37, /** OPERATION_TYPE_TAX_REPO - Удержание налога за возмещение по сделкам РЕПО. */ OPERATION_TYPE_TAX_REPO = 38, /** OPERATION_TYPE_TAX_REPO_HOLD - Удержание налога по сделкам РЕПО. */ OPERATION_TYPE_TAX_REPO_HOLD = 39, /** OPERATION_TYPE_TAX_REPO_REFUND - Возврат налога по сделкам РЕПО. */ OPERATION_TYPE_TAX_REPO_REFUND = 40, /** OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE - Удержание налога по сделкам РЕПО по ставке 15%. */ OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE = 41, /** OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE - Возврат налога по сделкам РЕПО по ставке 15%. */ OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE = 42, /** OPERATION_TYPE_DIV_EXT - Выплата дивидендов на карту. */ OPERATION_TYPE_DIV_EXT = 43, /** OPERATION_TYPE_TAX_CORRECTION_COUPON - Корректировка налога по купонам. */ OPERATION_TYPE_TAX_CORRECTION_COUPON = 44, /** OPERATION_TYPE_CASH_FEE - Комиссия за валютный остаток. */ OPERATION_TYPE_CASH_FEE = 45, /** OPERATION_TYPE_OUT_FEE - Комиссия за вывод валюты с брокерского счета. */ OPERATION_TYPE_OUT_FEE = 46, /** OPERATION_TYPE_OUT_STAMP_DUTY - Гербовый сбор. */ OPERATION_TYPE_OUT_STAMP_DUTY = 47, /** OPERATION_TYPE_OUTPUT_SWIFT - SWIFT-перевод. */ OPERATION_TYPE_OUTPUT_SWIFT = 50, /** OPERATION_TYPE_INPUT_SWIFT - SWIFT-перевод. */ OPERATION_TYPE_INPUT_SWIFT = 51, /** OPERATION_TYPE_OUTPUT_ACQUIRING - Перевод на карту. */ OPERATION_TYPE_OUTPUT_ACQUIRING = 53, /** OPERATION_TYPE_INPUT_ACQUIRING - Перевод с карты. */ OPERATION_TYPE_INPUT_ACQUIRING = 54, /** OPERATION_TYPE_OUTPUT_PENALTY - Комиссия за вывод средств. */ OPERATION_TYPE_OUTPUT_PENALTY = 55, /** OPERATION_TYPE_ADVICE_FEE - Списание оплаты за сервис Советов. */ OPERATION_TYPE_ADVICE_FEE = 56, /** OPERATION_TYPE_TRANS_IIS_BS - Перевод ценных бумаг с ИИС на брокерский счет. */ OPERATION_TYPE_TRANS_IIS_BS = 57, /** OPERATION_TYPE_TRANS_BS_BS - Перевод ценных бумаг с одного брокерского счета на другой. */ OPERATION_TYPE_TRANS_BS_BS = 58, /** OPERATION_TYPE_OUT_MULTI - Вывод денежных средств со счета. */ OPERATION_TYPE_OUT_MULTI = 59, /** OPERATION_TYPE_INP_MULTI - Пополнение денежных средств со счета. */ OPERATION_TYPE_INP_MULTI = 60, /** OPERATION_TYPE_OVER_PLACEMENT - Размещение биржевого овернайта. */ OPERATION_TYPE_OVER_PLACEMENT = 61, /** OPERATION_TYPE_OVER_COM - Списание комиссии. */ OPERATION_TYPE_OVER_COM = 62, /** OPERATION_TYPE_OVER_INCOME - Доход от оверанайта. */ OPERATION_TYPE_OVER_INCOME = 63, /** OPERATION_TYPE_OPTION_EXPIRATION - Экспирация опциона. */ OPERATION_TYPE_OPTION_EXPIRATION = 64, /** OPERATION_TYPE_FUTURE_EXPIRATION - Экспирация фьючерса. */ OPERATION_TYPE_FUTURE_EXPIRATION = 65, /** OPERATION_TYPE_OTHER_FEE - Прочие комиссии; */ OPERATION_TYPE_OTHER_FEE = 66, /** OPERATION_TYPE_OTHER - Операция по счету; */ OPERATION_TYPE_OTHER = 67, /** OPERATION_TYPE_DFA_REDEMPTION - погашение ЦФА-токена; */ OPERATION_TYPE_DFA_REDEMPTION = 68, /** OPERATION_TYPE_PRIMARY_ORDER - отмена заявки на первичное размещение по ЦФА; */ OPERATION_TYPE_PRIMARY_ORDER = 69, UNRECOGNIZED = -1, } export function operationTypeFromJSON(object: any): OperationType { switch (object) { case 0: case 'OPERATION_TYPE_UNSPECIFIED': return OperationType.OPERATION_TYPE_UNSPECIFIED; case 1: case 'OPERATION_TYPE_INPUT': return OperationType.OPERATION_TYPE_INPUT; case 2: case 'OPERATION_TYPE_BOND_TAX': return OperationType.OPERATION_TYPE_BOND_TAX; case 3: case 'OPERATION_TYPE_OUTPUT_SECURITIES': return OperationType.OPERATION_TYPE_OUTPUT_SECURITIES; case 4: case 'OPERATION_TYPE_OVERNIGHT': return OperationType.OPERATION_TYPE_OVERNIGHT; case 5: case 'OPERATION_TYPE_TAX': return OperationType.OPERATION_TYPE_TAX; case 6: case 'OPERATION_TYPE_BOND_REPAYMENT_FULL': return OperationType.OPERATION_TYPE_BOND_REPAYMENT_FULL; case 7: case 'OPERATION_TYPE_SELL_CARD': return OperationType.OPERATION_TYPE_SELL_CARD; case 8: case 'OPERATION_TYPE_DIVIDEND_TAX': return OperationType.OPERATION_TYPE_DIVIDEND_TAX; case 9: case 'OPERATION_TYPE_OUTPUT': return OperationType.OPERATION_TYPE_OUTPUT; case 10: case 'OPERATION_TYPE_BOND_REPAYMENT': return OperationType.OPERATION_TYPE_BOND_REPAYMENT; case 11: case 'OPERATION_TYPE_TAX_CORRECTION': return OperationType.OPERATION_TYPE_TAX_CORRECTION; case 12: case 'OPERATION_TYPE_SERVICE_FEE': return OperationType.OPERATION_TYPE_SERVICE_FEE; case 13: case 'OPERATION_TYPE_BENEFIT_TAX': return OperationType.OPERATION_TYPE_BENEFIT_TAX; case 14: case 'OPERATION_TYPE_MARGIN_FEE': return OperationType.OPERATION_TYPE_MARGIN_FEE; case 15: case 'OPERATION_TYPE_BUY': return OperationType.OPERATION_TYPE_BUY; case 16: case 'OPERATION_TYPE_BUY_CARD': return OperationType.OPERATION_TYPE_BUY_CARD; case 17: case 'OPERATION_TYPE_INPUT_SECURITIES': return OperationType.OPERATION_TYPE_INPUT_SECURITIES; case 18: case 'OPERATION_TYPE_SELL_MARGIN': return OperationType.OPERATION_TYPE_SELL_MARGIN; case 19: case 'OPERATION_TYPE_BROKER_FEE': return OperationType.OPERATION_TYPE_BROKER_FEE; case 20: case 'OPERATION_TYPE_BUY_MARGIN': return OperationType.OPERATION_TYPE_BUY_MARGIN; case 21: case 'OPERATION_TYPE_DIVIDEND': return OperationType.OPERATION_TYPE_DIVIDEND; case 22: case 'OPERATION_TYPE_SELL': return OperationType.OPERATION_TYPE_SELL; case 23: case 'OPERATION_TYPE_COUPON': return OperationType.OPERATION_TYPE_COUPON; case 24: case 'OPERATION_TYPE_SUCCESS_FEE': return OperationType.OPERATION_TYPE_SUCCESS_FEE; case 25: case 'OPERATION_TYPE_DIVIDEND_TRANSFER': return OperationType.OPERATION_TYPE_DIVIDEND_TRANSFER; case 26: case 'OPERATION_TYPE_ACCRUING_VARMARGIN': return OperationType.OPERATION_TYPE_ACCRUING_VARMARGIN; case 27: case 'OPERATION_TYPE_WRITING_OFF_VARMARGIN': return OperationType.OPERATION_TYPE_WRITING_OFF_VARMARGIN; case 28: case 'OPERATION_TYPE_DELIVERY_BUY': return OperationType.OPERATION_TYPE_DELIVERY_BUY; case 29: case 'OPERATION_TYPE_DELIVERY_SELL': return OperationType.OPERATION_TYPE_DELIVERY_SELL; case 30: case 'OPERATION_TYPE_TRACK_MFEE': return OperationType.OPERATION_TYPE_TRACK_MFEE; case 31: case 'OPERATION_TYPE_TRACK_PFEE': return OperationType.OPERATION_TYPE_TRACK_PFEE; case 32: case 'OPERATION_TYPE_TAX_PROGRESSIVE': return OperationType.OPERATION_TYPE_TAX_PROGRESSIVE; case 33: case 'OPERATION_TYPE_BOND_TAX_PROGRESSIVE': return OperationType.OPERATION_TYPE_BOND_TAX_PROGRESSIVE; case 34: case 'OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE': return OperationType.OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE; case 35: case 'OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE': return OperationType.OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE; case 36: case 'OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE': return OperationType.OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE; case 37: case 'OPERATION_TYPE_TAX_REPO_PROGRESSIVE': return OperationType.OPERATION_TYPE_TAX_REPO_PROGRESSIVE; case 38: case 'OPERATION_TYPE_TAX_REPO': return OperationType.OPERATION_TYPE_TAX_REPO; case 39: case 'OPERATION_TYPE_TAX_REPO_HOLD': return OperationType.OPERATION_TYPE_TAX_REPO_HOLD; case 40: case 'OPERATION_TYPE_TAX_REPO_REFUND': return OperationType.OPERATION_TYPE_TAX_REPO_REFUND; case 41: case 'OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE': return OperationType.OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE; case 42: case 'OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE': return OperationType.OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE; case 43: case 'OPERATION_TYPE_DIV_EXT': return OperationType.OPERATION_TYPE_DIV_EXT; case 44: case 'OPERATION_TYPE_TAX_CORRECTION_COUPON': return OperationType.OPERATION_TYPE_TAX_CORRECTION_COUPON; case 45: case 'OPERATION_TYPE_CASH_FEE': return OperationType.OPERATION_TYPE_CASH_FEE; case 46: case 'OPERATION_TYPE_OUT_FEE': return OperationType.OPERATION_TYPE_OUT_FEE; case 47: case 'OPERATION_TYPE_OUT_STAMP_DUTY': return OperationType.OPERATION_TYPE_OUT_STAMP_DUTY; case 50: case 'OPERATION_TYPE_OUTPUT_SWIFT': return OperationType.OPERATION_TYPE_OUTPUT_SWIFT; case 51: case 'OPERATION_TYPE_INPUT_SWIFT': return OperationType.OPERATION_TYPE_INPUT_SWIFT; case 53: case 'OPERATION_TYPE_OUTPUT_ACQUIRING': return OperationType.OPERATION_TYPE_OUTPUT_ACQUIRING; case 54: case 'OPERATION_TYPE_INPUT_ACQUIRING': return OperationType.OPERATION_TYPE_INPUT_ACQUIRING; case 55: case 'OPERATION_TYPE_OUTPUT_PENALTY': return OperationType.OPERATION_TYPE_OUTPUT_PENALTY; case 56: case 'OPERATION_TYPE_ADVICE_FEE': return OperationType.OPERATION_TYPE_ADVICE_FEE; case 57: case 'OPERATION_TYPE_TRANS_IIS_BS': return OperationType.OPERATION_TYPE_TRANS_IIS_BS; case 58: case 'OPERATION_TYPE_TRANS_BS_BS': return OperationType.OPERATION_TYPE_TRANS_BS_BS; case 59: case 'OPERATION_TYPE_OUT_MULTI': return OperationType.OPERATION_TYPE_OUT_MULTI; case 60: case 'OPERATION_TYPE_INP_MULTI': return OperationType.OPERATION_TYPE_INP_MULTI; case 61: case 'OPERATION_TYPE_OVER_PLACEMENT': return OperationType.OPERATION_TYPE_OVER_PLACEMENT; case 62: case 'OPERATION_TYPE_OVER_COM': return OperationType.OPERATION_TYPE_OVER_COM; case 63: case 'OPERATION_TYPE_OVER_INCOME': return OperationType.OPERATION_TYPE_OVER_INCOME; case 64: case 'OPERATION_TYPE_OPTION_EXPIRATION': return OperationType.OPERATION_TYPE_OPTION_EXPIRATION; case 65: case 'OPERATION_TYPE_FUTURE_EXPIRATION': return OperationType.OPERATION_TYPE_FUTURE_EXPIRATION; case 66: case 'OPERATION_TYPE_OTHER_FEE': return OperationType.OPERATION_TYPE_OTHER_FEE; case 67: case 'OPERATION_TYPE_OTHER': return OperationType.OPERATION_TYPE_OTHER; case 68: case 'OPERATION_TYPE_DFA_REDEMPTION': return OperationType.OPERATION_TYPE_DFA_REDEMPTION; case 69: case 'OPERATION_TYPE_PRIMARY_ORDER': return OperationType.OPERATION_TYPE_PRIMARY_ORDER; case -1: case 'UNRECOGNIZED': default: return OperationType.UNRECOGNIZED; } } export function operationTypeToJSON(object: OperationType): string { switch (object) { case OperationType.OPERATION_TYPE_UNSPECIFIED: return 'OPERATION_TYPE_UNSPECIFIED'; case OperationType.OPERATION_TYPE_INPUT: return 'OPERATION_TYPE_INPUT'; case OperationType.OPERATION_TYPE_BOND_TAX: return 'OPERATION_TYPE_BOND_TAX'; case OperationType.OPERATION_TYPE_OUTPUT_SECURITIES: return 'OPERATION_TYPE_OUTPUT_SECURITIES'; case OperationType.OPERATION_TYPE_OVERNIGHT: return 'OPERATION_TYPE_OVERNIGHT'; case OperationType.OPERATION_TYPE_TAX: return 'OPERATION_TYPE_TAX'; case OperationType.OPERATION_TYPE_BOND_REPAYMENT_FULL: return 'OPERATION_TYPE_BOND_REPAYMENT_FULL'; case OperationType.OPERATION_TYPE_SELL_CARD: return 'OPERATION_TYPE_SELL_CARD'; case OperationType.OPERATION_TYPE_DIVIDEND_TAX: return 'OPERATION_TYPE_DIVIDEND_TAX'; case OperationType.OPERATION_TYPE_OUTPUT: return 'OPERATION_TYPE_OUTPUT'; case OperationType.OPERATION_TYPE_BOND_REPAYMENT: return 'OPERATION_TYPE_BOND_REPAYMENT'; case OperationType.OPERATION_TYPE_TAX_CORRECTION: return 'OPERATION_TYPE_TAX_CORRECTION'; case OperationType.OPERATION_TYPE_SERVICE_FEE: return 'OPERATION_TYPE_SERVICE_FEE'; case OperationType.OPERATION_TYPE_BENEFIT_TAX: return 'OPERATION_TYPE_BENEFIT_TAX'; case OperationType.OPERATION_TYPE_MARGIN_FEE: return 'OPERATION_TYPE_MARGIN_FEE'; case OperationType.OPERATION_TYPE_BUY: return 'OPERATION_TYPE_BUY'; case OperationType.OPERATION_TYPE_BUY_CARD: return 'OPERATION_TYPE_BUY_CARD'; case OperationType.OPERATION_TYPE_INPUT_SECURITIES: return 'OPERATION_TYPE_INPUT_SECURITIES'; case OperationType.OPERATION_TYPE_SELL_MARGIN: return 'OPERATION_TYPE_SELL_MARGIN'; case OperationType.OPERATION_TYPE_BROKER_FEE: return 'OPERATION_TYPE_BROKER_FEE'; case OperationType.OPERATION_TYPE_BUY_MARGIN: return 'OPERATION_TYPE_BUY_MARGIN'; case OperationType.OPERATION_TYPE_DIVIDEND: return 'OPERATION_TYPE_DIVIDEND'; case OperationType.OPERATION_TYPE_SELL: return 'OPERATION_TYPE_SELL'; case OperationType.OPERATION_TYPE_COUPON: return 'OPERATION_TYPE_COUPON'; case OperationType.OPERATION_TYPE_SUCCESS_FEE: return 'OPERATION_TYPE_SUCCESS_FEE'; case OperationType.OPERATION_TYPE_DIVIDEND_TRANSFER: return 'OPERATION_TYPE_DIVIDEND_TRANSFER'; case OperationType.OPERATION_TYPE_ACCRUING_VARMARGIN: return 'OPERATION_TYPE_ACCRUING_VARMARGIN'; case OperationType.OPERATION_TYPE_WRITING_OFF_VARMARGIN: return 'OPERATION_TYPE_WRITING_OFF_VARMARGIN'; case OperationType.OPERATION_TYPE_DELIVERY_BUY: return 'OPERATION_TYPE_DELIVERY_BUY'; case OperationType.OPERATION_TYPE_DELIVERY_SELL: return 'OPERATION_TYPE_DELIVERY_SELL'; case OperationType.OPERATION_TYPE_TRACK_MFEE: return 'OPERATION_TYPE_TRACK_MFEE'; case OperationType.OPERATION_TYPE_TRACK_PFEE: return 'OPERATION_TYPE_TRACK_PFEE'; case OperationType.OPERATION_TYPE_TAX_PROGRESSIVE: return 'OPERATION_TYPE_TAX_PROGRESSIVE'; case OperationType.OPERATION_TYPE_BOND_TAX_PROGRESSIVE: return 'OPERATION_TYPE_BOND_TAX_PROGRESSIVE'; case OperationType.OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE: return 'OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE'; case OperationType.OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE: return 'OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE'; case OperationType.OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE: return 'OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE'; case OperationType.OPERATION_TYPE_TAX_REPO_PROGRESSIVE: return 'OPERATION_TYPE_TAX_REPO_PROGRESSIVE'; case OperationType.OPERATION_TYPE_TAX_REPO: return 'OPERATION_TYPE_TAX_REPO'; case OperationType.OPERATION_TYPE_TAX_REPO_HOLD: return 'OPERATION_TYPE_TAX_REPO_HOLD'; case OperationType.OPERATION_TYPE_TAX_REPO_REFUND: return 'OPERATION_TYPE_TAX_REPO_REFUND'; case OperationType.OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE: return 'OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE'; case OperationType.OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE: return 'OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE'; case OperationType.OPERATION_TYPE_DIV_EXT: return 'OPERATION_TYPE_DIV_EXT'; case OperationType.OPERATION_TYPE_TAX_CORRECTION_COUPON: return 'OPERATION_TYPE_TAX_CORRECTION_COUPON'; case OperationType.OPERATION_TYPE_CASH_FEE: return 'OPERATION_TYPE_CASH_FEE'; case OperationType.OPERATION_TYPE_OUT_FEE: return 'OPERATION_TYPE_OUT_FEE'; case OperationType.OPERATION_TYPE_OUT_STAMP_DUTY: return 'OPERATION_TYPE_OUT_STAMP_DUTY'; case OperationType.OPERATION_TYPE_OUTPUT_SWIFT: return 'OPERATION_TYPE_OUTPUT_SWIFT'; case OperationType.OPERATION_TYPE_INPUT_SWIFT: return 'OPERATION_TYPE_INPUT_SWIFT'; case OperationType.OPERATION_TYPE_OUTPUT_ACQUIRING: return 'OPERATION_TYPE_OUTPUT_ACQUIRING'; case OperationType.OPERATION_TYPE_INPUT_ACQUIRING: return 'OPERATION_TYPE_INPUT_ACQUIRING'; case OperationType.OPERATION_TYPE_OUTPUT_PENALTY: return 'OPERATION_TYPE_OUTPUT_PENALTY'; case OperationType.OPERATION_TYPE_ADVICE_FEE: return 'OPERATION_TYPE_ADVICE_FEE'; case OperationType.OPERATION_TYPE_TRANS_IIS_BS: return 'OPERATION_TYPE_TRANS_IIS_BS'; case OperationType.OPERATION_TYPE_TRANS_BS_BS: return 'OPERATION_TYPE_TRANS_BS_BS'; case OperationType.OPERATION_TYPE_OUT_MULTI: return 'OPERATION_TYPE_OUT_MULTI'; case OperationType.OPERATION_TYPE_INP_MULTI: return 'OPERATION_TYPE_INP_MULTI'; case OperationType.OPERATION_TYPE_OVER_PLACEMENT: return 'OPERATION_TYPE_OVER_PLACEMENT'; case OperationType.OPERATION_TYPE_OVER_COM: return 'OPERATION_TYPE_OVER_COM'; case OperationType.OPERATION_TYPE_OVER_INCOME: return 'OPERATION_TYPE_OVER_INCOME'; case OperationType.OPERATION_TYPE_OPTION_EXPIRATION: return 'OPERATION_TYPE_OPTION_EXPIRATION'; case OperationType.OPERATION_TYPE_FUTURE_EXPIRATION: return 'OPERATION_TYPE_FUTURE_EXPIRATION'; case OperationType.OPERATION_TYPE_OTHER_FEE: return 'OPERATION_TYPE_OTHER_FEE'; case OperationType.OPERATION_TYPE_OTHER: return 'OPERATION_TYPE_OTHER'; case OperationType.OPERATION_TYPE_DFA_REDEMPTION: return 'OPERATION_TYPE_DFA_REDEMPTION'; case OperationType.OPERATION_TYPE_PRIMARY_ORDER: return 'OPERATION_TYPE_PRIMARY_ORDER'; default: return 'UNKNOWN'; } } /** Результат подписки. */ export enum PortfolioSubscriptionStatus { /** PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED - Тип не определен. */ PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED = 0, /** PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS - Успешно. */ PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS = 1, /** PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND - Счет не найден или недостаточно прав. */ PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2, /** PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR - Произошла ошибка. */ PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3, UNRECOGNIZED = -1, } export function portfolioSubscriptionStatusFromJSON(object: any): PortfolioSubscriptionStatus { switch (object) { case 0: case 'PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED': return PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED; case 1: case 'PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS': return PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS; case 2: case 'PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND': return PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND; case 3: case 'PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR': return PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR; case -1: case 'UNRECOGNIZED': default: return PortfolioSubscriptionStatus.UNRECOGNIZED; } } export function portfolioSubscriptionStatusToJSON(object: PortfolioSubscriptionStatus): string { switch (object) { case PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED: return 'PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED'; case PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS: return 'PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS'; case PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND: return 'PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND'; case PortfolioSubscriptionStatus.PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR: return 'PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR'; default: return 'UNKNOWN'; } } /** Результат подписки. */ export enum PositionsAccountSubscriptionStatus { /** POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED - Тип не определен. */ POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0, /** POSITIONS_SUBSCRIPTION_STATUS_SUCCESS - Успешно. */ POSITIONS_SUBSCRIPTION_STATUS_SUCCESS = 1, /** POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND - Счет не найден или недостаточно прав. */ POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2, /** POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR - Произошла ошибка. */ POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3, UNRECOGNIZED = -1, } export function positionsAccountSubscriptionStatusFromJSON(object: any): PositionsAccountSubscriptionStatus { switch (object) { case 0: case 'POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED': return PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED; case 1: case 'POSITIONS_SUBSCRIPTION_STATUS_SUCCESS': return PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_SUCCESS; case 2: case 'POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND': return PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND; case 3: case 'POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR': return PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR; case -1: case 'UNRECOGNIZED': default: return PositionsAccountSubscriptionStatus.UNRECOGNIZED; } } export function positionsAccountSubscriptionStatusToJSON(object: PositionsAccountSubscriptionStatus): string { switch (object) { case PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED: return 'POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED'; case PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_SUCCESS: return 'POSITIONS_SUBSCRIPTION_STATUS_SUCCESS'; case PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND: return 'POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND'; case PositionsAccountSubscriptionStatus.POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR: return 'POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR'; default: return 'UNKNOWN'; } } /** Результат подписки. */ export enum OperationsAccountSubscriptionStatus { /** OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED - Тип не определен. */ OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0, /** OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS - Успешно. */ OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS = 1, /** OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND - Счет не найден или недостаточно прав. */ OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2, /** OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR - Произошла ошибка. */ OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3, UNRECOGNIZED = -1, } export function operationsAccountSubscriptionStatusFromJSON(object: any): OperationsAccountSubscriptionStatus { switch (object) { case 0: case 'OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED': return OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED; case 1: case 'OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS': return OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS; case 2: case 'OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND': return OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND; case 3: case 'OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR': return OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR; case -1: case 'UNRECOGNIZED': default: return OperationsAccountSubscriptionStatus.UNRECOGNIZED; } } export function operationsAccountSubscriptionStatusToJSON(object: OperationsAccountSubscriptionStatus): string { switch (object) { case OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED: return 'OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED'; case OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS: return 'OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS'; case OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND: return 'OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND'; case OperationsAccountSubscriptionStatus.OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR: return 'OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR'; default: return 'UNKNOWN'; } } /** Запрос получения списка операций по счету. */ export interface OperationsRequest { /** Идентификатор счета клиента. */ accountId: string; /** Начало периода по UTC. */ from?: Date | undefined; /** Окончание периода по UTC. */ to?: Date | undefined; /** Статус запрашиваемых операций. */ state?: OperationState | undefined; /** FIGI-идентификатор инструмента для фильтрации. */ figi?: string | undefined; } /** Список операций. */ export interface OperationsResponse { /** Массив операций. */ operations: Operation[]; } /** Данные по операции. */ export interface Operation { /** Идентификатор операции. */ id: string; /** Идентификатор родительской операции. */ parentOperationId: string; /** Валюта операции. */ currency: string; /** Сумма операции. */ payment: MoneyValue | undefined; /** Цена операции за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ price: MoneyValue | undefined; /** Статус операции. */ state: OperationState; /** Количество единиц инструмента. */ quantity: number; /** Неисполненный остаток по сделке. */ quantityRest: number; /** FIGI-идентификатор инструмента, связанного с операцией. */ figi: string; /** Тип инструмента. Возможные значения:

`bond` — облигация;
`share` — акция;
`currency` — валюта;
`etf` — фонд;
`futures` — фьючерс. */ instrumentType: string; /** Дата и время операции в формате часовом поясе UTC. */ date: Date | undefined; /** Текстовое описание типа операции. */ type: string; /** Тип операции. */ operationType: OperationType; /** Массив сделок. */ trades: OperationTrade[]; /** Идентификатор актива */ assetUid: string; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Массив дочерних операций. */ childOperations: ChildOperationItem[]; } /** Сделка по операции. */ export interface OperationTrade { /** Идентификатор сделки. */ tradeId: string; /** Дата и время сделки по UTC. */ dateTime: Date | undefined; /** Количество инструментов. */ quantity: number; /** Цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ price: MoneyValue | undefined; } /** Запрос получения текущего портфеля по счету. */ export interface PortfolioRequest { /** Идентификатор счета пользователя. */ accountId: string; /** Валюта, в которой нужно рассчитать портфель. */ currency?: PortfolioRequest_CurrencyRequest | undefined; } export enum PortfolioRequest_CurrencyRequest { /** RUB - Рубли */ RUB = 0, /** USD - Доллары */ USD = 1, /** EUR - Евро */ EUR = 2, UNRECOGNIZED = -1, } export function portfolioRequest_CurrencyRequestFromJSON(object: any): PortfolioRequest_CurrencyRequest { switch (object) { case 0: case 'RUB': return PortfolioRequest_CurrencyRequest.RUB; case 1: case 'USD': return PortfolioRequest_CurrencyRequest.USD; case 2: case 'EUR': return PortfolioRequest_CurrencyRequest.EUR; case -1: case 'UNRECOGNIZED': default: return PortfolioRequest_CurrencyRequest.UNRECOGNIZED; } } export function portfolioRequest_CurrencyRequestToJSON(object: PortfolioRequest_CurrencyRequest): string { switch (object) { case PortfolioRequest_CurrencyRequest.RUB: return 'RUB'; case PortfolioRequest_CurrencyRequest.USD: return 'USD'; case PortfolioRequest_CurrencyRequest.EUR: return 'EUR'; default: return 'UNKNOWN'; } } /** Текущий портфель по счету. */ export interface PortfolioResponse { /** Общая стоимость акций в портфеле. */ totalAmountShares: MoneyValue | undefined; /** Общая стоимость облигаций в портфеле. */ totalAmountBonds: MoneyValue | undefined; /** Общая стоимость фондов в портфеле. */ totalAmountEtf: MoneyValue | undefined; /** Общая стоимость валют в портфеле. */ totalAmountCurrencies: MoneyValue | undefined; /** Общая стоимость фьючерсов в портфеле. */ totalAmountFutures: MoneyValue | undefined; /** Текущая относительная доходность портфеля в %. */ expectedYield: Quotation | undefined; /** Список позиций портфеля. */ positions: PortfolioPosition[]; /** Идентификатор счета пользователя. */ accountId: string; /** Общая стоимость опционов в портфеле. */ totalAmountOptions: MoneyValue | undefined; /** Общая стоимость структурных нот в портфеле. */ totalAmountSp: MoneyValue | undefined; /** Общая стоимость портфеля. */ totalAmountPortfolio: MoneyValue | undefined; /** Массив виртуальных позиций портфеля. */ virtualPositions: VirtualPortfolioPosition[]; /** Рассчитанная доходность портфеля за день в рублях. */ dailyYield: MoneyValue | undefined; /** Относительная доходность в день в %. */ dailyYieldRelative: Quotation | undefined; /** Общая стоимость смарт-активов в портфеле в рублях. */ totalAmountDfa: MoneyValue | undefined; } /** Запрос позиций портфеля по счету. */ export interface PositionsRequest { /** Идентификатор счета пользователя. */ accountId: string; } /** Список позиций по счету. */ export interface PositionsResponse { /** Массив валютных позиций портфеля. */ money: MoneyValue[]; /** Массив заблокированных валютных позиций портфеля. */ blocked: MoneyValue[]; /** Список ценно-бумажных позиций портфеля. */ securities: PositionsSecurities[]; /** Признак идущей выгрузки лимитов в данный момент. */ limitsLoadingInProgress: boolean; /** Список фьючерсов портфеля. */ futures: PositionsFutures[]; /** Список опционов портфеля. */ options: PositionsOptions[]; /** Идентификатор счёта пользователя. */ accountId: string; } /** Запрос доступного остатка для вывода. */ export interface WithdrawLimitsRequest { /** Идентификатор счета пользователя. */ accountId: string; } /** Доступный остаток для вывода. */ export interface WithdrawLimitsResponse { /** Массив валютных позиций портфеля. */ money: MoneyValue[]; /** Массив заблокированных валютных позиций портфеля. */ blocked: MoneyValue[]; /** Заблокировано под гарантийное обеспечение фьючерсов. */ blockedGuarantee: MoneyValue[]; } /** Позиции портфеля. */ export interface PortfolioPosition { /** FIGI-идентификатор инструмента. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Количество инструмента в портфеле в штуках. */ quantity: Quotation | undefined; /** Средневзвешенная цена позиции. Для пересчета возможна задержка до одной секунды. */ averagePositionPrice: MoneyValue | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYield: Quotation | undefined; /** Текущий НКД. */ currentNkd: MoneyValue | undefined; /** * Deprecated Средняя цена позиции в пунктах (для фьючерсов). Для пересчета возможна задержка до одной секунды. * * @deprecated */ averagePositionPricePt: Quotation | undefined; /** Текущая цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ currentPrice: MoneyValue | undefined; /** Средняя цена позиции по методу FIFO. Для пересчета возможна задержка до одной секунды. */ averagePositionPriceFifo: MoneyValue | undefined; /** * Deprecated Количество лотов в портфеле. * * @deprecated */ quantityLots: Quotation | undefined; /** Заблокировано на бирже. */ blocked: boolean; /** Количество бумаг, заблокированных выставленными заявками. */ blockedLots: Quotation | undefined; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Вариационная маржа. */ varMargin: MoneyValue | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYieldFifo: Quotation | undefined; /** Рассчитанная доходность портфеля за день. */ dailyYield: MoneyValue | undefined; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; } export interface VirtualPortfolioPosition { /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** FIGI-идентификатор инструмента. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Количество инструмента в портфеле в штуках. */ quantity: Quotation | undefined; /** Средневзвешенная цена позиции. Для пересчета возможна задержка до одной секунды. */ averagePositionPrice: MoneyValue | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYield: Quotation | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYieldFifo: Quotation | undefined; /** Дата, до которой нужно продать виртуальные бумаги. После этой даты виртуальная позиция «сгораетт». */ expireDate: Date | undefined; /** Текущая цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ currentPrice: MoneyValue | undefined; /** Средняя цена позиции по методу FIFO. Для пересчета возможна задержка до одной секунды. */ averagePositionPriceFifo: MoneyValue | undefined; /** Рассчитанная доходность портфеля за день. */ dailyYield: MoneyValue | undefined; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; } /** Баланс позиции ценной бумаги. */ export interface PositionsSecurities { /** FIGI-идентификатор бумаги. */ figi: string; /** Количество бумаг, заблокированных выставленными заявками. */ blocked: number; /** Текущий незаблокированный баланс. */ balance: number; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** Заблокировано на бирже. */ exchangeBlocked: boolean; /** Тип инструмента. */ instrumentType: string; } /** Баланс фьючерса. */ export interface PositionsFutures { /** FIGI-идентификатор фьючерса. */ figi: string; /** Количество бумаг, заблокированных выставленными заявками. */ blocked: number; /** Текущий незаблокированный баланс. */ balance: number; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; } /** Баланс опциона. */ export interface PositionsOptions { /** Уникальный идентификатор позиции опциона. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** Количество бумаг, заблокированных выставленными заявками. */ blocked: number; /** Текущий незаблокированный баланс. */ balance: number; } export interface BrokerReportRequest { generateBrokerReportRequest: GenerateBrokerReportRequest | undefined; getBrokerReportRequest: GetBrokerReportRequest | undefined; } export interface BrokerReportResponse { generateBrokerReportResponse: GenerateBrokerReportResponse | undefined; getBrokerReportResponse: GetBrokerReportResponse | undefined; } export interface GenerateBrokerReportRequest { /** Идентификатор счета клиента. */ accountId: string; /** Начало периода по UTC. */ from: Date | undefined; /** Окончание периода по UTC. */ to: Date | undefined; } export interface GenerateBrokerReportResponse { /** Идентификатор задачи формирования брокерского отчета. */ taskId: string; } export interface GetBrokerReportRequest { /** Идентификатор задачи формирования брокерского отчета. */ taskId: string; /** Номер страницы отчета, начинается с 1. Значение по умолчанию — 0. */ page?: number | undefined; } export interface GetBrokerReportResponse { brokerReport: BrokerReport[]; /** Количество записей в отчете. */ itemsCount: number; /** Количество страниц с данными отчета, начинается с 0. */ pagesCount: number; /** Текущая страница, начинается с 0. */ page: number; /** Идентификатор задачи формирования брокерского отчета. */ taskId: string; } export interface BrokerReport { /** Номер сделки. */ tradeId: string; /** Номер поручения. */ orderId: string; /** FIGI-идентификаторинструмента. */ figi: string; /** Признак исполнения. */ executeSign: string; /** Дата и время заключения по UTC. */ tradeDatetime: Date | undefined; /** Торговая площадка. */ exchange: string; /** Режим торгов. */ classCode: string; /** Вид сделки. */ direction: string; /** Сокращенное наименование актива. */ name: string; /** Код актива. */ ticker: string; /** Цена за единицу. */ price: MoneyValue | undefined; /** Количество. */ quantity: number; /** Сумма без НКД. */ orderAmount: MoneyValue | undefined; /** НКД. */ aciValue: Quotation | undefined; /** Сумма сделки. */ totalOrderAmount: MoneyValue | undefined; /** Комиссия брокера. */ brokerCommission: MoneyValue | undefined; /** Комиссия биржи. */ exchangeCommission: MoneyValue | undefined; /** Комиссия клирингового центра. */ exchangeClearingCommission: MoneyValue | undefined; /** Ставка РЕПО, %. */ repoRate: Quotation | undefined; /** Контрагент или брокерарокер. */ party: string; /** Дата расчетов по UTC. */ clearValueDate: Date | undefined; /** Дата поставки по UTC. */ secValueDate: Date | undefined; /** Статус брокера. */ brokerStatus: string; /** Тип договора. */ separateAgreementType: string; /** Номер договора. */ separateAgreementNumber: string; /** Дата договора. */ separateAgreementDate: string; /** Тип расчета по сделке. */ deliveryType: string; } export interface GetDividendsForeignIssuerRequest { /** Объект запроса формирования отчета. */ generateDivForeignIssuerReport: GenerateDividendsForeignIssuerReportRequest | undefined; /** Объект запроса сформированного отчета. */ getDivForeignIssuerReport: GetDividendsForeignIssuerReportRequest | undefined; } export interface GetDividendsForeignIssuerResponse { /** Объект результата задачи запуска формирования отчета. */ generateDivForeignIssuerReportResponse: GenerateDividendsForeignIssuerReportResponse | undefined; /** Отчет «Справка о доходах за пределами РФ». */ divForeignIssuerReport: GetDividendsForeignIssuerReportResponse | undefined; } /** Объект запроса формирования отчета «Справка о доходах за пределами РФ». */ export interface GenerateDividendsForeignIssuerReportRequest { /** Идентификатор счета клиента. */ accountId: string; /** Начало периода по UTC. */ from: Date | undefined; /** Окончание периода по UTC. Как правило, можно сформировать отчет по дату на несколько дней меньше текущей. Начало и окончание периода должны быть в рамках одного календарного года. */ to: Date | undefined; } /** Объект запроса сформированного отчета «Справка о доходах за пределами РФ». */ export interface GetDividendsForeignIssuerReportRequest { /** Идентификатор задачи формирования отчета. */ taskId: string; /** Номер страницы отчета (начинается с 0), значение по умолчанию: 0. */ page?: number | undefined; } /** Объект результата задачи запуска формирования отчета «Справка о доходах за пределами РФ». */ export interface GenerateDividendsForeignIssuerReportResponse { /** Идентификатор задачи формирования отчета. */ taskId: string; } export interface GetDividendsForeignIssuerReportResponse { dividendsForeignIssuerReport: DividendsForeignIssuerReport[]; /** Количество записей в отчете. */ itemsCount: number; /** Количество страниц с данными отчета, начинается с 0. */ pagesCount: number; /** Текущая страница, начинается с 0. */ page: number; } /** Отчет «Справка о доходах за пределами РФ». */ export interface DividendsForeignIssuerReport { /** Дата фиксации реестра. */ recordDate: Date | undefined; /** Дата выплаты. */ paymentDate: Date | undefined; /** Наименование ценной бумаги. */ securityName: string; /** ISIN-идентификатор ценной бумаги. */ isin: string; /** Страна эмитента. Для депозитарных расписок указывается страна эмитента базового актива. */ issuerCountry: string; /** Количество ценных бумаг. */ quantity: number; /** Выплаты на одну бумагу */ dividend: Quotation | undefined; /** Комиссия внешних платежных агентов. */ externalCommission: Quotation | undefined; /** Сумма до удержания налога. */ dividendGross: Quotation | undefined; /** Сумма налога, удержанного агентом. */ tax: Quotation | undefined; /** Итоговая сумма выплаты. */ dividendAmount: Quotation | undefined; /** Валюта. */ currency: string; } /** Запрос установки stream-соединения. */ export interface PortfolioStreamRequest { /** Массив идентификаторов счетов пользователя. */ accounts: string[]; /** Запрос настройки пинга. */ pingSettings: PingDelaySettings | undefined; } /** Информация по позициям и доходностям портфелей. */ export interface PortfolioStreamResponse { /** Объект результата подписки. */ subscriptions: PortfolioSubscriptionResult | undefined; /** Объект стриминга портфеля. */ portfolio: PortfolioResponse | undefined; /** Проверка активности стрима. */ ping: Ping | undefined; } /** Объект результата подписки. */ export interface PortfolioSubscriptionResult { /** Массив счетов клиента. */ accounts: AccountSubscriptionStatus[]; /** Уникальный идентификатор запроса, подробнее: [tracking_id](/invest/intro/developer/protocols/grpc#tracking-id). */ trackingId: string; /** Идентификатор открытого соединения */ streamId: string; } /** Счет клиента. */ export interface AccountSubscriptionStatus { /** Идентификатор счета. */ accountId: string; /** Результат подписки. */ subscriptionStatus: PortfolioSubscriptionStatus; } /** Запрос списка операций по счету с пагинацией. */ export interface GetOperationsByCursorRequest { /** Идентификатор счета клиента, обязательный параметр. Остальные параметры опциональны. */ accountId: string; /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId?: string | undefined; /** Начало периода по UTC. */ from?: Date | undefined; /** Окончание периода по UTC. */ to?: Date | undefined; /** Идентификатор элемента, с которого начать формировать ответ. */ cursor?: string | undefined; /** Лимит количества операций. По умолчанию — `100`, максимальное значение — `1000`. */ limit?: number | undefined; /** Тип операции. Принимает значение из списка `OperationType`. */ operationTypes: OperationType[]; /** Статус запрашиваемых операций. Возможные значения указаны в `OperationState`. */ state?: OperationState | undefined; /** Флаг возврата комиссии. По умолчанию — `false`. */ withoutCommissions?: boolean | undefined; /** Флаг получения ответа без массива сделок. */ withoutTrades?: boolean | undefined; /** Флаг показа overnight операций. */ withoutOvernights?: boolean | undefined; } /** Список операций по счету с пагинацией. */ export interface GetOperationsByCursorResponse { /** Признак, есть ли следующий элемент. */ hasNext: boolean; /** Следующий курсор. */ nextCursor: string; /** Список операций. */ items: OperationItem[]; } /** Данные об операции. */ export interface OperationItem { /** Курсор. */ cursor: string; /** Номер счета клиента. */ brokerAccountId: string; /** Идентификатор операции, может меняться с течением времени. */ id: string; /** Идентификатор родительской операции. Может измениться, если изменился ID родительской операции. */ parentOperationId: string; /** Название операции. */ name: string; /** Дата поручения. */ date: Date | undefined; /** Тип операции. */ type: OperationType; /** Описание операции. */ description: string; /** Статус поручения. */ state: OperationState; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** FIGI. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Тип инструмента. */ instrumentKind: InstrumentType; /** Уникальный идентификатор позиции. */ positionUid: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** Сумма операции. */ payment: MoneyValue | undefined; /** Цена операции за 1 инструмент. */ price: MoneyValue | undefined; /** Комиссия. */ commission: MoneyValue | undefined; /** Доходность. */ yield: MoneyValue | undefined; /** Относительная доходность. */ yieldRelative: Quotation | undefined; /** Накопленный купонный доход. */ accruedInt: MoneyValue | undefined; /** Количество единиц инструмента. */ quantity: number; /** Неисполненный остаток по сделке. */ quantityRest: number; /** Исполненный остаток. */ quantityDone: number; /** Дата и время снятия заявки. */ cancelDateTime: Date | undefined; /** Причина отмены операции. */ cancelReason: string; /** Массив сделок. */ tradesInfo: OperationItemTrades | undefined; /** Идентификатор актива. */ assetUid: string; /** Массив дочерних операций. */ childOperations: ChildOperationItem[]; } /** Массив с информацией о сделках. */ export interface OperationItemTrades { trades: OperationItemTrade[]; } /** Сделка по операции. */ export interface OperationItemTrade { /** Номер сделки. */ num: string; /** Дата сделки. */ date: Date | undefined; /** Количество в единицах. */ quantity: number; /** Цена. */ price: MoneyValue | undefined; /** Доходность. */ yield: MoneyValue | undefined; /** Относительная доходность. */ yieldRelative: Quotation | undefined; } /** Запрос установки stream-соединения позиций. */ export interface PositionsStreamRequest { /** Массив идентификаторов счетов пользователя. */ accounts: string[]; /** Получение состояния позиций на момент подключения. */ withInitialPositions: boolean; /** Запрос настройки пинга. */ pingSettings: PingDelaySettings | undefined; } /** Информация по изменению позиций портфеля. */ export interface PositionsStreamResponse { /** Объект результата подписки. */ subscriptions: PositionsSubscriptionResult | undefined; /** Объект стриминга позиций. */ position: PositionData | undefined; /** Проверка активности стрима. */ ping: Ping | undefined; /** Текущие позиции. */ initialPositions: PositionsResponse | undefined; } /** Объект результата подписки. */ export interface PositionsSubscriptionResult { /** Массив счетов клиента. */ accounts: PositionsSubscriptionStatus[]; /** Уникальный идентификатор запроса, подробнее: [tracking_id](/invest/intro/developer/protocols/grpc#tracking-id). */ trackingId: string; /** Идентификатор открытого соединения */ streamId: string; } /** Счет клиента. */ export interface PositionsSubscriptionStatus { /** Идентификатор счета. */ accountId: string; /** Результат подписки. */ subscriptionStatus: PositionsAccountSubscriptionStatus; } /** Данные о позиции портфеля. */ export interface PositionData { /** Идентификатор счета. */ accountId: string; /** Массив валютных позиций портфеля. */ money: PositionsMoney[]; /** Список ценно-бумажных позиций портфеля. */ securities: PositionsSecurities[]; /** Список фьючерсов портфеля. */ futures: PositionsFutures[]; /** Список опционов портфеля. */ options: PositionsOptions[]; /** Дата и время операции в формате UTC. */ date: Date | undefined; } /** Валютная позиция портфеля. */ export interface PositionsMoney { /** Доступное количество валютный позиций. */ availableValue: MoneyValue | undefined; /** Заблокированное количество валютных позиций. */ blockedValue: MoneyValue | undefined; } export interface ChildOperationItem { /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Сумма операции. */ payment: MoneyValue | undefined; } /** Запрос установки stream-соединения операций. */ export interface OperationsStreamRequest { /** Массив идентификаторов счетов пользователя. */ accounts: string[]; /** Запрос настройки пинга. */ pingSettings: PingDelaySettings | undefined; } /** Информация по операциям. */ export interface OperationsStreamResponse { /** Объект результата подписки. */ subscriptions: OperationsSubscriptionResult | undefined; /** Объект стриминга операций. */ operation: OperationData | undefined; /** Проверка активности стрима. */ ping: Ping | undefined; } /** Объект результата подписки. */ export interface OperationsSubscriptionResult { /** Массив счетов клиента. */ accounts: string[]; /** Результат подписки. */ subscriptionStatus: OperationsAccountSubscriptionStatus; /** Уникальный идентификатор запроса, подробнее: [tracking_id](/invest/intro/developer/protocols/grpc#tracking-id). */ trackingId: string; /** Идентификатор открытого соединения */ streamId: string; } /** Данные об операции. */ export interface OperationData { /** Идентификатор счета. */ brokerAccountId: string; /** Номер поручения. */ id: string; /** Номер родительского поручения. */ parentOperationId: string; /** Название инструмента. */ name: string; /** Дата. */ date: Date | undefined; /** Тип операции. */ type: OperationType; /** Статус поручения. */ state: OperationState; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** FIGI-идентификатор инструмента. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Тип инструмента. */ instrumentKind: InstrumentType; /** Идентификатор позиции. */ positionUid: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** Сумма операции. */ payment: MoneyValue | undefined; } function createBaseOperationsRequest(): OperationsRequest { return { accountId: '', from: undefined, to: undefined, state: undefined, figi: undefined }; } export const OperationsRequest = { encode(message: OperationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } if (message.from !== undefined) { Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim(); } if (message.to !== undefined) { Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim(); } if (message.state !== undefined) { writer.uint32(32).int32(message.state); } if (message.figi !== undefined) { writer.uint32(42).string(message.figi); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 2: message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 4: message.state = reader.int32() as any; break; case 5: message.figi = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationsRequest { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined, to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined, state: isSet(object.state) ? operationStateFromJSON(object.state) : undefined, figi: isSet(object.figi) ? String(object.figi) : undefined, }; }, toJSON(message: OperationsRequest): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); message.from !== undefined && (obj.from = message.from.toISOString()); message.to !== undefined && (obj.to = message.to.toISOString()); message.state !== undefined && (obj.state = message.state !== undefined ? operationStateToJSON(message.state) : undefined); message.figi !== undefined && (obj.figi = message.figi); return obj; }, fromPartial(object: DeepPartial): OperationsRequest { const message = createBaseOperationsRequest(); message.accountId = object.accountId ?? ''; message.from = object.from ?? undefined; message.to = object.to ?? undefined; message.state = object.state ?? undefined; message.figi = object.figi ?? undefined; return message; }, }; function createBaseOperationsResponse(): OperationsResponse { return { operations: [] }; } export const OperationsResponse = { encode(message: OperationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.operations) { Operation.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.operations.push(Operation.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationsResponse { return { operations: Array.isArray(object?.operations) ? object.operations.map((e: any) => Operation.fromJSON(e)) : [], }; }, toJSON(message: OperationsResponse): unknown { const obj: any = {}; if (message.operations) { obj.operations = message.operations.map(e => (e ? Operation.toJSON(e) : undefined)); } else { obj.operations = []; } return obj; }, fromPartial(object: DeepPartial): OperationsResponse { const message = createBaseOperationsResponse(); message.operations = object.operations?.map(e => Operation.fromPartial(e)) || []; return message; }, }; function createBaseOperation(): Operation { return { id: '', parentOperationId: '', currency: '', payment: undefined, price: undefined, state: 0, quantity: 0, quantityRest: 0, figi: '', instrumentType: '', date: undefined, type: '', operationType: 0, trades: [], assetUid: '', positionUid: '', instrumentUid: '', childOperations: [], }; } export const Operation = { encode(message: Operation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.id !== '') { writer.uint32(10).string(message.id); } if (message.parentOperationId !== '') { writer.uint32(18).string(message.parentOperationId); } if (message.currency !== '') { writer.uint32(26).string(message.currency); } if (message.payment !== undefined) { MoneyValue.encode(message.payment, writer.uint32(34).fork()).ldelim(); } if (message.price !== undefined) { MoneyValue.encode(message.price, writer.uint32(42).fork()).ldelim(); } if (message.state !== 0) { writer.uint32(48).int32(message.state); } if (message.quantity !== 0) { writer.uint32(56).int64(message.quantity); } if (message.quantityRest !== 0) { writer.uint32(64).int64(message.quantityRest); } if (message.figi !== '') { writer.uint32(74).string(message.figi); } if (message.instrumentType !== '') { writer.uint32(82).string(message.instrumentType); } if (message.date !== undefined) { Timestamp.encode(toTimestamp(message.date), writer.uint32(90).fork()).ldelim(); } if (message.type !== '') { writer.uint32(98).string(message.type); } if (message.operationType !== 0) { writer.uint32(104).int32(message.operationType); } for (const v of message.trades) { OperationTrade.encode(v!, writer.uint32(114).fork()).ldelim(); } if (message.assetUid !== '') { writer.uint32(130).string(message.assetUid); } if (message.positionUid !== '') { writer.uint32(138).string(message.positionUid); } if (message.instrumentUid !== '') { writer.uint32(146).string(message.instrumentUid); } for (const v of message.childOperations) { ChildOperationItem.encode(v!, writer.uint32(154).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): Operation { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperation(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.id = reader.string(); break; case 2: message.parentOperationId = reader.string(); break; case 3: message.currency = reader.string(); break; case 4: message.payment = MoneyValue.decode(reader, reader.uint32()); break; case 5: message.price = MoneyValue.decode(reader, reader.uint32()); break; case 6: message.state = reader.int32() as any; break; case 7: message.quantity = longToNumber(reader.int64() as Long); break; case 8: message.quantityRest = longToNumber(reader.int64() as Long); break; case 9: message.figi = reader.string(); break; case 10: message.instrumentType = reader.string(); break; case 11: message.date = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 12: message.type = reader.string(); break; case 13: message.operationType = reader.int32() as any; break; case 14: message.trades.push(OperationTrade.decode(reader, reader.uint32())); break; case 16: message.assetUid = reader.string(); break; case 17: message.positionUid = reader.string(); break; case 18: message.instrumentUid = reader.string(); break; case 19: message.childOperations.push(ChildOperationItem.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): Operation { return { id: isSet(object.id) ? String(object.id) : '', parentOperationId: isSet(object.parentOperationId) ? String(object.parentOperationId) : '', currency: isSet(object.currency) ? String(object.currency) : '', payment: isSet(object.payment) ? MoneyValue.fromJSON(object.payment) : undefined, price: isSet(object.price) ? MoneyValue.fromJSON(object.price) : undefined, state: isSet(object.state) ? operationStateFromJSON(object.state) : 0, quantity: isSet(object.quantity) ? Number(object.quantity) : 0, quantityRest: isSet(object.quantityRest) ? Number(object.quantityRest) : 0, figi: isSet(object.figi) ? String(object.figi) : '', instrumentType: isSet(object.instrumentType) ? String(object.instrumentType) : '', date: isSet(object.date) ? fromJsonTimestamp(object.date) : undefined, type: isSet(object.type) ? String(object.type) : '', operationType: isSet(object.operationType) ? operationTypeFromJSON(object.operationType) : 0, trades: Array.isArray(object?.trades) ? object.trades.map((e: any) => OperationTrade.fromJSON(e)) : [], assetUid: isSet(object.assetUid) ? String(object.assetUid) : '', positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', childOperations: Array.isArray(object?.childOperations) ? object.childOperations.map((e: any) => ChildOperationItem.fromJSON(e)) : [], }; }, toJSON(message: Operation): unknown { const obj: any = {}; message.id !== undefined && (obj.id = message.id); message.parentOperationId !== undefined && (obj.parentOperationId = message.parentOperationId); message.currency !== undefined && (obj.currency = message.currency); message.payment !== undefined && (obj.payment = message.payment ? MoneyValue.toJSON(message.payment) : undefined); message.price !== undefined && (obj.price = message.price ? MoneyValue.toJSON(message.price) : undefined); message.state !== undefined && (obj.state = operationStateToJSON(message.state)); message.quantity !== undefined && (obj.quantity = Math.round(message.quantity)); message.quantityRest !== undefined && (obj.quantityRest = Math.round(message.quantityRest)); message.figi !== undefined && (obj.figi = message.figi); message.instrumentType !== undefined && (obj.instrumentType = message.instrumentType); message.date !== undefined && (obj.date = message.date.toISOString()); message.type !== undefined && (obj.type = message.type); message.operationType !== undefined && (obj.operationType = operationTypeToJSON(message.operationType)); if (message.trades) { obj.trades = message.trades.map(e => (e ? OperationTrade.toJSON(e) : undefined)); } else { obj.trades = []; } message.assetUid !== undefined && (obj.assetUid = message.assetUid); message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); if (message.childOperations) { obj.childOperations = message.childOperations.map(e => (e ? ChildOperationItem.toJSON(e) : undefined)); } else { obj.childOperations = []; } return obj; }, fromPartial(object: DeepPartial): Operation { const message = createBaseOperation(); message.id = object.id ?? ''; message.parentOperationId = object.parentOperationId ?? ''; message.currency = object.currency ?? ''; message.payment = object.payment !== undefined && object.payment !== null ? MoneyValue.fromPartial(object.payment) : undefined; message.price = object.price !== undefined && object.price !== null ? MoneyValue.fromPartial(object.price) : undefined; message.state = object.state ?? 0; message.quantity = object.quantity ?? 0; message.quantityRest = object.quantityRest ?? 0; message.figi = object.figi ?? ''; message.instrumentType = object.instrumentType ?? ''; message.date = object.date ?? undefined; message.type = object.type ?? ''; message.operationType = object.operationType ?? 0; message.trades = object.trades?.map(e => OperationTrade.fromPartial(e)) || []; message.assetUid = object.assetUid ?? ''; message.positionUid = object.positionUid ?? ''; message.instrumentUid = object.instrumentUid ?? ''; message.childOperations = object.childOperations?.map(e => ChildOperationItem.fromPartial(e)) || []; return message; }, }; function createBaseOperationTrade(): OperationTrade { return { tradeId: '', dateTime: undefined, quantity: 0, price: undefined }; } export const OperationTrade = { encode(message: OperationTrade, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.tradeId !== '') { writer.uint32(10).string(message.tradeId); } if (message.dateTime !== undefined) { Timestamp.encode(toTimestamp(message.dateTime), writer.uint32(18).fork()).ldelim(); } if (message.quantity !== 0) { writer.uint32(24).int64(message.quantity); } if (message.price !== undefined) { MoneyValue.encode(message.price, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationTrade { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationTrade(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.tradeId = reader.string(); break; case 2: message.dateTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.quantity = longToNumber(reader.int64() as Long); break; case 4: message.price = MoneyValue.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationTrade { return { tradeId: isSet(object.tradeId) ? String(object.tradeId) : '', dateTime: isSet(object.dateTime) ? fromJsonTimestamp(object.dateTime) : undefined, quantity: isSet(object.quantity) ? Number(object.quantity) : 0, price: isSet(object.price) ? MoneyValue.fromJSON(object.price) : undefined, }; }, toJSON(message: OperationTrade): unknown { const obj: any = {}; message.tradeId !== undefined && (obj.tradeId = message.tradeId); message.dateTime !== undefined && (obj.dateTime = message.dateTime.toISOString()); message.quantity !== undefined && (obj.quantity = Math.round(message.quantity)); message.price !== undefined && (obj.price = message.price ? MoneyValue.toJSON(message.price) : undefined); return obj; }, fromPartial(object: DeepPartial): OperationTrade { const message = createBaseOperationTrade(); message.tradeId = object.tradeId ?? ''; message.dateTime = object.dateTime ?? undefined; message.quantity = object.quantity ?? 0; message.price = object.price !== undefined && object.price !== null ? MoneyValue.fromPartial(object.price) : undefined; return message; }, }; function createBasePortfolioRequest(): PortfolioRequest { return { accountId: '', currency: undefined }; } export const PortfolioRequest = { encode(message: PortfolioRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } if (message.currency !== undefined) { writer.uint32(16).int32(message.currency); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PortfolioRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePortfolioRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 2: message.currency = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PortfolioRequest { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', currency: isSet(object.currency) ? portfolioRequest_CurrencyRequestFromJSON(object.currency) : undefined, }; }, toJSON(message: PortfolioRequest): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); message.currency !== undefined && (obj.currency = message.currency !== undefined ? portfolioRequest_CurrencyRequestToJSON(message.currency) : undefined); return obj; }, fromPartial(object: DeepPartial): PortfolioRequest { const message = createBasePortfolioRequest(); message.accountId = object.accountId ?? ''; message.currency = object.currency ?? undefined; return message; }, }; function createBasePortfolioResponse(): PortfolioResponse { return { totalAmountShares: undefined, totalAmountBonds: undefined, totalAmountEtf: undefined, totalAmountCurrencies: undefined, totalAmountFutures: undefined, expectedYield: undefined, positions: [], accountId: '', totalAmountOptions: undefined, totalAmountSp: undefined, totalAmountPortfolio: undefined, virtualPositions: [], dailyYield: undefined, dailyYieldRelative: undefined, totalAmountDfa: undefined, }; } export const PortfolioResponse = { encode(message: PortfolioResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.totalAmountShares !== undefined) { MoneyValue.encode(message.totalAmountShares, writer.uint32(10).fork()).ldelim(); } if (message.totalAmountBonds !== undefined) { MoneyValue.encode(message.totalAmountBonds, writer.uint32(18).fork()).ldelim(); } if (message.totalAmountEtf !== undefined) { MoneyValue.encode(message.totalAmountEtf, writer.uint32(26).fork()).ldelim(); } if (message.totalAmountCurrencies !== undefined) { MoneyValue.encode(message.totalAmountCurrencies, writer.uint32(34).fork()).ldelim(); } if (message.totalAmountFutures !== undefined) { MoneyValue.encode(message.totalAmountFutures, writer.uint32(42).fork()).ldelim(); } if (message.expectedYield !== undefined) { Quotation.encode(message.expectedYield, writer.uint32(50).fork()).ldelim(); } for (const v of message.positions) { PortfolioPosition.encode(v!, writer.uint32(58).fork()).ldelim(); } if (message.accountId !== '') { writer.uint32(66).string(message.accountId); } if (message.totalAmountOptions !== undefined) { MoneyValue.encode(message.totalAmountOptions, writer.uint32(74).fork()).ldelim(); } if (message.totalAmountSp !== undefined) { MoneyValue.encode(message.totalAmountSp, writer.uint32(82).fork()).ldelim(); } if (message.totalAmountPortfolio !== undefined) { MoneyValue.encode(message.totalAmountPortfolio, writer.uint32(90).fork()).ldelim(); } for (const v of message.virtualPositions) { VirtualPortfolioPosition.encode(v!, writer.uint32(98).fork()).ldelim(); } if (message.dailyYield !== undefined) { MoneyValue.encode(message.dailyYield, writer.uint32(122).fork()).ldelim(); } if (message.dailyYieldRelative !== undefined) { Quotation.encode(message.dailyYieldRelative, writer.uint32(130).fork()).ldelim(); } if (message.totalAmountDfa !== undefined) { MoneyValue.encode(message.totalAmountDfa, writer.uint32(138).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PortfolioResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePortfolioResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.totalAmountShares = MoneyValue.decode(reader, reader.uint32()); break; case 2: message.totalAmountBonds = MoneyValue.decode(reader, reader.uint32()); break; case 3: message.totalAmountEtf = MoneyValue.decode(reader, reader.uint32()); break; case 4: message.totalAmountCurrencies = MoneyValue.decode(reader, reader.uint32()); break; case 5: message.totalAmountFutures = MoneyValue.decode(reader, reader.uint32()); break; case 6: message.expectedYield = Quotation.decode(reader, reader.uint32()); break; case 7: message.positions.push(PortfolioPosition.decode(reader, reader.uint32())); break; case 8: message.accountId = reader.string(); break; case 9: message.totalAmountOptions = MoneyValue.decode(reader, reader.uint32()); break; case 10: message.totalAmountSp = MoneyValue.decode(reader, reader.uint32()); break; case 11: message.totalAmountPortfolio = MoneyValue.decode(reader, reader.uint32()); break; case 12: message.virtualPositions.push(VirtualPortfolioPosition.decode(reader, reader.uint32())); break; case 15: message.dailyYield = MoneyValue.decode(reader, reader.uint32()); break; case 16: message.dailyYieldRelative = Quotation.decode(reader, reader.uint32()); break; case 17: message.totalAmountDfa = MoneyValue.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PortfolioResponse { return { totalAmountShares: isSet(object.totalAmountShares) ? MoneyValue.fromJSON(object.totalAmountShares) : undefined, totalAmountBonds: isSet(object.totalAmountBonds) ? MoneyValue.fromJSON(object.totalAmountBonds) : undefined, totalAmountEtf: isSet(object.totalAmountEtf) ? MoneyValue.fromJSON(object.totalAmountEtf) : undefined, totalAmountCurrencies: isSet(object.totalAmountCurrencies) ? MoneyValue.fromJSON(object.totalAmountCurrencies) : undefined, totalAmountFutures: isSet(object.totalAmountFutures) ? MoneyValue.fromJSON(object.totalAmountFutures) : undefined, expectedYield: isSet(object.expectedYield) ? Quotation.fromJSON(object.expectedYield) : undefined, positions: Array.isArray(object?.positions) ? object.positions.map((e: any) => PortfolioPosition.fromJSON(e)) : [], accountId: isSet(object.accountId) ? String(object.accountId) : '', totalAmountOptions: isSet(object.totalAmountOptions) ? MoneyValue.fromJSON(object.totalAmountOptions) : undefined, totalAmountSp: isSet(object.totalAmountSp) ? MoneyValue.fromJSON(object.totalAmountSp) : undefined, totalAmountPortfolio: isSet(object.totalAmountPortfolio) ? MoneyValue.fromJSON(object.totalAmountPortfolio) : undefined, virtualPositions: Array.isArray(object?.virtualPositions) ? object.virtualPositions.map((e: any) => VirtualPortfolioPosition.fromJSON(e)) : [], dailyYield: isSet(object.dailyYield) ? MoneyValue.fromJSON(object.dailyYield) : undefined, dailyYieldRelative: isSet(object.dailyYieldRelative) ? Quotation.fromJSON(object.dailyYieldRelative) : undefined, totalAmountDfa: isSet(object.totalAmountDfa) ? MoneyValue.fromJSON(object.totalAmountDfa) : undefined, }; }, toJSON(message: PortfolioResponse): unknown { const obj: any = {}; message.totalAmountShares !== undefined && (obj.totalAmountShares = message.totalAmountShares ? MoneyValue.toJSON(message.totalAmountShares) : undefined); message.totalAmountBonds !== undefined && (obj.totalAmountBonds = message.totalAmountBonds ? MoneyValue.toJSON(message.totalAmountBonds) : undefined); message.totalAmountEtf !== undefined && (obj.totalAmountEtf = message.totalAmountEtf ? MoneyValue.toJSON(message.totalAmountEtf) : undefined); message.totalAmountCurrencies !== undefined && (obj.totalAmountCurrencies = message.totalAmountCurrencies ? MoneyValue.toJSON(message.totalAmountCurrencies) : undefined); message.totalAmountFutures !== undefined && (obj.totalAmountFutures = message.totalAmountFutures ? MoneyValue.toJSON(message.totalAmountFutures) : undefined); message.expectedYield !== undefined && (obj.expectedYield = message.expectedYield ? Quotation.toJSON(message.expectedYield) : undefined); if (message.positions) { obj.positions = message.positions.map(e => (e ? PortfolioPosition.toJSON(e) : undefined)); } else { obj.positions = []; } message.accountId !== undefined && (obj.accountId = message.accountId); message.totalAmountOptions !== undefined && (obj.totalAmountOptions = message.totalAmountOptions ? MoneyValue.toJSON(message.totalAmountOptions) : undefined); message.totalAmountSp !== undefined && (obj.totalAmountSp = message.totalAmountSp ? MoneyValue.toJSON(message.totalAmountSp) : undefined); message.totalAmountPortfolio !== undefined && (obj.totalAmountPortfolio = message.totalAmountPortfolio ? MoneyValue.toJSON(message.totalAmountPortfolio) : undefined); if (message.virtualPositions) { obj.virtualPositions = message.virtualPositions.map(e => (e ? VirtualPortfolioPosition.toJSON(e) : undefined)); } else { obj.virtualPositions = []; } message.dailyYield !== undefined && (obj.dailyYield = message.dailyYield ? MoneyValue.toJSON(message.dailyYield) : undefined); message.dailyYieldRelative !== undefined && (obj.dailyYieldRelative = message.dailyYieldRelative ? Quotation.toJSON(message.dailyYieldRelative) : undefined); message.totalAmountDfa !== undefined && (obj.totalAmountDfa = message.totalAmountDfa ? MoneyValue.toJSON(message.totalAmountDfa) : undefined); return obj; }, fromPartial(object: DeepPartial): PortfolioResponse { const message = createBasePortfolioResponse(); message.totalAmountShares = object.totalAmountShares !== undefined && object.totalAmountShares !== null ? MoneyValue.fromPartial(object.totalAmountShares) : undefined; message.totalAmountBonds = object.totalAmountBonds !== undefined && object.totalAmountBonds !== null ? MoneyValue.fromPartial(object.totalAmountBonds) : undefined; message.totalAmountEtf = object.totalAmountEtf !== undefined && object.totalAmountEtf !== null ? MoneyValue.fromPartial(object.totalAmountEtf) : undefined; message.totalAmountCurrencies = object.totalAmountCurrencies !== undefined && object.totalAmountCurrencies !== null ? MoneyValue.fromPartial(object.totalAmountCurrencies) : undefined; message.totalAmountFutures = object.totalAmountFutures !== undefined && object.totalAmountFutures !== null ? MoneyValue.fromPartial(object.totalAmountFutures) : undefined; message.expectedYield = object.expectedYield !== undefined && object.expectedYield !== null ? Quotation.fromPartial(object.expectedYield) : undefined; message.positions = object.positions?.map(e => PortfolioPosition.fromPartial(e)) || []; message.accountId = object.accountId ?? ''; message.totalAmountOptions = object.totalAmountOptions !== undefined && object.totalAmountOptions !== null ? MoneyValue.fromPartial(object.totalAmountOptions) : undefined; message.totalAmountSp = object.totalAmountSp !== undefined && object.totalAmountSp !== null ? MoneyValue.fromPartial(object.totalAmountSp) : undefined; message.totalAmountPortfolio = object.totalAmountPortfolio !== undefined && object.totalAmountPortfolio !== null ? MoneyValue.fromPartial(object.totalAmountPortfolio) : undefined; message.virtualPositions = object.virtualPositions?.map(e => VirtualPortfolioPosition.fromPartial(e)) || []; message.dailyYield = object.dailyYield !== undefined && object.dailyYield !== null ? MoneyValue.fromPartial(object.dailyYield) : undefined; message.dailyYieldRelative = object.dailyYieldRelative !== undefined && object.dailyYieldRelative !== null ? Quotation.fromPartial(object.dailyYieldRelative) : undefined; message.totalAmountDfa = object.totalAmountDfa !== undefined && object.totalAmountDfa !== null ? MoneyValue.fromPartial(object.totalAmountDfa) : undefined; return message; }, }; function createBasePositionsRequest(): PositionsRequest { return { accountId: '' }; } export const PositionsRequest = { encode(message: PositionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsRequest { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', }; }, toJSON(message: PositionsRequest): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); return obj; }, fromPartial(object: DeepPartial): PositionsRequest { const message = createBasePositionsRequest(); message.accountId = object.accountId ?? ''; return message; }, }; function createBasePositionsResponse(): PositionsResponse { return { money: [], blocked: [], securities: [], limitsLoadingInProgress: false, futures: [], options: [], accountId: '', }; } export const PositionsResponse = { encode(message: PositionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.money) { MoneyValue.encode(v!, writer.uint32(10).fork()).ldelim(); } for (const v of message.blocked) { MoneyValue.encode(v!, writer.uint32(18).fork()).ldelim(); } for (const v of message.securities) { PositionsSecurities.encode(v!, writer.uint32(26).fork()).ldelim(); } if (message.limitsLoadingInProgress === true) { writer.uint32(32).bool(message.limitsLoadingInProgress); } for (const v of message.futures) { PositionsFutures.encode(v!, writer.uint32(42).fork()).ldelim(); } for (const v of message.options) { PositionsOptions.encode(v!, writer.uint32(50).fork()).ldelim(); } if (message.accountId !== '') { writer.uint32(122).string(message.accountId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.money.push(MoneyValue.decode(reader, reader.uint32())); break; case 2: message.blocked.push(MoneyValue.decode(reader, reader.uint32())); break; case 3: message.securities.push(PositionsSecurities.decode(reader, reader.uint32())); break; case 4: message.limitsLoadingInProgress = reader.bool(); break; case 5: message.futures.push(PositionsFutures.decode(reader, reader.uint32())); break; case 6: message.options.push(PositionsOptions.decode(reader, reader.uint32())); break; case 15: message.accountId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsResponse { return { money: Array.isArray(object?.money) ? object.money.map((e: any) => MoneyValue.fromJSON(e)) : [], blocked: Array.isArray(object?.blocked) ? object.blocked.map((e: any) => MoneyValue.fromJSON(e)) : [], securities: Array.isArray(object?.securities) ? object.securities.map((e: any) => PositionsSecurities.fromJSON(e)) : [], limitsLoadingInProgress: isSet(object.limitsLoadingInProgress) ? Boolean(object.limitsLoadingInProgress) : false, futures: Array.isArray(object?.futures) ? object.futures.map((e: any) => PositionsFutures.fromJSON(e)) : [], options: Array.isArray(object?.options) ? object.options.map((e: any) => PositionsOptions.fromJSON(e)) : [], accountId: isSet(object.accountId) ? String(object.accountId) : '', }; }, toJSON(message: PositionsResponse): unknown { const obj: any = {}; if (message.money) { obj.money = message.money.map(e => (e ? MoneyValue.toJSON(e) : undefined)); } else { obj.money = []; } if (message.blocked) { obj.blocked = message.blocked.map(e => (e ? MoneyValue.toJSON(e) : undefined)); } else { obj.blocked = []; } if (message.securities) { obj.securities = message.securities.map(e => (e ? PositionsSecurities.toJSON(e) : undefined)); } else { obj.securities = []; } message.limitsLoadingInProgress !== undefined && (obj.limitsLoadingInProgress = message.limitsLoadingInProgress); if (message.futures) { obj.futures = message.futures.map(e => (e ? PositionsFutures.toJSON(e) : undefined)); } else { obj.futures = []; } if (message.options) { obj.options = message.options.map(e => (e ? PositionsOptions.toJSON(e) : undefined)); } else { obj.options = []; } message.accountId !== undefined && (obj.accountId = message.accountId); return obj; }, fromPartial(object: DeepPartial): PositionsResponse { const message = createBasePositionsResponse(); message.money = object.money?.map(e => MoneyValue.fromPartial(e)) || []; message.blocked = object.blocked?.map(e => MoneyValue.fromPartial(e)) || []; message.securities = object.securities?.map(e => PositionsSecurities.fromPartial(e)) || []; message.limitsLoadingInProgress = object.limitsLoadingInProgress ?? false; message.futures = object.futures?.map(e => PositionsFutures.fromPartial(e)) || []; message.options = object.options?.map(e => PositionsOptions.fromPartial(e)) || []; message.accountId = object.accountId ?? ''; return message; }, }; function createBaseWithdrawLimitsRequest(): WithdrawLimitsRequest { return { accountId: '' }; } export const WithdrawLimitsRequest = { encode(message: WithdrawLimitsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): WithdrawLimitsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseWithdrawLimitsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): WithdrawLimitsRequest { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', }; }, toJSON(message: WithdrawLimitsRequest): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); return obj; }, fromPartial(object: DeepPartial): WithdrawLimitsRequest { const message = createBaseWithdrawLimitsRequest(); message.accountId = object.accountId ?? ''; return message; }, }; function createBaseWithdrawLimitsResponse(): WithdrawLimitsResponse { return { money: [], blocked: [], blockedGuarantee: [] }; } export const WithdrawLimitsResponse = { encode(message: WithdrawLimitsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.money) { MoneyValue.encode(v!, writer.uint32(10).fork()).ldelim(); } for (const v of message.blocked) { MoneyValue.encode(v!, writer.uint32(18).fork()).ldelim(); } for (const v of message.blockedGuarantee) { MoneyValue.encode(v!, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): WithdrawLimitsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseWithdrawLimitsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.money.push(MoneyValue.decode(reader, reader.uint32())); break; case 2: message.blocked.push(MoneyValue.decode(reader, reader.uint32())); break; case 3: message.blockedGuarantee.push(MoneyValue.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): WithdrawLimitsResponse { return { money: Array.isArray(object?.money) ? object.money.map((e: any) => MoneyValue.fromJSON(e)) : [], blocked: Array.isArray(object?.blocked) ? object.blocked.map((e: any) => MoneyValue.fromJSON(e)) : [], blockedGuarantee: Array.isArray(object?.blockedGuarantee) ? object.blockedGuarantee.map((e: any) => MoneyValue.fromJSON(e)) : [], }; }, toJSON(message: WithdrawLimitsResponse): unknown { const obj: any = {}; if (message.money) { obj.money = message.money.map(e => (e ? MoneyValue.toJSON(e) : undefined)); } else { obj.money = []; } if (message.blocked) { obj.blocked = message.blocked.map(e => (e ? MoneyValue.toJSON(e) : undefined)); } else { obj.blocked = []; } if (message.blockedGuarantee) { obj.blockedGuarantee = message.blockedGuarantee.map(e => (e ? MoneyValue.toJSON(e) : undefined)); } else { obj.blockedGuarantee = []; } return obj; }, fromPartial(object: DeepPartial): WithdrawLimitsResponse { const message = createBaseWithdrawLimitsResponse(); message.money = object.money?.map(e => MoneyValue.fromPartial(e)) || []; message.blocked = object.blocked?.map(e => MoneyValue.fromPartial(e)) || []; message.blockedGuarantee = object.blockedGuarantee?.map(e => MoneyValue.fromPartial(e)) || []; return message; }, }; function createBasePortfolioPosition(): PortfolioPosition { return { figi: '', instrumentType: '', quantity: undefined, averagePositionPrice: undefined, expectedYield: undefined, currentNkd: undefined, averagePositionPricePt: undefined, currentPrice: undefined, averagePositionPriceFifo: undefined, quantityLots: undefined, blocked: false, blockedLots: undefined, positionUid: '', instrumentUid: '', varMargin: undefined, expectedYieldFifo: undefined, dailyYield: undefined, ticker: '', classCode: '', }; } export const PortfolioPosition = { encode(message: PortfolioPosition, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.figi !== '') { writer.uint32(10).string(message.figi); } if (message.instrumentType !== '') { writer.uint32(18).string(message.instrumentType); } if (message.quantity !== undefined) { Quotation.encode(message.quantity, writer.uint32(26).fork()).ldelim(); } if (message.averagePositionPrice !== undefined) { MoneyValue.encode(message.averagePositionPrice, writer.uint32(34).fork()).ldelim(); } if (message.expectedYield !== undefined) { Quotation.encode(message.expectedYield, writer.uint32(42).fork()).ldelim(); } if (message.currentNkd !== undefined) { MoneyValue.encode(message.currentNkd, writer.uint32(50).fork()).ldelim(); } if (message.averagePositionPricePt !== undefined) { Quotation.encode(message.averagePositionPricePt, writer.uint32(58).fork()).ldelim(); } if (message.currentPrice !== undefined) { MoneyValue.encode(message.currentPrice, writer.uint32(66).fork()).ldelim(); } if (message.averagePositionPriceFifo !== undefined) { MoneyValue.encode(message.averagePositionPriceFifo, writer.uint32(74).fork()).ldelim(); } if (message.quantityLots !== undefined) { Quotation.encode(message.quantityLots, writer.uint32(82).fork()).ldelim(); } if (message.blocked === true) { writer.uint32(168).bool(message.blocked); } if (message.blockedLots !== undefined) { Quotation.encode(message.blockedLots, writer.uint32(178).fork()).ldelim(); } if (message.positionUid !== '') { writer.uint32(194).string(message.positionUid); } if (message.instrumentUid !== '') { writer.uint32(202).string(message.instrumentUid); } if (message.varMargin !== undefined) { MoneyValue.encode(message.varMargin, writer.uint32(210).fork()).ldelim(); } if (message.expectedYieldFifo !== undefined) { Quotation.encode(message.expectedYieldFifo, writer.uint32(218).fork()).ldelim(); } if (message.dailyYield !== undefined) { MoneyValue.encode(message.dailyYield, writer.uint32(250).fork()).ldelim(); } if (message.ticker !== '') { writer.uint32(258).string(message.ticker); } if (message.classCode !== '') { writer.uint32(266).string(message.classCode); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PortfolioPosition { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePortfolioPosition(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.figi = reader.string(); break; case 2: message.instrumentType = reader.string(); break; case 3: message.quantity = Quotation.decode(reader, reader.uint32()); break; case 4: message.averagePositionPrice = MoneyValue.decode(reader, reader.uint32()); break; case 5: message.expectedYield = Quotation.decode(reader, reader.uint32()); break; case 6: message.currentNkd = MoneyValue.decode(reader, reader.uint32()); break; case 7: message.averagePositionPricePt = Quotation.decode(reader, reader.uint32()); break; case 8: message.currentPrice = MoneyValue.decode(reader, reader.uint32()); break; case 9: message.averagePositionPriceFifo = MoneyValue.decode(reader, reader.uint32()); break; case 10: message.quantityLots = Quotation.decode(reader, reader.uint32()); break; case 21: message.blocked = reader.bool(); break; case 22: message.blockedLots = Quotation.decode(reader, reader.uint32()); break; case 24: message.positionUid = reader.string(); break; case 25: message.instrumentUid = reader.string(); break; case 26: message.varMargin = MoneyValue.decode(reader, reader.uint32()); break; case 27: message.expectedYieldFifo = Quotation.decode(reader, reader.uint32()); break; case 31: message.dailyYield = MoneyValue.decode(reader, reader.uint32()); break; case 32: message.ticker = reader.string(); break; case 33: message.classCode = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PortfolioPosition { return { figi: isSet(object.figi) ? String(object.figi) : '', instrumentType: isSet(object.instrumentType) ? String(object.instrumentType) : '', quantity: isSet(object.quantity) ? Quotation.fromJSON(object.quantity) : undefined, averagePositionPrice: isSet(object.averagePositionPrice) ? MoneyValue.fromJSON(object.averagePositionPrice) : undefined, expectedYield: isSet(object.expectedYield) ? Quotation.fromJSON(object.expectedYield) : undefined, currentNkd: isSet(object.currentNkd) ? MoneyValue.fromJSON(object.currentNkd) : undefined, averagePositionPricePt: isSet(object.averagePositionPricePt) ? Quotation.fromJSON(object.averagePositionPricePt) : undefined, currentPrice: isSet(object.currentPrice) ? MoneyValue.fromJSON(object.currentPrice) : undefined, averagePositionPriceFifo: isSet(object.averagePositionPriceFifo) ? MoneyValue.fromJSON(object.averagePositionPriceFifo) : undefined, quantityLots: isSet(object.quantityLots) ? Quotation.fromJSON(object.quantityLots) : undefined, blocked: isSet(object.blocked) ? Boolean(object.blocked) : false, blockedLots: isSet(object.blockedLots) ? Quotation.fromJSON(object.blockedLots) : undefined, positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', varMargin: isSet(object.varMargin) ? MoneyValue.fromJSON(object.varMargin) : undefined, expectedYieldFifo: isSet(object.expectedYieldFifo) ? Quotation.fromJSON(object.expectedYieldFifo) : undefined, dailyYield: isSet(object.dailyYield) ? MoneyValue.fromJSON(object.dailyYield) : undefined, ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', }; }, toJSON(message: PortfolioPosition): unknown { const obj: any = {}; message.figi !== undefined && (obj.figi = message.figi); message.instrumentType !== undefined && (obj.instrumentType = message.instrumentType); message.quantity !== undefined && (obj.quantity = message.quantity ? Quotation.toJSON(message.quantity) : undefined); message.averagePositionPrice !== undefined && (obj.averagePositionPrice = message.averagePositionPrice ? MoneyValue.toJSON(message.averagePositionPrice) : undefined); message.expectedYield !== undefined && (obj.expectedYield = message.expectedYield ? Quotation.toJSON(message.expectedYield) : undefined); message.currentNkd !== undefined && (obj.currentNkd = message.currentNkd ? MoneyValue.toJSON(message.currentNkd) : undefined); message.averagePositionPricePt !== undefined && (obj.averagePositionPricePt = message.averagePositionPricePt ? Quotation.toJSON(message.averagePositionPricePt) : undefined); message.currentPrice !== undefined && (obj.currentPrice = message.currentPrice ? MoneyValue.toJSON(message.currentPrice) : undefined); message.averagePositionPriceFifo !== undefined && (obj.averagePositionPriceFifo = message.averagePositionPriceFifo ? MoneyValue.toJSON(message.averagePositionPriceFifo) : undefined); message.quantityLots !== undefined && (obj.quantityLots = message.quantityLots ? Quotation.toJSON(message.quantityLots) : undefined); message.blocked !== undefined && (obj.blocked = message.blocked); message.blockedLots !== undefined && (obj.blockedLots = message.blockedLots ? Quotation.toJSON(message.blockedLots) : undefined); message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.varMargin !== undefined && (obj.varMargin = message.varMargin ? MoneyValue.toJSON(message.varMargin) : undefined); message.expectedYieldFifo !== undefined && (obj.expectedYieldFifo = message.expectedYieldFifo ? Quotation.toJSON(message.expectedYieldFifo) : undefined); message.dailyYield !== undefined && (obj.dailyYield = message.dailyYield ? MoneyValue.toJSON(message.dailyYield) : undefined); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); return obj; }, fromPartial(object: DeepPartial): PortfolioPosition { const message = createBasePortfolioPosition(); message.figi = object.figi ?? ''; message.instrumentType = object.instrumentType ?? ''; message.quantity = object.quantity !== undefined && object.quantity !== null ? Quotation.fromPartial(object.quantity) : undefined; message.averagePositionPrice = object.averagePositionPrice !== undefined && object.averagePositionPrice !== null ? MoneyValue.fromPartial(object.averagePositionPrice) : undefined; message.expectedYield = object.expectedYield !== undefined && object.expectedYield !== null ? Quotation.fromPartial(object.expectedYield) : undefined; message.currentNkd = object.currentNkd !== undefined && object.currentNkd !== null ? MoneyValue.fromPartial(object.currentNkd) : undefined; message.averagePositionPricePt = object.averagePositionPricePt !== undefined && object.averagePositionPricePt !== null ? Quotation.fromPartial(object.averagePositionPricePt) : undefined; message.currentPrice = object.currentPrice !== undefined && object.currentPrice !== null ? MoneyValue.fromPartial(object.currentPrice) : undefined; message.averagePositionPriceFifo = object.averagePositionPriceFifo !== undefined && object.averagePositionPriceFifo !== null ? MoneyValue.fromPartial(object.averagePositionPriceFifo) : undefined; message.quantityLots = object.quantityLots !== undefined && object.quantityLots !== null ? Quotation.fromPartial(object.quantityLots) : undefined; message.blocked = object.blocked ?? false; message.blockedLots = object.blockedLots !== undefined && object.blockedLots !== null ? Quotation.fromPartial(object.blockedLots) : undefined; message.positionUid = object.positionUid ?? ''; message.instrumentUid = object.instrumentUid ?? ''; message.varMargin = object.varMargin !== undefined && object.varMargin !== null ? MoneyValue.fromPartial(object.varMargin) : undefined; message.expectedYieldFifo = object.expectedYieldFifo !== undefined && object.expectedYieldFifo !== null ? Quotation.fromPartial(object.expectedYieldFifo) : undefined; message.dailyYield = object.dailyYield !== undefined && object.dailyYield !== null ? MoneyValue.fromPartial(object.dailyYield) : undefined; message.ticker = object.ticker ?? ''; message.classCode = object.classCode ?? ''; return message; }, }; function createBaseVirtualPortfolioPosition(): VirtualPortfolioPosition { return { positionUid: '', instrumentUid: '', figi: '', instrumentType: '', quantity: undefined, averagePositionPrice: undefined, expectedYield: undefined, expectedYieldFifo: undefined, expireDate: undefined, currentPrice: undefined, averagePositionPriceFifo: undefined, dailyYield: undefined, ticker: '', classCode: '', }; } export const VirtualPortfolioPosition = { encode(message: VirtualPortfolioPosition, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.positionUid !== '') { writer.uint32(10).string(message.positionUid); } if (message.instrumentUid !== '') { writer.uint32(18).string(message.instrumentUid); } if (message.figi !== '') { writer.uint32(26).string(message.figi); } if (message.instrumentType !== '') { writer.uint32(34).string(message.instrumentType); } if (message.quantity !== undefined) { Quotation.encode(message.quantity, writer.uint32(42).fork()).ldelim(); } if (message.averagePositionPrice !== undefined) { MoneyValue.encode(message.averagePositionPrice, writer.uint32(50).fork()).ldelim(); } if (message.expectedYield !== undefined) { Quotation.encode(message.expectedYield, writer.uint32(58).fork()).ldelim(); } if (message.expectedYieldFifo !== undefined) { Quotation.encode(message.expectedYieldFifo, writer.uint32(66).fork()).ldelim(); } if (message.expireDate !== undefined) { Timestamp.encode(toTimestamp(message.expireDate), writer.uint32(74).fork()).ldelim(); } if (message.currentPrice !== undefined) { MoneyValue.encode(message.currentPrice, writer.uint32(82).fork()).ldelim(); } if (message.averagePositionPriceFifo !== undefined) { MoneyValue.encode(message.averagePositionPriceFifo, writer.uint32(90).fork()).ldelim(); } if (message.dailyYield !== undefined) { MoneyValue.encode(message.dailyYield, writer.uint32(250).fork()).ldelim(); } if (message.ticker !== '') { writer.uint32(258).string(message.ticker); } if (message.classCode !== '') { writer.uint32(266).string(message.classCode); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): VirtualPortfolioPosition { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseVirtualPortfolioPosition(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.positionUid = reader.string(); break; case 2: message.instrumentUid = reader.string(); break; case 3: message.figi = reader.string(); break; case 4: message.instrumentType = reader.string(); break; case 5: message.quantity = Quotation.decode(reader, reader.uint32()); break; case 6: message.averagePositionPrice = MoneyValue.decode(reader, reader.uint32()); break; case 7: message.expectedYield = Quotation.decode(reader, reader.uint32()); break; case 8: message.expectedYieldFifo = Quotation.decode(reader, reader.uint32()); break; case 9: message.expireDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 10: message.currentPrice = MoneyValue.decode(reader, reader.uint32()); break; case 11: message.averagePositionPriceFifo = MoneyValue.decode(reader, reader.uint32()); break; case 31: message.dailyYield = MoneyValue.decode(reader, reader.uint32()); break; case 32: message.ticker = reader.string(); break; case 33: message.classCode = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): VirtualPortfolioPosition { return { positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', figi: isSet(object.figi) ? String(object.figi) : '', instrumentType: isSet(object.instrumentType) ? String(object.instrumentType) : '', quantity: isSet(object.quantity) ? Quotation.fromJSON(object.quantity) : undefined, averagePositionPrice: isSet(object.averagePositionPrice) ? MoneyValue.fromJSON(object.averagePositionPrice) : undefined, expectedYield: isSet(object.expectedYield) ? Quotation.fromJSON(object.expectedYield) : undefined, expectedYieldFifo: isSet(object.expectedYieldFifo) ? Quotation.fromJSON(object.expectedYieldFifo) : undefined, expireDate: isSet(object.expireDate) ? fromJsonTimestamp(object.expireDate) : undefined, currentPrice: isSet(object.currentPrice) ? MoneyValue.fromJSON(object.currentPrice) : undefined, averagePositionPriceFifo: isSet(object.averagePositionPriceFifo) ? MoneyValue.fromJSON(object.averagePositionPriceFifo) : undefined, dailyYield: isSet(object.dailyYield) ? MoneyValue.fromJSON(object.dailyYield) : undefined, ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', }; }, toJSON(message: VirtualPortfolioPosition): unknown { const obj: any = {}; message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.figi !== undefined && (obj.figi = message.figi); message.instrumentType !== undefined && (obj.instrumentType = message.instrumentType); message.quantity !== undefined && (obj.quantity = message.quantity ? Quotation.toJSON(message.quantity) : undefined); message.averagePositionPrice !== undefined && (obj.averagePositionPrice = message.averagePositionPrice ? MoneyValue.toJSON(message.averagePositionPrice) : undefined); message.expectedYield !== undefined && (obj.expectedYield = message.expectedYield ? Quotation.toJSON(message.expectedYield) : undefined); message.expectedYieldFifo !== undefined && (obj.expectedYieldFifo = message.expectedYieldFifo ? Quotation.toJSON(message.expectedYieldFifo) : undefined); message.expireDate !== undefined && (obj.expireDate = message.expireDate.toISOString()); message.currentPrice !== undefined && (obj.currentPrice = message.currentPrice ? MoneyValue.toJSON(message.currentPrice) : undefined); message.averagePositionPriceFifo !== undefined && (obj.averagePositionPriceFifo = message.averagePositionPriceFifo ? MoneyValue.toJSON(message.averagePositionPriceFifo) : undefined); message.dailyYield !== undefined && (obj.dailyYield = message.dailyYield ? MoneyValue.toJSON(message.dailyYield) : undefined); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); return obj; }, fromPartial(object: DeepPartial): VirtualPortfolioPosition { const message = createBaseVirtualPortfolioPosition(); message.positionUid = object.positionUid ?? ''; message.instrumentUid = object.instrumentUid ?? ''; message.figi = object.figi ?? ''; message.instrumentType = object.instrumentType ?? ''; message.quantity = object.quantity !== undefined && object.quantity !== null ? Quotation.fromPartial(object.quantity) : undefined; message.averagePositionPrice = object.averagePositionPrice !== undefined && object.averagePositionPrice !== null ? MoneyValue.fromPartial(object.averagePositionPrice) : undefined; message.expectedYield = object.expectedYield !== undefined && object.expectedYield !== null ? Quotation.fromPartial(object.expectedYield) : undefined; message.expectedYieldFifo = object.expectedYieldFifo !== undefined && object.expectedYieldFifo !== null ? Quotation.fromPartial(object.expectedYieldFifo) : undefined; message.expireDate = object.expireDate ?? undefined; message.currentPrice = object.currentPrice !== undefined && object.currentPrice !== null ? MoneyValue.fromPartial(object.currentPrice) : undefined; message.averagePositionPriceFifo = object.averagePositionPriceFifo !== undefined && object.averagePositionPriceFifo !== null ? MoneyValue.fromPartial(object.averagePositionPriceFifo) : undefined; message.dailyYield = object.dailyYield !== undefined && object.dailyYield !== null ? MoneyValue.fromPartial(object.dailyYield) : undefined; message.ticker = object.ticker ?? ''; message.classCode = object.classCode ?? ''; return message; }, }; function createBasePositionsSecurities(): PositionsSecurities { return { figi: '', blocked: 0, balance: 0, positionUid: '', instrumentUid: '', ticker: '', classCode: '', exchangeBlocked: false, instrumentType: '', }; } export const PositionsSecurities = { encode(message: PositionsSecurities, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.figi !== '') { writer.uint32(10).string(message.figi); } if (message.blocked !== 0) { writer.uint32(16).int64(message.blocked); } if (message.balance !== 0) { writer.uint32(24).int64(message.balance); } if (message.positionUid !== '') { writer.uint32(34).string(message.positionUid); } if (message.instrumentUid !== '') { writer.uint32(42).string(message.instrumentUid); } if (message.ticker !== '') { writer.uint32(50).string(message.ticker); } if (message.classCode !== '') { writer.uint32(58).string(message.classCode); } if (message.exchangeBlocked === true) { writer.uint32(88).bool(message.exchangeBlocked); } if (message.instrumentType !== '') { writer.uint32(130).string(message.instrumentType); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsSecurities { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsSecurities(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.figi = reader.string(); break; case 2: message.blocked = longToNumber(reader.int64() as Long); break; case 3: message.balance = longToNumber(reader.int64() as Long); break; case 4: message.positionUid = reader.string(); break; case 5: message.instrumentUid = reader.string(); break; case 6: message.ticker = reader.string(); break; case 7: message.classCode = reader.string(); break; case 11: message.exchangeBlocked = reader.bool(); break; case 16: message.instrumentType = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsSecurities { return { figi: isSet(object.figi) ? String(object.figi) : '', blocked: isSet(object.blocked) ? Number(object.blocked) : 0, balance: isSet(object.balance) ? Number(object.balance) : 0, positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', exchangeBlocked: isSet(object.exchangeBlocked) ? Boolean(object.exchangeBlocked) : false, instrumentType: isSet(object.instrumentType) ? String(object.instrumentType) : '', }; }, toJSON(message: PositionsSecurities): unknown { const obj: any = {}; message.figi !== undefined && (obj.figi = message.figi); message.blocked !== undefined && (obj.blocked = Math.round(message.blocked)); message.balance !== undefined && (obj.balance = Math.round(message.balance)); message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); message.exchangeBlocked !== undefined && (obj.exchangeBlocked = message.exchangeBlocked); message.instrumentType !== undefined && (obj.instrumentType = message.instrumentType); return obj; }, fromPartial(object: DeepPartial): PositionsSecurities { const message = createBasePositionsSecurities(); message.figi = object.figi ?? ''; message.blocked = object.blocked ?? 0; message.balance = object.balance ?? 0; message.positionUid = object.positionUid ?? ''; message.instrumentUid = object.instrumentUid ?? ''; message.ticker = object.ticker ?? ''; message.classCode = object.classCode ?? ''; message.exchangeBlocked = object.exchangeBlocked ?? false; message.instrumentType = object.instrumentType ?? ''; return message; }, }; function createBasePositionsFutures(): PositionsFutures { return { figi: '', blocked: 0, balance: 0, positionUid: '', instrumentUid: '', ticker: '', classCode: '' }; } export const PositionsFutures = { encode(message: PositionsFutures, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.figi !== '') { writer.uint32(10).string(message.figi); } if (message.blocked !== 0) { writer.uint32(16).int64(message.blocked); } if (message.balance !== 0) { writer.uint32(24).int64(message.balance); } if (message.positionUid !== '') { writer.uint32(34).string(message.positionUid); } if (message.instrumentUid !== '') { writer.uint32(42).string(message.instrumentUid); } if (message.ticker !== '') { writer.uint32(50).string(message.ticker); } if (message.classCode !== '') { writer.uint32(58).string(message.classCode); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsFutures { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsFutures(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.figi = reader.string(); break; case 2: message.blocked = longToNumber(reader.int64() as Long); break; case 3: message.balance = longToNumber(reader.int64() as Long); break; case 4: message.positionUid = reader.string(); break; case 5: message.instrumentUid = reader.string(); break; case 6: message.ticker = reader.string(); break; case 7: message.classCode = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsFutures { return { figi: isSet(object.figi) ? String(object.figi) : '', blocked: isSet(object.blocked) ? Number(object.blocked) : 0, balance: isSet(object.balance) ? Number(object.balance) : 0, positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', }; }, toJSON(message: PositionsFutures): unknown { const obj: any = {}; message.figi !== undefined && (obj.figi = message.figi); message.blocked !== undefined && (obj.blocked = Math.round(message.blocked)); message.balance !== undefined && (obj.balance = Math.round(message.balance)); message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); return obj; }, fromPartial(object: DeepPartial): PositionsFutures { const message = createBasePositionsFutures(); message.figi = object.figi ?? ''; message.blocked = object.blocked ?? 0; message.balance = object.balance ?? 0; message.positionUid = object.positionUid ?? ''; message.instrumentUid = object.instrumentUid ?? ''; message.ticker = object.ticker ?? ''; message.classCode = object.classCode ?? ''; return message; }, }; function createBasePositionsOptions(): PositionsOptions { return { positionUid: '', instrumentUid: '', ticker: '', classCode: '', blocked: 0, balance: 0 }; } export const PositionsOptions = { encode(message: PositionsOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.positionUid !== '') { writer.uint32(10).string(message.positionUid); } if (message.instrumentUid !== '') { writer.uint32(18).string(message.instrumentUid); } if (message.ticker !== '') { writer.uint32(26).string(message.ticker); } if (message.classCode !== '') { writer.uint32(34).string(message.classCode); } if (message.blocked !== 0) { writer.uint32(88).int64(message.blocked); } if (message.balance !== 0) { writer.uint32(168).int64(message.balance); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsOptions { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsOptions(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.positionUid = reader.string(); break; case 2: message.instrumentUid = reader.string(); break; case 3: message.ticker = reader.string(); break; case 4: message.classCode = reader.string(); break; case 11: message.blocked = longToNumber(reader.int64() as Long); break; case 21: message.balance = longToNumber(reader.int64() as Long); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsOptions { return { positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', blocked: isSet(object.blocked) ? Number(object.blocked) : 0, balance: isSet(object.balance) ? Number(object.balance) : 0, }; }, toJSON(message: PositionsOptions): unknown { const obj: any = {}; message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); message.blocked !== undefined && (obj.blocked = Math.round(message.blocked)); message.balance !== undefined && (obj.balance = Math.round(message.balance)); return obj; }, fromPartial(object: DeepPartial): PositionsOptions { const message = createBasePositionsOptions(); message.positionUid = object.positionUid ?? ''; message.instrumentUid = object.instrumentUid ?? ''; message.ticker = object.ticker ?? ''; message.classCode = object.classCode ?? ''; message.blocked = object.blocked ?? 0; message.balance = object.balance ?? 0; return message; }, }; function createBaseBrokerReportRequest(): BrokerReportRequest { return { generateBrokerReportRequest: undefined, getBrokerReportRequest: undefined }; } export const BrokerReportRequest = { encode(message: BrokerReportRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.generateBrokerReportRequest !== undefined) { GenerateBrokerReportRequest.encode(message.generateBrokerReportRequest, writer.uint32(10).fork()).ldelim(); } if (message.getBrokerReportRequest !== undefined) { GetBrokerReportRequest.encode(message.getBrokerReportRequest, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): BrokerReportRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBrokerReportRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.generateBrokerReportRequest = GenerateBrokerReportRequest.decode(reader, reader.uint32()); break; case 2: message.getBrokerReportRequest = GetBrokerReportRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): BrokerReportRequest { return { generateBrokerReportRequest: isSet(object.generateBrokerReportRequest) ? GenerateBrokerReportRequest.fromJSON(object.generateBrokerReportRequest) : undefined, getBrokerReportRequest: isSet(object.getBrokerReportRequest) ? GetBrokerReportRequest.fromJSON(object.getBrokerReportRequest) : undefined, }; }, toJSON(message: BrokerReportRequest): unknown { const obj: any = {}; message.generateBrokerReportRequest !== undefined && (obj.generateBrokerReportRequest = message.generateBrokerReportRequest ? GenerateBrokerReportRequest.toJSON(message.generateBrokerReportRequest) : undefined); message.getBrokerReportRequest !== undefined && (obj.getBrokerReportRequest = message.getBrokerReportRequest ? GetBrokerReportRequest.toJSON(message.getBrokerReportRequest) : undefined); return obj; }, fromPartial(object: DeepPartial): BrokerReportRequest { const message = createBaseBrokerReportRequest(); message.generateBrokerReportRequest = object.generateBrokerReportRequest !== undefined && object.generateBrokerReportRequest !== null ? GenerateBrokerReportRequest.fromPartial(object.generateBrokerReportRequest) : undefined; message.getBrokerReportRequest = object.getBrokerReportRequest !== undefined && object.getBrokerReportRequest !== null ? GetBrokerReportRequest.fromPartial(object.getBrokerReportRequest) : undefined; return message; }, }; function createBaseBrokerReportResponse(): BrokerReportResponse { return { generateBrokerReportResponse: undefined, getBrokerReportResponse: undefined }; } export const BrokerReportResponse = { encode(message: BrokerReportResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.generateBrokerReportResponse !== undefined) { GenerateBrokerReportResponse.encode(message.generateBrokerReportResponse, writer.uint32(10).fork()).ldelim(); } if (message.getBrokerReportResponse !== undefined) { GetBrokerReportResponse.encode(message.getBrokerReportResponse, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): BrokerReportResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBrokerReportResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.generateBrokerReportResponse = GenerateBrokerReportResponse.decode(reader, reader.uint32()); break; case 2: message.getBrokerReportResponse = GetBrokerReportResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): BrokerReportResponse { return { generateBrokerReportResponse: isSet(object.generateBrokerReportResponse) ? GenerateBrokerReportResponse.fromJSON(object.generateBrokerReportResponse) : undefined, getBrokerReportResponse: isSet(object.getBrokerReportResponse) ? GetBrokerReportResponse.fromJSON(object.getBrokerReportResponse) : undefined, }; }, toJSON(message: BrokerReportResponse): unknown { const obj: any = {}; message.generateBrokerReportResponse !== undefined && (obj.generateBrokerReportResponse = message.generateBrokerReportResponse ? GenerateBrokerReportResponse.toJSON(message.generateBrokerReportResponse) : undefined); message.getBrokerReportResponse !== undefined && (obj.getBrokerReportResponse = message.getBrokerReportResponse ? GetBrokerReportResponse.toJSON(message.getBrokerReportResponse) : undefined); return obj; }, fromPartial(object: DeepPartial): BrokerReportResponse { const message = createBaseBrokerReportResponse(); message.generateBrokerReportResponse = object.generateBrokerReportResponse !== undefined && object.generateBrokerReportResponse !== null ? GenerateBrokerReportResponse.fromPartial(object.generateBrokerReportResponse) : undefined; message.getBrokerReportResponse = object.getBrokerReportResponse !== undefined && object.getBrokerReportResponse !== null ? GetBrokerReportResponse.fromPartial(object.getBrokerReportResponse) : undefined; return message; }, }; function createBaseGenerateBrokerReportRequest(): GenerateBrokerReportRequest { return { accountId: '', from: undefined, to: undefined }; } export const GenerateBrokerReportRequest = { encode(message: GenerateBrokerReportRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } if (message.from !== undefined) { Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim(); } if (message.to !== undefined) { Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GenerateBrokerReportRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGenerateBrokerReportRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 2: message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GenerateBrokerReportRequest { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined, to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined, }; }, toJSON(message: GenerateBrokerReportRequest): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); message.from !== undefined && (obj.from = message.from.toISOString()); message.to !== undefined && (obj.to = message.to.toISOString()); return obj; }, fromPartial(object: DeepPartial): GenerateBrokerReportRequest { const message = createBaseGenerateBrokerReportRequest(); message.accountId = object.accountId ?? ''; message.from = object.from ?? undefined; message.to = object.to ?? undefined; return message; }, }; function createBaseGenerateBrokerReportResponse(): GenerateBrokerReportResponse { return { taskId: '' }; } export const GenerateBrokerReportResponse = { encode(message: GenerateBrokerReportResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.taskId !== '') { writer.uint32(10).string(message.taskId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GenerateBrokerReportResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGenerateBrokerReportResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.taskId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GenerateBrokerReportResponse { return { taskId: isSet(object.taskId) ? String(object.taskId) : '', }; }, toJSON(message: GenerateBrokerReportResponse): unknown { const obj: any = {}; message.taskId !== undefined && (obj.taskId = message.taskId); return obj; }, fromPartial(object: DeepPartial): GenerateBrokerReportResponse { const message = createBaseGenerateBrokerReportResponse(); message.taskId = object.taskId ?? ''; return message; }, }; function createBaseGetBrokerReportRequest(): GetBrokerReportRequest { return { taskId: '', page: undefined }; } export const GetBrokerReportRequest = { encode(message: GetBrokerReportRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.taskId !== '') { writer.uint32(10).string(message.taskId); } if (message.page !== undefined) { writer.uint32(16).int32(message.page); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBrokerReportRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBrokerReportRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.taskId = reader.string(); break; case 2: message.page = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBrokerReportRequest { return { taskId: isSet(object.taskId) ? String(object.taskId) : '', page: isSet(object.page) ? Number(object.page) : undefined, }; }, toJSON(message: GetBrokerReportRequest): unknown { const obj: any = {}; message.taskId !== undefined && (obj.taskId = message.taskId); message.page !== undefined && (obj.page = Math.round(message.page)); return obj; }, fromPartial(object: DeepPartial): GetBrokerReportRequest { const message = createBaseGetBrokerReportRequest(); message.taskId = object.taskId ?? ''; message.page = object.page ?? undefined; return message; }, }; function createBaseGetBrokerReportResponse(): GetBrokerReportResponse { return { brokerReport: [], itemsCount: 0, pagesCount: 0, page: 0, taskId: '' }; } export const GetBrokerReportResponse = { encode(message: GetBrokerReportResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.brokerReport) { BrokerReport.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.itemsCount !== 0) { writer.uint32(16).int32(message.itemsCount); } if (message.pagesCount !== 0) { writer.uint32(24).int32(message.pagesCount); } if (message.page !== 0) { writer.uint32(32).int32(message.page); } if (message.taskId !== '') { writer.uint32(42).string(message.taskId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBrokerReportResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBrokerReportResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.brokerReport.push(BrokerReport.decode(reader, reader.uint32())); break; case 2: message.itemsCount = reader.int32(); break; case 3: message.pagesCount = reader.int32(); break; case 4: message.page = reader.int32(); break; case 5: message.taskId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBrokerReportResponse { return { brokerReport: Array.isArray(object?.brokerReport) ? object.brokerReport.map((e: any) => BrokerReport.fromJSON(e)) : [], itemsCount: isSet(object.itemsCount) ? Number(object.itemsCount) : 0, pagesCount: isSet(object.pagesCount) ? Number(object.pagesCount) : 0, page: isSet(object.page) ? Number(object.page) : 0, taskId: isSet(object.taskId) ? String(object.taskId) : '', }; }, toJSON(message: GetBrokerReportResponse): unknown { const obj: any = {}; if (message.brokerReport) { obj.brokerReport = message.brokerReport.map(e => (e ? BrokerReport.toJSON(e) : undefined)); } else { obj.brokerReport = []; } message.itemsCount !== undefined && (obj.itemsCount = Math.round(message.itemsCount)); message.pagesCount !== undefined && (obj.pagesCount = Math.round(message.pagesCount)); message.page !== undefined && (obj.page = Math.round(message.page)); message.taskId !== undefined && (obj.taskId = message.taskId); return obj; }, fromPartial(object: DeepPartial): GetBrokerReportResponse { const message = createBaseGetBrokerReportResponse(); message.brokerReport = object.brokerReport?.map(e => BrokerReport.fromPartial(e)) || []; message.itemsCount = object.itemsCount ?? 0; message.pagesCount = object.pagesCount ?? 0; message.page = object.page ?? 0; message.taskId = object.taskId ?? ''; return message; }, }; function createBaseBrokerReport(): BrokerReport { return { tradeId: '', orderId: '', figi: '', executeSign: '', tradeDatetime: undefined, exchange: '', classCode: '', direction: '', name: '', ticker: '', price: undefined, quantity: 0, orderAmount: undefined, aciValue: undefined, totalOrderAmount: undefined, brokerCommission: undefined, exchangeCommission: undefined, exchangeClearingCommission: undefined, repoRate: undefined, party: '', clearValueDate: undefined, secValueDate: undefined, brokerStatus: '', separateAgreementType: '', separateAgreementNumber: '', separateAgreementDate: '', deliveryType: '', }; } export const BrokerReport = { encode(message: BrokerReport, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.tradeId !== '') { writer.uint32(10).string(message.tradeId); } if (message.orderId !== '') { writer.uint32(18).string(message.orderId); } if (message.figi !== '') { writer.uint32(26).string(message.figi); } if (message.executeSign !== '') { writer.uint32(34).string(message.executeSign); } if (message.tradeDatetime !== undefined) { Timestamp.encode(toTimestamp(message.tradeDatetime), writer.uint32(42).fork()).ldelim(); } if (message.exchange !== '') { writer.uint32(50).string(message.exchange); } if (message.classCode !== '') { writer.uint32(58).string(message.classCode); } if (message.direction !== '') { writer.uint32(66).string(message.direction); } if (message.name !== '') { writer.uint32(74).string(message.name); } if (message.ticker !== '') { writer.uint32(82).string(message.ticker); } if (message.price !== undefined) { MoneyValue.encode(message.price, writer.uint32(90).fork()).ldelim(); } if (message.quantity !== 0) { writer.uint32(96).int64(message.quantity); } if (message.orderAmount !== undefined) { MoneyValue.encode(message.orderAmount, writer.uint32(106).fork()).ldelim(); } if (message.aciValue !== undefined) { Quotation.encode(message.aciValue, writer.uint32(114).fork()).ldelim(); } if (message.totalOrderAmount !== undefined) { MoneyValue.encode(message.totalOrderAmount, writer.uint32(122).fork()).ldelim(); } if (message.brokerCommission !== undefined) { MoneyValue.encode(message.brokerCommission, writer.uint32(130).fork()).ldelim(); } if (message.exchangeCommission !== undefined) { MoneyValue.encode(message.exchangeCommission, writer.uint32(138).fork()).ldelim(); } if (message.exchangeClearingCommission !== undefined) { MoneyValue.encode(message.exchangeClearingCommission, writer.uint32(146).fork()).ldelim(); } if (message.repoRate !== undefined) { Quotation.encode(message.repoRate, writer.uint32(154).fork()).ldelim(); } if (message.party !== '') { writer.uint32(162).string(message.party); } if (message.clearValueDate !== undefined) { Timestamp.encode(toTimestamp(message.clearValueDate), writer.uint32(170).fork()).ldelim(); } if (message.secValueDate !== undefined) { Timestamp.encode(toTimestamp(message.secValueDate), writer.uint32(178).fork()).ldelim(); } if (message.brokerStatus !== '') { writer.uint32(186).string(message.brokerStatus); } if (message.separateAgreementType !== '') { writer.uint32(194).string(message.separateAgreementType); } if (message.separateAgreementNumber !== '') { writer.uint32(202).string(message.separateAgreementNumber); } if (message.separateAgreementDate !== '') { writer.uint32(210).string(message.separateAgreementDate); } if (message.deliveryType !== '') { writer.uint32(218).string(message.deliveryType); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): BrokerReport { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBrokerReport(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.tradeId = reader.string(); break; case 2: message.orderId = reader.string(); break; case 3: message.figi = reader.string(); break; case 4: message.executeSign = reader.string(); break; case 5: message.tradeDatetime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 6: message.exchange = reader.string(); break; case 7: message.classCode = reader.string(); break; case 8: message.direction = reader.string(); break; case 9: message.name = reader.string(); break; case 10: message.ticker = reader.string(); break; case 11: message.price = MoneyValue.decode(reader, reader.uint32()); break; case 12: message.quantity = longToNumber(reader.int64() as Long); break; case 13: message.orderAmount = MoneyValue.decode(reader, reader.uint32()); break; case 14: message.aciValue = Quotation.decode(reader, reader.uint32()); break; case 15: message.totalOrderAmount = MoneyValue.decode(reader, reader.uint32()); break; case 16: message.brokerCommission = MoneyValue.decode(reader, reader.uint32()); break; case 17: message.exchangeCommission = MoneyValue.decode(reader, reader.uint32()); break; case 18: message.exchangeClearingCommission = MoneyValue.decode(reader, reader.uint32()); break; case 19: message.repoRate = Quotation.decode(reader, reader.uint32()); break; case 20: message.party = reader.string(); break; case 21: message.clearValueDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 22: message.secValueDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 23: message.brokerStatus = reader.string(); break; case 24: message.separateAgreementType = reader.string(); break; case 25: message.separateAgreementNumber = reader.string(); break; case 26: message.separateAgreementDate = reader.string(); break; case 27: message.deliveryType = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): BrokerReport { return { tradeId: isSet(object.tradeId) ? String(object.tradeId) : '', orderId: isSet(object.orderId) ? String(object.orderId) : '', figi: isSet(object.figi) ? String(object.figi) : '', executeSign: isSet(object.executeSign) ? String(object.executeSign) : '', tradeDatetime: isSet(object.tradeDatetime) ? fromJsonTimestamp(object.tradeDatetime) : undefined, exchange: isSet(object.exchange) ? String(object.exchange) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', direction: isSet(object.direction) ? String(object.direction) : '', name: isSet(object.name) ? String(object.name) : '', ticker: isSet(object.ticker) ? String(object.ticker) : '', price: isSet(object.price) ? MoneyValue.fromJSON(object.price) : undefined, quantity: isSet(object.quantity) ? Number(object.quantity) : 0, orderAmount: isSet(object.orderAmount) ? MoneyValue.fromJSON(object.orderAmount) : undefined, aciValue: isSet(object.aciValue) ? Quotation.fromJSON(object.aciValue) : undefined, totalOrderAmount: isSet(object.totalOrderAmount) ? MoneyValue.fromJSON(object.totalOrderAmount) : undefined, brokerCommission: isSet(object.brokerCommission) ? MoneyValue.fromJSON(object.brokerCommission) : undefined, exchangeCommission: isSet(object.exchangeCommission) ? MoneyValue.fromJSON(object.exchangeCommission) : undefined, exchangeClearingCommission: isSet(object.exchangeClearingCommission) ? MoneyValue.fromJSON(object.exchangeClearingCommission) : undefined, repoRate: isSet(object.repoRate) ? Quotation.fromJSON(object.repoRate) : undefined, party: isSet(object.party) ? String(object.party) : '', clearValueDate: isSet(object.clearValueDate) ? fromJsonTimestamp(object.clearValueDate) : undefined, secValueDate: isSet(object.secValueDate) ? fromJsonTimestamp(object.secValueDate) : undefined, brokerStatus: isSet(object.brokerStatus) ? String(object.brokerStatus) : '', separateAgreementType: isSet(object.separateAgreementType) ? String(object.separateAgreementType) : '', separateAgreementNumber: isSet(object.separateAgreementNumber) ? String(object.separateAgreementNumber) : '', separateAgreementDate: isSet(object.separateAgreementDate) ? String(object.separateAgreementDate) : '', deliveryType: isSet(object.deliveryType) ? String(object.deliveryType) : '', }; }, toJSON(message: BrokerReport): unknown { const obj: any = {}; message.tradeId !== undefined && (obj.tradeId = message.tradeId); message.orderId !== undefined && (obj.orderId = message.orderId); message.figi !== undefined && (obj.figi = message.figi); message.executeSign !== undefined && (obj.executeSign = message.executeSign); message.tradeDatetime !== undefined && (obj.tradeDatetime = message.tradeDatetime.toISOString()); message.exchange !== undefined && (obj.exchange = message.exchange); message.classCode !== undefined && (obj.classCode = message.classCode); message.direction !== undefined && (obj.direction = message.direction); message.name !== undefined && (obj.name = message.name); message.ticker !== undefined && (obj.ticker = message.ticker); message.price !== undefined && (obj.price = message.price ? MoneyValue.toJSON(message.price) : undefined); message.quantity !== undefined && (obj.quantity = Math.round(message.quantity)); message.orderAmount !== undefined && (obj.orderAmount = message.orderAmount ? MoneyValue.toJSON(message.orderAmount) : undefined); message.aciValue !== undefined && (obj.aciValue = message.aciValue ? Quotation.toJSON(message.aciValue) : undefined); message.totalOrderAmount !== undefined && (obj.totalOrderAmount = message.totalOrderAmount ? MoneyValue.toJSON(message.totalOrderAmount) : undefined); message.brokerCommission !== undefined && (obj.brokerCommission = message.brokerCommission ? MoneyValue.toJSON(message.brokerCommission) : undefined); message.exchangeCommission !== undefined && (obj.exchangeCommission = message.exchangeCommission ? MoneyValue.toJSON(message.exchangeCommission) : undefined); message.exchangeClearingCommission !== undefined && (obj.exchangeClearingCommission = message.exchangeClearingCommission ? MoneyValue.toJSON(message.exchangeClearingCommission) : undefined); message.repoRate !== undefined && (obj.repoRate = message.repoRate ? Quotation.toJSON(message.repoRate) : undefined); message.party !== undefined && (obj.party = message.party); message.clearValueDate !== undefined && (obj.clearValueDate = message.clearValueDate.toISOString()); message.secValueDate !== undefined && (obj.secValueDate = message.secValueDate.toISOString()); message.brokerStatus !== undefined && (obj.brokerStatus = message.brokerStatus); message.separateAgreementType !== undefined && (obj.separateAgreementType = message.separateAgreementType); message.separateAgreementNumber !== undefined && (obj.separateAgreementNumber = message.separateAgreementNumber); message.separateAgreementDate !== undefined && (obj.separateAgreementDate = message.separateAgreementDate); message.deliveryType !== undefined && (obj.deliveryType = message.deliveryType); return obj; }, fromPartial(object: DeepPartial): BrokerReport { const message = createBaseBrokerReport(); message.tradeId = object.tradeId ?? ''; message.orderId = object.orderId ?? ''; message.figi = object.figi ?? ''; message.executeSign = object.executeSign ?? ''; message.tradeDatetime = object.tradeDatetime ?? undefined; message.exchange = object.exchange ?? ''; message.classCode = object.classCode ?? ''; message.direction = object.direction ?? ''; message.name = object.name ?? ''; message.ticker = object.ticker ?? ''; message.price = object.price !== undefined && object.price !== null ? MoneyValue.fromPartial(object.price) : undefined; message.quantity = object.quantity ?? 0; message.orderAmount = object.orderAmount !== undefined && object.orderAmount !== null ? MoneyValue.fromPartial(object.orderAmount) : undefined; message.aciValue = object.aciValue !== undefined && object.aciValue !== null ? Quotation.fromPartial(object.aciValue) : undefined; message.totalOrderAmount = object.totalOrderAmount !== undefined && object.totalOrderAmount !== null ? MoneyValue.fromPartial(object.totalOrderAmount) : undefined; message.brokerCommission = object.brokerCommission !== undefined && object.brokerCommission !== null ? MoneyValue.fromPartial(object.brokerCommission) : undefined; message.exchangeCommission = object.exchangeCommission !== undefined && object.exchangeCommission !== null ? MoneyValue.fromPartial(object.exchangeCommission) : undefined; message.exchangeClearingCommission = object.exchangeClearingCommission !== undefined && object.exchangeClearingCommission !== null ? MoneyValue.fromPartial(object.exchangeClearingCommission) : undefined; message.repoRate = object.repoRate !== undefined && object.repoRate !== null ? Quotation.fromPartial(object.repoRate) : undefined; message.party = object.party ?? ''; message.clearValueDate = object.clearValueDate ?? undefined; message.secValueDate = object.secValueDate ?? undefined; message.brokerStatus = object.brokerStatus ?? ''; message.separateAgreementType = object.separateAgreementType ?? ''; message.separateAgreementNumber = object.separateAgreementNumber ?? ''; message.separateAgreementDate = object.separateAgreementDate ?? ''; message.deliveryType = object.deliveryType ?? ''; return message; }, }; function createBaseGetDividendsForeignIssuerRequest(): GetDividendsForeignIssuerRequest { return { generateDivForeignIssuerReport: undefined, getDivForeignIssuerReport: undefined }; } export const GetDividendsForeignIssuerRequest = { encode(message: GetDividendsForeignIssuerRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.generateDivForeignIssuerReport !== undefined) { GenerateDividendsForeignIssuerReportRequest.encode( message.generateDivForeignIssuerReport, writer.uint32(10).fork(), ).ldelim(); } if (message.getDivForeignIssuerReport !== undefined) { GetDividendsForeignIssuerReportRequest.encode( message.getDivForeignIssuerReport, writer.uint32(18).fork(), ).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetDividendsForeignIssuerRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetDividendsForeignIssuerRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.generateDivForeignIssuerReport = GenerateDividendsForeignIssuerReportRequest.decode( reader, reader.uint32(), ); break; case 2: message.getDivForeignIssuerReport = GetDividendsForeignIssuerReportRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetDividendsForeignIssuerRequest { return { generateDivForeignIssuerReport: isSet(object.generateDivForeignIssuerReport) ? GenerateDividendsForeignIssuerReportRequest.fromJSON(object.generateDivForeignIssuerReport) : undefined, getDivForeignIssuerReport: isSet(object.getDivForeignIssuerReport) ? GetDividendsForeignIssuerReportRequest.fromJSON(object.getDivForeignIssuerReport) : undefined, }; }, toJSON(message: GetDividendsForeignIssuerRequest): unknown { const obj: any = {}; message.generateDivForeignIssuerReport !== undefined && (obj.generateDivForeignIssuerReport = message.generateDivForeignIssuerReport ? GenerateDividendsForeignIssuerReportRequest.toJSON(message.generateDivForeignIssuerReport) : undefined); message.getDivForeignIssuerReport !== undefined && (obj.getDivForeignIssuerReport = message.getDivForeignIssuerReport ? GetDividendsForeignIssuerReportRequest.toJSON(message.getDivForeignIssuerReport) : undefined); return obj; }, fromPartial(object: DeepPartial): GetDividendsForeignIssuerRequest { const message = createBaseGetDividendsForeignIssuerRequest(); message.generateDivForeignIssuerReport = object.generateDivForeignIssuerReport !== undefined && object.generateDivForeignIssuerReport !== null ? GenerateDividendsForeignIssuerReportRequest.fromPartial(object.generateDivForeignIssuerReport) : undefined; message.getDivForeignIssuerReport = object.getDivForeignIssuerReport !== undefined && object.getDivForeignIssuerReport !== null ? GetDividendsForeignIssuerReportRequest.fromPartial(object.getDivForeignIssuerReport) : undefined; return message; }, }; function createBaseGetDividendsForeignIssuerResponse(): GetDividendsForeignIssuerResponse { return { generateDivForeignIssuerReportResponse: undefined, divForeignIssuerReport: undefined }; } export const GetDividendsForeignIssuerResponse = { encode(message: GetDividendsForeignIssuerResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.generateDivForeignIssuerReportResponse !== undefined) { GenerateDividendsForeignIssuerReportResponse.encode( message.generateDivForeignIssuerReportResponse, writer.uint32(10).fork(), ).ldelim(); } if (message.divForeignIssuerReport !== undefined) { GetDividendsForeignIssuerReportResponse.encode(message.divForeignIssuerReport, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetDividendsForeignIssuerResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetDividendsForeignIssuerResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.generateDivForeignIssuerReportResponse = GenerateDividendsForeignIssuerReportResponse.decode( reader, reader.uint32(), ); break; case 2: message.divForeignIssuerReport = GetDividendsForeignIssuerReportResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetDividendsForeignIssuerResponse { return { generateDivForeignIssuerReportResponse: isSet(object.generateDivForeignIssuerReportResponse) ? GenerateDividendsForeignIssuerReportResponse.fromJSON(object.generateDivForeignIssuerReportResponse) : undefined, divForeignIssuerReport: isSet(object.divForeignIssuerReport) ? GetDividendsForeignIssuerReportResponse.fromJSON(object.divForeignIssuerReport) : undefined, }; }, toJSON(message: GetDividendsForeignIssuerResponse): unknown { const obj: any = {}; message.generateDivForeignIssuerReportResponse !== undefined && (obj.generateDivForeignIssuerReportResponse = message.generateDivForeignIssuerReportResponse ? GenerateDividendsForeignIssuerReportResponse.toJSON(message.generateDivForeignIssuerReportResponse) : undefined); message.divForeignIssuerReport !== undefined && (obj.divForeignIssuerReport = message.divForeignIssuerReport ? GetDividendsForeignIssuerReportResponse.toJSON(message.divForeignIssuerReport) : undefined); return obj; }, fromPartial(object: DeepPartial): GetDividendsForeignIssuerResponse { const message = createBaseGetDividendsForeignIssuerResponse(); message.generateDivForeignIssuerReportResponse = object.generateDivForeignIssuerReportResponse !== undefined && object.generateDivForeignIssuerReportResponse !== null ? GenerateDividendsForeignIssuerReportResponse.fromPartial(object.generateDivForeignIssuerReportResponse) : undefined; message.divForeignIssuerReport = object.divForeignIssuerReport !== undefined && object.divForeignIssuerReport !== null ? GetDividendsForeignIssuerReportResponse.fromPartial(object.divForeignIssuerReport) : undefined; return message; }, }; function createBaseGenerateDividendsForeignIssuerReportRequest(): GenerateDividendsForeignIssuerReportRequest { return { accountId: '', from: undefined, to: undefined }; } export const GenerateDividendsForeignIssuerReportRequest = { encode(message: GenerateDividendsForeignIssuerReportRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } if (message.from !== undefined) { Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim(); } if (message.to !== undefined) { Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GenerateDividendsForeignIssuerReportRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGenerateDividendsForeignIssuerReportRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 2: message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GenerateDividendsForeignIssuerReportRequest { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined, to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined, }; }, toJSON(message: GenerateDividendsForeignIssuerReportRequest): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); message.from !== undefined && (obj.from = message.from.toISOString()); message.to !== undefined && (obj.to = message.to.toISOString()); return obj; }, fromPartial( object: DeepPartial, ): GenerateDividendsForeignIssuerReportRequest { const message = createBaseGenerateDividendsForeignIssuerReportRequest(); message.accountId = object.accountId ?? ''; message.from = object.from ?? undefined; message.to = object.to ?? undefined; return message; }, }; function createBaseGetDividendsForeignIssuerReportRequest(): GetDividendsForeignIssuerReportRequest { return { taskId: '', page: undefined }; } export const GetDividendsForeignIssuerReportRequest = { encode(message: GetDividendsForeignIssuerReportRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.taskId !== '') { writer.uint32(10).string(message.taskId); } if (message.page !== undefined) { writer.uint32(16).int32(message.page); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetDividendsForeignIssuerReportRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetDividendsForeignIssuerReportRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.taskId = reader.string(); break; case 2: message.page = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetDividendsForeignIssuerReportRequest { return { taskId: isSet(object.taskId) ? String(object.taskId) : '', page: isSet(object.page) ? Number(object.page) : undefined, }; }, toJSON(message: GetDividendsForeignIssuerReportRequest): unknown { const obj: any = {}; message.taskId !== undefined && (obj.taskId = message.taskId); message.page !== undefined && (obj.page = Math.round(message.page)); return obj; }, fromPartial(object: DeepPartial): GetDividendsForeignIssuerReportRequest { const message = createBaseGetDividendsForeignIssuerReportRequest(); message.taskId = object.taskId ?? ''; message.page = object.page ?? undefined; return message; }, }; function createBaseGenerateDividendsForeignIssuerReportResponse(): GenerateDividendsForeignIssuerReportResponse { return { taskId: '' }; } export const GenerateDividendsForeignIssuerReportResponse = { encode(message: GenerateDividendsForeignIssuerReportResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.taskId !== '') { writer.uint32(10).string(message.taskId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GenerateDividendsForeignIssuerReportResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGenerateDividendsForeignIssuerReportResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.taskId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GenerateDividendsForeignIssuerReportResponse { return { taskId: isSet(object.taskId) ? String(object.taskId) : '', }; }, toJSON(message: GenerateDividendsForeignIssuerReportResponse): unknown { const obj: any = {}; message.taskId !== undefined && (obj.taskId = message.taskId); return obj; }, fromPartial( object: DeepPartial, ): GenerateDividendsForeignIssuerReportResponse { const message = createBaseGenerateDividendsForeignIssuerReportResponse(); message.taskId = object.taskId ?? ''; return message; }, }; function createBaseGetDividendsForeignIssuerReportResponse(): GetDividendsForeignIssuerReportResponse { return { dividendsForeignIssuerReport: [], itemsCount: 0, pagesCount: 0, page: 0 }; } export const GetDividendsForeignIssuerReportResponse = { encode(message: GetDividendsForeignIssuerReportResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.dividendsForeignIssuerReport) { DividendsForeignIssuerReport.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.itemsCount !== 0) { writer.uint32(16).int32(message.itemsCount); } if (message.pagesCount !== 0) { writer.uint32(24).int32(message.pagesCount); } if (message.page !== 0) { writer.uint32(32).int32(message.page); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetDividendsForeignIssuerReportResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetDividendsForeignIssuerReportResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.dividendsForeignIssuerReport.push(DividendsForeignIssuerReport.decode(reader, reader.uint32())); break; case 2: message.itemsCount = reader.int32(); break; case 3: message.pagesCount = reader.int32(); break; case 4: message.page = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetDividendsForeignIssuerReportResponse { return { dividendsForeignIssuerReport: Array.isArray(object?.dividendsForeignIssuerReport) ? object.dividendsForeignIssuerReport.map((e: any) => DividendsForeignIssuerReport.fromJSON(e)) : [], itemsCount: isSet(object.itemsCount) ? Number(object.itemsCount) : 0, pagesCount: isSet(object.pagesCount) ? Number(object.pagesCount) : 0, page: isSet(object.page) ? Number(object.page) : 0, }; }, toJSON(message: GetDividendsForeignIssuerReportResponse): unknown { const obj: any = {}; if (message.dividendsForeignIssuerReport) { obj.dividendsForeignIssuerReport = message.dividendsForeignIssuerReport.map(e => e ? DividendsForeignIssuerReport.toJSON(e) : undefined, ); } else { obj.dividendsForeignIssuerReport = []; } message.itemsCount !== undefined && (obj.itemsCount = Math.round(message.itemsCount)); message.pagesCount !== undefined && (obj.pagesCount = Math.round(message.pagesCount)); message.page !== undefined && (obj.page = Math.round(message.page)); return obj; }, fromPartial(object: DeepPartial): GetDividendsForeignIssuerReportResponse { const message = createBaseGetDividendsForeignIssuerReportResponse(); message.dividendsForeignIssuerReport = object.dividendsForeignIssuerReport?.map(e => DividendsForeignIssuerReport.fromPartial(e)) || []; message.itemsCount = object.itemsCount ?? 0; message.pagesCount = object.pagesCount ?? 0; message.page = object.page ?? 0; return message; }, }; function createBaseDividendsForeignIssuerReport(): DividendsForeignIssuerReport { return { recordDate: undefined, paymentDate: undefined, securityName: '', isin: '', issuerCountry: '', quantity: 0, dividend: undefined, externalCommission: undefined, dividendGross: undefined, tax: undefined, dividendAmount: undefined, currency: '', }; } export const DividendsForeignIssuerReport = { encode(message: DividendsForeignIssuerReport, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.recordDate !== undefined) { Timestamp.encode(toTimestamp(message.recordDate), writer.uint32(10).fork()).ldelim(); } if (message.paymentDate !== undefined) { Timestamp.encode(toTimestamp(message.paymentDate), writer.uint32(18).fork()).ldelim(); } if (message.securityName !== '') { writer.uint32(26).string(message.securityName); } if (message.isin !== '') { writer.uint32(34).string(message.isin); } if (message.issuerCountry !== '') { writer.uint32(42).string(message.issuerCountry); } if (message.quantity !== 0) { writer.uint32(48).int64(message.quantity); } if (message.dividend !== undefined) { Quotation.encode(message.dividend, writer.uint32(58).fork()).ldelim(); } if (message.externalCommission !== undefined) { Quotation.encode(message.externalCommission, writer.uint32(66).fork()).ldelim(); } if (message.dividendGross !== undefined) { Quotation.encode(message.dividendGross, writer.uint32(74).fork()).ldelim(); } if (message.tax !== undefined) { Quotation.encode(message.tax, writer.uint32(82).fork()).ldelim(); } if (message.dividendAmount !== undefined) { Quotation.encode(message.dividendAmount, writer.uint32(90).fork()).ldelim(); } if (message.currency !== '') { writer.uint32(98).string(message.currency); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): DividendsForeignIssuerReport { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDividendsForeignIssuerReport(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.recordDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 2: message.paymentDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.securityName = reader.string(); break; case 4: message.isin = reader.string(); break; case 5: message.issuerCountry = reader.string(); break; case 6: message.quantity = longToNumber(reader.int64() as Long); break; case 7: message.dividend = Quotation.decode(reader, reader.uint32()); break; case 8: message.externalCommission = Quotation.decode(reader, reader.uint32()); break; case 9: message.dividendGross = Quotation.decode(reader, reader.uint32()); break; case 10: message.tax = Quotation.decode(reader, reader.uint32()); break; case 11: message.dividendAmount = Quotation.decode(reader, reader.uint32()); break; case 12: message.currency = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DividendsForeignIssuerReport { return { recordDate: isSet(object.recordDate) ? fromJsonTimestamp(object.recordDate) : undefined, paymentDate: isSet(object.paymentDate) ? fromJsonTimestamp(object.paymentDate) : undefined, securityName: isSet(object.securityName) ? String(object.securityName) : '', isin: isSet(object.isin) ? String(object.isin) : '', issuerCountry: isSet(object.issuerCountry) ? String(object.issuerCountry) : '', quantity: isSet(object.quantity) ? Number(object.quantity) : 0, dividend: isSet(object.dividend) ? Quotation.fromJSON(object.dividend) : undefined, externalCommission: isSet(object.externalCommission) ? Quotation.fromJSON(object.externalCommission) : undefined, dividendGross: isSet(object.dividendGross) ? Quotation.fromJSON(object.dividendGross) : undefined, tax: isSet(object.tax) ? Quotation.fromJSON(object.tax) : undefined, dividendAmount: isSet(object.dividendAmount) ? Quotation.fromJSON(object.dividendAmount) : undefined, currency: isSet(object.currency) ? String(object.currency) : '', }; }, toJSON(message: DividendsForeignIssuerReport): unknown { const obj: any = {}; message.recordDate !== undefined && (obj.recordDate = message.recordDate.toISOString()); message.paymentDate !== undefined && (obj.paymentDate = message.paymentDate.toISOString()); message.securityName !== undefined && (obj.securityName = message.securityName); message.isin !== undefined && (obj.isin = message.isin); message.issuerCountry !== undefined && (obj.issuerCountry = message.issuerCountry); message.quantity !== undefined && (obj.quantity = Math.round(message.quantity)); message.dividend !== undefined && (obj.dividend = message.dividend ? Quotation.toJSON(message.dividend) : undefined); message.externalCommission !== undefined && (obj.externalCommission = message.externalCommission ? Quotation.toJSON(message.externalCommission) : undefined); message.dividendGross !== undefined && (obj.dividendGross = message.dividendGross ? Quotation.toJSON(message.dividendGross) : undefined); message.tax !== undefined && (obj.tax = message.tax ? Quotation.toJSON(message.tax) : undefined); message.dividendAmount !== undefined && (obj.dividendAmount = message.dividendAmount ? Quotation.toJSON(message.dividendAmount) : undefined); message.currency !== undefined && (obj.currency = message.currency); return obj; }, fromPartial(object: DeepPartial): DividendsForeignIssuerReport { const message = createBaseDividendsForeignIssuerReport(); message.recordDate = object.recordDate ?? undefined; message.paymentDate = object.paymentDate ?? undefined; message.securityName = object.securityName ?? ''; message.isin = object.isin ?? ''; message.issuerCountry = object.issuerCountry ?? ''; message.quantity = object.quantity ?? 0; message.dividend = object.dividend !== undefined && object.dividend !== null ? Quotation.fromPartial(object.dividend) : undefined; message.externalCommission = object.externalCommission !== undefined && object.externalCommission !== null ? Quotation.fromPartial(object.externalCommission) : undefined; message.dividendGross = object.dividendGross !== undefined && object.dividendGross !== null ? Quotation.fromPartial(object.dividendGross) : undefined; message.tax = object.tax !== undefined && object.tax !== null ? Quotation.fromPartial(object.tax) : undefined; message.dividendAmount = object.dividendAmount !== undefined && object.dividendAmount !== null ? Quotation.fromPartial(object.dividendAmount) : undefined; message.currency = object.currency ?? ''; return message; }, }; function createBasePortfolioStreamRequest(): PortfolioStreamRequest { return { accounts: [], pingSettings: undefined }; } export const PortfolioStreamRequest = { encode(message: PortfolioStreamRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.accounts) { writer.uint32(10).string(v!); } if (message.pingSettings !== undefined) { PingDelaySettings.encode(message.pingSettings, writer.uint32(122).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PortfolioStreamRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePortfolioStreamRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accounts.push(reader.string()); break; case 15: message.pingSettings = PingDelaySettings.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PortfolioStreamRequest { return { accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => String(e)) : [], pingSettings: isSet(object.pingSettings) ? PingDelaySettings.fromJSON(object.pingSettings) : undefined, }; }, toJSON(message: PortfolioStreamRequest): unknown { const obj: any = {}; if (message.accounts) { obj.accounts = message.accounts.map(e => e); } else { obj.accounts = []; } message.pingSettings !== undefined && (obj.pingSettings = message.pingSettings ? PingDelaySettings.toJSON(message.pingSettings) : undefined); return obj; }, fromPartial(object: DeepPartial): PortfolioStreamRequest { const message = createBasePortfolioStreamRequest(); message.accounts = object.accounts?.map(e => e) || []; message.pingSettings = object.pingSettings !== undefined && object.pingSettings !== null ? PingDelaySettings.fromPartial(object.pingSettings) : undefined; return message; }, }; function createBasePortfolioStreamResponse(): PortfolioStreamResponse { return { subscriptions: undefined, portfolio: undefined, ping: undefined }; } export const PortfolioStreamResponse = { encode(message: PortfolioStreamResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.subscriptions !== undefined) { PortfolioSubscriptionResult.encode(message.subscriptions, writer.uint32(10).fork()).ldelim(); } if (message.portfolio !== undefined) { PortfolioResponse.encode(message.portfolio, writer.uint32(18).fork()).ldelim(); } if (message.ping !== undefined) { Ping.encode(message.ping, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PortfolioStreamResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePortfolioStreamResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.subscriptions = PortfolioSubscriptionResult.decode(reader, reader.uint32()); break; case 2: message.portfolio = PortfolioResponse.decode(reader, reader.uint32()); break; case 3: message.ping = Ping.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PortfolioStreamResponse { return { subscriptions: isSet(object.subscriptions) ? PortfolioSubscriptionResult.fromJSON(object.subscriptions) : undefined, portfolio: isSet(object.portfolio) ? PortfolioResponse.fromJSON(object.portfolio) : undefined, ping: isSet(object.ping) ? Ping.fromJSON(object.ping) : undefined, }; }, toJSON(message: PortfolioStreamResponse): unknown { const obj: any = {}; message.subscriptions !== undefined && (obj.subscriptions = message.subscriptions ? PortfolioSubscriptionResult.toJSON(message.subscriptions) : undefined); message.portfolio !== undefined && (obj.portfolio = message.portfolio ? PortfolioResponse.toJSON(message.portfolio) : undefined); message.ping !== undefined && (obj.ping = message.ping ? Ping.toJSON(message.ping) : undefined); return obj; }, fromPartial(object: DeepPartial): PortfolioStreamResponse { const message = createBasePortfolioStreamResponse(); message.subscriptions = object.subscriptions !== undefined && object.subscriptions !== null ? PortfolioSubscriptionResult.fromPartial(object.subscriptions) : undefined; message.portfolio = object.portfolio !== undefined && object.portfolio !== null ? PortfolioResponse.fromPartial(object.portfolio) : undefined; message.ping = object.ping !== undefined && object.ping !== null ? Ping.fromPartial(object.ping) : undefined; return message; }, }; function createBasePortfolioSubscriptionResult(): PortfolioSubscriptionResult { return { accounts: [], trackingId: '', streamId: '' }; } export const PortfolioSubscriptionResult = { encode(message: PortfolioSubscriptionResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.accounts) { AccountSubscriptionStatus.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.trackingId !== '') { writer.uint32(58).string(message.trackingId); } if (message.streamId !== '') { writer.uint32(66).string(message.streamId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PortfolioSubscriptionResult { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePortfolioSubscriptionResult(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accounts.push(AccountSubscriptionStatus.decode(reader, reader.uint32())); break; case 7: message.trackingId = reader.string(); break; case 8: message.streamId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PortfolioSubscriptionResult { return { accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => AccountSubscriptionStatus.fromJSON(e)) : [], trackingId: isSet(object.trackingId) ? String(object.trackingId) : '', streamId: isSet(object.streamId) ? String(object.streamId) : '', }; }, toJSON(message: PortfolioSubscriptionResult): unknown { const obj: any = {}; if (message.accounts) { obj.accounts = message.accounts.map(e => (e ? AccountSubscriptionStatus.toJSON(e) : undefined)); } else { obj.accounts = []; } message.trackingId !== undefined && (obj.trackingId = message.trackingId); message.streamId !== undefined && (obj.streamId = message.streamId); return obj; }, fromPartial(object: DeepPartial): PortfolioSubscriptionResult { const message = createBasePortfolioSubscriptionResult(); message.accounts = object.accounts?.map(e => AccountSubscriptionStatus.fromPartial(e)) || []; message.trackingId = object.trackingId ?? ''; message.streamId = object.streamId ?? ''; return message; }, }; function createBaseAccountSubscriptionStatus(): AccountSubscriptionStatus { return { accountId: '', subscriptionStatus: 0 }; } export const AccountSubscriptionStatus = { encode(message: AccountSubscriptionStatus, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } if (message.subscriptionStatus !== 0) { writer.uint32(48).int32(message.subscriptionStatus); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): AccountSubscriptionStatus { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAccountSubscriptionStatus(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 6: message.subscriptionStatus = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): AccountSubscriptionStatus { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', subscriptionStatus: isSet(object.subscriptionStatus) ? portfolioSubscriptionStatusFromJSON(object.subscriptionStatus) : 0, }; }, toJSON(message: AccountSubscriptionStatus): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); message.subscriptionStatus !== undefined && (obj.subscriptionStatus = portfolioSubscriptionStatusToJSON(message.subscriptionStatus)); return obj; }, fromPartial(object: DeepPartial): AccountSubscriptionStatus { const message = createBaseAccountSubscriptionStatus(); message.accountId = object.accountId ?? ''; message.subscriptionStatus = object.subscriptionStatus ?? 0; return message; }, }; function createBaseGetOperationsByCursorRequest(): GetOperationsByCursorRequest { return { accountId: '', instrumentId: undefined, from: undefined, to: undefined, cursor: undefined, limit: undefined, operationTypes: [], state: undefined, withoutCommissions: undefined, withoutTrades: undefined, withoutOvernights: undefined, }; } export const GetOperationsByCursorRequest = { encode(message: GetOperationsByCursorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } if (message.instrumentId !== undefined) { writer.uint32(18).string(message.instrumentId); } if (message.from !== undefined) { Timestamp.encode(toTimestamp(message.from), writer.uint32(50).fork()).ldelim(); } if (message.to !== undefined) { Timestamp.encode(toTimestamp(message.to), writer.uint32(58).fork()).ldelim(); } if (message.cursor !== undefined) { writer.uint32(90).string(message.cursor); } if (message.limit !== undefined) { writer.uint32(96).int32(message.limit); } writer.uint32(106).fork(); for (const v of message.operationTypes) { writer.int32(v); } writer.ldelim(); if (message.state !== undefined) { writer.uint32(112).int32(message.state); } if (message.withoutCommissions !== undefined) { writer.uint32(120).bool(message.withoutCommissions); } if (message.withoutTrades !== undefined) { writer.uint32(128).bool(message.withoutTrades); } if (message.withoutOvernights !== undefined) { writer.uint32(136).bool(message.withoutOvernights); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetOperationsByCursorRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetOperationsByCursorRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 2: message.instrumentId = reader.string(); break; case 6: message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 7: message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 11: message.cursor = reader.string(); break; case 12: message.limit = reader.int32(); break; case 13: if ((tag & 7) === 2) { const end2 = reader.uint32() + reader.pos; while (reader.pos < end2) { message.operationTypes.push(reader.int32() as any); } } else { message.operationTypes.push(reader.int32() as any); } break; case 14: message.state = reader.int32() as any; break; case 15: message.withoutCommissions = reader.bool(); break; case 16: message.withoutTrades = reader.bool(); break; case 17: message.withoutOvernights = reader.bool(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetOperationsByCursorRequest { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', instrumentId: isSet(object.instrumentId) ? String(object.instrumentId) : undefined, from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined, to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined, cursor: isSet(object.cursor) ? String(object.cursor) : undefined, limit: isSet(object.limit) ? Number(object.limit) : undefined, operationTypes: Array.isArray(object?.operationTypes) ? object.operationTypes.map((e: any) => operationTypeFromJSON(e)) : [], state: isSet(object.state) ? operationStateFromJSON(object.state) : undefined, withoutCommissions: isSet(object.withoutCommissions) ? Boolean(object.withoutCommissions) : undefined, withoutTrades: isSet(object.withoutTrades) ? Boolean(object.withoutTrades) : undefined, withoutOvernights: isSet(object.withoutOvernights) ? Boolean(object.withoutOvernights) : undefined, }; }, toJSON(message: GetOperationsByCursorRequest): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); message.instrumentId !== undefined && (obj.instrumentId = message.instrumentId); message.from !== undefined && (obj.from = message.from.toISOString()); message.to !== undefined && (obj.to = message.to.toISOString()); message.cursor !== undefined && (obj.cursor = message.cursor); message.limit !== undefined && (obj.limit = Math.round(message.limit)); if (message.operationTypes) { obj.operationTypes = message.operationTypes.map(e => operationTypeToJSON(e)); } else { obj.operationTypes = []; } message.state !== undefined && (obj.state = message.state !== undefined ? operationStateToJSON(message.state) : undefined); message.withoutCommissions !== undefined && (obj.withoutCommissions = message.withoutCommissions); message.withoutTrades !== undefined && (obj.withoutTrades = message.withoutTrades); message.withoutOvernights !== undefined && (obj.withoutOvernights = message.withoutOvernights); return obj; }, fromPartial(object: DeepPartial): GetOperationsByCursorRequest { const message = createBaseGetOperationsByCursorRequest(); message.accountId = object.accountId ?? ''; message.instrumentId = object.instrumentId ?? undefined; message.from = object.from ?? undefined; message.to = object.to ?? undefined; message.cursor = object.cursor ?? undefined; message.limit = object.limit ?? undefined; message.operationTypes = object.operationTypes?.map(e => e) || []; message.state = object.state ?? undefined; message.withoutCommissions = object.withoutCommissions ?? undefined; message.withoutTrades = object.withoutTrades ?? undefined; message.withoutOvernights = object.withoutOvernights ?? undefined; return message; }, }; function createBaseGetOperationsByCursorResponse(): GetOperationsByCursorResponse { return { hasNext: false, nextCursor: '', items: [] }; } export const GetOperationsByCursorResponse = { encode(message: GetOperationsByCursorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.hasNext === true) { writer.uint32(8).bool(message.hasNext); } if (message.nextCursor !== '') { writer.uint32(18).string(message.nextCursor); } for (const v of message.items) { OperationItem.encode(v!, writer.uint32(50).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetOperationsByCursorResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetOperationsByCursorResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.hasNext = reader.bool(); break; case 2: message.nextCursor = reader.string(); break; case 6: message.items.push(OperationItem.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetOperationsByCursorResponse { return { hasNext: isSet(object.hasNext) ? Boolean(object.hasNext) : false, nextCursor: isSet(object.nextCursor) ? String(object.nextCursor) : '', items: Array.isArray(object?.items) ? object.items.map((e: any) => OperationItem.fromJSON(e)) : [], }; }, toJSON(message: GetOperationsByCursorResponse): unknown { const obj: any = {}; message.hasNext !== undefined && (obj.hasNext = message.hasNext); message.nextCursor !== undefined && (obj.nextCursor = message.nextCursor); if (message.items) { obj.items = message.items.map(e => (e ? OperationItem.toJSON(e) : undefined)); } else { obj.items = []; } return obj; }, fromPartial(object: DeepPartial): GetOperationsByCursorResponse { const message = createBaseGetOperationsByCursorResponse(); message.hasNext = object.hasNext ?? false; message.nextCursor = object.nextCursor ?? ''; message.items = object.items?.map(e => OperationItem.fromPartial(e)) || []; return message; }, }; function createBaseOperationItem(): OperationItem { return { cursor: '', brokerAccountId: '', id: '', parentOperationId: '', name: '', date: undefined, type: 0, description: '', state: 0, instrumentUid: '', figi: '', instrumentType: '', instrumentKind: 0, positionUid: '', ticker: '', classCode: '', payment: undefined, price: undefined, commission: undefined, yield: undefined, yieldRelative: undefined, accruedInt: undefined, quantity: 0, quantityRest: 0, quantityDone: 0, cancelDateTime: undefined, cancelReason: '', tradesInfo: undefined, assetUid: '', childOperations: [], }; } export const OperationItem = { encode(message: OperationItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.cursor !== '') { writer.uint32(10).string(message.cursor); } if (message.brokerAccountId !== '') { writer.uint32(50).string(message.brokerAccountId); } if (message.id !== '') { writer.uint32(130).string(message.id); } if (message.parentOperationId !== '') { writer.uint32(138).string(message.parentOperationId); } if (message.name !== '') { writer.uint32(146).string(message.name); } if (message.date !== undefined) { Timestamp.encode(toTimestamp(message.date), writer.uint32(170).fork()).ldelim(); } if (message.type !== 0) { writer.uint32(176).int32(message.type); } if (message.description !== '') { writer.uint32(186).string(message.description); } if (message.state !== 0) { writer.uint32(192).int32(message.state); } if (message.instrumentUid !== '') { writer.uint32(250).string(message.instrumentUid); } if (message.figi !== '') { writer.uint32(258).string(message.figi); } if (message.instrumentType !== '') { writer.uint32(266).string(message.instrumentType); } if (message.instrumentKind !== 0) { writer.uint32(272).int32(message.instrumentKind); } if (message.positionUid !== '') { writer.uint32(282).string(message.positionUid); } if (message.ticker !== '') { writer.uint32(290).string(message.ticker); } if (message.classCode !== '') { writer.uint32(298).string(message.classCode); } if (message.payment !== undefined) { MoneyValue.encode(message.payment, writer.uint32(330).fork()).ldelim(); } if (message.price !== undefined) { MoneyValue.encode(message.price, writer.uint32(338).fork()).ldelim(); } if (message.commission !== undefined) { MoneyValue.encode(message.commission, writer.uint32(346).fork()).ldelim(); } if (message.yield !== undefined) { MoneyValue.encode(message.yield, writer.uint32(354).fork()).ldelim(); } if (message.yieldRelative !== undefined) { Quotation.encode(message.yieldRelative, writer.uint32(362).fork()).ldelim(); } if (message.accruedInt !== undefined) { MoneyValue.encode(message.accruedInt, writer.uint32(370).fork()).ldelim(); } if (message.quantity !== 0) { writer.uint32(408).int64(message.quantity); } if (message.quantityRest !== 0) { writer.uint32(416).int64(message.quantityRest); } if (message.quantityDone !== 0) { writer.uint32(424).int64(message.quantityDone); } if (message.cancelDateTime !== undefined) { Timestamp.encode(toTimestamp(message.cancelDateTime), writer.uint32(450).fork()).ldelim(); } if (message.cancelReason !== '') { writer.uint32(458).string(message.cancelReason); } if (message.tradesInfo !== undefined) { OperationItemTrades.encode(message.tradesInfo, writer.uint32(490).fork()).ldelim(); } if (message.assetUid !== '') { writer.uint32(514).string(message.assetUid); } for (const v of message.childOperations) { ChildOperationItem.encode(v!, writer.uint32(522).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationItem { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationItem(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.cursor = reader.string(); break; case 6: message.brokerAccountId = reader.string(); break; case 16: message.id = reader.string(); break; case 17: message.parentOperationId = reader.string(); break; case 18: message.name = reader.string(); break; case 21: message.date = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 22: message.type = reader.int32() as any; break; case 23: message.description = reader.string(); break; case 24: message.state = reader.int32() as any; break; case 31: message.instrumentUid = reader.string(); break; case 32: message.figi = reader.string(); break; case 33: message.instrumentType = reader.string(); break; case 34: message.instrumentKind = reader.int32() as any; break; case 35: message.positionUid = reader.string(); break; case 36: message.ticker = reader.string(); break; case 37: message.classCode = reader.string(); break; case 41: message.payment = MoneyValue.decode(reader, reader.uint32()); break; case 42: message.price = MoneyValue.decode(reader, reader.uint32()); break; case 43: message.commission = MoneyValue.decode(reader, reader.uint32()); break; case 44: message.yield = MoneyValue.decode(reader, reader.uint32()); break; case 45: message.yieldRelative = Quotation.decode(reader, reader.uint32()); break; case 46: message.accruedInt = MoneyValue.decode(reader, reader.uint32()); break; case 51: message.quantity = longToNumber(reader.int64() as Long); break; case 52: message.quantityRest = longToNumber(reader.int64() as Long); break; case 53: message.quantityDone = longToNumber(reader.int64() as Long); break; case 56: message.cancelDateTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 57: message.cancelReason = reader.string(); break; case 61: message.tradesInfo = OperationItemTrades.decode(reader, reader.uint32()); break; case 64: message.assetUid = reader.string(); break; case 65: message.childOperations.push(ChildOperationItem.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationItem { return { cursor: isSet(object.cursor) ? String(object.cursor) : '', brokerAccountId: isSet(object.brokerAccountId) ? String(object.brokerAccountId) : '', id: isSet(object.id) ? String(object.id) : '', parentOperationId: isSet(object.parentOperationId) ? String(object.parentOperationId) : '', name: isSet(object.name) ? String(object.name) : '', date: isSet(object.date) ? fromJsonTimestamp(object.date) : undefined, type: isSet(object.type) ? operationTypeFromJSON(object.type) : 0, description: isSet(object.description) ? String(object.description) : '', state: isSet(object.state) ? operationStateFromJSON(object.state) : 0, instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', figi: isSet(object.figi) ? String(object.figi) : '', instrumentType: isSet(object.instrumentType) ? String(object.instrumentType) : '', instrumentKind: isSet(object.instrumentKind) ? instrumentTypeFromJSON(object.instrumentKind) : 0, positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', payment: isSet(object.payment) ? MoneyValue.fromJSON(object.payment) : undefined, price: isSet(object.price) ? MoneyValue.fromJSON(object.price) : undefined, commission: isSet(object.commission) ? MoneyValue.fromJSON(object.commission) : undefined, yield: isSet(object.yield) ? MoneyValue.fromJSON(object.yield) : undefined, yieldRelative: isSet(object.yieldRelative) ? Quotation.fromJSON(object.yieldRelative) : undefined, accruedInt: isSet(object.accruedInt) ? MoneyValue.fromJSON(object.accruedInt) : undefined, quantity: isSet(object.quantity) ? Number(object.quantity) : 0, quantityRest: isSet(object.quantityRest) ? Number(object.quantityRest) : 0, quantityDone: isSet(object.quantityDone) ? Number(object.quantityDone) : 0, cancelDateTime: isSet(object.cancelDateTime) ? fromJsonTimestamp(object.cancelDateTime) : undefined, cancelReason: isSet(object.cancelReason) ? String(object.cancelReason) : '', tradesInfo: isSet(object.tradesInfo) ? OperationItemTrades.fromJSON(object.tradesInfo) : undefined, assetUid: isSet(object.assetUid) ? String(object.assetUid) : '', childOperations: Array.isArray(object?.childOperations) ? object.childOperations.map((e: any) => ChildOperationItem.fromJSON(e)) : [], }; }, toJSON(message: OperationItem): unknown { const obj: any = {}; message.cursor !== undefined && (obj.cursor = message.cursor); message.brokerAccountId !== undefined && (obj.brokerAccountId = message.brokerAccountId); message.id !== undefined && (obj.id = message.id); message.parentOperationId !== undefined && (obj.parentOperationId = message.parentOperationId); message.name !== undefined && (obj.name = message.name); message.date !== undefined && (obj.date = message.date.toISOString()); message.type !== undefined && (obj.type = operationTypeToJSON(message.type)); message.description !== undefined && (obj.description = message.description); message.state !== undefined && (obj.state = operationStateToJSON(message.state)); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.figi !== undefined && (obj.figi = message.figi); message.instrumentType !== undefined && (obj.instrumentType = message.instrumentType); message.instrumentKind !== undefined && (obj.instrumentKind = instrumentTypeToJSON(message.instrumentKind)); message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); message.payment !== undefined && (obj.payment = message.payment ? MoneyValue.toJSON(message.payment) : undefined); message.price !== undefined && (obj.price = message.price ? MoneyValue.toJSON(message.price) : undefined); message.commission !== undefined && (obj.commission = message.commission ? MoneyValue.toJSON(message.commission) : undefined); message.yield !== undefined && (obj.yield = message.yield ? MoneyValue.toJSON(message.yield) : undefined); message.yieldRelative !== undefined && (obj.yieldRelative = message.yieldRelative ? Quotation.toJSON(message.yieldRelative) : undefined); message.accruedInt !== undefined && (obj.accruedInt = message.accruedInt ? MoneyValue.toJSON(message.accruedInt) : undefined); message.quantity !== undefined && (obj.quantity = Math.round(message.quantity)); message.quantityRest !== undefined && (obj.quantityRest = Math.round(message.quantityRest)); message.quantityDone !== undefined && (obj.quantityDone = Math.round(message.quantityDone)); message.cancelDateTime !== undefined && (obj.cancelDateTime = message.cancelDateTime.toISOString()); message.cancelReason !== undefined && (obj.cancelReason = message.cancelReason); message.tradesInfo !== undefined && (obj.tradesInfo = message.tradesInfo ? OperationItemTrades.toJSON(message.tradesInfo) : undefined); message.assetUid !== undefined && (obj.assetUid = message.assetUid); if (message.childOperations) { obj.childOperations = message.childOperations.map(e => (e ? ChildOperationItem.toJSON(e) : undefined)); } else { obj.childOperations = []; } return obj; }, fromPartial(object: DeepPartial): OperationItem { const message = createBaseOperationItem(); message.cursor = object.cursor ?? ''; message.brokerAccountId = object.brokerAccountId ?? ''; message.id = object.id ?? ''; message.parentOperationId = object.parentOperationId ?? ''; message.name = object.name ?? ''; message.date = object.date ?? undefined; message.type = object.type ?? 0; message.description = object.description ?? ''; message.state = object.state ?? 0; message.instrumentUid = object.instrumentUid ?? ''; message.figi = object.figi ?? ''; message.instrumentType = object.instrumentType ?? ''; message.instrumentKind = object.instrumentKind ?? 0; message.positionUid = object.positionUid ?? ''; message.ticker = object.ticker ?? ''; message.classCode = object.classCode ?? ''; message.payment = object.payment !== undefined && object.payment !== null ? MoneyValue.fromPartial(object.payment) : undefined; message.price = object.price !== undefined && object.price !== null ? MoneyValue.fromPartial(object.price) : undefined; message.commission = object.commission !== undefined && object.commission !== null ? MoneyValue.fromPartial(object.commission) : undefined; message.yield = object.yield !== undefined && object.yield !== null ? MoneyValue.fromPartial(object.yield) : undefined; message.yieldRelative = object.yieldRelative !== undefined && object.yieldRelative !== null ? Quotation.fromPartial(object.yieldRelative) : undefined; message.accruedInt = object.accruedInt !== undefined && object.accruedInt !== null ? MoneyValue.fromPartial(object.accruedInt) : undefined; message.quantity = object.quantity ?? 0; message.quantityRest = object.quantityRest ?? 0; message.quantityDone = object.quantityDone ?? 0; message.cancelDateTime = object.cancelDateTime ?? undefined; message.cancelReason = object.cancelReason ?? ''; message.tradesInfo = object.tradesInfo !== undefined && object.tradesInfo !== null ? OperationItemTrades.fromPartial(object.tradesInfo) : undefined; message.assetUid = object.assetUid ?? ''; message.childOperations = object.childOperations?.map(e => ChildOperationItem.fromPartial(e)) || []; return message; }, }; function createBaseOperationItemTrades(): OperationItemTrades { return { trades: [] }; } export const OperationItemTrades = { encode(message: OperationItemTrades, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.trades) { OperationItemTrade.encode(v!, writer.uint32(50).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationItemTrades { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationItemTrades(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 6: message.trades.push(OperationItemTrade.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationItemTrades { return { trades: Array.isArray(object?.trades) ? object.trades.map((e: any) => OperationItemTrade.fromJSON(e)) : [], }; }, toJSON(message: OperationItemTrades): unknown { const obj: any = {}; if (message.trades) { obj.trades = message.trades.map(e => (e ? OperationItemTrade.toJSON(e) : undefined)); } else { obj.trades = []; } return obj; }, fromPartial(object: DeepPartial): OperationItemTrades { const message = createBaseOperationItemTrades(); message.trades = object.trades?.map(e => OperationItemTrade.fromPartial(e)) || []; return message; }, }; function createBaseOperationItemTrade(): OperationItemTrade { return { num: '', date: undefined, quantity: 0, price: undefined, yield: undefined, yieldRelative: undefined }; } export const OperationItemTrade = { encode(message: OperationItemTrade, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.num !== '') { writer.uint32(10).string(message.num); } if (message.date !== undefined) { Timestamp.encode(toTimestamp(message.date), writer.uint32(50).fork()).ldelim(); } if (message.quantity !== 0) { writer.uint32(88).int64(message.quantity); } if (message.price !== undefined) { MoneyValue.encode(message.price, writer.uint32(130).fork()).ldelim(); } if (message.yield !== undefined) { MoneyValue.encode(message.yield, writer.uint32(170).fork()).ldelim(); } if (message.yieldRelative !== undefined) { Quotation.encode(message.yieldRelative, writer.uint32(178).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationItemTrade { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationItemTrade(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.num = reader.string(); break; case 6: message.date = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 11: message.quantity = longToNumber(reader.int64() as Long); break; case 16: message.price = MoneyValue.decode(reader, reader.uint32()); break; case 21: message.yield = MoneyValue.decode(reader, reader.uint32()); break; case 22: message.yieldRelative = Quotation.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationItemTrade { return { num: isSet(object.num) ? String(object.num) : '', date: isSet(object.date) ? fromJsonTimestamp(object.date) : undefined, quantity: isSet(object.quantity) ? Number(object.quantity) : 0, price: isSet(object.price) ? MoneyValue.fromJSON(object.price) : undefined, yield: isSet(object.yield) ? MoneyValue.fromJSON(object.yield) : undefined, yieldRelative: isSet(object.yieldRelative) ? Quotation.fromJSON(object.yieldRelative) : undefined, }; }, toJSON(message: OperationItemTrade): unknown { const obj: any = {}; message.num !== undefined && (obj.num = message.num); message.date !== undefined && (obj.date = message.date.toISOString()); message.quantity !== undefined && (obj.quantity = Math.round(message.quantity)); message.price !== undefined && (obj.price = message.price ? MoneyValue.toJSON(message.price) : undefined); message.yield !== undefined && (obj.yield = message.yield ? MoneyValue.toJSON(message.yield) : undefined); message.yieldRelative !== undefined && (obj.yieldRelative = message.yieldRelative ? Quotation.toJSON(message.yieldRelative) : undefined); return obj; }, fromPartial(object: DeepPartial): OperationItemTrade { const message = createBaseOperationItemTrade(); message.num = object.num ?? ''; message.date = object.date ?? undefined; message.quantity = object.quantity ?? 0; message.price = object.price !== undefined && object.price !== null ? MoneyValue.fromPartial(object.price) : undefined; message.yield = object.yield !== undefined && object.yield !== null ? MoneyValue.fromPartial(object.yield) : undefined; message.yieldRelative = object.yieldRelative !== undefined && object.yieldRelative !== null ? Quotation.fromPartial(object.yieldRelative) : undefined; return message; }, }; function createBasePositionsStreamRequest(): PositionsStreamRequest { return { accounts: [], withInitialPositions: false, pingSettings: undefined }; } export const PositionsStreamRequest = { encode(message: PositionsStreamRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.accounts) { writer.uint32(10).string(v!); } if (message.withInitialPositions === true) { writer.uint32(24).bool(message.withInitialPositions); } if (message.pingSettings !== undefined) { PingDelaySettings.encode(message.pingSettings, writer.uint32(122).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsStreamRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsStreamRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accounts.push(reader.string()); break; case 3: message.withInitialPositions = reader.bool(); break; case 15: message.pingSettings = PingDelaySettings.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsStreamRequest { return { accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => String(e)) : [], withInitialPositions: isSet(object.withInitialPositions) ? Boolean(object.withInitialPositions) : false, pingSettings: isSet(object.pingSettings) ? PingDelaySettings.fromJSON(object.pingSettings) : undefined, }; }, toJSON(message: PositionsStreamRequest): unknown { const obj: any = {}; if (message.accounts) { obj.accounts = message.accounts.map(e => e); } else { obj.accounts = []; } message.withInitialPositions !== undefined && (obj.withInitialPositions = message.withInitialPositions); message.pingSettings !== undefined && (obj.pingSettings = message.pingSettings ? PingDelaySettings.toJSON(message.pingSettings) : undefined); return obj; }, fromPartial(object: DeepPartial): PositionsStreamRequest { const message = createBasePositionsStreamRequest(); message.accounts = object.accounts?.map(e => e) || []; message.withInitialPositions = object.withInitialPositions ?? false; message.pingSettings = object.pingSettings !== undefined && object.pingSettings !== null ? PingDelaySettings.fromPartial(object.pingSettings) : undefined; return message; }, }; function createBasePositionsStreamResponse(): PositionsStreamResponse { return { subscriptions: undefined, position: undefined, ping: undefined, initialPositions: undefined }; } export const PositionsStreamResponse = { encode(message: PositionsStreamResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.subscriptions !== undefined) { PositionsSubscriptionResult.encode(message.subscriptions, writer.uint32(10).fork()).ldelim(); } if (message.position !== undefined) { PositionData.encode(message.position, writer.uint32(18).fork()).ldelim(); } if (message.ping !== undefined) { Ping.encode(message.ping, writer.uint32(26).fork()).ldelim(); } if (message.initialPositions !== undefined) { PositionsResponse.encode(message.initialPositions, writer.uint32(42).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsStreamResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsStreamResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.subscriptions = PositionsSubscriptionResult.decode(reader, reader.uint32()); break; case 2: message.position = PositionData.decode(reader, reader.uint32()); break; case 3: message.ping = Ping.decode(reader, reader.uint32()); break; case 5: message.initialPositions = PositionsResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsStreamResponse { return { subscriptions: isSet(object.subscriptions) ? PositionsSubscriptionResult.fromJSON(object.subscriptions) : undefined, position: isSet(object.position) ? PositionData.fromJSON(object.position) : undefined, ping: isSet(object.ping) ? Ping.fromJSON(object.ping) : undefined, initialPositions: isSet(object.initialPositions) ? PositionsResponse.fromJSON(object.initialPositions) : undefined, }; }, toJSON(message: PositionsStreamResponse): unknown { const obj: any = {}; message.subscriptions !== undefined && (obj.subscriptions = message.subscriptions ? PositionsSubscriptionResult.toJSON(message.subscriptions) : undefined); message.position !== undefined && (obj.position = message.position ? PositionData.toJSON(message.position) : undefined); message.ping !== undefined && (obj.ping = message.ping ? Ping.toJSON(message.ping) : undefined); message.initialPositions !== undefined && (obj.initialPositions = message.initialPositions ? PositionsResponse.toJSON(message.initialPositions) : undefined); return obj; }, fromPartial(object: DeepPartial): PositionsStreamResponse { const message = createBasePositionsStreamResponse(); message.subscriptions = object.subscriptions !== undefined && object.subscriptions !== null ? PositionsSubscriptionResult.fromPartial(object.subscriptions) : undefined; message.position = object.position !== undefined && object.position !== null ? PositionData.fromPartial(object.position) : undefined; message.ping = object.ping !== undefined && object.ping !== null ? Ping.fromPartial(object.ping) : undefined; message.initialPositions = object.initialPositions !== undefined && object.initialPositions !== null ? PositionsResponse.fromPartial(object.initialPositions) : undefined; return message; }, }; function createBasePositionsSubscriptionResult(): PositionsSubscriptionResult { return { accounts: [], trackingId: '', streamId: '' }; } export const PositionsSubscriptionResult = { encode(message: PositionsSubscriptionResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.accounts) { PositionsSubscriptionStatus.encode(v!, writer.uint32(10).fork()).ldelim(); } if (message.trackingId !== '') { writer.uint32(58).string(message.trackingId); } if (message.streamId !== '') { writer.uint32(66).string(message.streamId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsSubscriptionResult { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsSubscriptionResult(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accounts.push(PositionsSubscriptionStatus.decode(reader, reader.uint32())); break; case 7: message.trackingId = reader.string(); break; case 8: message.streamId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsSubscriptionResult { return { accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => PositionsSubscriptionStatus.fromJSON(e)) : [], trackingId: isSet(object.trackingId) ? String(object.trackingId) : '', streamId: isSet(object.streamId) ? String(object.streamId) : '', }; }, toJSON(message: PositionsSubscriptionResult): unknown { const obj: any = {}; if (message.accounts) { obj.accounts = message.accounts.map(e => (e ? PositionsSubscriptionStatus.toJSON(e) : undefined)); } else { obj.accounts = []; } message.trackingId !== undefined && (obj.trackingId = message.trackingId); message.streamId !== undefined && (obj.streamId = message.streamId); return obj; }, fromPartial(object: DeepPartial): PositionsSubscriptionResult { const message = createBasePositionsSubscriptionResult(); message.accounts = object.accounts?.map(e => PositionsSubscriptionStatus.fromPartial(e)) || []; message.trackingId = object.trackingId ?? ''; message.streamId = object.streamId ?? ''; return message; }, }; function createBasePositionsSubscriptionStatus(): PositionsSubscriptionStatus { return { accountId: '', subscriptionStatus: 0 }; } export const PositionsSubscriptionStatus = { encode(message: PositionsSubscriptionStatus, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } if (message.subscriptionStatus !== 0) { writer.uint32(48).int32(message.subscriptionStatus); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsSubscriptionStatus { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsSubscriptionStatus(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 6: message.subscriptionStatus = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsSubscriptionStatus { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', subscriptionStatus: isSet(object.subscriptionStatus) ? positionsAccountSubscriptionStatusFromJSON(object.subscriptionStatus) : 0, }; }, toJSON(message: PositionsSubscriptionStatus): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); message.subscriptionStatus !== undefined && (obj.subscriptionStatus = positionsAccountSubscriptionStatusToJSON(message.subscriptionStatus)); return obj; }, fromPartial(object: DeepPartial): PositionsSubscriptionStatus { const message = createBasePositionsSubscriptionStatus(); message.accountId = object.accountId ?? ''; message.subscriptionStatus = object.subscriptionStatus ?? 0; return message; }, }; function createBasePositionData(): PositionData { return { accountId: '', money: [], securities: [], futures: [], options: [], date: undefined }; } export const PositionData = { encode(message: PositionData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.accountId !== '') { writer.uint32(10).string(message.accountId); } for (const v of message.money) { PositionsMoney.encode(v!, writer.uint32(18).fork()).ldelim(); } for (const v of message.securities) { PositionsSecurities.encode(v!, writer.uint32(26).fork()).ldelim(); } for (const v of message.futures) { PositionsFutures.encode(v!, writer.uint32(34).fork()).ldelim(); } for (const v of message.options) { PositionsOptions.encode(v!, writer.uint32(42).fork()).ldelim(); } if (message.date !== undefined) { Timestamp.encode(toTimestamp(message.date), writer.uint32(50).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionData { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionData(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accountId = reader.string(); break; case 2: message.money.push(PositionsMoney.decode(reader, reader.uint32())); break; case 3: message.securities.push(PositionsSecurities.decode(reader, reader.uint32())); break; case 4: message.futures.push(PositionsFutures.decode(reader, reader.uint32())); break; case 5: message.options.push(PositionsOptions.decode(reader, reader.uint32())); break; case 6: message.date = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionData { return { accountId: isSet(object.accountId) ? String(object.accountId) : '', money: Array.isArray(object?.money) ? object.money.map((e: any) => PositionsMoney.fromJSON(e)) : [], securities: Array.isArray(object?.securities) ? object.securities.map((e: any) => PositionsSecurities.fromJSON(e)) : [], futures: Array.isArray(object?.futures) ? object.futures.map((e: any) => PositionsFutures.fromJSON(e)) : [], options: Array.isArray(object?.options) ? object.options.map((e: any) => PositionsOptions.fromJSON(e)) : [], date: isSet(object.date) ? fromJsonTimestamp(object.date) : undefined, }; }, toJSON(message: PositionData): unknown { const obj: any = {}; message.accountId !== undefined && (obj.accountId = message.accountId); if (message.money) { obj.money = message.money.map(e => (e ? PositionsMoney.toJSON(e) : undefined)); } else { obj.money = []; } if (message.securities) { obj.securities = message.securities.map(e => (e ? PositionsSecurities.toJSON(e) : undefined)); } else { obj.securities = []; } if (message.futures) { obj.futures = message.futures.map(e => (e ? PositionsFutures.toJSON(e) : undefined)); } else { obj.futures = []; } if (message.options) { obj.options = message.options.map(e => (e ? PositionsOptions.toJSON(e) : undefined)); } else { obj.options = []; } message.date !== undefined && (obj.date = message.date.toISOString()); return obj; }, fromPartial(object: DeepPartial): PositionData { const message = createBasePositionData(); message.accountId = object.accountId ?? ''; message.money = object.money?.map(e => PositionsMoney.fromPartial(e)) || []; message.securities = object.securities?.map(e => PositionsSecurities.fromPartial(e)) || []; message.futures = object.futures?.map(e => PositionsFutures.fromPartial(e)) || []; message.options = object.options?.map(e => PositionsOptions.fromPartial(e)) || []; message.date = object.date ?? undefined; return message; }, }; function createBasePositionsMoney(): PositionsMoney { return { availableValue: undefined, blockedValue: undefined }; } export const PositionsMoney = { encode(message: PositionsMoney, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.availableValue !== undefined) { MoneyValue.encode(message.availableValue, writer.uint32(10).fork()).ldelim(); } if (message.blockedValue !== undefined) { MoneyValue.encode(message.blockedValue, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PositionsMoney { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePositionsMoney(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.availableValue = MoneyValue.decode(reader, reader.uint32()); break; case 2: message.blockedValue = MoneyValue.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PositionsMoney { return { availableValue: isSet(object.availableValue) ? MoneyValue.fromJSON(object.availableValue) : undefined, blockedValue: isSet(object.blockedValue) ? MoneyValue.fromJSON(object.blockedValue) : undefined, }; }, toJSON(message: PositionsMoney): unknown { const obj: any = {}; message.availableValue !== undefined && (obj.availableValue = message.availableValue ? MoneyValue.toJSON(message.availableValue) : undefined); message.blockedValue !== undefined && (obj.blockedValue = message.blockedValue ? MoneyValue.toJSON(message.blockedValue) : undefined); return obj; }, fromPartial(object: DeepPartial): PositionsMoney { const message = createBasePositionsMoney(); message.availableValue = object.availableValue !== undefined && object.availableValue !== null ? MoneyValue.fromPartial(object.availableValue) : undefined; message.blockedValue = object.blockedValue !== undefined && object.blockedValue !== null ? MoneyValue.fromPartial(object.blockedValue) : undefined; return message; }, }; function createBaseChildOperationItem(): ChildOperationItem { return { instrumentUid: '', payment: undefined }; } export const ChildOperationItem = { encode(message: ChildOperationItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrumentUid !== '') { writer.uint32(10).string(message.instrumentUid); } if (message.payment !== undefined) { MoneyValue.encode(message.payment, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ChildOperationItem { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseChildOperationItem(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instrumentUid = reader.string(); break; case 2: message.payment = MoneyValue.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ChildOperationItem { return { instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', payment: isSet(object.payment) ? MoneyValue.fromJSON(object.payment) : undefined, }; }, toJSON(message: ChildOperationItem): unknown { const obj: any = {}; message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.payment !== undefined && (obj.payment = message.payment ? MoneyValue.toJSON(message.payment) : undefined); return obj; }, fromPartial(object: DeepPartial): ChildOperationItem { const message = createBaseChildOperationItem(); message.instrumentUid = object.instrumentUid ?? ''; message.payment = object.payment !== undefined && object.payment !== null ? MoneyValue.fromPartial(object.payment) : undefined; return message; }, }; function createBaseOperationsStreamRequest(): OperationsStreamRequest { return { accounts: [], pingSettings: undefined }; } export const OperationsStreamRequest = { encode(message: OperationsStreamRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.accounts) { writer.uint32(10).string(v!); } if (message.pingSettings !== undefined) { PingDelaySettings.encode(message.pingSettings, writer.uint32(122).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationsStreamRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationsStreamRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accounts.push(reader.string()); break; case 15: message.pingSettings = PingDelaySettings.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationsStreamRequest { return { accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => String(e)) : [], pingSettings: isSet(object.pingSettings) ? PingDelaySettings.fromJSON(object.pingSettings) : undefined, }; }, toJSON(message: OperationsStreamRequest): unknown { const obj: any = {}; if (message.accounts) { obj.accounts = message.accounts.map(e => e); } else { obj.accounts = []; } message.pingSettings !== undefined && (obj.pingSettings = message.pingSettings ? PingDelaySettings.toJSON(message.pingSettings) : undefined); return obj; }, fromPartial(object: DeepPartial): OperationsStreamRequest { const message = createBaseOperationsStreamRequest(); message.accounts = object.accounts?.map(e => e) || []; message.pingSettings = object.pingSettings !== undefined && object.pingSettings !== null ? PingDelaySettings.fromPartial(object.pingSettings) : undefined; return message; }, }; function createBaseOperationsStreamResponse(): OperationsStreamResponse { return { subscriptions: undefined, operation: undefined, ping: undefined }; } export const OperationsStreamResponse = { encode(message: OperationsStreamResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.subscriptions !== undefined) { OperationsSubscriptionResult.encode(message.subscriptions, writer.uint32(10).fork()).ldelim(); } if (message.operation !== undefined) { OperationData.encode(message.operation, writer.uint32(18).fork()).ldelim(); } if (message.ping !== undefined) { Ping.encode(message.ping, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationsStreamResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationsStreamResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.subscriptions = OperationsSubscriptionResult.decode(reader, reader.uint32()); break; case 2: message.operation = OperationData.decode(reader, reader.uint32()); break; case 3: message.ping = Ping.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationsStreamResponse { return { subscriptions: isSet(object.subscriptions) ? OperationsSubscriptionResult.fromJSON(object.subscriptions) : undefined, operation: isSet(object.operation) ? OperationData.fromJSON(object.operation) : undefined, ping: isSet(object.ping) ? Ping.fromJSON(object.ping) : undefined, }; }, toJSON(message: OperationsStreamResponse): unknown { const obj: any = {}; message.subscriptions !== undefined && (obj.subscriptions = message.subscriptions ? OperationsSubscriptionResult.toJSON(message.subscriptions) : undefined); message.operation !== undefined && (obj.operation = message.operation ? OperationData.toJSON(message.operation) : undefined); message.ping !== undefined && (obj.ping = message.ping ? Ping.toJSON(message.ping) : undefined); return obj; }, fromPartial(object: DeepPartial): OperationsStreamResponse { const message = createBaseOperationsStreamResponse(); message.subscriptions = object.subscriptions !== undefined && object.subscriptions !== null ? OperationsSubscriptionResult.fromPartial(object.subscriptions) : undefined; message.operation = object.operation !== undefined && object.operation !== null ? OperationData.fromPartial(object.operation) : undefined; message.ping = object.ping !== undefined && object.ping !== null ? Ping.fromPartial(object.ping) : undefined; return message; }, }; function createBaseOperationsSubscriptionResult(): OperationsSubscriptionResult { return { accounts: [], subscriptionStatus: 0, trackingId: '', streamId: '' }; } export const OperationsSubscriptionResult = { encode(message: OperationsSubscriptionResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.accounts) { writer.uint32(10).string(v!); } if (message.subscriptionStatus !== 0) { writer.uint32(16).int32(message.subscriptionStatus); } if (message.trackingId !== '') { writer.uint32(58).string(message.trackingId); } if (message.streamId !== '') { writer.uint32(66).string(message.streamId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationsSubscriptionResult { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationsSubscriptionResult(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accounts.push(reader.string()); break; case 2: message.subscriptionStatus = reader.int32() as any; break; case 7: message.trackingId = reader.string(); break; case 8: message.streamId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationsSubscriptionResult { return { accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => String(e)) : [], subscriptionStatus: isSet(object.subscriptionStatus) ? operationsAccountSubscriptionStatusFromJSON(object.subscriptionStatus) : 0, trackingId: isSet(object.trackingId) ? String(object.trackingId) : '', streamId: isSet(object.streamId) ? String(object.streamId) : '', }; }, toJSON(message: OperationsSubscriptionResult): unknown { const obj: any = {}; if (message.accounts) { obj.accounts = message.accounts.map(e => e); } else { obj.accounts = []; } message.subscriptionStatus !== undefined && (obj.subscriptionStatus = operationsAccountSubscriptionStatusToJSON(message.subscriptionStatus)); message.trackingId !== undefined && (obj.trackingId = message.trackingId); message.streamId !== undefined && (obj.streamId = message.streamId); return obj; }, fromPartial(object: DeepPartial): OperationsSubscriptionResult { const message = createBaseOperationsSubscriptionResult(); message.accounts = object.accounts?.map(e => e) || []; message.subscriptionStatus = object.subscriptionStatus ?? 0; message.trackingId = object.trackingId ?? ''; message.streamId = object.streamId ?? ''; return message; }, }; function createBaseOperationData(): OperationData { return { brokerAccountId: '', id: '', parentOperationId: '', name: '', date: undefined, type: 0, state: 0, instrumentUid: '', figi: '', instrumentType: '', instrumentKind: 0, positionUid: '', ticker: '', classCode: '', payment: undefined, }; } export const OperationData = { encode(message: OperationData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.brokerAccountId !== '') { writer.uint32(10).string(message.brokerAccountId); } if (message.id !== '') { writer.uint32(18).string(message.id); } if (message.parentOperationId !== '') { writer.uint32(26).string(message.parentOperationId); } if (message.name !== '') { writer.uint32(34).string(message.name); } if (message.date !== undefined) { Timestamp.encode(toTimestamp(message.date), writer.uint32(42).fork()).ldelim(); } if (message.type !== 0) { writer.uint32(48).int32(message.type); } if (message.state !== 0) { writer.uint32(56).int32(message.state); } if (message.instrumentUid !== '') { writer.uint32(66).string(message.instrumentUid); } if (message.figi !== '') { writer.uint32(74).string(message.figi); } if (message.instrumentType !== '') { writer.uint32(82).string(message.instrumentType); } if (message.instrumentKind !== 0) { writer.uint32(88).int32(message.instrumentKind); } if (message.positionUid !== '') { writer.uint32(98).string(message.positionUid); } if (message.ticker !== '') { writer.uint32(106).string(message.ticker); } if (message.classCode !== '') { writer.uint32(114).string(message.classCode); } if (message.payment !== undefined) { MoneyValue.encode(message.payment, writer.uint32(122).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OperationData { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOperationData(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.brokerAccountId = reader.string(); break; case 2: message.id = reader.string(); break; case 3: message.parentOperationId = reader.string(); break; case 4: message.name = reader.string(); break; case 5: message.date = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 6: message.type = reader.int32() as any; break; case 7: message.state = reader.int32() as any; break; case 8: message.instrumentUid = reader.string(); break; case 9: message.figi = reader.string(); break; case 10: message.instrumentType = reader.string(); break; case 11: message.instrumentKind = reader.int32() as any; break; case 12: message.positionUid = reader.string(); break; case 13: message.ticker = reader.string(); break; case 14: message.classCode = reader.string(); break; case 15: message.payment = MoneyValue.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OperationData { return { brokerAccountId: isSet(object.brokerAccountId) ? String(object.brokerAccountId) : '', id: isSet(object.id) ? String(object.id) : '', parentOperationId: isSet(object.parentOperationId) ? String(object.parentOperationId) : '', name: isSet(object.name) ? String(object.name) : '', date: isSet(object.date) ? fromJsonTimestamp(object.date) : undefined, type: isSet(object.type) ? operationTypeFromJSON(object.type) : 0, state: isSet(object.state) ? operationStateFromJSON(object.state) : 0, instrumentUid: isSet(object.instrumentUid) ? String(object.instrumentUid) : '', figi: isSet(object.figi) ? String(object.figi) : '', instrumentType: isSet(object.instrumentType) ? String(object.instrumentType) : '', instrumentKind: isSet(object.instrumentKind) ? instrumentTypeFromJSON(object.instrumentKind) : 0, positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', payment: isSet(object.payment) ? MoneyValue.fromJSON(object.payment) : undefined, }; }, toJSON(message: OperationData): unknown { const obj: any = {}; message.brokerAccountId !== undefined && (obj.brokerAccountId = message.brokerAccountId); message.id !== undefined && (obj.id = message.id); message.parentOperationId !== undefined && (obj.parentOperationId = message.parentOperationId); message.name !== undefined && (obj.name = message.name); message.date !== undefined && (obj.date = message.date.toISOString()); message.type !== undefined && (obj.type = operationTypeToJSON(message.type)); message.state !== undefined && (obj.state = operationStateToJSON(message.state)); message.instrumentUid !== undefined && (obj.instrumentUid = message.instrumentUid); message.figi !== undefined && (obj.figi = message.figi); message.instrumentType !== undefined && (obj.instrumentType = message.instrumentType); message.instrumentKind !== undefined && (obj.instrumentKind = instrumentTypeToJSON(message.instrumentKind)); message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); message.payment !== undefined && (obj.payment = message.payment ? MoneyValue.toJSON(message.payment) : undefined); return obj; }, fromPartial(object: DeepPartial): OperationData { const message = createBaseOperationData(); message.brokerAccountId = object.brokerAccountId ?? ''; message.id = object.id ?? ''; message.parentOperationId = object.parentOperationId ?? ''; message.name = object.name ?? ''; message.date = object.date ?? undefined; message.type = object.type ?? 0; message.state = object.state ?? 0; message.instrumentUid = object.instrumentUid ?? ''; message.figi = object.figi ?? ''; message.instrumentType = object.instrumentType ?? ''; message.instrumentKind = object.instrumentKind ?? 0; message.positionUid = object.positionUid ?? ''; message.ticker = object.ticker ?? ''; message.classCode = object.classCode ?? ''; message.payment = object.payment !== undefined && object.payment !== null ? MoneyValue.fromPartial(object.payment) : undefined; return message; }, }; /** * С помощью методов сервиса можно получить:

**1**. Список операций по счету.
**2**. * Портфель по счету.
**3**. Позиции ценных бумаг на счете.
**4**. * Доступный остаток для вывода средств.
**5**. Различные отчеты. */ export type OperationsServiceDefinition = typeof OperationsServiceDefinition; export const OperationsServiceDefinition = { name: 'OperationsService', fullName: 'tinkoff.public.invest.api.contract.v1.OperationsService', methods: { /** * GetOperations — список операций по счету * При работе с методом учитывайте [особенности взаимодействия](/invest/services/operations/operations_problems). */ getOperations: { name: 'GetOperations', requestType: OperationsRequest, requestStream: false, responseType: OperationsResponse, responseStream: false, options: {}, }, /** GetPortfolio — портфель по счету */ getPortfolio: { name: 'GetPortfolio', requestType: PortfolioRequest, requestStream: false, responseType: PortfolioResponse, responseStream: false, options: {}, }, /** GetPositions — список позиций по счету */ getPositions: { name: 'GetPositions', requestType: PositionsRequest, requestStream: false, responseType: PositionsResponse, responseStream: false, options: {}, }, /** GetWithdrawLimits — доступный остаток для вывода средств */ getWithdrawLimits: { name: 'GetWithdrawLimits', requestType: WithdrawLimitsRequest, requestStream: false, responseType: WithdrawLimitsResponse, responseStream: false, options: {}, }, /** GetBrokerReport — брокерский отчет. */ getBrokerReport: { name: 'GetBrokerReport', requestType: BrokerReportRequest, requestStream: false, responseType: BrokerReportResponse, responseStream: false, options: {}, }, /** GetDividendsForeignIssuer — отчет «Справка о доходах за пределами РФ» */ getDividendsForeignIssuer: { name: 'GetDividendsForeignIssuer', requestType: GetDividendsForeignIssuerRequest, requestStream: false, responseType: GetDividendsForeignIssuerResponse, responseStream: false, options: {}, }, /** * GetOperationsByCursor — список операций по счету с пагинацией * При работе с методом учитывайте [особенности взаимодействия](/invest/services/operations/operations_problems). */ getOperationsByCursor: { name: 'GetOperationsByCursor', requestType: GetOperationsByCursorRequest, requestStream: false, responseType: GetOperationsByCursorResponse, responseStream: false, options: {}, }, }, } as const; export type OperationsStreamServiceDefinition = typeof OperationsStreamServiceDefinition; export const OperationsStreamServiceDefinition = { name: 'OperationsStreamService', fullName: 'tinkoff.public.invest.api.contract.v1.OperationsStreamService', methods: { /** PortfolioStream — стрим обновлений портфеля */ portfolioStream: { name: 'PortfolioStream', requestType: PortfolioStreamRequest, requestStream: false, responseType: PortfolioStreamResponse, responseStream: true, options: {}, }, /** PositionsStream — стрим обновлений информации по изменению позиций портфеля */ positionsStream: { name: 'PositionsStream', requestType: PositionsStreamRequest, requestStream: false, responseType: PositionsStreamResponse, responseStream: true, options: {}, }, /** OperationsStream — стрим обновлений операций */ operationsStream: { name: 'OperationsStream', requestType: OperationsStreamRequest, requestStream: false, responseType: OperationsStreamResponse, responseStream: true, options: {}, }, }, } as const; declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; var globalThis: any = (() => { if (typeof globalThis !== 'undefined') return globalThis; if (typeof self !== 'undefined') return self; if (typeof window !== 'undefined') return window; if (typeof global !== 'undefined') return global; throw 'Unable to locate global object'; })(); type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial } : Partial; function toTimestamp(date: Date): Timestamp { const seconds = date.getTime() / 1_000; const nanos = (date.getTime() % 1_000) * 1_000_000; return { seconds, nanos }; } function fromTimestamp(t: Timestamp): Date { let millis = t.seconds * 1_000; millis += t.nanos / 1_000_000; return new Date(millis); } function fromJsonTimestamp(o: any): Date { if (o instanceof Date) { return o; } else if (typeof o === 'string') { return new Date(o); } else { return fromTimestamp(Timestamp.fromJSON(o)); } } function longToNumber(long: Long): number { if (long.gt(Number.MAX_SAFE_INTEGER)) { throw new globalThis.Error('Value is larger than Number.MAX_SAFE_INTEGER'); } return long.toNumber(); } if (_m0.util.Long !== Long) { _m0.util.Long = Long as any; _m0.configure(); } function isSet(value: any): boolean { return value !== null && value !== undefined; }