UNPKG

starchild-widget

Version:

Starchild Widget

274 lines 7.46 kB
/** * Trade API 类型定义 * 基于 Orderly Network API 文档 */ export type OrderSide = 'BUY' | 'SELL'; export type OrderType = 'LIMIT' | 'MARKET' | 'IOC' | 'FOK' | 'POST_ONLY' | 'ASK' | 'BID' | 'CLOSE_POSITION'; export type AlgoOrderType = 'STOP' | 'TP_SL' | 'POSITIONAL_TP_SL' | 'BRACKET' | 'TAKE_PROFIT' | 'STOP_LOSS'; export type TriggerPriceType = 'MARK_PRICE'; export type OrderStatus = 'NEW' | 'CANCELLED' | 'PARTIAL_FILLED' | 'FILLED' | 'REJECTED' | 'INCOMPLETE' | 'COMPLETED'; export type AlgoOrderStatus = 'NEW' | 'CANCELLED' | 'PARTIAL_FILLED' | 'FILLED' | 'REJECTED' | 'INCOMPLETE' | 'COMPLETED'; export type SortBy = 'CREATED_TIME_DESC' | 'CREATED_TIME_ASC' | 'UPDATED_TIME_DESC' | 'UPDATED_TIME_ASC'; export interface GetPendingOrdersParams { symbol?: string; side?: OrderSide; order_type?: 'LIMIT' | 'MARKET'; order_tag?: string; start_t?: number; end_t?: number; page?: number; size?: number; sort_by?: SortBy; } export interface GetPendingAlgoOrdersParams { symbol?: string; order_type?: 'LIMIT' | 'MARKET'; status?: AlgoOrderStatus; order_tag?: string; start_t?: number; end_t?: number; page?: number; size?: number; side?: OrderSide; algo_type?: AlgoOrderType; is_triggered?: string; } export interface CreateOrderParams { symbol: string; order_type: OrderType; side: OrderSide; client_order_id?: string; order_price?: number; order_quantity?: number; order_amount?: number; visible_quantity?: number; reduce_only?: boolean; slippage?: number; order_tag?: string; level?: number; post_only_adjust?: boolean; } export interface AlgoChildOrderParams { symbol: string; algo_type: AlgoOrderType; side: OrderSide; type: OrderType; trigger_price: number; trigger_price_type?: TriggerPriceType; price?: number; quantity?: number; reduce_only?: boolean; child_orders?: AlgoChildOrderParams[]; } export interface CreateAlgoOrderParams { symbol: string; algo_type: AlgoOrderType; side?: OrderSide; type?: OrderType; price?: number; quantity?: number; trigger_price?: number; trigger_price_type?: TriggerPriceType; reduce_only?: boolean; visible_quantity?: boolean; order_tag?: string; client_order_id?: string; child_orders?: AlgoChildOrderParams[]; } export interface OrderInfo { order_id: number; user_id: number; price: number; type: string; quantity: number; amount: number; executed_quantity: number; total_executed_quantity: number; visible_quantity: number; symbol: string; side: OrderSide; status: OrderStatus; total_fee: number; fee_asset: string; client_order_id: number | string; average_executed_price: number; created_time: number; updated_time: number; realized_pnl: number; } export interface AlgoOrderInfo { algo_order_id: number; algo_status: AlgoOrderStatus; algo_type: AlgoOrderType; fee_asset: string; is_triggered: string; order_tag: string; parent_algo_order_id: number; quantity: number; root_algo_order_id: number; root_algo_order_status: AlgoOrderStatus; side: OrderSide; symbol: string; executed_quantity: number; total_executed_quantity: number; total_fee: number; trigger_price: number; trigger_price_type: TriggerPriceType; type: OrderType; created_time: number; updated_time: number; visible_quantity: number; realized_pnl: number; child_orders: any[]; } export interface ApiResponseMeta { total: number; records_per_page: number; current_page: number; } export interface GetOrdersResponse { success: boolean; timestamp: number; data: { meta: ApiResponseMeta; rows: OrderInfo[]; }; } export interface GetAlgoOrdersResponse { success: boolean; timestamp: number; data: { meta: ApiResponseMeta; rows: AlgoOrderInfo[]; }; } export interface CreateOrderResponse { success: boolean; timestamp: number; data: { order_id: number; client_order_id: string | number; status: OrderStatus; }; } export interface CreateAlgoOrderResponse { success: boolean; timestamp: number; data: { rows: { order_id: number; client_order_id: string | number; algo_type: AlgoOrderType; quantity: number; }[]; }; } export interface ApiErrorResponse { success: false; code: number; message: string; timestamp: number; } export interface GetLeverageSettingResponse { success: boolean; timestamp: number; data: { symbol: string; leverage: number; }; } export interface UpdateLeverageSettingResponse { success: boolean; timestamp: number; data: { symbol: string; leverage: number; }; } export interface OriginSymbolOrderRulesInfo { symbol: string; quote_min: number; quote_max: number; quote_tick: number; base_min: number; base_max: number; base_tick: number; min_notional: number; price_range: number; price_scope: number; std_liquidation_fee: number; liquidator_fee: number; claim_insurance_fund_discount: number; funding_period: number; cap_funding: number; floor_funding: number; cap_ir: number; floor_ir: number; interest_rate: number; imr_factor: number; created_time: number; updated_time: number; base_mmr: number; base_imr: number; liquidation_tier: number; global_max_oi_cap: number; } export interface GetSymbolOrderRulesResponse { success: boolean; timestamp: number; data: OriginSymbolOrderRulesInfo; } export interface SymbolMarketInfo { symbol: string; index_price: number; mark_price: number; sum_unitary_funding: number; est_funding_rate: number; last_funding_rate: number; next_funding_time: number; open_interest: string | number; '24h_open': number; '24h_close': number; '24h_high': number; '24h_low': number; '24h_amount': number; '24h_volume': number; } export interface GetSymbolMarketInfoResponse { success: boolean; timestamp: number; data: SymbolMarketInfo; } /** * 扩展的 SymbolOrderRulesInfo 接口,包含预计算的 decimal 值和解析的代币信息 */ export interface SymbolInfo extends OriginSymbolOrderRulesInfo { /** 数量小数位数 (基于 base_tick) */ quantityDecimal: number; /** 价格小数位数 (基于 quote_tick) */ priceDecimal: number; /** 基础代币 (从 symbol 解析得到, PERP_BTC_USDC 中的 BTC) */ baseToken: string; /** 报价代币 (从 symbol 解析得到, PERP_BTC_USDC 中的 USDC) */ quoteToken: string; } export interface AccountInfo { account_id: string; email: string; account_mode: string; max_leverage: number; taker_fee_rate: number; maker_fee_rate: number; futures_taker_fee_rate: number; futures_maker_fee_rate: number; maintenance_cancel_orders: boolean; imr_factor: Record<string, number>; max_notional: Record<string, number>; } export interface GetAccountInfoResponse { success: boolean; timestamp: number; data: AccountInfo; } export type ApiResponse<T> = T | ApiErrorResponse; //# sourceMappingURL=trade.d.ts.map