@proton/ccxt
Version:
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
183 lines (182 loc) • 4.42 kB
TypeScript
export interface Dictionary<T> {
[key: string]: T;
}
/** Request parameters */
export interface MinMax {
min: number | undefined;
max: number | undefined;
}
export interface Fee {
type?: 'taker' | 'maker' | string;
currency: string;
rate?: number;
cost: number;
}
export interface Market {
id: string;
symbol: string;
base: string;
quote: string;
baseId: string;
quoteId: string;
active?: boolean | undefined;
type?: string;
spot?: boolean;
margin?: boolean;
swap?: boolean;
future?: boolean;
option?: boolean;
contract?: boolean;
settle?: string | undefined;
settleId?: string | undefined;
contractSize?: number | undefined;
linear?: boolean | undefined;
inverse?: boolean | undefined;
expiry?: number | undefined;
expiryDatetime?: string | undefined;
strike?: number | undefined;
optionType?: string | undefined;
taker?: number | undefined;
maker?: number | undefined;
percentage?: boolean | undefined;
tierBased?: boolean | undefined;
feeSide?: string | undefined;
precision: {
amount: number | undefined;
price: number | undefined;
};
limits: {
amount?: MinMax;
cost?: MinMax;
leverage?: MinMax;
price?: MinMax;
};
info: any;
}
export interface Trade {
amount: number;
datetime: string;
id: string;
info: any;
order?: string;
price: number;
timestamp: number;
type?: string;
side: 'buy' | 'sell' | string;
symbol: string;
takerOrMaker: 'taker' | 'maker' | string;
cost: number;
fee: Fee;
}
export interface Order {
id: string;
clientOrderId: string;
datetime: string;
timestamp: number;
lastTradeTimestamp: number;
lastUpdateTimestamp?: number;
status: 'open' | 'closed' | 'canceled' | string;
symbol: string;
type: string;
timeInForce?: string;
side: 'buy' | 'sell' | string;
price: number;
average?: number;
amount: number;
filled: number;
remaining: number;
stopPrice?: number;
takeProfitPrice?: number;
stopLossPrice?: number;
cost: number;
trades: Trade[];
fee: Fee;
info: any;
}
export interface OrderBook {
asks: [number, number][];
bids: [number, number][];
datetime: string;
timestamp: number;
nonce: number;
}
export interface Ticker {
symbol: string;
info: any;
timestamp: number;
datetime: string;
high: number;
low: number;
bid: number;
bidVolume?: number;
ask: number;
askVolume?: number;
vwap?: number;
open?: number;
close?: number;
last?: number;
previousClose?: number;
change?: number;
percentage?: number;
average?: number;
quoteVolume?: number;
baseVolume?: number;
}
export interface Transaction {
info: any;
id: string;
txid?: string;
timestamp: number;
datetime: string;
address: string;
type: 'deposit' | 'withdrawal' | string;
amount: number;
currency: string;
status: 'pending' | 'ok' | string;
updated: number;
fee: Fee;
}
export interface Tickers extends Dictionary<Ticker> {
info: any;
}
export interface Currency {
id: string;
code: string;
numericId?: number;
precision: number;
}
export interface Balance {
free: number | string;
used: number | string;
total: number | string;
}
export interface PartialBalances extends Dictionary<number> {
}
export interface Balances extends Dictionary<Balance> {
info: any;
}
export interface DepositAddress {
currency: string;
address: string;
status: string;
info: any;
}
export interface WithdrawalResponse {
info: any;
id: string;
}
export interface DepositAddressResponse {
currency: string;
address: string;
info: any;
tag?: string;
}
/** [ timestamp, open, high, low, close, volume ] */
export declare type OHLCV = [number, number, number, number, number, number];
/** [ timestamp, open, high, low, close, volume, count ] */
export declare type OHLCVC = [number, number, number, number, number, number, number];
export declare type implicitReturnType = any;
export declare type IndexType = number | string;
export declare type Int = number;
export declare type OrderSide = 'buy' | 'sell' | string;
export declare type OrderType = 'limit' | 'market' | string;