tinkoff-invest-api
Version:
Node.js SDK for Tinkoff Invest API
2,216 lines • 71.2 kB
text/typescript
/* eslint-disable */
import type { CallContext, CallOptions } from "nice-grpc-common";
import _m0 from "protobufjs/minimal.js";
import { MoneyValue, Quotation } from "./common.js";
import { Timestamp } from "./google/protobuf/timestamp.js";
export const protobufPackage = "tinkoff.public.invest.api.contract.v1";
/** Тип счeта. */
export enum AccountType {
/** ACCOUNT_TYPE_UNSPECIFIED - Тип аккаунта не определeн. */
ACCOUNT_TYPE_UNSPECIFIED = 0,
/** ACCOUNT_TYPE_TINKOFF - Брокерский счeт Т-Инвестиций. */
ACCOUNT_TYPE_TINKOFF = 1,
/** ACCOUNT_TYPE_TINKOFF_IIS - ИИС. */
ACCOUNT_TYPE_TINKOFF_IIS = 2,
/** ACCOUNT_TYPE_INVEST_BOX - Инвесткопилка. */
ACCOUNT_TYPE_INVEST_BOX = 3,
/** ACCOUNT_TYPE_INVEST_FUND - Фонд денежного рынка. */
ACCOUNT_TYPE_INVEST_FUND = 4,
/** ACCOUNT_TYPE_DEBIT - Дебетовый карточный счeт. */
ACCOUNT_TYPE_DEBIT = 5,
/** ACCOUNT_TYPE_SAVING - Накопительный счeт. */
ACCOUNT_TYPE_SAVING = 6,
/** ACCOUNT_TYPE_DFA - Смарт-счет. */
ACCOUNT_TYPE_DFA = 7,
UNRECOGNIZED = -1,
}
export function accountTypeFromJSON(object: any): AccountType {
switch (object) {
case 0:
case "ACCOUNT_TYPE_UNSPECIFIED":
return AccountType.ACCOUNT_TYPE_UNSPECIFIED;
case 1:
case "ACCOUNT_TYPE_TINKOFF":
return AccountType.ACCOUNT_TYPE_TINKOFF;
case 2:
case "ACCOUNT_TYPE_TINKOFF_IIS":
return AccountType.ACCOUNT_TYPE_TINKOFF_IIS;
case 3:
case "ACCOUNT_TYPE_INVEST_BOX":
return AccountType.ACCOUNT_TYPE_INVEST_BOX;
case 4:
case "ACCOUNT_TYPE_INVEST_FUND":
return AccountType.ACCOUNT_TYPE_INVEST_FUND;
case 5:
case "ACCOUNT_TYPE_DEBIT":
return AccountType.ACCOUNT_TYPE_DEBIT;
case 6:
case "ACCOUNT_TYPE_SAVING":
return AccountType.ACCOUNT_TYPE_SAVING;
case 7:
case "ACCOUNT_TYPE_DFA":
return AccountType.ACCOUNT_TYPE_DFA;
case -1:
case "UNRECOGNIZED":
default:
return AccountType.UNRECOGNIZED;
}
}
export function accountTypeToJSON(object: AccountType): string {
switch (object) {
case AccountType.ACCOUNT_TYPE_UNSPECIFIED:
return "ACCOUNT_TYPE_UNSPECIFIED";
case AccountType.ACCOUNT_TYPE_TINKOFF:
return "ACCOUNT_TYPE_TINKOFF";
case AccountType.ACCOUNT_TYPE_TINKOFF_IIS:
return "ACCOUNT_TYPE_TINKOFF_IIS";
case AccountType.ACCOUNT_TYPE_INVEST_BOX:
return "ACCOUNT_TYPE_INVEST_BOX";
case AccountType.ACCOUNT_TYPE_INVEST_FUND:
return "ACCOUNT_TYPE_INVEST_FUND";
case AccountType.ACCOUNT_TYPE_DEBIT:
return "ACCOUNT_TYPE_DEBIT";
case AccountType.ACCOUNT_TYPE_SAVING:
return "ACCOUNT_TYPE_SAVING";
case AccountType.ACCOUNT_TYPE_DFA:
return "ACCOUNT_TYPE_DFA";
case AccountType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Статус счeта. */
export enum AccountStatus {
/** ACCOUNT_STATUS_UNSPECIFIED - Статус счeта не определeн. */
ACCOUNT_STATUS_UNSPECIFIED = 0,
/** ACCOUNT_STATUS_NEW - Новый, в процессе открытия. */
ACCOUNT_STATUS_NEW = 1,
/** ACCOUNT_STATUS_OPEN - Открытый и активный счeт. */
ACCOUNT_STATUS_OPEN = 2,
/** ACCOUNT_STATUS_CLOSED - Закрытый счeт. */
ACCOUNT_STATUS_CLOSED = 3,
/** ACCOUNT_STATUS_ALL - Все счета. */
ACCOUNT_STATUS_ALL = 4,
UNRECOGNIZED = -1,
}
export function accountStatusFromJSON(object: any): AccountStatus {
switch (object) {
case 0:
case "ACCOUNT_STATUS_UNSPECIFIED":
return AccountStatus.ACCOUNT_STATUS_UNSPECIFIED;
case 1:
case "ACCOUNT_STATUS_NEW":
return AccountStatus.ACCOUNT_STATUS_NEW;
case 2:
case "ACCOUNT_STATUS_OPEN":
return AccountStatus.ACCOUNT_STATUS_OPEN;
case 3:
case "ACCOUNT_STATUS_CLOSED":
return AccountStatus.ACCOUNT_STATUS_CLOSED;
case 4:
case "ACCOUNT_STATUS_ALL":
return AccountStatus.ACCOUNT_STATUS_ALL;
case -1:
case "UNRECOGNIZED":
default:
return AccountStatus.UNRECOGNIZED;
}
}
export function accountStatusToJSON(object: AccountStatus): string {
switch (object) {
case AccountStatus.ACCOUNT_STATUS_UNSPECIFIED:
return "ACCOUNT_STATUS_UNSPECIFIED";
case AccountStatus.ACCOUNT_STATUS_NEW:
return "ACCOUNT_STATUS_NEW";
case AccountStatus.ACCOUNT_STATUS_OPEN:
return "ACCOUNT_STATUS_OPEN";
case AccountStatus.ACCOUNT_STATUS_CLOSED:
return "ACCOUNT_STATUS_CLOSED";
case AccountStatus.ACCOUNT_STATUS_ALL:
return "ACCOUNT_STATUS_ALL";
case AccountStatus.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Уровень доступа к счeту. */
export enum AccessLevel {
/** ACCOUNT_ACCESS_LEVEL_UNSPECIFIED - Уровень доступа не определeн. */
ACCOUNT_ACCESS_LEVEL_UNSPECIFIED = 0,
/** ACCOUNT_ACCESS_LEVEL_FULL_ACCESS - Полный доступ к счeту. */
ACCOUNT_ACCESS_LEVEL_FULL_ACCESS = 1,
/** ACCOUNT_ACCESS_LEVEL_READ_ONLY - Доступ с уровнем прав «только чтение». */
ACCOUNT_ACCESS_LEVEL_READ_ONLY = 2,
/** ACCOUNT_ACCESS_LEVEL_NO_ACCESS - Доступа нет. */
ACCOUNT_ACCESS_LEVEL_NO_ACCESS = 3,
UNRECOGNIZED = -1,
}
export function accessLevelFromJSON(object: any): AccessLevel {
switch (object) {
case 0:
case "ACCOUNT_ACCESS_LEVEL_UNSPECIFIED":
return AccessLevel.ACCOUNT_ACCESS_LEVEL_UNSPECIFIED;
case 1:
case "ACCOUNT_ACCESS_LEVEL_FULL_ACCESS":
return AccessLevel.ACCOUNT_ACCESS_LEVEL_FULL_ACCESS;
case 2:
case "ACCOUNT_ACCESS_LEVEL_READ_ONLY":
return AccessLevel.ACCOUNT_ACCESS_LEVEL_READ_ONLY;
case 3:
case "ACCOUNT_ACCESS_LEVEL_NO_ACCESS":
return AccessLevel.ACCOUNT_ACCESS_LEVEL_NO_ACCESS;
case -1:
case "UNRECOGNIZED":
default:
return AccessLevel.UNRECOGNIZED;
}
}
export function accessLevelToJSON(object: AccessLevel): string {
switch (object) {
case AccessLevel.ACCOUNT_ACCESS_LEVEL_UNSPECIFIED:
return "ACCOUNT_ACCESS_LEVEL_UNSPECIFIED";
case AccessLevel.ACCOUNT_ACCESS_LEVEL_FULL_ACCESS:
return "ACCOUNT_ACCESS_LEVEL_FULL_ACCESS";
case AccessLevel.ACCOUNT_ACCESS_LEVEL_READ_ONLY:
return "ACCOUNT_ACCESS_LEVEL_READ_ONLY";
case AccessLevel.ACCOUNT_ACCESS_LEVEL_NO_ACCESS:
return "ACCOUNT_ACCESS_LEVEL_NO_ACCESS";
case AccessLevel.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
export enum AccountValue {
/** ACCOUNT_VALUE_UNSPECIFIED - Не определён. */
ACCOUNT_VALUE_UNSPECIFIED = 0,
/** ACCOUNT_VALUE_MARGIN_FEE - Размер комиссии за маржинальное кредитование. */
ACCOUNT_VALUE_MARGIN_FEE = 1,
/** ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE - Остаток доступного лимита с текущей комиссией. */
ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE = 2,
UNRECOGNIZED = -1,
}
export function accountValueFromJSON(object: any): AccountValue {
switch (object) {
case 0:
case "ACCOUNT_VALUE_UNSPECIFIED":
return AccountValue.ACCOUNT_VALUE_UNSPECIFIED;
case 1:
case "ACCOUNT_VALUE_MARGIN_FEE":
return AccountValue.ACCOUNT_VALUE_MARGIN_FEE;
case 2:
case "ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE":
return AccountValue.ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE;
case -1:
case "UNRECOGNIZED":
default:
return AccountValue.UNRECOGNIZED;
}
}
export function accountValueToJSON(object: AccountValue): string {
switch (object) {
case AccountValue.ACCOUNT_VALUE_UNSPECIFIED:
return "ACCOUNT_VALUE_UNSPECIFIED";
case AccountValue.ACCOUNT_VALUE_MARGIN_FEE:
return "ACCOUNT_VALUE_MARGIN_FEE";
case AccountValue.ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE:
return "ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE";
case AccountValue.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
/** Запрос получения счетов пользователя. */
export interface GetAccountsRequest {
/** Статус счета. */
status?: AccountStatus | undefined;
}
/** Список счетов пользователя. */
export interface GetAccountsResponse {
/** Массив счетов клиента. */
accounts: Account[];
}
/** Информация о счeте. */
export interface Account {
/** Идентификатор счeта. */
id: string;
/** Тип счeта. */
type: AccountType;
/** Название счeта. */
name: string;
/** Статус счeта. */
status: AccountStatus;
/** Дата открытия счeта в часовом поясе UTC. */
openedDate?:
| Date
| undefined;
/** Дата закрытия счeта в часовом поясе UTC. */
closedDate?:
| Date
| undefined;
/** Уровень доступа к текущему счeту (определяется токеном). */
accessLevel: AccessLevel;
}
/** Запрос маржинальных показателей по счeту. */
export interface GetMarginAttributesRequest {
/** Идентификатор счeта пользователя. */
accountId: string;
}
/** Маржинальные показатели по счeту. */
export interface GetMarginAttributesResponse {
/** Ликвидная стоимость портфеля. [Подробнее про ликвидный портфель](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q4). */
liquidPortfolio?:
| MoneyValue
| undefined;
/** Начальная маржа — начальное обеспечение для совершения новой сделки. [Подробнее про начальную и минимальную маржу](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q6). */
startingMargin?:
| MoneyValue
| undefined;
/** Минимальная маржа — это минимальное обеспечение для поддержания позиции, которую вы уже открыли. [Подробнее про начальную и минимальную маржу](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q6). */
minimalMargin?:
| MoneyValue
| undefined;
/** Уровень достаточности средств. Соотношение стоимости ликвидного портфеля к начальной марже. */
fundsSufficiencyLevel?:
| Quotation
| undefined;
/** Объем недостающих средств. Разница между стартовой маржой и ликвидной стоимости портфеля. */
amountOfMissingFunds?:
| MoneyValue
| undefined;
/** Скорректированная маржа. Начальная маржа, в которой плановые позиции рассчитываются с учeтом активных заявок на покупку позиций лонг или продажу позиций шорт. */
correctedMargin?:
| MoneyValue
| undefined;
/** Размер гарантийного обеспечения, заблокированного под фьючерсы. */
guaranteeForFutures?: MoneyValue | undefined;
}
/** Запрос текущих лимитов пользователя. */
export interface GetUserTariffRequest {
}
/** Текущие лимиты пользователя. */
export interface GetUserTariffResponse {
/** Массив лимитов пользователя по unary-запросам. */
unaryLimits: UnaryLimit[];
/** Массив лимитов пользователей для stream-соединений. */
streamLimits: StreamLimit[];
}
/** Лимит unary-методов. */
export interface UnaryLimit {
/** Количество unary-запросов в минуту. */
limitPerMinute: number;
/** Названия методов. */
methods: string[];
/** Количество unary-запросов в секунду. */
limitPerSecond?: number | undefined;
}
/** Лимит stream-соединений. */
export interface StreamLimit {
/** Максимальное количество stream-соединений. */
limit: number;
/** Названия stream-методов. */
streams: string[];
/** Текущее количество открытых stream-соединений. */
open: number;
}
/** Запрос информации о пользователе. */
export interface GetInfoRequest {
}
/** Информация о пользователе. */
export interface GetInfoResponse {
/** Признак премиум клиента. */
premStatus: boolean;
/** Признак квалифицированного инвестора. */
qualStatus: boolean;
/** Набор требующих тестирования инструментов и возможностей, с которыми может работать пользователь. [Подробнее](/invest/services/accounts/faq_users). */
qualifiedForWorkWith: string[];
/** Наименование тарифа пользователя. */
tariff: string;
/** Идентификатор пользователя. */
userId: string;
/** Категория риска. */
riskLevelCode: string;
}
/** Запрос списка банковских счетов пользователя. */
export interface GetBankAccountsRequest {
}
/** Список банковских счетов пользователя. */
export interface GetBankAccountsResponse {
/** Массив банковских счетов. */
bankAccounts: BankAccount[];
}
/** Банковский счeт. */
export interface BankAccount {
/** Идентификатор счeта. */
id: string;
/** Название счeта. */
name: string;
/** Список валютных позиций на счeте. */
money: MoneyValue[];
/** Дата открытия счeта в часовом поясе UTC. */
openedDate?:
| Date
| undefined;
/** Тип счeта. */
type: AccountType;
}
export interface CurrencyTransferRequest {
/** Номер счета списания. */
fromAccountId: string;
/** Номер счета зачисления. */
toAccountId: string;
/** Сумма перевода с указанием валюты. */
amount?:
| MoneyValue
| undefined;
/** Идентификатор запроса выставления поручения для целей идемпотентности в формате UUID. */
transactionId: string;
}
export interface CurrencyTransferResponse {
}
export interface PayInRequest {
/** Номер счета списания. */
fromAccountId: string;
/** Номер брокерского счета зачисления. */
toAccountId: string;
/** Сумма перевода с указанием валюты. */
amount?: MoneyValue | undefined;
}
export interface PayInResponse {
}
export interface GetAccountValuesRequest {
/** Массив счетов пользователя. */
accounts: string[];
/** Массив запрашиваемых параметров. */
values: AccountValue[];
}
export interface GetAccountValuesResponse {
/** Массив счетов с параметрами. */
accounts: AccountValuesWithParameters[];
}
export interface AccountValuesWithParameters {
/** Номер счета. */
accountId: string;
/** Массив параметров инструмента. */
values: InstrumentParameter[];
}
export interface InstrumentParameter {
/** Тип запрашиваемого параметра. */
name: AccountValue;
/** Значение запрашиваемого параметра. */
value?: MoneyValue | undefined;
}
function createBaseGetAccountsRequest(): GetAccountsRequest {
return { status: undefined };
}
export const GetAccountsRequest = {
encode(message: GetAccountsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.status !== undefined) {
writer.uint32(8).int32(message.status);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountsRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetAccountsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 8) {
break;
}
message.status = reader.int32() as any;
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetAccountsRequest {
return { status: isSet(object.status) ? accountStatusFromJSON(object.status) : undefined };
},
toJSON(message: GetAccountsRequest): unknown {
const obj: any = {};
if (message.status !== undefined) {
obj.status = accountStatusToJSON(message.status);
}
return obj;
},
};
function createBaseGetAccountsResponse(): GetAccountsResponse {
return { accounts: [] };
}
export const GetAccountsResponse = {
encode(message: GetAccountsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.accounts) {
Account.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountsResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetAccountsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.accounts.push(Account.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetAccountsResponse {
return {
accounts: globalThis.Array.isArray(object?.accounts) ? object.accounts.map((e: any) => Account.fromJSON(e)) : [],
};
},
toJSON(message: GetAccountsResponse): unknown {
const obj: any = {};
if (message.accounts?.length) {
obj.accounts = message.accounts.map((e) => Account.toJSON(e));
}
return obj;
},
};
function createBaseAccount(): Account {
return { id: "", type: 0, name: "", status: 0, openedDate: undefined, closedDate: undefined, accessLevel: 0 };
}
export const Account = {
encode(message: Account, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.id !== "") {
writer.uint32(10).string(message.id);
}
if (message.type !== 0) {
writer.uint32(16).int32(message.type);
}
if (message.name !== "") {
writer.uint32(26).string(message.name);
}
if (message.status !== 0) {
writer.uint32(32).int32(message.status);
}
if (message.openedDate !== undefined) {
Timestamp.encode(toTimestamp(message.openedDate), writer.uint32(42).fork()).ldelim();
}
if (message.closedDate !== undefined) {
Timestamp.encode(toTimestamp(message.closedDate), writer.uint32(50).fork()).ldelim();
}
if (message.accessLevel !== 0) {
writer.uint32(56).int32(message.accessLevel);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): Account {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAccount();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.id = reader.string();
continue;
case 2:
if (tag !== 16) {
break;
}
message.type = reader.int32() as any;
continue;
case 3:
if (tag !== 26) {
break;
}
message.name = reader.string();
continue;
case 4:
if (tag !== 32) {
break;
}
message.status = reader.int32() as any;
continue;
case 5:
if (tag !== 42) {
break;
}
message.openedDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 6:
if (tag !== 50) {
break;
}
message.closedDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 7:
if (tag !== 56) {
break;
}
message.accessLevel = reader.int32() as any;
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): Account {
return {
id: isSet(object.id) ? globalThis.String(object.id) : "",
type: isSet(object.type) ? accountTypeFromJSON(object.type) : 0,
name: isSet(object.name) ? globalThis.String(object.name) : "",
status: isSet(object.status) ? accountStatusFromJSON(object.status) : 0,
openedDate: isSet(object.openedDate) ? fromJsonTimestamp(object.openedDate) : undefined,
closedDate: isSet(object.closedDate) ? fromJsonTimestamp(object.closedDate) : undefined,
accessLevel: isSet(object.accessLevel) ? accessLevelFromJSON(object.accessLevel) : 0,
};
},
toJSON(message: Account): unknown {
const obj: any = {};
if (message.id !== "") {
obj.id = message.id;
}
if (message.type !== 0) {
obj.type = accountTypeToJSON(message.type);
}
if (message.name !== "") {
obj.name = message.name;
}
if (message.status !== 0) {
obj.status = accountStatusToJSON(message.status);
}
if (message.openedDate !== undefined) {
obj.openedDate = message.openedDate.toISOString();
}
if (message.closedDate !== undefined) {
obj.closedDate = message.closedDate.toISOString();
}
if (message.accessLevel !== 0) {
obj.accessLevel = accessLevelToJSON(message.accessLevel);
}
return obj;
},
};
function createBaseGetMarginAttributesRequest(): GetMarginAttributesRequest {
return { accountId: "" };
}
export const GetMarginAttributesRequest = {
encode(message: GetMarginAttributesRequest, 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): GetMarginAttributesRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetMarginAttributesRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.accountId = reader.string();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetMarginAttributesRequest {
return { accountId: isSet(object.accountId) ? globalThis.String(object.accountId) : "" };
},
toJSON(message: GetMarginAttributesRequest): unknown {
const obj: any = {};
if (message.accountId !== "") {
obj.accountId = message.accountId;
}
return obj;
},
};
function createBaseGetMarginAttributesResponse(): GetMarginAttributesResponse {
return {
liquidPortfolio: undefined,
startingMargin: undefined,
minimalMargin: undefined,
fundsSufficiencyLevel: undefined,
amountOfMissingFunds: undefined,
correctedMargin: undefined,
guaranteeForFutures: undefined,
};
}
export const GetMarginAttributesResponse = {
encode(message: GetMarginAttributesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.liquidPortfolio !== undefined) {
MoneyValue.encode(message.liquidPortfolio, writer.uint32(10).fork()).ldelim();
}
if (message.startingMargin !== undefined) {
MoneyValue.encode(message.startingMargin, writer.uint32(18).fork()).ldelim();
}
if (message.minimalMargin !== undefined) {
MoneyValue.encode(message.minimalMargin, writer.uint32(26).fork()).ldelim();
}
if (message.fundsSufficiencyLevel !== undefined) {
Quotation.encode(message.fundsSufficiencyLevel, writer.uint32(34).fork()).ldelim();
}
if (message.amountOfMissingFunds !== undefined) {
MoneyValue.encode(message.amountOfMissingFunds, writer.uint32(42).fork()).ldelim();
}
if (message.correctedMargin !== undefined) {
MoneyValue.encode(message.correctedMargin, writer.uint32(50).fork()).ldelim();
}
if (message.guaranteeForFutures !== undefined) {
MoneyValue.encode(message.guaranteeForFutures, writer.uint32(58).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetMarginAttributesResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetMarginAttributesResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.liquidPortfolio = MoneyValue.decode(reader, reader.uint32());
continue;
case 2:
if (tag !== 18) {
break;
}
message.startingMargin = MoneyValue.decode(reader, reader.uint32());
continue;
case 3:
if (tag !== 26) {
break;
}
message.minimalMargin = MoneyValue.decode(reader, reader.uint32());
continue;
case 4:
if (tag !== 34) {
break;
}
message.fundsSufficiencyLevel = Quotation.decode(reader, reader.uint32());
continue;
case 5:
if (tag !== 42) {
break;
}
message.amountOfMissingFunds = MoneyValue.decode(reader, reader.uint32());
continue;
case 6:
if (tag !== 50) {
break;
}
message.correctedMargin = MoneyValue.decode(reader, reader.uint32());
continue;
case 7:
if (tag !== 58) {
break;
}
message.guaranteeForFutures = MoneyValue.decode(reader, reader.uint32());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetMarginAttributesResponse {
return {
liquidPortfolio: isSet(object.liquidPortfolio) ? MoneyValue.fromJSON(object.liquidPortfolio) : undefined,
startingMargin: isSet(object.startingMargin) ? MoneyValue.fromJSON(object.startingMargin) : undefined,
minimalMargin: isSet(object.minimalMargin) ? MoneyValue.fromJSON(object.minimalMargin) : undefined,
fundsSufficiencyLevel: isSet(object.fundsSufficiencyLevel)
? Quotation.fromJSON(object.fundsSufficiencyLevel)
: undefined,
amountOfMissingFunds: isSet(object.amountOfMissingFunds)
? MoneyValue.fromJSON(object.amountOfMissingFunds)
: undefined,
correctedMargin: isSet(object.correctedMargin) ? MoneyValue.fromJSON(object.correctedMargin) : undefined,
guaranteeForFutures: isSet(object.guaranteeForFutures)
? MoneyValue.fromJSON(object.guaranteeForFutures)
: undefined,
};
},
toJSON(message: GetMarginAttributesResponse): unknown {
const obj: any = {};
if (message.liquidPortfolio !== undefined) {
obj.liquidPortfolio = MoneyValue.toJSON(message.liquidPortfolio);
}
if (message.startingMargin !== undefined) {
obj.startingMargin = MoneyValue.toJSON(message.startingMargin);
}
if (message.minimalMargin !== undefined) {
obj.minimalMargin = MoneyValue.toJSON(message.minimalMargin);
}
if (message.fundsSufficiencyLevel !== undefined) {
obj.fundsSufficiencyLevel = Quotation.toJSON(message.fundsSufficiencyLevel);
}
if (message.amountOfMissingFunds !== undefined) {
obj.amountOfMissingFunds = MoneyValue.toJSON(message.amountOfMissingFunds);
}
if (message.correctedMargin !== undefined) {
obj.correctedMargin = MoneyValue.toJSON(message.correctedMargin);
}
if (message.guaranteeForFutures !== undefined) {
obj.guaranteeForFutures = MoneyValue.toJSON(message.guaranteeForFutures);
}
return obj;
},
};
function createBaseGetUserTariffRequest(): GetUserTariffRequest {
return {};
}
export const GetUserTariffRequest = {
encode(_: GetUserTariffRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetUserTariffRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetUserTariffRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(_: any): GetUserTariffRequest {
return {};
},
toJSON(_: GetUserTariffRequest): unknown {
const obj: any = {};
return obj;
},
};
function createBaseGetUserTariffResponse(): GetUserTariffResponse {
return { unaryLimits: [], streamLimits: [] };
}
export const GetUserTariffResponse = {
encode(message: GetUserTariffResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.unaryLimits) {
UnaryLimit.encode(v!, writer.uint32(10).fork()).ldelim();
}
for (const v of message.streamLimits) {
StreamLimit.encode(v!, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetUserTariffResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetUserTariffResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.unaryLimits.push(UnaryLimit.decode(reader, reader.uint32()));
continue;
case 2:
if (tag !== 18) {
break;
}
message.streamLimits.push(StreamLimit.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetUserTariffResponse {
return {
unaryLimits: globalThis.Array.isArray(object?.unaryLimits)
? object.unaryLimits.map((e: any) => UnaryLimit.fromJSON(e))
: [],
streamLimits: globalThis.Array.isArray(object?.streamLimits)
? object.streamLimits.map((e: any) => StreamLimit.fromJSON(e))
: [],
};
},
toJSON(message: GetUserTariffResponse): unknown {
const obj: any = {};
if (message.unaryLimits?.length) {
obj.unaryLimits = message.unaryLimits.map((e) => UnaryLimit.toJSON(e));
}
if (message.streamLimits?.length) {
obj.streamLimits = message.streamLimits.map((e) => StreamLimit.toJSON(e));
}
return obj;
},
};
function createBaseUnaryLimit(): UnaryLimit {
return { limitPerMinute: 0, methods: [], limitPerSecond: undefined };
}
export const UnaryLimit = {
encode(message: UnaryLimit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.limitPerMinute !== 0) {
writer.uint32(8).int32(message.limitPerMinute);
}
for (const v of message.methods) {
writer.uint32(18).string(v!);
}
if (message.limitPerSecond !== undefined) {
writer.uint32(24).int32(message.limitPerSecond);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): UnaryLimit {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseUnaryLimit();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 8) {
break;
}
message.limitPerMinute = reader.int32();
continue;
case 2:
if (tag !== 18) {
break;
}
message.methods.push(reader.string());
continue;
case 3:
if (tag !== 24) {
break;
}
message.limitPerSecond = reader.int32();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): UnaryLimit {
return {
limitPerMinute: isSet(object.limitPerMinute) ? globalThis.Number(object.limitPerMinute) : 0,
methods: globalThis.Array.isArray(object?.methods) ? object.methods.map((e: any) => globalThis.String(e)) : [],
limitPerSecond: isSet(object.limitPerSecond) ? globalThis.Number(object.limitPerSecond) : undefined,
};
},
toJSON(message: UnaryLimit): unknown {
const obj: any = {};
if (message.limitPerMinute !== 0) {
obj.limitPerMinute = Math.round(message.limitPerMinute);
}
if (message.methods?.length) {
obj.methods = message.methods;
}
if (message.limitPerSecond !== undefined) {
obj.limitPerSecond = Math.round(message.limitPerSecond);
}
return obj;
},
};
function createBaseStreamLimit(): StreamLimit {
return { limit: 0, streams: [], open: 0 };
}
export const StreamLimit = {
encode(message: StreamLimit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.limit !== 0) {
writer.uint32(8).int32(message.limit);
}
for (const v of message.streams) {
writer.uint32(18).string(v!);
}
if (message.open !== 0) {
writer.uint32(24).int32(message.open);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): StreamLimit {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseStreamLimit();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 8) {
break;
}
message.limit = reader.int32();
continue;
case 2:
if (tag !== 18) {
break;
}
message.streams.push(reader.string());
continue;
case 3:
if (tag !== 24) {
break;
}
message.open = reader.int32();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): StreamLimit {
return {
limit: isSet(object.limit) ? globalThis.Number(object.limit) : 0,
streams: globalThis.Array.isArray(object?.streams) ? object.streams.map((e: any) => globalThis.String(e)) : [],
open: isSet(object.open) ? globalThis.Number(object.open) : 0,
};
},
toJSON(message: StreamLimit): unknown {
const obj: any = {};
if (message.limit !== 0) {
obj.limit = Math.round(message.limit);
}
if (message.streams?.length) {
obj.streams = message.streams;
}
if (message.open !== 0) {
obj.open = Math.round(message.open);
}
return obj;
},
};
function createBaseGetInfoRequest(): GetInfoRequest {
return {};
}
export const GetInfoRequest = {
encode(_: GetInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetInfoRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetInfoRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(_: any): GetInfoRequest {
return {};
},
toJSON(_: GetInfoRequest): unknown {
const obj: any = {};
return obj;
},
};
function createBaseGetInfoResponse(): GetInfoResponse {
return { premStatus: false, qualStatus: false, qualifiedForWorkWith: [], tariff: "", userId: "", riskLevelCode: "" };
}
export const GetInfoResponse = {
encode(message: GetInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.premStatus === true) {
writer.uint32(8).bool(message.premStatus);
}
if (message.qualStatus === true) {
writer.uint32(16).bool(message.qualStatus);
}
for (const v of message.qualifiedForWorkWith) {
writer.uint32(26).string(v!);
}
if (message.tariff !== "") {
writer.uint32(34).string(message.tariff);
}
if (message.userId !== "") {
writer.uint32(74).string(message.userId);
}
if (message.riskLevelCode !== "") {
writer.uint32(98).string(message.riskLevelCode);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetInfoResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetInfoResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 8) {
break;
}
message.premStatus = reader.bool();
continue;
case 2:
if (tag !== 16) {
break;
}
message.qualStatus = reader.bool();
continue;
case 3:
if (tag !== 26) {
break;
}
message.qualifiedForWorkWith.push(reader.string());
continue;
case 4:
if (tag !== 34) {
break;
}
message.tariff = reader.string();
continue;
case 9:
if (tag !== 74) {
break;
}
message.userId = reader.string();
continue;
case 12:
if (tag !== 98) {
break;
}
message.riskLevelCode = reader.string();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetInfoResponse {
return {
premStatus: isSet(object.premStatus) ? globalThis.Boolean(object.premStatus) : false,
qualStatus: isSet(object.qualStatus) ? globalThis.Boolean(object.qualStatus) : false,
qualifiedForWorkWith: globalThis.Array.isArray(object?.qualifiedForWorkWith)
? object.qualifiedForWorkWith.map((e: any) => globalThis.String(e))
: [],
tariff: isSet(object.tariff) ? globalThis.String(object.tariff) : "",
userId: isSet(object.userId) ? globalThis.String(object.userId) : "",
riskLevelCode: isSet(object.riskLevelCode) ? globalThis.String(object.riskLevelCode) : "",
};
},
toJSON(message: GetInfoResponse): unknown {
const obj: any = {};
if (message.premStatus === true) {
obj.premStatus = message.premStatus;
}
if (message.qualStatus === true) {
obj.qualStatus = message.qualStatus;
}
if (message.qualifiedForWorkWith?.length) {
obj.qualifiedForWorkWith = message.qualifiedForWorkWith;
}
if (message.tariff !== "") {
obj.tariff = message.tariff;
}
if (message.userId !== "") {
obj.userId = message.userId;
}
if (message.riskLevelCode !== "") {
obj.riskLevelCode = message.riskLevelCode;
}
return obj;
},
};
function createBaseGetBankAccountsRequest(): GetBankAccountsRequest {
return {};
}
export const GetBankAccountsRequest = {
encode(_: GetBankAccountsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetBankAccountsRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetBankAccountsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(_: any): GetBankAccountsRequest {
return {};
},
toJSON(_: GetBankAccountsRequest): unknown {
const obj: any = {};
return obj;
},
};
function createBaseGetBankAccountsResponse(): GetBankAccountsResponse {
return { bankAccounts: [] };
}
export const GetBankAccountsResponse = {
encode(message: GetBankAccountsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.bankAccounts) {
BankAccount.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetBankAccountsResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetBankAccountsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.bankAccounts.push(BankAccount.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetBankAccountsResponse {
return {
bankAccounts: globalThis.Array.isArray(object?.bankAccounts)
? object.bankAccounts.map((e: any) => BankAccount.fromJSON(e))
: [],
};
},
toJSON(message: GetBankAccountsResponse): unknown {
const obj: any = {};
if (message.bankAccounts?.length) {
obj.bankAccounts = message.bankAccounts.map((e) => BankAccount.toJSON(e));
}
return obj;
},
};
function createBaseBankAccount(): BankAccount {
return { id: "", name: "", money: [], openedDate: undefined, type: 0 };
}
export const BankAccount = {
encode(message: BankAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.id !== "") {
writer.uint32(10).string(message.id);
}
if (message.name !== "") {
writer.uint32(18).string(message.name);
}
for (const v of message.money) {
MoneyValue.encode(v!, writer.uint32(26).fork()).ldelim();
}
if (message.openedDate !== undefined) {
Timestamp.encode(toTimestamp(message.openedDate), writer.uint32(34).fork()).ldelim();
}
if (message.type !== 0) {
writer.uint32(40).int32(message.type);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): BankAccount {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseBankAccount();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.id = reader.string();
continue;
case 2:
if (tag !== 18) {
break;
}
message.name = reader.string();
continue;
case 3:
if (tag !== 26) {
break;
}
message.money.push(MoneyValue.decode(reader, reader.uint32()));
continue;
case 4:
if (tag !== 34) {
break;
}
message.openedDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
continue;
case 5:
if (tag !== 40) {
break;
}
message.type = reader.int32() as any;
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): BankAccount {
return {
id: isSet(object.id) ? globalThis.String(object.id) : "",
name: isSet(object.name) ? globalThis.String(object.name) : "",
money: globalThis.Array.isArray(object?.money) ? object.money.map((e: any) => MoneyValue.fromJSON(e)) : [],
openedDate: isSet(object.openedDate) ? fromJsonTimestamp(object.openedDate) : undefined,
type: isSet(object.type) ? accountTypeFromJSON(object.type) : 0,
};
},
toJSON(message: BankAccount): unknown {
const obj: any = {};
if (message.id !== "") {
obj.id = message.id;
}
if (message.name !== "") {
obj.name = message.name;
}
if (message.money?.length) {
obj.money = message.money.map((e) => MoneyValue.toJSON(e));
}
if (message.openedDate !== undefined) {
obj.openedDate = message.openedDate.toISOString();
}
if (message.type !== 0) {
obj.type = accountTypeToJSON(message.type);
}
return obj;
},
};
function createBaseCurrencyTransferRequest(): CurrencyTransferRequest {
return { fromAccountId: "", toAccountId: "", amount: undefined, transactionId: "" };
}
export const CurrencyTransferRequest = {
encode(message: CurrencyTransferRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.fromAccountId !== "") {
writer.uint32(10).string(message.fromAccountId);
}
if (message.toAccountId !== "") {
writer.uint32(18).string(message.toAccountId);
}
if (message.amount !== undefined) {
MoneyValue.encode(message.amount, writer.uint32(26).fork()).ldelim();
}
if (message.transactionId !== "") {
writer.uint32(34).string(message.transactionId);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): CurrencyTransferRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCurrencyTransferRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.fromAccountId = reader.string();
continue;
case 2:
if (tag !== 18) {
break;
}
message.toAccountId = reader.string();
continue;
case 3:
if (tag !== 26) {
break;
}
message.amount = MoneyValue.decode(reader, reader.uint32());
continue;
case 4:
if (tag !== 34) {
break;
}
message.transactionId = reader.string();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): CurrencyTransferRequest {
return {
fromAccountId: isSet(object.fromAccountId) ? globalThis.String(object.fromAccountId) : "",
toAccountId: isSet(object.toAccountId) ? globalThis.String(object.toAccountId) : "",
amount: isSet(object.amount) ? MoneyValue.fromJSON(object.amount) : undefined,
transactionId: isSet(object.transactionId) ? globalThis.String(object.transactionId) : "",
};
},
toJSON(message: CurrencyTransferRequest): unknown {
const obj: any = {};
if (message.fromAccountId !== "") {
obj.fromAccountId = message.fromAccountId;
}
if (message.toAccountId !== "") {
obj.toAccountId = message.toAccountId;
}
if (message.amount !== undefined) {
obj.amount = MoneyValue.toJSON(message.amount);
}
if (message.transactionId !== "") {
obj.transactionId = message.transactionId;
}
return obj;
},
};
function createBaseCurrencyTransferResponse(): CurrencyTransferResponse {
return {};
}
export const CurrencyTransferResponse = {
encode(_: CurrencyTransferResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): CurrencyTransferResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCurrencyTransferResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(_: any): CurrencyTransferResponse {
return {};
},
toJSON(_: CurrencyTransferResponse): unknown {
const obj: any = {};
return obj;
},
};
function createBasePayInRequest(): PayInRequest {
return { fromAccountId: "", toAccountId: "", amount: undefined };
}
export const PayInRequest = {
encode(message: PayInRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.fromAccountId !== "") {
writer.uint32(10).string(message.fromAccountId);
}
if (message.toAccountId !== "") {
writer.uint32(18).string(message.toAccountId);
}
if (message.amount !== undefined) {
MoneyValue.encode(message.amount, writer.uint32(26).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): PayInRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePayInRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.fromAccountId = reader.string();
continue;
case 2:
if (tag !== 18) {
break;
}
message.toAccountId = reader.string();
continue;
case 3:
if (tag !== 26) {
break;
}
message.amount = MoneyValue.decode(reader, reader.uint32());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): PayInRequest {
return {
fromAccountId: isSet(object.fromAccountId) ? globalThis.String(object.fromAccountId) : "",
toAccountId: isSet(object.toAccountId) ? globalThis.String(object.toAccountId) : "",
amount: isSet(object.amount) ? MoneyValue.fromJSON(object.amount) : undefined,
};
},
toJSON(message: PayInRequest): unknown {
const obj: any = {};
if (message.fromAccountId !== "") {
obj.fromAccountId = message.fromAccountId;
}
if (message.toAccountId !== "") {
obj.toAccountId = message.toAccountId;
}
if (message.amount !== undefined) {
obj.amount = MoneyValue.toJSON(message.amount);
}
return obj;
},
};
function createBasePayInResponse(): PayInResponse {
return {};
}
export const PayInResponse = {
encode(_: PayInResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): PayInResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePayInResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(_: any): PayInResponse {
return {};
},
toJSON(_: PayInResponse): unknown {
const obj: any = {};
return obj;
},
};
function createBaseGetAccountValuesRequest(): GetAccountValuesRequest {
return { accounts: [], values: [] };
}
export const GetAccountValuesRequest = {
encode(message: GetAccountValuesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.accounts) {
writer.uint32(10).string(v!);
}
writer.uint32(18).fork();
for (const v of message.values) {
writer.int32(v);
}
writer.ldelim();
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountValuesRequest {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetAccountValuesRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.accounts.push(reader.string());
continue;
case 2:
if (tag === 16) {
message.values.push(reader.int32() as any);
continue;
}
if (tag === 18) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.values.push(reader.int32() as any);
}
continue;
}
break;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetAccountValuesRequest {
return {
accounts: globalThis.Array.isArray(object?.accounts) ? object.accounts.map((e: any) => globalThis.String(e)) : [],
values: globalThis.Array.isArray(object?.values) ? object.values.map((e: any) => accountValueFromJSON(e)) : [],
};
},
toJSON(message: GetAccountValuesRequest): unknown {
const obj: any = {};
if (message.accounts?.length) {
obj.accounts = message.accounts;
}
if (message.values?.length) {
obj.values = message.values.map((e) => accountValueToJSON(e));
}
return obj;
},
};
function createBaseGetAccountValuesResponse(): GetAccountValuesResponse {
return { accounts: [] };
}
export const GetAccountValuesResponse = {
encode(message: GetAccountValuesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.accounts) {
AccountValuesWithParameters.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountValuesResponse {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetAccountValuesResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.accounts.push(AccountValuesWithParameters.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): GetAccountValuesResponse {
return {
accounts: globalThis.Array.isArray(object?.accounts)
? object.accounts.map((e: any) => AccountValuesWithParameters.fromJSON(e))
: [],
};
},
toJSON(message: GetAccountValuesResponse): unknown {
const obj: any = {};
if (message.accounts?.length) {
obj.accounts = message.accounts.map((e) => AccountValuesWithParameters.toJSON(e));
}
return obj;
},
};
function createBaseAccountValuesWithParameters(): AccountValuesWithParameters {
return { accountId: "", values: [] };
}
export const AccountValuesWithParameters = {
encode(message: AccountValuesWithParameters, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.accountId !== "") {
writer.uint32(10).string(message.accountId);
}
for (const v of message.values) {
InstrumentParameter.encode(v!, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): AccountValuesWithParameters {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAccountValuesWithParameters();
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.values.push(InstrumentParameter.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): AccountValuesWithParameters {
return {
accountId: isSet(object.accountId) ? globalThis.String(object.accountId) : "",
values: globalThis.Array.isArray(object?.values)
? object.values.map((e: any) => InstrumentParameter.fromJSON(e))
: [],
};
},
toJSON(message: AccountValuesWithParameters): unknown {
const obj: any = {};
if (message.accountId !== "") {
obj.accountId = message.accountId;
}
if (message.values?.length) {
obj.values = message.values.map((e) => InstrumentParameter.toJSON(e));
}
return obj;
},
};
function createBaseInstrumentParameter(): InstrumentParameter {
return { name: 0, value: undefined };
}
export const InstrumentParameter = {
encode(message: InstrumentParameter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.name !== 0) {
writer.uint32(8).int32(message.name);
}
if (message.value !== undefined) {
MoneyValue.encode(message.value, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): InstrumentParameter {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInstrumentParameter();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 8) {
break;
}
message.name = reader.int32() as any;
continue;
case 2:
if (tag !== 18) {
break;
}
message.value = MoneyValue.decode(reader, reader.uint32());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
fromJSON(object: any): InstrumentParameter {
return {
name: isSet(object.name) ? accountValueFromJSON(object.name) : 0,
value: isSet(object.value) ? MoneyValue.fromJSON(object.value) : undefined,
};
},
toJSON(message: InstrumentParameter): unknown {
const obj: any = {};
if (message.name !== 0) {
obj.name = accountValueToJSON(message.name);
}
if (message.value !== undefined) {
obj.value = MoneyValue.toJSON(message.value);
}
return obj;
},
};
/**
* С помощью сервиса можно получить: <br/> 1.
* список счетов пользователя; <br/> 2. маржинальные показатели по счeту.
*/
export type UsersServiceDefinition = typeof UsersServiceDefinition;
export const UsersServiceDefinition = {
name: "UsersService",
fullName: "tinkoff.public.invest.api.contract.v1.UsersService",
methods: {
/**
* GetAccounts — счета пользователя
* Получить список счетов.
*/
getAccounts: {
name: "GetAccounts",
requestType: GetAccountsRequest,
requestStream: false,
responseType: GetAccountsResponse,
responseStream: false,
options: {},
},
/**
* GetMarginAttributes — маржинальные показатели по счeту
* Метод позволяет получить маржинальные показатели и ликвидность по заданному счeту.
*/
getMarginAttributes: {
name: "GetMarginAttributes",
requestType: GetMarginAttributesRequest,
requestStream: false,
responseType: GetMarginAttributesResponse,
responseStream: false,
options: {},
},
/**
* GetUserTariff — тариф пользователя
* Получить информацию о текущих лимитах на подклчение, согласно текущему тарифу пользователя.
*/
getUserTariff: {
name: "GetUserTariff",
requestType: GetUserTariffRequest,
requestStream: false,
responseType: GetUserTariffResponse,
responseStream: false,
options: {},
},
/**
* GetInfo — информация о пользователе
* Получить информацию о пользователе: тариф, признак квалификации, пройденные тесты и др.
*/
getInfo: {
name: "GetInfo",
requestType: GetInfoRequest,
requestStream: false,
responseType: GetInfoResponse,
responseStream: false,
options: {},
},
/**
* GetBankAccounts — банковские счета пользователя
* Получить список счетов пользователя, в том числе и банковских.
*/
getBankAccounts: {
name: "GetBankAccounts",
requestType: GetBankAccountsRequest,
requestStream: false,
responseType: GetBankAccountsResponse,
responseStream: false,
options: {},
},
/**
* CurrencyTransfer — перевод денежных средств между счетами
* Перевести денежные средства между брокерскими счетами
*/
currencyTransfer: {
name: "CurrencyTransfer",
requestType: CurrencyTransferRequest,
requestStream: false,
responseType: CurrencyTransferResponse,
responseStream: false,
options: {},
},
/**
* PayIn — пополнение брокерского счета
* Пополнить брокерский счёт с банковского
*/
payIn: {
name: "PayIn",
requestType: PayInRequest,
requestStream: false,
responseType: PayInResponse,
responseStream: false,
options: {},
},
/**
* GetAccountValues — дополнительные показатели счетов
* Метод предназначен для получения дополнительных показателей счетов
*/
getAccountValues: {
name: "GetAccountValues",
requestType: GetAccountValuesRequest,
requestStream: false,
responseType: GetAccountValuesResponse,
responseStream: false,
options: {},
},
},
} as const;
export interface UsersServiceImplementation<CallContextExt = {}> {
/**
* GetAccounts — счета пользователя
* Получить список счетов.
*/
getAccounts(request: GetAccountsRequest, context: CallContext & CallContextExt): Promise<GetAccountsResponse>;
/**
* GetMarginAttributes — маржинальные показатели по счeту
* Метод позволяет получить маржинальные показатели и ликвидность по заданному счeту.
*/
getMarginAttributes(
request: GetMarginAttributesRequest,
context: CallContext & CallContextExt,
): Promise<GetMarginAttributesResponse>;
/**
* GetUserTariff — тариф пользователя
* Получить информацию о текущих лимитах на подклчение, согласно текущему тарифу пользователя.
*/
getUserTariff(request: GetUserTariffRequest, context: CallContext & CallContextExt): Promise<GetUserTariffResponse>;
/**
* GetInfo — информация о пользователе
* Получить информацию о пользователе: тариф, признак квалификации, пройденные тесты и др.
*/
getInfo(request: GetInfoRequest, context: CallContext & CallContextExt): Promise<GetInfoResponse>;
/**
* GetBankAccounts — банковские счета пользователя
* Получить список счетов пользователя, в том числе и банковских.
*/
getBankAccounts(
request: GetBankAccountsRequest,
context: CallContext & CallContextExt,
): Promise<GetBankAccountsResponse>;
/**
* CurrencyTransfer — перевод денежных средств между счетами
* Перевести денежные средства между брокерскими счетами
*/
currencyTransfer(
request: CurrencyTransferRequest,
context: CallContext & CallContextExt,
): Promise<CurrencyTransferResponse>;
/**
* PayIn — пополнение брокерского счета
* Пополнить брокерский счёт с банковского
*/
payIn(request: PayInRequest, context: CallContext & CallContextExt): Promise<PayInResponse>;
/**
* GetAccountValues — дополнительные показатели счетов
* Метод предназначен для получения дополнительных показателей счетов
*/
getAccountValues(
request: GetAccountValuesRequest,
context: CallContext & CallContextExt,
): Promise<GetAccountValuesResponse>;
}
export interface UsersServiceClient<CallOptionsExt = {}> {
/**
* GetAccounts — счета пользователя
* Получить список счетов.
*/
getAccounts(request: GetAccountsRequest, options?: CallOptions & CallOptionsExt): Promise<GetAccountsResponse>;
/**
* GetMarginAttributes — маржинальные показатели по счeту
* Метод позволяет получить маржинальные показатели и ликвидность по заданному счeту.
*/
getMarginAttributes(
request: GetMarginAttributesRequest,
options?: CallOptions & CallOptionsExt,
): Promise<GetMarginAttributesResponse>;
/**
* GetUserTariff — тариф пользователя
* Получить информацию о текущих лимитах на подклчение, согласно текущему тарифу пользователя.
*/
getUserTariff(request: GetUserTariffRequest, options?: CallOptions & CallOptionsExt): Promise<GetUserTariffResponse>;
/**
* GetInfo — информация о пользователе
* Получить информацию о пользователе: тариф, признак квалификации, пройденные тесты и др.
*/
getInfo(request: GetInfoRequest, options?: CallOptions & CallOptionsExt): Promise<GetInfoResponse>;
/**
* GetBankAccounts — банковские счета пользователя
* Получить список счетов пользователя, в том числе и банковских.
*/
getBankAccounts(
request: GetBankAccountsRequest,
options?: CallOptions & CallOptionsExt,
): Promise<GetBankAccountsResponse>;
/**
* CurrencyTransfer — перевод денежных средств между счетами
* Перевести денежные средства между брокерскими счетами
*/
currencyTransfer(
request: CurrencyTransferRequest,
options?: CallOptions & CallOptionsExt,
): Promise<CurrencyTransferResponse>;
/**
* PayIn — пополнение брокерского счета
* Пополнить брокерский счёт с банковского
*/
payIn(request: PayInRequest, options?: CallOptions & CallOptionsExt): Promise<PayInResponse>;
/**
* GetAccountValues — дополнительные показатели счетов
* Метод предназначен для получения дополнительных показателей счетов
*/
getAccountValues(
request: GetAccountValuesRequest,
options?: CallOptions & CallOptionsExt,
): Promise<GetAccountValuesResponse>;
}
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 || 0) * 1_000;
millis += (t.nanos || 0) / 1_000_000;
return new globalThis.Date(millis);
}
function fromJsonTimestamp(o: any): Date {
if (o instanceof globalThis.Date) {
return o;
} else if (typeof o === "string") {
return new globalThis.Date(o);
} else {
return fromTimestamp(Timestamp.fromJSON(o));
}
}
function isSet(value: any): boolean {
return value !== null && value !== undefined;
}