@copytrade/broker-fyers
Version:
Fyers broker plugin for @copytrade/unified-broker
94 lines • 2.53 kB
TypeScript
export interface FyersCredentials {
clientId: string;
secretKey: string;
redirectUri: string;
totpKey?: string;
accessToken?: string;
refreshToken?: string;
}
export interface PlaceOrderRequest {
symbol: string;
qty: number;
type: 'LIMIT' | 'MARKET' | 'SL' | 'SL-M';
side: 'BUY' | 'SELL';
productType: 'CNC' | 'INTRADAY' | 'MARGIN' | 'CO' | 'BO';
limitPrice: number;
stopPrice: number;
disclosedQty?: number;
validity: 'DAY' | 'IOC';
offlineOrder?: boolean;
stopLoss?: number;
takeProfit?: number;
}
export interface FyersOrderResponse {
s: string;
code: number;
message: string;
id?: string;
}
export interface FyersPosition {
id: string;
symbol: string;
qty: number;
side: string;
product: string;
avgPrice: number;
pnl: number;
pnlPercent: number;
}
export interface FyersQuote {
symbol: string;
ltp: number;
open: number;
high: number;
low: number;
close: number;
volume: number;
chng: number;
chngPercent: number;
}
export declare class FyersService {
private fyers;
private accessToken;
private refreshToken;
appId: string;
secretKey: string;
constructor();
generateAuthUrl(credentials: FyersCredentials): string;
generateAccessToken(authCode: string, credentials: FyersCredentials): Promise<{
success: boolean;
accessToken?: string;
refreshToken?: string;
accountId?: string;
message: string;
}>;
login(credentials: FyersCredentials): Promise<{
success: boolean;
authUrl?: string;
message: string;
}>;
placeOrder(orderData: PlaceOrderRequest): Promise<FyersOrderResponse>;
getOrderBook(): Promise<any[]>;
getPositions(): Promise<FyersPosition[]>;
searchScrip(exchange: string, symbol: string): Promise<any[]>;
getQuotes(symbols: string[]): Promise<FyersQuote[]>;
getProfile(): Promise<any>;
private getProductTypeCode;
isAuthenticated(): boolean;
getAccessToken(): string | null;
setAccessToken(token: string): void;
setRefreshToken(token: string): void;
getRefreshToken(): string | null;
refreshAccessToken(): Promise<{
success: boolean;
accessToken?: string;
refreshToken?: string;
message: string;
}>;
validateSession(): Promise<boolean>;
logout(): Promise<{
success: boolean;
message: string;
}>;
}
//# sourceMappingURL=fyersService.d.ts.map