UNPKG

@fraserdarwent/xapi-node

Version:

This project is made possible to get data from Forex market, execute market or limit order with NodeJS/JS through WebSocket connection

84 lines (83 loc) 2.09 kB
import { REQUEST_STATUS_FIELD, Time } from '..'; import { CMD_FIELD, PositionType, TransactionStatus, TransactionType } from '../enum/Enum'; export interface Transactions { [transactionId: string]: Transaction<any, any>; } export interface MessagesQueue { transactionId: string; } export interface TransactionResolveSocket<T> { returnData: T; time: Time; transaction: Transaction<TransactionResolveSocket<T>, null>; } export interface TransactionResolveStream { transaction: Transaction<null, null>; } export interface Transaction<Resolve, Reject> { status: TransactionStatus; command: string; createdAt: Time; transactionId: string; type: TransactionType; urgent: boolean; request: { sent: Time | null; arguments: any; json: string; }; response: { status: boolean | null; received: Time | null; json: any; }; transactionPromise: { resolve: null | ((resolve: Resolve | null) => void); reject: null | ((reject: Reject | null) => void); }; } export interface AddTransaction { command: string; json: any; args: any; transactionId: string; resolve: any; reject: any; urgent: boolean; } export interface TradePosition { [key: string]: number | boolean | CMD_FIELD | string; close_time: number; closed: boolean; cmd: CMD_FIELD; comment: string; commission: number; customComment: string; digits: number; expiration: number; margin_rate: number; offset: number; open_price: number; open_time: number; order: number; order2: number; position: number; sl: number; storage: number; symbol: string; tp: number; volume: number; position_type: PositionType; } export interface TradePositions { [position: number]: { value: TradePosition | null; lastUpdated: Time; }; } export interface TradeStatus { customComment: string | null; message: string | null; order: number; requestStatus: REQUEST_STATUS_FIELD | null; }