tinkoff-invest-api
Version:
Node.js SDK for Tinkoff Invest API
1,582 lines (1,458 loc) • 59.2 kB
text/typescript
/* eslint-disable */
import Long from "long";
import type { CallContext, CallOptions } from "nice-grpc-common";
import _m0 from "protobufjs/minimal.js";
import { MoneyValue, PriceType, priceTypeFromJSON, priceTypeToJSON, Quotation, ResponseMetadata } from "./common.js";
import { Timestamp } from "./google/protobuf/timestamp.js";
export const protobufPackage = "tinkoff.public.invest.api.contract.v1";
/** Направление сделки стоп-заявки. */
export enum StopOrderDirection {
/** STOP_ORDER_DIRECTION_UNSPECIFIED - Значение не указано. */
STOP_ORDER_DIRECTION_UNSPECIFIED = 0,
/** STOP_ORDER_DIRECTION_BUY - Покупка. */
STOP_ORDER_DIRECTION_BUY = 1,
/** STOP_ORDER_DIRECTION_SELL - Продажа. */
STOP_ORDER_DIRECTION_SELL = 2,
UNRECOGNIZED = -1,
}
export function stopOrderDirectionFromJSON(object: any): StopOrderDirection {
switch (object) {
case 0:
case "STOP_ORDER_DIRECTION_UNSPECIFIED":
return StopOrderDirection.STOP_ORDER_DIRECTION_UNSPECIFIED;
case 1:
case "STOP_ORDER_DIRECTION_BUY":
return StopOrderDirection.STOP_ORDER_DIRECTION_BUY;
case 2:
case "STOP_ORDER_DIRECTION_SELL":
return StopOrderDirection.STOP_ORDER_DIRECTION_SELL;
case -1:
case "UNRECOGNIZED":
default:
return StopOrderDirection.UNRECOGNIZED;
}
}
export function stopOrderDirectionToJSON(object: StopOrderDirection): string {
switch (object) {
case StopOrderDirection.STOP_ORDER_DIRECTION_UNSPECIFIED:
return "STOP_ORDER_DIRECTION_UNSPECIFIED";
case StopOrderDirection.STOP_ORDER_DIRECTION_BUY:
return "STOP_ORDER_DIRECTION_BUY";
case StopOrderDirection.STOP_ORDER_DIRECTION_SELL:
return "STOP_ORDER_DIRECTION_SELL";
case StopOrderDirection.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Тип экспирации стоп-заявке. */
export enum StopOrderExpirationType {
/** STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED - Значение не указано. */
STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED = 0,
/** STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL - Действительно до отмены. */
STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL = 1,
/** STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE - Действительно до даты снятия. */
STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE = 2,
UNRECOGNIZED = -1,
}
export function stopOrderExpirationTypeFromJSON(object: any): StopOrderExpirationType {
switch (object) {
case 0:
case "STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED":
return StopOrderExpirationType.STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED;
case 1:
case "STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL":
return StopOrderExpirationType.STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL;
case 2:
case "STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE":
return StopOrderExpirationType.STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE;
case -1:
case "UNRECOGNIZED":
default:
return StopOrderExpirationType.UNRECOGNIZED;
}
}
export function stopOrderExpirationTypeToJSON(object: StopOrderExpirationType): string {
switch (object) {
case StopOrderExpirationType.STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED:
return "STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED";
case StopOrderExpirationType.STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL:
return "STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL";
case StopOrderExpirationType.STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE:
return "STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE";
case StopOrderExpirationType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Тип стоп-заявки. */
export enum StopOrderType {
/** STOP_ORDER_TYPE_UNSPECIFIED - Значение не указано. */
STOP_ORDER_TYPE_UNSPECIFIED = 0,
/** STOP_ORDER_TYPE_TAKE_PROFIT - `Take-profit`-заявка. */
STOP_ORDER_TYPE_TAKE_PROFIT = 1,
/** STOP_ORDER_TYPE_STOP_LOSS - `Stop-loss`-заявка. */
STOP_ORDER_TYPE_STOP_LOSS = 2,
/** STOP_ORDER_TYPE_STOP_LIMIT - `Stop-limit`-заявка. */
STOP_ORDER_TYPE_STOP_LIMIT = 3,
UNRECOGNIZED = -1,
}
export function stopOrderTypeFromJSON(object: any): StopOrderType {
switch (object) {
case 0:
case "STOP_ORDER_TYPE_UNSPECIFIED":
return StopOrderType.STOP_ORDER_TYPE_UNSPECIFIED;
case 1:
case "STOP_ORDER_TYPE_TAKE_PROFIT":
return StopOrderType.STOP_ORDER_TYPE_TAKE_PROFIT;
case 2:
case "STOP_ORDER_TYPE_STOP_LOSS":
return StopOrderType.STOP_ORDER_TYPE_STOP_LOSS;
case 3:
case "STOP_ORDER_TYPE_STOP_LIMIT":
return StopOrderType.STOP_ORDER_TYPE_STOP_LIMIT;
case -1:
case "UNRECOGNIZED":
default:
return StopOrderType.UNRECOGNIZED;
}
}
export function stopOrderTypeToJSON(object: StopOrderType): string {
switch (object) {
case StopOrderType.STOP_ORDER_TYPE_UNSPECIFIED:
return "STOP_ORDER_TYPE_UNSPECIFIED";
case StopOrderType.STOP_ORDER_TYPE_TAKE_PROFIT:
return "STOP_ORDER_TYPE_TAKE_PROFIT";
case StopOrderType.STOP_ORDER_TYPE_STOP_LOSS:
return "STOP_ORDER_TYPE_STOP_LOSS";
case StopOrderType.STOP_ORDER_TYPE_STOP_LIMIT:
return "STOP_ORDER_TYPE_STOP_LIMIT";
case StopOrderType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Статус стоп-заяки. */
export enum StopOrderStatusOption {
/** STOP_ORDER_STATUS_UNSPECIFIED - Значение не указано. */
STOP_ORDER_STATUS_UNSPECIFIED = 0,
/** STOP_ORDER_STATUS_ALL - Все заявки. */
STOP_ORDER_STATUS_ALL = 1,
/** STOP_ORDER_STATUS_ACTIVE - Активные заявки. */
STOP_ORDER_STATUS_ACTIVE = 2,
/** STOP_ORDER_STATUS_EXECUTED - Исполненные заявки. */
STOP_ORDER_STATUS_EXECUTED = 3,
/** STOP_ORDER_STATUS_CANCELED - Отменённые заявки. */
STOP_ORDER_STATUS_CANCELED = 4,
/** STOP_ORDER_STATUS_EXPIRED - Истёкшие заявки. */
STOP_ORDER_STATUS_EXPIRED = 5,
UNRECOGNIZED = -1,
}
export function stopOrderStatusOptionFromJSON(object: any): StopOrderStatusOption {
switch (object) {
case 0:
case "STOP_ORDER_STATUS_UNSPECIFIED":
return StopOrderStatusOption.STOP_ORDER_STATUS_UNSPECIFIED;
case 1:
case "STOP_ORDER_STATUS_ALL":
return StopOrderStatusOption.STOP_ORDER_STATUS_ALL;
case 2:
case "STOP_ORDER_STATUS_ACTIVE":
return StopOrderStatusOption.STOP_ORDER_STATUS_ACTIVE;
case 3:
case "STOP_ORDER_STATUS_EXECUTED":
return StopOrderStatusOption.STOP_ORDER_STATUS_EXECUTED;
case 4:
case "STOP_ORDER_STATUS_CANCELED":
return StopOrderStatusOption.STOP_ORDER_STATUS_CANCELED;
case 5:
case "STOP_ORDER_STATUS_EXPIRED":
return StopOrderStatusOption.STOP_ORDER_STATUS_EXPIRED;
case -1:
case "UNRECOGNIZED":
default:
return StopOrderStatusOption.UNRECOGNIZED;
}
}
export function stopOrderStatusOptionToJSON(object: StopOrderStatusOption): string {
switch (object) {
case StopOrderStatusOption.STOP_ORDER_STATUS_UNSPECIFIED:
return "STOP_ORDER_STATUS_UNSPECIFIED";
case StopOrderStatusOption.STOP_ORDER_STATUS_ALL:
return "STOP_ORDER_STATUS_ALL";
case StopOrderStatusOption.STOP_ORDER_STATUS_ACTIVE:
return "STOP_ORDER_STATUS_ACTIVE";
case StopOrderStatusOption.STOP_ORDER_STATUS_EXECUTED:
return "STOP_ORDER_STATUS_EXECUTED";
case StopOrderStatusOption.STOP_ORDER_STATUS_CANCELED:
return "STOP_ORDER_STATUS_CANCELED";
case StopOrderStatusOption.STOP_ORDER_STATUS_EXPIRED:
return "STOP_ORDER_STATUS_EXPIRED";
case StopOrderStatusOption.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Тип выставляемой заявки. */
export enum ExchangeOrderType {
/** EXCHANGE_ORDER_TYPE_UNSPECIFIED - Значение не указано. */
EXCHANGE_ORDER_TYPE_UNSPECIFIED = 0,
/** EXCHANGE_ORDER_TYPE_MARKET - Заявка по рыночной цене. */
EXCHANGE_ORDER_TYPE_MARKET = 1,
/** EXCHANGE_ORDER_TYPE_LIMIT - Лимитная заявка. */
EXCHANGE_ORDER_TYPE_LIMIT = 2,
UNRECOGNIZED = -1,
}
export function exchangeOrderTypeFromJSON(object: any): ExchangeOrderType {
switch (object) {
case 0:
case "EXCHANGE_ORDER_TYPE_UNSPECIFIED":
return ExchangeOrderType.EXCHANGE_ORDER_TYPE_UNSPECIFIED;
case 1:
case "EXCHANGE_ORDER_TYPE_MARKET":
return ExchangeOrderType.EXCHANGE_ORDER_TYPE_MARKET;
case 2:
case "EXCHANGE_ORDER_TYPE_LIMIT":
return ExchangeOrderType.EXCHANGE_ORDER_TYPE_LIMIT;
case -1:
case "UNRECOGNIZED":
default:
return ExchangeOrderType.UNRECOGNIZED;
}
}
export function exchangeOrderTypeToJSON(object: ExchangeOrderType): string {
switch (object) {
case ExchangeOrderType.EXCHANGE_ORDER_TYPE_UNSPECIFIED:
return "EXCHANGE_ORDER_TYPE_UNSPECIFIED";
case ExchangeOrderType.EXCHANGE_ORDER_TYPE_MARKET:
return "EXCHANGE_ORDER_TYPE_MARKET";
case ExchangeOrderType.EXCHANGE_ORDER_TYPE_LIMIT:
return "EXCHANGE_ORDER_TYPE_LIMIT";
case ExchangeOrderType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Тип TakeProfit-заявки. */
export enum TakeProfitType {
/** TAKE_PROFIT_TYPE_UNSPECIFIED - Значение не указано. */
TAKE_PROFIT_TYPE_UNSPECIFIED = 0,
/** TAKE_PROFIT_TYPE_REGULAR - Обычная заявка, значение по умолчанию. */
TAKE_PROFIT_TYPE_REGULAR = 1,
/** TAKE_PROFIT_TYPE_TRAILING - Трейлинг-стоп. */
TAKE_PROFIT_TYPE_TRAILING = 2,
UNRECOGNIZED = -1,
}
export function takeProfitTypeFromJSON(object: any): TakeProfitType {
switch (object) {
case 0:
case "TAKE_PROFIT_TYPE_UNSPECIFIED":
return TakeProfitType.TAKE_PROFIT_TYPE_UNSPECIFIED;
case 1:
case "TAKE_PROFIT_TYPE_REGULAR":
return TakeProfitType.TAKE_PROFIT_TYPE_REGULAR;
case 2:
case "TAKE_PROFIT_TYPE_TRAILING":
return TakeProfitType.TAKE_PROFIT_TYPE_TRAILING;
case -1:
case "UNRECOGNIZED":
default:
return TakeProfitType.UNRECOGNIZED;
}
}
export function takeProfitTypeToJSON(object: TakeProfitType): string {
switch (object) {
case TakeProfitType.TAKE_PROFIT_TYPE_UNSPECIFIED:
return "TAKE_PROFIT_TYPE_UNSPECIFIED";
case TakeProfitType.TAKE_PROFIT_TYPE_REGULAR:
return "TAKE_PROFIT_TYPE_REGULAR";
case TakeProfitType.TAKE_PROFIT_TYPE_TRAILING:
return "TAKE_PROFIT_TYPE_TRAILING";
case TakeProfitType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Тип параметров значений трейлинг-стопа. */
export enum TrailingValueType {
/** TRAILING_VALUE_UNSPECIFIED - Значение не указано. */
TRAILING_VALUE_UNSPECIFIED = 0,
/** TRAILING_VALUE_ABSOLUTE - Абсолютное значение в единицах цены. */
TRAILING_VALUE_ABSOLUTE = 1,
/** TRAILING_VALUE_RELATIVE - Относительное значение в процентах. */
TRAILING_VALUE_RELATIVE = 2,
UNRECOGNIZED = -1,
}
export function trailingValueTypeFromJSON(object: any): TrailingValueType {
switch (object) {
case 0:
case "TRAILING_VALUE_UNSPECIFIED":
return TrailingValueType.TRAILING_VALUE_UNSPECIFIED;
case 1:
case "TRAILING_VALUE_ABSOLUTE":
return TrailingValueType.TRAILING_VALUE_ABSOLUTE;
case 2:
case "TRAILING_VALUE_RELATIVE":
return TrailingValueType.TRAILING_VALUE_RELATIVE;
case -1:
case "UNRECOGNIZED":
default:
return TrailingValueType.UNRECOGNIZED;
}
}
export function trailingValueTypeToJSON(object: TrailingValueType): string {
switch (object) {
case TrailingValueType.TRAILING_VALUE_UNSPECIFIED:
return "TRAILING_VALUE_UNSPECIFIED";
case TrailingValueType.TRAILING_VALUE_ABSOLUTE:
return "TRAILING_VALUE_ABSOLUTE";
case TrailingValueType.TRAILING_VALUE_RELATIVE:
return "TRAILING_VALUE_RELATIVE";
case TrailingValueType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Статус трейлинг-стопа. */
export enum TrailingStopStatus {
/** TRAILING_STOP_UNSPECIFIED - Значение не указано. */
TRAILING_STOP_UNSPECIFIED = 0,
/** TRAILING_STOP_ACTIVE - Активный. */
TRAILING_STOP_ACTIVE = 1,
/** TRAILING_STOP_ACTIVATED - Активированный. */
TRAILING_STOP_ACTIVATED = 2,
UNRECOGNIZED = -1,
}
export function trailingStopStatusFromJSON(object: any): TrailingStopStatus {
switch (object) {
case 0:
case "TRAILING_STOP_UNSPECIFIED":
return TrailingStopStatus.TRAILING_STOP_UNSPECIFIED;
case 1:
case "TRAILING_STOP_ACTIVE":
return TrailingStopStatus.TRAILING_STOP_ACTIVE;
case 2:
case "TRAILING_STOP_ACTIVATED":
return TrailingStopStatus.TRAILING_STOP_ACTIVATED;
case -1:
case "UNRECOGNIZED":
default:
return TrailingStopStatus.UNRECOGNIZED;
}
}
export function trailingStopStatusToJSON(object: TrailingStopStatus): string {
switch (object) {
case TrailingStopStatus.TRAILING_STOP_UNSPECIFIED:
return "TRAILING_STOP_UNSPECIFIED";
case TrailingStopStatus.TRAILING_STOP_ACTIVE:
return "TRAILING_STOP_ACTIVE";
case TrailingStopStatus.TRAILING_STOP_ACTIVATED:
return "TRAILING_STOP_ACTIVATED";
case TrailingStopStatus.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Запрос выставления стоп-заявки. */
export interface PostStopOrderRequest {
/**
* Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`.
*
* @deprecated
*/
figi?:
| string
| undefined;
/** Количество лотов. */
quantity: number;
/** Цена за 1 инструмент биржевой заявки, которая будет выставлена при срабатывании по достижению `stop_price`. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
price?:
| Quotation
| undefined;
/** Стоп-цена заявки за 1 инструмент. При достижении стоп-цены происходит активация стоп-заявки, в результате чего выставляется биржевая заявка. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
stopPrice?:
| Quotation
| undefined;
/** Направление операции. */
direction: StopOrderDirection;
/** Номер счёта. */
accountId: string;
/** Тип экспирации заявки. */
expirationType: StopOrderExpirationType;
/** Тип заявки. */
stopOrderType: StopOrderType;
/** Дата и время окончания действия стоп-заявки по UTC. Для `ExpirationType = GoodTillDate` заполнение обязательно, для `GoodTillCancel` игнорируется. */
expireDate?:
| Date
| undefined;
/** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */
instrumentId: string;
/** Тип дочерней биржевой заявки для тейкпрофита. */
exchangeOrderType: ExchangeOrderType;
/** Подтип стоп-заявки — `TakeProfit`. */
takeProfitType: TakeProfitType;
/** Массив с параметрами трейлинг-стопа. */
trailingData?:
| PostStopOrderRequest_TrailingData
| undefined;
/** Тип цены. */
priceType: PriceType;
/** Идентификатор запроса выставления поручения для целей идемпотентности в формате `UID`. Максимальная длина — 36 символов. */
orderId: string;
}
export interface PostStopOrderRequest_TrailingData {
/** Отступ. */
indent?:
| Quotation
| undefined;
/** Тип величины отступа. */
indentType: TrailingValueType;
/** Размер защитного спреда. */
spread?:
| Quotation
| undefined;
/** Тип величины защитного спреда. */
spreadType: TrailingValueType;
}
/** Результат выставления стоп-заявки. */
export interface PostStopOrderResponse {
/** Уникальный идентификатор стоп-заявки. */
stopOrderId: string;
/** Идентификатор ключа идемпотентности, переданный клиентом, в формате `UID`. Максимальная длина 36 — символов. */
orderRequestId: string;
/** Метадата. */
responseMetadata?: ResponseMetadata | undefined;
}
/** Запрос получения списка активных стоп-заявок. */
export interface GetStopOrdersRequest {
/** Идентификатор счёта клиента. */
accountId: string;
/** Статус заявок. */
status: StopOrderStatusOption;
/** Левая граница. */
from?:
| Date
| undefined;
/** Правая граница. */
to?: Date | undefined;
}
/** Список активных стоп-заявок. */
export interface GetStopOrdersResponse {
/** Массив стоп-заявок по счёту. */
stopOrders: StopOrder[];
}
/** Запрос отмены выставленной стоп-заявки. */
export interface CancelStopOrderRequest {
/** Идентификатор счёта клиента. */
accountId: string;
/** Уникальный идентификатор стоп-заявки. */
stopOrderId: string;
}
/** Результат отмены выставленной стоп-заявки. */
export interface CancelStopOrderResponse {
/** Время отмены заявки по UTC. */
time?: Date | undefined;
}
/** Информация о стоп-заявке. */
export interface StopOrder {
/** Уникальный идентификатор стоп-заявки. */
stopOrderId: string;
/** Запрошено лотов. */
lotsRequested: number;
/** FIGI-идентификатор инструмента. */
figi: string;
/** Направление операции. */
direction: StopOrderDirection;
/** Валюта стоп-заявки. */
currency: string;
/** Тип стоп-заявки. */
orderType: StopOrderType;
/** Дата и время выставления заявки по UTC. */
createDate?:
| Date
| undefined;
/** Дата и время конвертации стоп-заявки в биржевую по UTC. */
activationDateTime?:
| Date
| undefined;
/** Дата и время снятия заявки по UTC. */
expirationTime?:
| Date
| undefined;
/** Цена заявки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
price?:
| MoneyValue
| undefined;
/** Цена активации стоп-заявки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
stopPrice?:
| MoneyValue
| undefined;
/** `instrument_uid`-идентификатор инструмента. */
instrumentUid: string;
/** Подтип стоп-заявки — `TakeProfit`. */
takeProfitType: TakeProfitType;
/** Параметры трейлинг-стопа. */
trailingData?:
| StopOrder_TrailingData
| undefined;
/** Статус заявки. */
status: StopOrderStatusOption;
/** Тип дочерней биржевой заявки для тейкпрофита. */
exchangeOrderType: ExchangeOrderType;
/** Идентификатор биржевой заявки. */
exchangeOrderId?: string | undefined;
}
export interface StopOrder_TrailingData {
/** Отступ. */
indent?:
| Quotation
| undefined;
/** Тип величины отступа. */
indentType: TrailingValueType;
/** Размер защитного спреда. */
spread?:
| Quotation
| undefined;
/** Тип величины защитного спреда. */
spreadType: TrailingValueType;
/** Статус трейлинг-стопа. */
status: TrailingStopStatus;
/** Цена исполнения. */
price?:
| Quotation
| undefined;
/** Локальный экстремум. */
extr?: Quotation | undefined;
}
function createBasePostStopOrderRequest(): PostStopOrderRequest {
return {
figi: undefined,
quantity: 0,
price: undefined,
stopPrice: undefined,
direction: 0,
accountId: "",
expirationType: 0,
stopOrderType: 0,
expireDate: undefined,
instrumentId: "",
exchangeOrderType: 0,
takeProfitType: 0,
trailingData: undefined,
priceType: 0,
orderId: "",
};
}
export const PostStopOrderRequest = {
encode(message: PostStopOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.figi !== undefined) {
writer.uint32(10).string(message.figi);
}
if (message.quantity !== 0) {
writer.uint32(16).int64(message.quantity);
}
if (message.price !== undefined) {
Quotation.encode(message.price, writer.uint32(26).fork()).ldelim();
}
if (message.stopPrice !== undefined) {
Quotation.encode(message.stopPrice, writer.uint32(34).fork()).ldelim();
}
if (message.direction !== 0) {
writer.uint32(40).int32(message.direction);
}
if (message.accountId !== "") {
writer.uint32(50).string(message.accountId);
}
if (message.expirationType !== 0) {
writer.uint32(56).int32(message.expirationType);
}
if (message.stopOrderType !== 0) {
writer.uint32(64).int32(message.stopOrderType);
}
if (message.expireDate !== undefined) {
Timestamp.encode(toTimestamp(message.expireDate), writer.uint32(74).fork()).ldelim();
}
if (message.instrumentId !== "") {
writer.uint32(82).string(message.instrumentId);
}
if (message.exchangeOrderType !== 0) {
writer.uint32(88).int32(message.exchangeOrderType);
}
if (message.takeProfitType !== 0) {
writer.uint32(96).int32(message.takeProfitType);
}
if (message.trailingData !== undefined) {
PostStopOrderRequest_TrailingData.encode(message.trailingData, writer.uint32(106).fork()).ldelim();
}
if (message.priceType !== 0) {
writer.uint32(112).int32(message.priceType);
}
if (message.orderId !== "") {
writer.uint32(122).string(message.orderId);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): PostStopOrderRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePostStopOrderRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.figi = reader.string();
continue;
case 2:
if (tag !== 16) {
break;
}
message.quantity = longToNumber(reader.int64() as Long);
continue;
case 3:
if (tag !== 26) {
break;
}
message.price = Quotation.decode(reader, reader.uint32());
continue;
case 4:
if (tag !== 34) {
break;
}
message.stopPrice = Quotation.decode(reader, reader.uint32());
continue;
case 5:
if (tag !== 40) {
break;
}
message.direction = reader.int32() as any;
continue;
case 6:
if (tag !== 50) {
break;
}
message.accountId = reader.string();
continue;
case 7:
if (tag !== 56) {
break;
}
message.expirationType = reader.int32() as any;
continue;
case 8:
if (tag !== 64) {
break;
}
message.stopOrderType = reader.int32() as any;
continue;
case 9:
if (tag !== 74) {
break;
}
message.expireDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 10:
if (tag !== 82) {
break;
}
message.instrumentId = reader.string();
continue;
case 11:
if (tag !== 88) {
break;
}
message.exchangeOrderType = reader.int32() as any;
continue;
case 12:
if (tag !== 96) {
break;
}
message.takeProfitType = reader.int32() as any;
continue;
case 13:
if (tag !== 106) {
break;
}
message.trailingData = PostStopOrderRequest_TrailingData.decode(reader, reader.uint32());
continue;
case 14:
if (tag !== 112) {
break;
}
message.priceType = reader.int32() as any;
continue;
case 15:
if (tag !== 122) {
break;
}
message.orderId = reader.string();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): PostStopOrderRequest {
return {
figi: isSet(object.figi) ? globalThis.String(object.figi) : undefined,
quantity: isSet(object.quantity) ? globalThis.Number(object.quantity) : 0,
price: isSet(object.price) ? Quotation.fromJSON(object.price) : undefined,
stopPrice: isSet(object.stopPrice) ? Quotation.fromJSON(object.stopPrice) : undefined,
direction: isSet(object.direction) ? stopOrderDirectionFromJSON(object.direction) : 0,
accountId: isSet(object.accountId) ? globalThis.String(object.accountId) : "",
expirationType: isSet(object.expirationType) ? stopOrderExpirationTypeFromJSON(object.expirationType) : 0,
stopOrderType: isSet(object.stopOrderType) ? stopOrderTypeFromJSON(object.stopOrderType) : 0,
expireDate: isSet(object.expireDate) ? fromJsonTimestamp(object.expireDate) : undefined,
instrumentId: isSet(object.instrumentId) ? globalThis.String(object.instrumentId) : "",
exchangeOrderType: isSet(object.exchangeOrderType) ? exchangeOrderTypeFromJSON(object.exchangeOrderType) : 0,
takeProfitType: isSet(object.takeProfitType) ? takeProfitTypeFromJSON(object.takeProfitType) : 0,
trailingData: isSet(object.trailingData)
? PostStopOrderRequest_TrailingData.fromJSON(object.trailingData)
: undefined,
priceType: isSet(object.priceType) ? priceTypeFromJSON(object.priceType) : 0,
orderId: isSet(object.orderId) ? globalThis.String(object.orderId) : "",
};
},
toJSON(message: PostStopOrderRequest): unknown {
const obj: any = {};
if (message.figi !== undefined) {
obj.figi = message.figi;
}
if (message.quantity !== 0) {
obj.quantity = Math.round(message.quantity);
}
if (message.price !== undefined) {
obj.price = Quotation.toJSON(message.price);
}
if (message.stopPrice !== undefined) {
obj.stopPrice = Quotation.toJSON(message.stopPrice);
}
if (message.direction !== 0) {
obj.direction = stopOrderDirectionToJSON(message.direction);
}
if (message.accountId !== "") {
obj.accountId = message.accountId;
}
if (message.expirationType !== 0) {
obj.expirationType = stopOrderExpirationTypeToJSON(message.expirationType);
}
if (message.stopOrderType !== 0) {
obj.stopOrderType = stopOrderTypeToJSON(message.stopOrderType);
}
if (message.expireDate !== undefined) {
obj.expireDate = message.expireDate.toISOString();
}
if (message.instrumentId !== "") {
obj.instrumentId = message.instrumentId;
}
if (message.exchangeOrderType !== 0) {
obj.exchangeOrderType = exchangeOrderTypeToJSON(message.exchangeOrderType);
}
if (message.takeProfitType !== 0) {
obj.takeProfitType = takeProfitTypeToJSON(message.takeProfitType);
}
if (message.trailingData !== undefined) {
obj.trailingData = PostStopOrderRequest_TrailingData.toJSON(message.trailingData);
}
if (message.priceType !== 0) {
obj.priceType = priceTypeToJSON(message.priceType);
}
if (message.orderId !== "") {
obj.orderId = message.orderId;
}
return obj;
},
};
function createBasePostStopOrderRequest_TrailingData(): PostStopOrderRequest_TrailingData {
return { indent: undefined, indentType: 0, spread: undefined, spreadType: 0 };
}
export const PostStopOrderRequest_TrailingData = {
encode(message: PostStopOrderRequest_TrailingData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.indent !== undefined) {
Quotation.encode(message.indent, writer.uint32(10).fork()).ldelim();
}
if (message.indentType !== 0) {
writer.uint32(16).int32(message.indentType);
}
if (message.spread !== undefined) {
Quotation.encode(message.spread, writer.uint32(26).fork()).ldelim();
}
if (message.spreadType !== 0) {
writer.uint32(32).int32(message.spreadType);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): PostStopOrderRequest_TrailingData {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePostStopOrderRequest_TrailingData();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.indent = Quotation.decode(reader, reader.uint32());
continue;
case 2:
if (tag !== 16) {
break;
}
message.indentType = reader.int32() as any;
continue;
case 3:
if (tag !== 26) {
break;
}
message.spread = Quotation.decode(reader, reader.uint32());
continue;
case 4:
if (tag !== 32) {
break;
}
message.spreadType = reader.int32() as any;
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): PostStopOrderRequest_TrailingData {
return {
indent: isSet(object.indent) ? Quotation.fromJSON(object.indent) : undefined,
indentType: isSet(object.indentType) ? trailingValueTypeFromJSON(object.indentType) : 0,
spread: isSet(object.spread) ? Quotation.fromJSON(object.spread) : undefined,
spreadType: isSet(object.spreadType) ? trailingValueTypeFromJSON(object.spreadType) : 0,
};
},
toJSON(message: PostStopOrderRequest_TrailingData): unknown {
const obj: any = {};
if (message.indent !== undefined) {
obj.indent = Quotation.toJSON(message.indent);
}
if (message.indentType !== 0) {
obj.indentType = trailingValueTypeToJSON(message.indentType);
}
if (message.spread !== undefined) {
obj.spread = Quotation.toJSON(message.spread);
}
if (message.spreadType !== 0) {
obj.spreadType = trailingValueTypeToJSON(message.spreadType);
}
return obj;
},
};
function createBasePostStopOrderResponse(): PostStopOrderResponse {
return { stopOrderId: "", orderRequestId: "", responseMetadata: undefined };
}
export const PostStopOrderResponse = {
encode(message: PostStopOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.stopOrderId !== "") {
writer.uint32(10).string(message.stopOrderId);
}
if (message.orderRequestId !== "") {
writer.uint32(18).string(message.orderRequestId);
}
if (message.responseMetadata !== undefined) {
ResponseMetadata.encode(message.responseMetadata, writer.uint32(2034).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): PostStopOrderResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePostStopOrderResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.stopOrderId = reader.string();
continue;
case 2:
if (tag !== 18) {
break;
}
message.orderRequestId = reader.string();
continue;
case 254:
if (tag !== 2034) {
break;
}
message.responseMetadata = ResponseMetadata.decode(reader, reader.uint32());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): PostStopOrderResponse {
return {
stopOrderId: isSet(object.stopOrderId) ? globalThis.String(object.stopOrderId) : "",
orderRequestId: isSet(object.orderRequestId) ? globalThis.String(object.orderRequestId) : "",
responseMetadata: isSet(object.responseMetadata) ? ResponseMetadata.fromJSON(object.responseMetadata) : undefined,
};
},
toJSON(message: PostStopOrderResponse): unknown {
const obj: any = {};
if (message.stopOrderId !== "") {
obj.stopOrderId = message.stopOrderId;
}
if (message.orderRequestId !== "") {
obj.orderRequestId = message.orderRequestId;
}
if (message.responseMetadata !== undefined) {
obj.responseMetadata = ResponseMetadata.toJSON(message.responseMetadata);
}
return obj;
},
};
function createBaseGetStopOrdersRequest(): GetStopOrdersRequest {
return { accountId: "", status: 0, from: undefined, to: undefined };
}
export const GetStopOrdersRequest = {
encode(message: GetStopOrdersRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.accountId !== "") {
writer.uint32(10).string(message.accountId);
}
if (message.status !== 0) {
writer.uint32(16).int32(message.status);
}
if (message.from !== undefined) {
Timestamp.encode(toTimestamp(message.from), writer.uint32(26).fork()).ldelim();
}
if (message.to !== undefined) {
Timestamp.encode(toTimestamp(message.to), writer.uint32(34).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetStopOrdersRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetStopOrdersRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.accountId = reader.string();
continue;
case 2:
if (tag !== 16) {
break;
}
message.status = reader.int32() as any;
continue;
case 3:
if (tag !== 26) {
break;
}
message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 4:
if (tag !== 34) {
break;
}
message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetStopOrdersRequest {
return {
accountId: isSet(object.accountId) ? globalThis.String(object.accountId) : "",
status: isSet(object.status) ? stopOrderStatusOptionFromJSON(object.status) : 0,
from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined,
to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined,
};
},
toJSON(message: GetStopOrdersRequest): unknown {
const obj: any = {};
if (message.accountId !== "") {
obj.accountId = message.accountId;
}
if (message.status !== 0) {
obj.status = stopOrderStatusOptionToJSON(message.status);
}
if (message.from !== undefined) {
obj.from = message.from.toISOString();
}
if (message.to !== undefined) {
obj.to = message.to.toISOString();
}
return obj;
},
};
function createBaseGetStopOrdersResponse(): GetStopOrdersResponse {
return { stopOrders: [] };
}
export const GetStopOrdersResponse = {
encode(message: GetStopOrdersResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.stopOrders) {
StopOrder.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetStopOrdersResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetStopOrdersResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.stopOrders.push(StopOrder.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetStopOrdersResponse {
return {
stopOrders: globalThis.Array.isArray(object?.stopOrders)
? object.stopOrders.map((e: any) => StopOrder.fromJSON(e))
: [],
};
},
toJSON(message: GetStopOrdersResponse): unknown {
const obj: any = {};
if (message.stopOrders?.length) {
obj.stopOrders = message.stopOrders.map((e) => StopOrder.toJSON(e));
}
return obj;
},
};
function createBaseCancelStopOrderRequest(): CancelStopOrderRequest {
return { accountId: "", stopOrderId: "" };
}
export const CancelStopOrderRequest = {
encode(message: CancelStopOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.accountId !== "") {
writer.uint32(10).string(message.accountId);
}
if (message.stopOrderId !== "") {
writer.uint32(18).string(message.stopOrderId);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): CancelStopOrderRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCancelStopOrderRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.accountId = reader.string();
continue;
case 2:
if (tag !== 18) {
break;
}
message.stopOrderId = reader.string();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): CancelStopOrderRequest {
return {
accountId: isSet(object.accountId) ? globalThis.String(object.accountId) : "",
stopOrderId: isSet(object.stopOrderId) ? globalThis.String(object.stopOrderId) : "",
};
},
toJSON(message: CancelStopOrderRequest): unknown {
const obj: any = {};
if (message.accountId !== "") {
obj.accountId = message.accountId;
}
if (message.stopOrderId !== "") {
obj.stopOrderId = message.stopOrderId;
}
return obj;
},
};
function createBaseCancelStopOrderResponse(): CancelStopOrderResponse {
return { time: undefined };
}
export const CancelStopOrderResponse = {
encode(message: CancelStopOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.time !== undefined) {
Timestamp.encode(toTimestamp(message.time), writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): CancelStopOrderResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCancelStopOrderResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): CancelStopOrderResponse {
return { time: isSet(object.time) ? fromJsonTimestamp(object.time) : undefined };
},
toJSON(message: CancelStopOrderResponse): unknown {
const obj: any = {};
if (message.time !== undefined) {
obj.time = message.time.toISOString();
}
return obj;
},
};
function createBaseStopOrder(): StopOrder {
return {
stopOrderId: "",
lotsRequested: 0,
figi: "",
direction: 0,
currency: "",
orderType: 0,
createDate: undefined,
activationDateTime: undefined,
expirationTime: undefined,
price: undefined,
stopPrice: undefined,
instrumentUid: "",
takeProfitType: 0,
trailingData: undefined,
status: 0,
exchangeOrderType: 0,
exchangeOrderId: undefined,
};
}
export const StopOrder = {
encode(message: StopOrder, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.stopOrderId !== "") {
writer.uint32(10).string(message.stopOrderId);
}
if (message.lotsRequested !== 0) {
writer.uint32(16).int64(message.lotsRequested);
}
if (message.figi !== "") {
writer.uint32(26).string(message.figi);
}
if (message.direction !== 0) {
writer.uint32(32).int32(message.direction);
}
if (message.currency !== "") {
writer.uint32(42).string(message.currency);
}
if (message.orderType !== 0) {
writer.uint32(48).int32(message.orderType);
}
if (message.createDate !== undefined) {
Timestamp.encode(toTimestamp(message.createDate), writer.uint32(58).fork()).ldelim();
}
if (message.activationDateTime !== undefined) {
Timestamp.encode(toTimestamp(message.activationDateTime), writer.uint32(66).fork()).ldelim();
}
if (message.expirationTime !== undefined) {
Timestamp.encode(toTimestamp(message.expirationTime), writer.uint32(74).fork()).ldelim();
}
if (message.price !== undefined) {
MoneyValue.encode(message.price, writer.uint32(82).fork()).ldelim();
}
if (message.stopPrice !== undefined) {
MoneyValue.encode(message.stopPrice, writer.uint32(90).fork()).ldelim();
}
if (message.instrumentUid !== "") {
writer.uint32(98).string(message.instrumentUid);
}
if (message.takeProfitType !== 0) {
writer.uint32(104).int32(message.takeProfitType);
}
if (message.trailingData !== undefined) {
StopOrder_TrailingData.encode(message.trailingData, writer.uint32(114).fork()).ldelim();
}
if (message.status !== 0) {
writer.uint32(120).int32(message.status);
}
if (message.exchangeOrderType !== 0) {
writer.uint32(128).int32(message.exchangeOrderType);
}
if (message.exchangeOrderId !== undefined) {
writer.uint32(138).string(message.exchangeOrderId);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): StopOrder {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseStopOrder();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.stopOrderId = reader.string();
continue;
case 2:
if (tag !== 16) {
break;
}
message.lotsRequested = longToNumber(reader.int64() as Long);
continue;
case 3:
if (tag !== 26) {
break;
}
message.figi = reader.string();
continue;
case 4:
if (tag !== 32) {
break;
}
message.direction = reader.int32() as any;
continue;
case 5:
if (tag !== 42) {
break;
}
message.currency = reader.string();
continue;
case 6:
if (tag !== 48) {
break;
}
message.orderType = reader.int32() as any;
continue;
case 7:
if (tag !== 58) {
break;
}
message.createDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 8:
if (tag !== 66) {
break;
}
message.activationDateTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 9:
if (tag !== 74) {
break;
}
message.expirationTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 10:
if (tag !== 82) {
break;
}
message.price = MoneyValue.decode(reader, reader.uint32());
continue;
case 11:
if (tag !== 90) {
break;
}
message.stopPrice = MoneyValue.decode(reader, reader.uint32());
continue;
case 12:
if (tag !== 98) {
break;
}
message.instrumentUid = reader.string();
continue;
case 13:
if (tag !== 104) {
break;
}
message.takeProfitType = reader.int32() as any;
continue;
case 14:
if (tag !== 114) {
break;
}
message.trailingData = StopOrder_TrailingData.decode(reader, reader.uint32());
continue;
case 15:
if (tag !== 120) {
break;
}
message.status = reader.int32() as any;
continue;
case 16:
if (tag !== 128) {
break;
}
message.exchangeOrderType = reader.int32() as any;
continue;
case 17:
if (tag !== 138) {
break;
}
message.exchangeOrderId = reader.string();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): StopOrder {
return {
stopOrderId: isSet(object.stopOrderId) ? globalThis.String(object.stopOrderId) : "",
lotsRequested: isSet(object.lotsRequested) ? globalThis.Number(object.lotsRequested) : 0,
figi: isSet(object.figi) ? globalThis.String(object.figi) : "",
direction: isSet(object.direction) ? stopOrderDirectionFromJSON(object.direction) : 0,
currency: isSet(object.currency) ? globalThis.String(object.currency) : "",
orderType: isSet(object.orderType) ? stopOrderTypeFromJSON(object.orderType) : 0,
createDate: isSet(object.createDate) ? fromJsonTimestamp(object.createDate) : undefined,
activationDateTime: isSet(object.activationDateTime) ? fromJsonTimestamp(object.activationDateTime) : undefined,
expirationTime: isSet(object.expirationTime) ? fromJsonTimestamp(object.expirationTime) : undefined,
price: isSet(object.price) ? MoneyValue.fromJSON(object.price) : undefined,
stopPrice: isSet(object.stopPrice) ? MoneyValue.fromJSON(object.stopPrice) : undefined,
instrumentUid: isSet(object.instrumentUid) ? globalThis.String(object.instrumentUid) : "",
takeProfitType: isSet(object.takeProfitType) ? takeProfitTypeFromJSON(object.takeProfitType) : 0,
trailingData: isSet(object.trailingData) ? StopOrder_TrailingData.fromJSON(object.trailingData) : undefined,
status: isSet(object.status) ? stopOrderStatusOptionFromJSON(object.status) : 0,
exchangeOrderType: isSet(object.exchangeOrderType) ? exchangeOrderTypeFromJSON(object.exchangeOrderType) : 0,
exchangeOrderId: isSet(object.exchangeOrderId) ? globalThis.String(object.exchangeOrderId) : undefined,
};
},
toJSON(message: StopOrder): unknown {
const obj: any = {};
if (message.stopOrderId !== "") {
obj.stopOrderId = message.stopOrderId;
}
if (message.lotsRequested !== 0) {
obj.lotsRequested = Math.round(message.lotsRequested);
}
if (message.figi !== "") {
obj.figi = message.figi;
}
if (message.direction !== 0) {
obj.direction = stopOrderDirectionToJSON(message.direction);
}
if (message.currency !== "") {
obj.currency = message.currency;
}
if (message.orderType !== 0) {
obj.orderType = stopOrderTypeToJSON(message.orderType);
}
if (message.createDate !== undefined) {
obj.createDate = message.createDate.toISOString();
}
if (message.activationDateTime !== undefined) {
obj.activationDateTime = message.activationDateTime.toISOString();
}
if (message.expirationTime !== undefined) {
obj.expirationTime = message.expirationTime.toISOString();
}
if (message.price !== undefined) {
obj.price = MoneyValue.toJSON(message.price);
}
if (message.stopPrice !== undefined) {
obj.stopPrice = MoneyValue.toJSON(message.stopPrice);
}
if (message.instrumentUid !== "") {
obj.instrumentUid = message.instrumentUid;
}
if (message.takeProfitType !== 0) {
obj.takeProfitType = takeProfitTypeToJSON(message.takeProfitType);
}
if (message.trailingData !== undefined) {
obj.trailingData = StopOrder_TrailingData.toJSON(message.trailingData);
}
if (message.status !== 0) {
obj.status = stopOrderStatusOptionToJSON(message.status);
}
if (message.exchangeOrderType !== 0) {
obj.exchangeOrderType = exchangeOrderTypeToJSON(message.exchangeOrderType);
}
if (message.exchangeOrderId !== undefined) {
obj.exchangeOrderId = message.exchangeOrderId;
}
return obj;
},
};
function createBaseStopOrder_TrailingData(): StopOrder_TrailingData {
return {
indent: undefined,
indentType: 0,
spread: undefined,
spreadType: 0,
status: 0,
price: undefined,
extr: undefined,
};
}
export const StopOrder_TrailingData = {
encode(message: StopOrder_TrailingData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.indent !== undefined) {
Quotation.encode(message.indent, writer.uint32(10).fork()).ldelim();
}
if (message.indentType !== 0) {
writer.uint32(16).int32(message.indentType);
}
if (message.spread !== undefined) {
Quotation.encode(message.spread, writer.uint32(26).fork()).ldelim();
}
if (message.spreadType !== 0) {
writer.uint32(32).int32(message.spreadType);
}
if (message.status !== 0) {
writer.uint32(40).int32(message.status);
}
if (message.price !== undefined) {
Quotation.encode(message.price, writer.uint32(58).fork()).ldelim();
}
if (message.extr !== undefined) {
Quotation.encode(message.extr, writer.uint32(66).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: numb