@proton/ccxt
Version:
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
770 lines (769 loc) • 37.5 kB
TypeScript
import * as functions from './functions.js';
import { // eslint-disable-line object-curly-newline
ExchangeError, AuthenticationError, DDoSProtection, RequestTimeout, ExchangeNotAvailable, RateLimitExceeded } from "./errors.js";
import WsClient from './ws/WsClient.js';
import { Future } from './ws/Future.js';
import { OrderBook as WsOrderBook, IndexedOrderBook, CountedOrderBook } from './ws/OrderBook.js';
import { Market, Trade, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, Balances, Dictionary, DepositAddressResponse, Currency, MinMax, IndexType, Int, OrderType, OrderSide } from './types';
export { Market, Trade, Fee, Ticker } from './types';
export default class Exchange {
options: {
[key: string]: any;
};
api: any;
proxy: any;
proxyUrl: string;
proxy_url: string;
proxyUrlCallback: any;
proxy_url_callback: any;
httpProxy: string;
http_proxy: string;
httpProxyCallback: any;
http_proxy_callback: any;
httpsProxy: string;
https_proxy: string;
httpsProxyCallback: any;
https_proxy_callback: any;
socksProxy: string;
socks_proxy: string;
socksProxyCallback: any;
socks_proxy_callback: any;
userAgent: {
'User-Agent': string;
} | false;
user_agent: {
'User-Agent': string;
} | false;
userAgents: any;
headers: any;
origin: string;
agent: any;
minFundingAddressLength: number;
substituteCommonCurrencyCodes: boolean;
quoteJsonNumbers: boolean;
number: NumberConstructor;
handleContentTypeApplicationZip: boolean;
reduceFees: boolean;
fetchImplementation: any;
AbortError: any;
FetchError: any;
validateServerSsl: boolean;
validateClientSsl: boolean;
timeout: number;
verbose: boolean;
twofa: any;
apiKey: string;
secret: string;
uid: string;
login: string;
password: string;
privateKey: string;
walletAddress: string;
token: string;
balance: {};
orderbooks: {};
tickers: {};
orders: any;
trades: any;
transactions: {};
ohlcvs: any;
myTrades: any;
positions: {};
urls: {
logo?: string;
api?: string | Dictionary<string>;
test?: string | Dictionary<string>;
www?: string;
doc?: string[];
api_management?: string;
fees?: string;
referral?: string;
};
requiresWeb3: boolean;
requiresEddsa: boolean;
precision: {
amount: number | undefined;
price: number | undefined;
};
enableLastJsonResponse: boolean;
enableLastHttpResponse: boolean;
enableLastResponseHeaders: boolean;
last_http_response: any;
last_json_response: any;
last_response_headers: any;
id: string;
markets: Dictionary<any>;
has: Dictionary<boolean | 'emulated'>;
status: any;
requiredCredentials: {
apiKey: boolean;
secret: boolean;
uid: boolean;
login: boolean;
password: boolean;
twofa: boolean;
privateKey: boolean;
walletAddress: boolean;
token: boolean;
};
rateLimit: number;
tokenBucket: any;
throttler: any;
enableRateLimit: boolean;
httpExceptions: any;
limits: {
amount?: MinMax;
cost?: MinMax;
leverage?: MinMax;
price?: MinMax;
};
fees: object;
markets_by_id: Dictionary<any>;
symbols: string[];
ids: string[];
currencies: Dictionary<Currency>;
baseCurrencies: any;
quoteCurrencies: any;
currencies_by_id: any;
codes: any;
reloadingMarkets: any;
marketsLoading: any;
accounts: any;
accountsById: any;
commonCurrencies: any;
hostname: string;
precisionMode: number;
paddingMode: any;
exceptions: {};
timeframes: Dictionary<number | string>;
version: string;
marketsByAltname: any;
name: string;
lastRestRequestTimestamp: number;
targetAccount: any;
stablePairs: {};
clients: {};
newUpdates: boolean;
streaming: {};
deepExtend: (...xs: any[]) => any;
isNode: boolean;
keys: {
(o: object): string[];
(o: {}): string[];
};
values: (x: any) => any[];
extend: (...args: any[]) => any;
clone: (x: any) => any;
flatten: (x: any, out?: any[]) => any[];
unique: (x: any) => any[];
indexBy: (x: any, k: any, out?: {}) => {};
sortBy: (array: any, key: any, descending?: boolean, direction?: number) => any;
sortBy2: (array: any, key1: any, key2: any, descending?: boolean, direction?: number) => any;
groupBy: (x: any, k: any, out?: {}) => {};
aggregate: typeof functions.aggregate;
uuid: (a?: any) => string;
unCamelCase: (s: string) => string;
precisionFromString: typeof functions.precisionFromString;
capitalize: (s: string) => string;
now: () => number;
decimalToPrecision: (x: any, roundingMode: any, numPrecisionDigits: any, countingMode?: number, paddingMode?: number) => any;
safeValue: (o: any, k: string | number, $default?: any) => any;
safeValue2: (o: any, k1: string | number, k2: string | number, $default?: any) => any;
safeString: (o: any, k: string | number, $default?: string) => string;
safeString2: (o: any, k1: string | number, k2: string | number, $default?: string) => string;
safeFloat: (o: any, k: string | number, $default?: number) => number;
safeFloat2: (o: any, k1: string | number, k2: string | number, $default?: number) => number;
seconds: () => number;
milliseconds: () => number;
binaryToBase16: (data: Uint8Array) => string;
numberToBE: (n: number, padding: number) => Uint8Array;
base16ToBinary: (str: string) => Uint8Array;
iso8601: (timestamp: any) => string;
omit: (x: any, ...args: any[]) => any;
isJsonEncodedObject: (object: any) => boolean;
safeInteger: (o: any, k: string | number, $default?: number) => number;
sum: (...xs: any[]) => any;
omitZero: typeof functions.omitZero;
implodeParams: (string: any, params: any) => any;
extractParams: (string: any) => any[];
json: (data: any, params?: any) => string;
vwap: typeof functions.vwap;
merge: (target: any, ...args: any[]) => any;
binaryConcat: typeof import("../static_dependencies/noble-curves/abstract/utils.js").concatBytes;
hash: (request: import("../static_dependencies/noble-hashes/utils.js").Input, hash: {
(message: import("../static_dependencies/noble-hashes/utils.js").Input): Uint8Array;
outputLen: number;
blockLen: number;
create(): import("../static_dependencies/noble-hashes/utils.js").Hash<import("../static_dependencies/noble-hashes/utils.js").Hash<any>>;
}, digest?: "binary" | "hex" | "base64") => any;
arrayConcat: (a: any, b: any) => any;
encode: (str: string) => Uint8Array;
urlencode: (object: any) => string;
hmac: (request: import("../static_dependencies/noble-hashes/utils.js").Input, secret: import("../static_dependencies/noble-hashes/utils.js").Input, hash: {
(message: import("../static_dependencies/noble-hashes/utils.js").Input): Uint8Array;
outputLen: number;
blockLen: number;
create(): import("../static_dependencies/noble-hashes/utils.js").Hash<import("../static_dependencies/noble-hashes/utils.js").Hash<any>>;
}, digest?: "binary" | "hex" | "base64") => any;
numberToString: typeof functions.numberToString;
parseTimeframe: (timeframe: string) => number;
safeInteger2: (o: any, k1: string | number, k2: string | number, $default?: number) => number;
safeStringLower: (o: any, k: string | number, $default?: string) => string;
parse8601: (x: any) => number;
yyyymmdd: (timestamp: any, infix?: string) => string;
safeStringUpper: (o: any, k: string | number, $default?: string) => string;
safeTimestamp: (o: any, k: string | number, $default?: number) => number;
binaryConcatArray: (arr: any) => Uint8Array;
uuidv1: () => string;
numberToLE: (n: number, padding: number) => Uint8Array;
ymdhms: (timestamp: any, infix?: string) => string;
yymmdd: (timestamp: any, infix?: string) => string;
stringToBase64: (string: any) => string;
decode: (data: Uint8Array) => string;
uuid22: (a?: any) => string;
safeIntegerProduct2: (o: any, k1: string | number, k2: string | number, $factor: number, $default?: number) => number;
safeIntegerProduct: (o: any, k: string | number, $factor: number, $default?: number) => number;
base58ToBinary: (str: string) => Uint8Array;
base64ToBinary: (str: string) => Uint8Array;
safeTimestamp2: (o: any, k1: string | number, k2: string | number, $default?: any) => number;
rawencode: (object: any) => string;
keysort: (x: any, out?: {}) => {};
inArray: (needle: any, haystack: any) => any;
safeStringLower2: (o: any, k1: string | number, k2: string | number, $default?: string) => string;
safeStringUpper2: (o: any, k1: string | number, k2: string | number, $default?: string) => string;
isEmpty: (object: any) => boolean;
ordered: (x: any) => any;
filterBy: (x: any, k: any, value?: any, out?: any[]) => any[];
uuid16: (a?: any) => string;
urlencodeWithArrayRepeat: (object: any) => string;
microseconds: () => number;
binaryToBase64: (data: Uint8Array) => string;
binaryToBase58: (data: Uint8Array) => string;
strip: (s: string) => string;
toArray: (object: any) => unknown[];
safeFloatN: (o: any, k: (string | number)[], $default?: number) => number;
safeIntegerN: (o: any, k: (string | number)[], $default?: number) => number;
safeIntegerProductN: (o: any, k: (string | number)[], $factor: number, $default?: number) => number;
safeTimestampN: (o: any, k: (string | number)[], $default?: number) => number;
safeValueN: (o: any, k: (string | number)[], $default?: any) => any;
safeStringN: (o: any, k: (string | number)[], $default?: string) => string;
safeStringLowerN: (o: any, k: (string | number)[], $default?: string) => string;
safeStringUpperN: (o: any, k: (string | number)[], $default?: string) => string;
urlencodeNested: (object: any) => string;
parseDate: (x: any) => number;
ymd: (timestamp: any, infix: any, fullYear?: boolean) => string;
isArray: (arg: any) => arg is any[];
base64ToString: (string: any) => string;
crc32: typeof functions.crc32;
describe(): {
id: any;
name: any;
countries: any;
enableRateLimit: boolean;
rateLimit: number;
certified: boolean;
pro: boolean;
alias: boolean;
has: {
publicAPI: boolean;
privateAPI: boolean;
CORS: any;
spot: any;
margin: any;
swap: any;
future: any;
option: any;
addMargin: any;
cancelAllOrders: any;
cancelOrder: boolean;
cancelOrders: any;
createDepositAddress: any;
createLimitOrder: boolean;
createMarketOrder: boolean;
createOrder: boolean;
createPostOnlyOrder: any;
createReduceOnlyOrder: any;
createStopOrder: any;
createStopLimitOrder: any;
createStopMarketOrder: any;
createOrderWs: any;
editOrderWs: any;
cancelOrderWs: any;
cancelOrdersWs: any;
cancelAllOrdersWs: any;
editOrder: string;
fetchAccounts: any;
fetchBalance: boolean;
fetchBidsAsks: any;
fetchBorrowInterest: any;
fetchBorrowRate: any;
fetchBorrowRateHistory: any;
fetchBorrowRatesPerSymbol: any;
fetchBorrowRates: any;
fetchCanceledOrders: any;
fetchClosedOrder: any;
fetchClosedOrders: any;
fetchCurrencies: string;
fetchDeposit: any;
fetchDepositAddress: any;
fetchDepositAddresses: any;
fetchDepositAddressesByNetwork: any;
fetchDeposits: any;
fetchDepositsWithdrawals: any;
fetchTransactionFee: any;
fetchTransactionFees: any;
fetchFundingHistory: any;
fetchFundingRate: any;
fetchFundingRateHistory: any;
fetchFundingRates: any;
fetchIndexOHLCV: any;
fetchL2OrderBook: boolean;
fetchLastPrices: any;
fetchLedger: any;
fetchLedgerEntry: any;
fetchLeverageTiers: any;
fetchMarketLeverageTiers: any;
fetchMarkets: boolean;
fetchMarkOHLCV: any;
fetchMyTrades: any;
fetchOHLCV: any;
fetchOpenInterest: any;
fetchOpenInterestHistory: any;
fetchOpenOrder: any;
fetchOpenOrders: any;
fetchOrder: any;
fetchOrderBook: boolean;
fetchOrderBooks: any;
fetchOrders: any;
fetchOrderTrades: any;
fetchPermissions: any;
fetchPosition: any;
fetchPositions: any;
fetchPositionsRisk: any;
fetchPremiumIndexOHLCV: any;
fetchStatus: string;
fetchTicker: boolean;
fetchTickers: any;
fetchTime: any;
fetchTrades: boolean;
fetchTradingFee: any;
fetchTradingFees: any;
fetchTradingLimits: any;
fetchTransactions: any;
fetchTransfers: any;
fetchWithdrawAddresses: any;
fetchWithdrawal: any;
fetchWithdrawals: any;
reduceMargin: any;
setLeverage: any;
setMargin: any;
setMarginMode: any;
setPositionMode: any;
signIn: any;
transfer: any;
withdraw: any;
};
urls: {
logo: any;
api: any;
www: any;
doc: any;
fees: any;
};
api: any;
requiredCredentials: {
apiKey: boolean;
secret: boolean;
uid: boolean;
login: boolean;
password: boolean;
twofa: boolean;
privateKey: boolean;
walletAddress: boolean;
token: boolean;
};
markets: any;
currencies: {};
timeframes: any;
fees: {
trading: {
tierBased: any;
percentage: any;
taker: any;
maker: any;
};
funding: {
tierBased: any;
percentage: any;
withdraw: {};
deposit: {};
};
};
status: {
status: string;
updated: any;
eta: any;
url: any;
};
exceptions: any;
httpExceptions: {
'422': typeof ExchangeError;
'418': typeof DDoSProtection;
'429': typeof RateLimitExceeded;
'404': typeof ExchangeNotAvailable;
'409': typeof ExchangeNotAvailable;
'410': typeof ExchangeNotAvailable;
'451': typeof ExchangeNotAvailable;
'500': typeof ExchangeNotAvailable;
'501': typeof ExchangeNotAvailable;
'502': typeof ExchangeNotAvailable;
'520': typeof ExchangeNotAvailable;
'521': typeof ExchangeNotAvailable;
'522': typeof ExchangeNotAvailable;
'525': typeof ExchangeNotAvailable;
'526': typeof ExchangeNotAvailable;
'400': typeof ExchangeNotAvailable;
'403': typeof ExchangeNotAvailable;
'405': typeof ExchangeNotAvailable;
'503': typeof ExchangeNotAvailable;
'530': typeof ExchangeNotAvailable;
'408': typeof RequestTimeout;
'504': typeof RequestTimeout;
'401': typeof AuthenticationError;
'407': typeof AuthenticationError;
'511': typeof AuthenticationError;
};
commonCurrencies: {
XBT: string;
BCC: string;
BCHABC: string;
BCHSV: string;
};
precisionMode: number;
paddingMode: number;
limits: {
leverage: {
min: any;
max: any;
};
amount: {
min: any;
max: any;
};
price: {
min: any;
max: any;
};
cost: {
min: any;
max: any;
};
};
};
constructor(userConfig?: {});
encodeURIComponent(...args: any[]): string;
checkRequiredVersion(requiredVersion: any, error?: boolean): boolean;
checkAddress(address: any): any;
initRestRateLimiter(): void;
throttle(cost?: any): any;
defineRestApiEndpoint(methodName: any, uppercaseMethod: any, lowercaseMethod: any, camelcaseMethod: any, path: any, paths: any, config?: {}): void;
defineRestApi(api: any, methodName: any, paths?: any[]): void;
log(...args: any[]): void;
fetch(url: any, method?: string, headers?: any, body?: any): Promise<any>;
parseJson(jsonString: any): any;
getResponseHeaders(response: any): {};
handleRestResponse(response: any, url: any, method?: string, requestHeaders?: any, requestBody?: any): any;
onRestResponse(statusCode: any, statusText: any, url: any, method: any, responseHeaders: any, responseBody: any, requestHeaders: any, requestBody: any): any;
onJsonResponse(responseBody: any): any;
loadMarketsHelper(reload?: boolean, params?: {}): Promise<Dictionary<any>>;
loadMarkets(reload?: boolean, params?: {}): Promise<Dictionary<Market>>;
fetchCurrencies(params?: {}): Promise<unknown>;
fetchMarkets(params?: {}): Promise<Market[]>;
checkRequiredDependencies(): void;
parseNumber(value: any, d?: number): number;
checkOrderArguments(market: any, type: any, side: any, amount: any, price: any, params: any): void;
handleHttpStatusCode(code: any, reason: any, url: any, method: any, body: any): void;
remove0xPrefix(hexData: any): any;
findTimeframe(timeframe: any, timeframes?: any): string;
spawn(method: any, ...args: any[]): Future;
delay(timeout: any, method: any, ...args: any[]): void;
orderBook(snapshot?: {}, depth?: number): WsOrderBook;
indexedOrderBook(snapshot?: {}, depth?: number): IndexedOrderBook;
countedOrderBook(snapshot?: {}, depth?: number): CountedOrderBook;
handleMessage(client: any, message: any): void;
client(url: any): WsClient;
watch(url: any, messageHash: any, message?: any, subscribeHash?: any, subscription?: any): any;
onConnected(client: any, message?: any): void;
onError(client: any, error: any): void;
onClose(client: any, error: any): void;
close(): Promise<void>;
handleDelta(bookside: any, delta: any, nonce?: any): void;
loadOrderBook(client: any, messageHash: any, symbol: any, limit?: any, params?: {}): Promise<void>;
handleDeltas(orderbook: any, deltas: any, nonce?: any): void;
getCacheIndex(orderbook: any, deltas: any): number;
convertToBigInt(value: string): bigint;
valueIsDefined(value: any): boolean;
arraySlice(array: any, first: any, second?: any): any;
getProperty(obj: any, property: any, defaultValue?: any): any;
checkProxySettings(url: any, method: any, headers: any, body: any): string[];
findMessageHashes(client: any, element: string): string[];
filterByLimit(array: object[], limit?: Int, key?: IndexType): any;
filterBySinceLimit(array: object[], since?: Int, limit?: Int, key?: IndexType, tail?: boolean): any;
filterByValueSinceLimit(array: object[], field: IndexType, value?: any, since?: Int, limit?: Int, key?: string, tail?: boolean): any;
setSandboxMode(enabled: any): void;
sign(path: any, api?: any, method?: string, params?: {}, headers?: any, body?: any): {};
fetchAccounts(params?: {}): Promise<any>;
fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
fetchDepositAddresses(codes?: string[], params?: {}): Promise<any>;
fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
fetchTime(params?: {}): Promise<number>;
fetchTradingLimits(symbols?: string[], params?: {}): Promise<any>;
parseTicker(ticker: object, market?: any): Ticker;
parseDepositAddress(depositAddress: any, currency?: any): void;
parseTrade(trade: object, market?: any): Trade;
parseTransaction(transaction: any, currency?: any): void;
parseTransfer(transfer: any, currency?: any): void;
parseAccount(account: any): void;
parseLedgerEntry(item: any, currency?: any): void;
parseOrder(order: any, market?: any): Order;
fetchBorrowRates(params?: {}): Promise<any>;
parseMarketLeverageTiers(info: any, market?: any): void;
fetchLeverageTiers(symbols?: string[], params?: {}): Promise<any>;
parsePosition(position: any, market?: any): void;
parseFundingRateHistory(info: any, market?: any): void;
parseBorrowInterest(info: any, market?: any): void;
parseWsTrade(trade: any, market?: any): Trade;
parseWsOrder(order: any, market?: any): Order;
parseWsOrderTrade(trade: any, market?: any): Trade;
parseWsOHLCV(ohlcv: any, market?: any): void;
fetchFundingRates(symbols?: string[], params?: {}): Promise<any>;
transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<any>;
withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<any>;
createDepositAddress(code: string, params?: {}): Promise<DepositAddressResponse>;
setLeverage(leverage: any, symbol?: string, params?: {}): Promise<any>;
parseToInt(number: any): number;
getDefaultOptions(): {
defaultNetworkCodeReplacements: {
ETH: {
ERC20: string;
};
TRX: {
TRC20: string;
};
CRO: {
CRC20: string;
};
};
};
safeLedgerEntry(entry: object, currency?: object): {
id: string;
timestamp: number;
datetime: string;
direction: string;
account: string;
referenceId: string;
referenceAccount: string;
type: string;
currency: any;
amount: number;
before: number;
after: number;
status: string;
fee: any;
info: object;
};
safeCurrencyStructure(currency: object): any;
setMarkets(markets: any, currencies?: any): Dictionary<any>;
safeBalance(balance: object): Balances;
safeOrder(order: object, market?: object): Order;
parseOrders(orders: object, market?: object, since?: Int, limit?: Int, params?: {}): Order[];
calculateFee(symbol: string, type: string, side: string, amount: number, price: number, takerOrMaker?: string, params?: {}): {
type: string;
currency: any;
rate: number;
cost: number;
};
safeTrade(trade: object, market?: object): Trade;
reduceFeesByCurrency(fees: any): any[];
safeTicker(ticker: object, market?: any): Ticker;
fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
convertTradingViewToOHLCV(ohlcvs: any, timestamp?: string, open?: string, high?: string, low?: string, close?: string, volume?: string, ms?: boolean): any[];
convertOHLCVToTradingView(ohlcvs: any, timestamp?: string, open?: string, high?: string, low?: string, close?: string, volume?: string, ms?: boolean): {};
fetchWebEndpoint(method: any, endpointMethod: any, returnAsJson: any, startRegex?: any, endRegex?: any): Promise<any>;
marketIds(symbols: any): any;
marketSymbols(symbols: any, type?: string): any;
marketCodes(codes: any): any;
parseBidsAsks(bidasks: any, priceKey?: IndexType, amountKey?: IndexType): any[];
fetchL2OrderBook(symbol: string, limit?: Int, params?: {}): Promise<any>;
filterBySymbol(objects: any, symbol?: string): any;
parseOHLCV(ohlcv: any, market?: any): any;
getNetwork(network: string, code: string): string;
networkCodeToId(networkCode: any, currencyCode?: any): string;
networkIdToCode(networkId: any, currencyCode?: any): string;
handleNetworkCodeAndParams(params: any): any[];
defaultNetworkCode(currencyCode: any): any;
selectNetworkCodeFromUnifiedNetworks(currencyCode: any, networkCode: any, indexedNetworkEntries: any): any;
selectNetworkIdFromRawNetworks(currencyCode: any, networkCode: any, indexedNetworkEntries: any): any;
selectNetworkKeyFromNetworks(currencyCode: any, networkCode: any, indexedNetworkEntries: any, isIndexedByUnifiedNetworkCode?: boolean): any;
safeNumber2(dictionary: any, key1: any, key2: any, d?: any): number;
parseOrderBook(orderbook: object, symbol: string, timestamp?: number, bidsKey?: string, asksKey?: string, priceKey?: IndexType, amountKey?: IndexType): OrderBook;
parseOHLCVs(ohlcvs: object[], market?: any, timeframe?: string, since?: Int, limit?: Int): OHLCV[];
parseLeverageTiers(response: any, symbols?: string[], marketIdKey?: any): {};
loadTradingLimits(symbols?: string[], reload?: boolean, params?: {}): Promise<Dictionary<any>>;
safePosition(position: any): any;
parsePositions(positions: any, symbols?: string[], params?: {}): any;
parseAccounts(accounts: any, params?: {}): any[];
parseTrades(trades: any, market?: object, since?: Int, limit?: Int, params?: {}): Trade[];
parseTransactions(transactions: any, currency?: object, since?: Int, limit?: Int, params?: {}): any;
parseTransfers(transfers: any, currency?: object, since?: Int, limit?: Int, params?: {}): any;
parseLedger(data: any, currency?: object, since?: Int, limit?: Int, params?: {}): any;
nonce(): number;
setHeaders(headers: any): any;
marketId(symbol: string): string;
symbol(symbol: string): string;
resolvePath(path: any, params: any): any[];
filterByArray(objects: any, key: IndexType, values?: any, indexed?: boolean): any;
fetch2(path: any, api?: any, method?: string, params?: {}, headers?: any, body?: any, config?: {}): Promise<any>;
request(path: any, api?: any, method?: string, params?: {}, headers?: any, body?: any, config?: {}): Promise<any>;
loadAccounts(reload?: boolean, params?: {}): Promise<any>;
buildOHLCVC(trades: Trade[], timeframe?: string, since?: number, limit?: number): OHLCVC[];
parseTradingViewOHLCV(ohlcvs: any, market?: any, timeframe?: string, since?: Int, limit?: Int): OHLCV[];
editLimitBuyOrder(id: any, symbol: any, amount: any, price?: any, params?: {}): Promise<Order>;
editLimitSellOrder(id: any, symbol: any, amount: any, price?: any, params?: {}): Promise<Order>;
editLimitOrder(id: any, symbol: any, side: any, amount: any, price?: any, params?: {}): Promise<Order>;
editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
editOrderWs(id: string, symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
fetchPermissions(params?: {}): Promise<void>;
fetchPosition(symbol: string, params?: {}): Promise<any>;
fetchPositions(symbols?: string[], params?: {}): Promise<any>;
fetchPositionsRisk(symbols?: string[], params?: {}): Promise<void>;
fetchBidsAsks(symbols?: string[], params?: {}): Promise<Dictionary<Ticker>>;
parseBidAsk(bidask: any, priceKey?: IndexType, amountKey?: IndexType): number[];
safeCurrency(currencyId?: string, currency?: any): any;
safeMarket(marketId?: any, market?: any, delimiter?: any, marketType?: any): any;
checkRequiredCredentials(error?: boolean): boolean;
oath(): string;
fetchBalance(params?: {}): Promise<Balances>;
parseBalance(response: any): Balances;
watchBalance(params?: {}): Promise<Balances>;
fetchPartialBalance(part: any, params?: {}): Promise<Balance>;
fetchFreeBalance(params?: {}): Promise<Balance>;
fetchUsedBalance(params?: {}): Promise<Balance>;
fetchTotalBalance(params?: {}): Promise<Balance>;
fetchStatus(params?: {}): Promise<any>;
fetchFundingFee(code: string, params?: {}): Promise<any>;
fetchFundingFees(codes?: string[], params?: {}): Promise<any>;
fetchTransactionFee(code: string, params?: {}): Promise<any>;
fetchTransactionFees(codes?: string[], params?: {}): Promise<any>;
fetchDepositWithdrawFees(codes?: string[], params?: {}): Promise<any>;
fetchDepositWithdrawFee(code: string, params?: {}): Promise<any>;
getSupportedMapping(key: any, mapping?: {}): any;
fetchBorrowRate(code: string, params?: {}): Promise<any>;
handleOptionAndParams(params: any, methodName: any, optionName: any, defaultValue?: any): any[];
handleOption(methodName: any, optionName: any, defaultValue?: any): any;
handleMarketTypeAndParams(methodName: any, market?: any, params?: {}): any;
handleSubTypeAndParams(methodName: any, market?: any, params?: {}, defaultValue?: any): any[];
handleMarginModeAndParams(methodName: any, params?: {}, defaultValue?: any): any[];
throwExactlyMatchedException(exact: any, string: any, message: any): void;
throwBroadlyMatchedException(broad: any, string: any, message: any): void;
findBroadlyMatchedKey(broad: any, string: any): string;
handleErrors(statusCode: any, statusText: any, url: any, method: any, responseHeaders: any, responseBody: any, response: any, requestHeaders: any, requestBody: any): any;
calculateRateLimiterCost(api: any, method: any, path: any, params: any, config?: {}): any;
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
fetchTickers(symbols?: string[], params?: {}): Promise<Dictionary<Ticker>>;
watchTickers(symbols?: string[], params?: {}): Promise<Dictionary<Ticker>>;
fetchOrder(id: string, symbol?: string, params?: {}): Promise<Order>;
fetchOrderStatus(id: string, symbol?: string, params?: {}): Promise<string>;
fetchUnifiedOrder(order: any, params?: {}): Promise<Order>;
createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
createOrderWs(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
cancelOrderWs(id: string, symbol?: string, params?: {}): Promise<any>;
cancelOrdersWs(ids: string[], symbol?: string, params?: {}): Promise<any>;
cancelAllOrders(symbol?: string, params?: {}): Promise<any>;
cancelAllOrderWs(symbol?: string, params?: {}): Promise<any>;
cancelUnifiedOrder(order: any, params?: {}): Promise<any>;
fetchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
fetchOrderTrades(id: string, symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
watchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
watchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
fetchTransactions(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
fetchDeposits(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
fetchWithdrawals(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
parseLastPrice(price: any, market?: any): any;
fetchDepositAddress(code: string, params?: {}): Promise<any>;
account(): Balance;
commonCurrencyCode(currency: string): string;
currency(code: any): any;
market(symbol: string): any;
handleWithdrawTagAndParams(tag: any, params: any): any;
createLimitOrder(symbol: string, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
createMarketOrder(symbol: string, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
createLimitBuyOrder(symbol: string, amount: any, price: any, params?: {}): Promise<Order>;
createLimitSellOrder(symbol: string, amount: any, price: any, params?: {}): Promise<Order>;
createMarketBuyOrder(symbol: string, amount: any, params?: {}): Promise<Order>;
createMarketSellOrder(symbol: string, amount: any, params?: {}): Promise<Order>;
costToPrecision(symbol: string, cost: any): any;
priceToPrecision(symbol: string, price: any): string;
amountToPrecision(symbol: string, amount: any): any;
feeToPrecision(symbol: string, fee: any): any;
currencyToPrecision(code: string, fee: any, networkCode?: any): any;
isTickPrecision(): boolean;
isDecimalPrecision(): boolean;
isSignificantPrecision(): boolean;
safeNumber(obj: object, key: IndexType, defaultNumber?: number): number;
safeNumberN(obj: object, arr: IndexType[], defaultNumber?: number): number;
parsePrecision(precision?: string): string;
loadTimeDifference(params?: {}): Promise<any>;
implodeHostname(url: string): any;
fetchMarketLeverageTiers(symbol: string, params?: {}): Promise<any>;
createPostOnlyOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
createReduceOnlyOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
createStopOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, stopPrice?: any, params?: {}): Promise<Order>;
createStopLimitOrder(symbol: string, side: OrderSide, amount: any, price: any, stopPrice: any, params?: {}): Promise<Order>;
createStopMarketOrder(symbol: string, side: OrderSide, amount: any, stopPrice: any, params?: {}): Promise<Order>;
safeCurrencyCode(currencyId?: string, currency?: any): any;
filterBySymbolSinceLimit(array: any, symbol?: string, since?: Int, limit?: Int, tail?: boolean): any;
filterByCurrencySinceLimit(array: any, code?: any, since?: Int, limit?: Int, tail?: boolean): any;
parseLastPrices(pricesData: any, symbols?: string[], params?: {}): any;
parseTickers(tickers: any, symbols?: string[], params?: {}): Dictionary<Ticker>;
parseDepositAddresses(addresses: any, codes?: string[], indexed?: boolean, params?: {}): {};
parseBorrowInterests(response: any, market?: any): any[];
parseFundingRateHistories(response: any, market?: any, since?: Int, limit?: Int): any;
safeSymbol(marketId: any, market?: any, delimiter?: any, marketType?: any): any;
parseFundingRate(contract: string, market?: any): void;
parseFundingRates(response: any, market?: any): {};
isTriggerOrder(params: any): any[];
isPostOnly(isMarketOrder: boolean, exchangeSpecificParam: any, params?: {}): boolean;
handlePostOnly(isMarketOrder: boolean, exchangeSpecificPostOnlyOption: boolean, params?: any): any[];
fetchLastPrices(symbols?: string[], params?: {}): Promise<void>;
fetchTradingFees(params?: {}): Promise<any>;
fetchTradingFee(symbol: string, params?: {}): Promise<any>;
parseOpenInterest(interest: any, market?: any): any;
parseOpenInterests(response: any, market?: any, since?: Int, limit?: Int): any;
fetchFundingRate(symbol: string, params?: {}): Promise<any>;
fetchMarkOHLCV(symbol: any, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
fetchIndexOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
fetchPremiumIndexOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
handleTimeInForce(params?: {}): string;
convertTypeToAccount(account: any): any;
checkRequiredArgument(methodName: any, argument: any, argumentName: any, options?: any[]): void;
checkRequiredMarginArgument(methodName: string, symbol: string, marginMode: string): void;
checkRequiredSymbol(methodName: string, symbol: string): void;
parseDepositWithdrawFees(response: any, codes?: string[], currencyIdKey?: any): any;
parseDepositWithdrawFee(fee: any, currency?: any): any;
depositWithdrawFee(info: any): any;
assignDefaultDepositWithdrawFees(fee: any, currency?: any): any;
parseIncome(info: any, market?: any): void;
parseIncomes(incomes: any, market?: any, since?: Int, limit?: Int): any;
getMarketFromSymbols(symbols?: string[]): any;
fetchDepositsWithdrawals(code?: any, since?: any, limit?: any, params?: {}): Promise<any>;
}
export { Exchange, };