coinrayjs 1.4.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +21 -0
  3. package/README.md +27 -0
  4. package/dist/candles-cache.d.ts +7 -0
  5. package/dist/candles-cache.js +57 -0
  6. package/dist/candles-cache.js.map +1 -0
  7. package/dist/coinray-cache.d.ts +30 -0
  8. package/dist/coinray-cache.js +109 -0
  9. package/dist/coinray-cache.js.map +1 -0
  10. package/dist/coinray.d.ts +156 -0
  11. package/dist/coinray.js +957 -0
  12. package/dist/coinray.js.map +1 -0
  13. package/dist/crypto.d.ts +1 -0
  14. package/dist/crypto.js +57 -0
  15. package/dist/crypto.js.map +1 -0
  16. package/dist/current-market.d.ts +61 -0
  17. package/dist/current-market.js +259 -0
  18. package/dist/current-market.js.map +1 -0
  19. package/dist/errors.d.ts +25 -0
  20. package/dist/errors.js +50 -0
  21. package/dist/errors.js.map +1 -0
  22. package/dist/event-emitter.d.ts +9 -0
  23. package/dist/event-emitter.js +36 -0
  24. package/dist/event-emitter.js.map +1 -0
  25. package/dist/exchange.d.ts +28 -0
  26. package/dist/exchange.js +107 -0
  27. package/dist/exchange.js.map +1 -0
  28. package/dist/i18n/locales.d.ts +21 -0
  29. package/dist/i18n/locales.js +21 -0
  30. package/dist/i18n/locales.js.map +1 -0
  31. package/dist/i18n.d.ts +4 -0
  32. package/dist/i18n.js +16 -0
  33. package/dist/i18n.js.map +1 -0
  34. package/dist/index.d.ts +9 -0
  35. package/dist/index.js +10 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/lru.d.ts +26 -0
  38. package/dist/lru.js +93 -0
  39. package/dist/lru.js.map +1 -0
  40. package/dist/market.d.ts +46 -0
  41. package/dist/market.js +117 -0
  42. package/dist/market.js.map +1 -0
  43. package/dist/orders/base.d.ts +29 -0
  44. package/dist/orders/base.js +47 -0
  45. package/dist/orders/base.js.map +1 -0
  46. package/dist/orders/index.d.ts +6 -0
  47. package/dist/orders/index.js +7 -0
  48. package/dist/orders/index.js.map +1 -0
  49. package/dist/orders/limit-ladder.d.ts +87 -0
  50. package/dist/orders/limit-ladder.js +229 -0
  51. package/dist/orders/limit-ladder.js.map +1 -0
  52. package/dist/orders/limit.d.ts +47 -0
  53. package/dist/orders/limit.js +86 -0
  54. package/dist/orders/limit.js.map +1 -0
  55. package/dist/orders/market.d.ts +35 -0
  56. package/dist/orders/market.js +52 -0
  57. package/dist/orders/market.js.map +1 -0
  58. package/dist/orders/oco.d.ts +54 -0
  59. package/dist/orders/oco.js +70 -0
  60. package/dist/orders/oco.js.map +1 -0
  61. package/dist/orders/stop-limit.d.ts +42 -0
  62. package/dist/orders/stop-limit.js +33 -0
  63. package/dist/orders/stop-limit.js.map +1 -0
  64. package/dist/orders/validate.d.ts +2 -0
  65. package/dist/orders/validate.js +6 -0
  66. package/dist/orders/validate.js.map +1 -0
  67. package/dist/trade.d.ts +10 -0
  68. package/dist/trade.js +32 -0
  69. package/dist/trade.js.map +1 -0
  70. package/dist/types.d.ts +185 -0
  71. package/dist/types.js +42 -0
  72. package/dist/types.js.map +1 -0
  73. package/dist/util.d.ts +33 -0
  74. package/dist/util.js +212 -0
  75. package/dist/util.js.map +1 -0
  76. package/package.json +79 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,10 @@
1
+ # Version 1.1.0
2
+ - Change times to Date objects
3
+ - Change OrderBook, Trade number to BigNumbers
4
+ - rename Orderbook to OrderBook
5
+ - Added CoinrayCache - Caches results where possible. Limits to 30 symbols and resolutions and 2000 candles per symbol
6
+ - Added CurrentMarket - Allows to subscribe to a CurrentMarket view. On symbol changes, new snapshots will be broadcasted.
7
+
8
+
9
+ # Version 1.0.18
10
+ - Initial version of the change log
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018 coinrayio
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # Coinray.js - Official JavaScript client library for Coinray.io
2
+
3
+ ## Usage
4
+
5
+ ```js
6
+ import { Coinray } from "coinrayjs"
7
+
8
+ let coinray = new Coinray(token);
9
+ ```
10
+
11
+ ### Subscribe to trades
12
+ ```js
13
+ const handle = coinray.subscribeTrades({coinraySymbol: "BINA_BTC_ETH"}, (msg) => console.log("BINA_BTC_ETH:", msg));
14
+ coinray.unsubscribeTrades({coinraySymbol: "BINA_BTC_ETH"}, handle);
15
+ ```
16
+
17
+ ### Subscribe to candles
18
+ ```js
19
+ const handle = coinray.subscribeCandles({coinraySymbol: "BINA_BTC_ETH", resolution: "60"}, (msg) => console.log("BINA_BTC_ETH:", msg));
20
+ coinray.subscribeCandles({coinraySymbol: "BINA_BTC_ETH", resolution: "60"}, handle);
21
+ ```
22
+
23
+ ---
24
+
25
+ ## License
26
+
27
+ [MIT](LICENSE)
@@ -0,0 +1,7 @@
1
+ import Coinray from "./coinray";
2
+ export default class CandlesCache {
3
+ private lru;
4
+ private api;
5
+ constructor(limit: any, api: Coinray);
6
+ load(coinraySymbol: string, start: number, end: number, resolution: string): Promise<any>;
7
+ }
@@ -0,0 +1,57 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import LRU from "./lru";
11
+ import _ from "lodash";
12
+ class Range {
13
+ constructor() {
14
+ this.candles = [];
15
+ }
16
+ update(candles) {
17
+ this.candles = _.takeRight(_.uniqBy(this.candles.concat(candles), 'time').sort((a, b) => a.time > b.time ? 1 : -1), 2000);
18
+ if (this.candles.length > 0) {
19
+ this.start = this.candles[0].time.getTime();
20
+ this.end = this.candles[this.candles.length - 1].time.getTime();
21
+ }
22
+ else {
23
+ this.start = null;
24
+ this.end = null;
25
+ }
26
+ }
27
+ excludes(start, end) {
28
+ return !this.start || this.start > start ||
29
+ !this.end || this.end < end;
30
+ }
31
+ get(start, end) {
32
+ return this.candles.filter(({ time }) => time >= start && time <= end);
33
+ }
34
+ }
35
+ export default class CandlesCache {
36
+ constructor(limit, api) {
37
+ this.lru = new LRU(limit);
38
+ this.api = api;
39
+ }
40
+ load(coinraySymbol, start, end, resolution) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const key = [coinraySymbol, resolution].join("-");
43
+ let range = this.lru.read(key);
44
+ if (!range) {
45
+ range = new Range();
46
+ this.lru.write(key, range);
47
+ }
48
+ if (range.excludes(start, end)) {
49
+ const candles = yield this.api.fetchCandles({ coinraySymbol, start, end, resolution });
50
+ range.update(candles);
51
+ return candles;
52
+ }
53
+ return range.get(start, end);
54
+ });
55
+ }
56
+ }
57
+ //# sourceMappingURL=candles-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candles-cache.js","sourceRoot":"","sources":["../lib/candles-cache.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,MAAM,KAAK;IAKT;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE1H,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACjB;IACH,CAAC;IAED,QAAQ,CAAC,KAAK,EAAE,GAAG;QACjB,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK;YACpC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,KAAK,EAAE,GAAG;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,CAAA;IACtE,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAI/B,YAAY,KAAK,EAAE,GAAY;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAEK,IAAI,CAAC,aAAqB,EAAE,KAAa,EAAE,GAAW,EAAE,UAAkB;;YAC9E,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,CAAC,KAAK,EAAE;gBACV,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;aAC3B;YAED,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAC,CAAC,CAAC;gBACrF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,OAAO,CAAC;aAChB;YAED,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;KAAA;CACF"}
@@ -0,0 +1,30 @@
1
+ import Coinray from "./coinray";
2
+ import Exchange from "./exchange";
3
+ import { MarketMap, MarketQuery } from "./types";
4
+ import EventEmitter from "./event-emitter";
5
+ interface ExchangeMap {
6
+ [key: string]: Exchange;
7
+ }
8
+ export default class CoinrayCache extends EventEmitter {
9
+ private api;
10
+ private exchanges;
11
+ initialized: boolean;
12
+ private candlesCache;
13
+ refreshRate: number;
14
+ private refreshInterval;
15
+ constructor(api: Coinray, refreshRate?: number);
16
+ initialize(): Promise<void>;
17
+ start(): Promise<void>;
18
+ destroy(): void;
19
+ refreshExchanges: () => Promise<void>;
20
+ getExchanges(): ExchangeMap;
21
+ getExchange(exchangeCode: any): Exchange;
22
+ refreshMarkets: (exchangeCode: any) => Promise<void>;
23
+ searchMarkets(marketQuery: string | MarketQuery | MarketQuery[]): MarketMap;
24
+ getMarkets(codeOrSymbols: string | string[]): MarketMap;
25
+ getMarket: (coinraySymbol: string) => import("./market").default;
26
+ getCandles: (coinraySymbol: string, startTime: number, endTime: number, resolution: string) => Promise<any>;
27
+ getTrades: (coinraySymbol: string) => Promise<import("./types").Trade[]>;
28
+ getOrderBook: (coinraySymbol: string) => Promise<import("./types").OrderBook>;
29
+ }
30
+ export {};
@@ -0,0 +1,109 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import CandlesCache from "./candles-cache";
11
+ import { filterMarkets } from "./util";
12
+ import EventEmitter from "./event-emitter";
13
+ export default class CoinrayCache extends EventEmitter {
14
+ constructor(api, refreshRate = 30 * 1000) {
15
+ super();
16
+ this.refreshExchanges = () => __awaiter(this, void 0, void 0, function* () {
17
+ const exchanges = yield this.api.fetchExchanges();
18
+ yield Promise.all(exchanges.map((exchange) => exchange.loadMarkets()));
19
+ this.exchanges = exchanges.reduce((mem, exchange) => {
20
+ mem[exchange.code] = exchange;
21
+ return mem;
22
+ }, {});
23
+ this.dispatchEvent("marketsUpdated");
24
+ });
25
+ this.refreshMarkets = (exchangeCode) => __awaiter(this, void 0, void 0, function* () {
26
+ yield this.exchanges[exchangeCode].loadMarkets();
27
+ });
28
+ this.getMarket = (coinraySymbol) => {
29
+ const parts = `${coinraySymbol}`.split("_");
30
+ if (parts.length < 3) {
31
+ return;
32
+ }
33
+ const exchange = this.getExchange(parts[0]);
34
+ if (exchange) {
35
+ return exchange.getMarket(coinraySymbol);
36
+ }
37
+ };
38
+ this.getCandles = (coinraySymbol, startTime, endTime, resolution) => __awaiter(this, void 0, void 0, function* () {
39
+ return yield this.candlesCache.load(coinraySymbol, startTime, endTime, resolution);
40
+ });
41
+ this.getTrades = (coinraySymbol) => __awaiter(this, void 0, void 0, function* () {
42
+ return yield this.api.fetchTrades(coinraySymbol);
43
+ });
44
+ this.getOrderBook = (coinraySymbol) => __awaiter(this, void 0, void 0, function* () {
45
+ return yield this.api.fetchOrderBook(coinraySymbol);
46
+ });
47
+ this.api = api;
48
+ this.exchanges = {};
49
+ this.initialized = false;
50
+ this.refreshRate = refreshRate;
51
+ this.candlesCache = new CandlesCache(30, api);
52
+ }
53
+ initialize() {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ if (this.initialized) {
56
+ return;
57
+ }
58
+ yield this.start();
59
+ this.initialized = true;
60
+ });
61
+ }
62
+ start() {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ if (this.refreshInterval) {
65
+ clearInterval(this.refreshInterval);
66
+ }
67
+ yield this.refreshExchanges();
68
+ this.refreshInterval = setInterval(this.refreshExchanges, this.refreshRate);
69
+ });
70
+ }
71
+ destroy() {
72
+ if (this.refreshInterval) {
73
+ clearInterval(this.refreshInterval);
74
+ }
75
+ this.initialized = false;
76
+ }
77
+ getExchanges() {
78
+ if (!this.initialized) {
79
+ throw "The cache is not initialized yet";
80
+ }
81
+ return this.exchanges;
82
+ }
83
+ getExchange(exchangeCode) {
84
+ return this.getExchanges()[exchangeCode];
85
+ }
86
+ searchMarkets(marketQuery) {
87
+ return Object.values(this.exchanges).reduce((acc, exchange) => {
88
+ acc = Object.assign(Object.assign({}, acc), filterMarkets(exchange.markets, marketQuery));
89
+ return acc;
90
+ }, {});
91
+ }
92
+ getMarkets(codeOrSymbols) {
93
+ switch (typeof (codeOrSymbols)) {
94
+ case "string": {
95
+ return this.getExchange(codeOrSymbols).markets;
96
+ }
97
+ default: {
98
+ return codeOrSymbols.reduce((acc, coinraySymbol) => {
99
+ const market = this.getMarket(coinraySymbol);
100
+ if (market) {
101
+ acc[coinraySymbol] = market;
102
+ }
103
+ return acc;
104
+ }, {});
105
+ }
106
+ }
107
+ }
108
+ }
109
+ //# sourceMappingURL=coinray-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coinray-cache.js","sourceRoot":"","sources":["../lib/coinray-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import { AccountTestParams, CancelOrderParams, Candle, CandleParam, CandlesParam, CreateOrderParams, MarketParam, OrderBook, SmartOrderParams, Trade, UpdateOrderParams } from "./types";
2
+ import Market from "./market";
3
+ import Exchange from "./exchange";
4
+ import I18n from "./i18n";
5
+ export declare class CoinrayError extends Error {
6
+ errorCode: number;
7
+ errorMessage: string;
8
+ exchange: any;
9
+ constructor({ code, message, exchange }: {
10
+ code: any;
11
+ message: any;
12
+ exchange: any;
13
+ });
14
+ }
15
+ export default class Coinray {
16
+ static I18n: typeof I18n;
17
+ config: {
18
+ apiEndpoint: string;
19
+ orderEndpoint: string;
20
+ websocketEndpoint: string;
21
+ };
22
+ private _token;
23
+ private _sessionKey;
24
+ private _credential;
25
+ private _firstOpen;
26
+ private _onTokenExpired?;
27
+ private _tokenCheckInterval;
28
+ private _onError?;
29
+ private _onOpen?;
30
+ private _socket?;
31
+ private _transport;
32
+ private _tickerListeners;
33
+ private _tradeListeners;
34
+ private _tradeSnapshots;
35
+ private _orderbookListeners;
36
+ private _orderbookSnapshots;
37
+ private _candleTradeListeners;
38
+ private _candleListeners;
39
+ private _candles;
40
+ private _channels;
41
+ private _connected;
42
+ private markConnected;
43
+ private _publicKey;
44
+ _refreshingToken: Promise<string>;
45
+ private onReconnect;
46
+ private _nonceOffset;
47
+ private tickersSubscribed;
48
+ private tradesSubscribed;
49
+ private orderBookSubscribed;
50
+ private _timeOffset;
51
+ private _timeOffsetInterval;
52
+ constructor(token: string, { apiEndpoint, orderEndpoint, websocketEndpoint }?: {
53
+ apiEndpoint: string;
54
+ orderEndpoint: string;
55
+ websocketEndpoint: string;
56
+ });
57
+ authenticateDevice: (credential: string, sessionKey: string) => void;
58
+ destroy: () => void;
59
+ checkToken: () => Promise<boolean>;
60
+ setTransport: (transport: any) => void;
61
+ onTokenExpired: (callback: () => Promise<string>) => void;
62
+ refreshToken: (token: string) => void;
63
+ getNonce: () => number;
64
+ getTime: () => number;
65
+ loadTimeOffset: () => Promise<void>;
66
+ getToken: () => Promise<string>;
67
+ reconnect: () => void;
68
+ disconnect: () => void;
69
+ connect: () => Promise<void>;
70
+ onOpen: (callback: (event: any) => void) => void;
71
+ onError: (callback: (event: any) => void) => void;
72
+ resubscribe: () => void;
73
+ subscribeTickers: (exchangeCode: string, callback: (payload: any) => void) => Promise<(payload: any) => void>;
74
+ unsubscribeTickers: (exchangeCode: string, callback?: (payload: any) => void) => void;
75
+ subscribeTrades: ({ coinraySymbol }: MarketParam, callback: (payload: any) => void) => Promise<(payload: any) => void>;
76
+ unsubscribeTrades: ({ coinraySymbol }: MarketParam, callback?: (payload: any) => void) => void;
77
+ subscribeOrderBook: ({ coinraySymbol }: MarketParam, callback: (payload: any) => void) => Promise<(payload: any) => void>;
78
+ unsubscribeOrderBook: ({ coinraySymbol }: MarketParam, callback?: (payload: any) => void) => void;
79
+ subscribeCandles: ({ coinraySymbol, resolution, lastCandle }: CandleParam, callback: (payload: any) => void) => Promise<(payload: any) => void>;
80
+ unsubscribeCandles: ({ coinraySymbol, resolution }: CandleParam, callback?: (payload: any) => void) => void;
81
+ fetchCandles: ({ coinraySymbol, resolution, start, end, useWebSocket }: CandlesParam) => Promise<Candle[]>;
82
+ fetchExchanges: () => Promise<Exchange[]>;
83
+ fetchMarkets: (exchange: any) => Promise<Market[]>;
84
+ fetchTrades: (coinraySymbol: any) => Promise<Trade[]>;
85
+ fetchOrderBook: (coinraySymbol: any) => Promise<OrderBook>;
86
+ createCredential: (deviceId: string, password: string) => Promise<any>;
87
+ wrapApiKey: (apiKeySettings: {}) => Promise<any>;
88
+ testAccount: (accountTest: AccountTestParams) => Promise<any>;
89
+ createSmartOrderSignature: (smartOrder: SmartOrderParams) => Promise<any>;
90
+ createOrder: (order: CreateOrderParams) => Promise<any>;
91
+ updateOrder: (order: UpdateOrderParams) => Promise<any>;
92
+ cancelOrder: (order: CancelOrderParams) => Promise<any>;
93
+ createWebSocketToken: ({ exchangeCode, encryptedApiKey }: {
94
+ exchangeCode: any;
95
+ encryptedApiKey: any;
96
+ }) => Promise<any>;
97
+ fetchPositions: ({ exchangeCode, encryptedApiKey }: {
98
+ exchangeCode: any;
99
+ encryptedApiKey: any;
100
+ }) => Promise<any>;
101
+ getBalances: ({ exchangeCode, encryptedApiKey }: {
102
+ exchangeCode: any;
103
+ encryptedApiKey: any;
104
+ }) => Promise<{
105
+ balances: any;
106
+ positions: any;
107
+ }>;
108
+ setLeverage: ({ coinraySymbol, leverage, encryptedApiKey }: {
109
+ coinraySymbol: any;
110
+ leverage: any;
111
+ encryptedApiKey: any;
112
+ }) => Promise<any>;
113
+ setMarginType: ({ coinraySymbol, marginType, encryptedApiKey }: {
114
+ coinraySymbol: any;
115
+ marginType: any;
116
+ encryptedApiKey: any;
117
+ }) => Promise<any>;
118
+ publicKey(): Promise<any>;
119
+ get clientId(): string;
120
+ private get socket();
121
+ private getChannel;
122
+ get: (endpoint: string, { apiEndpoint, version, headers, params, secret }?: {
123
+ apiEndpoint?: any;
124
+ version?: string;
125
+ headers?: {};
126
+ params?: {};
127
+ secret?: string;
128
+ }) => Promise<{
129
+ result: any;
130
+ _headers: any;
131
+ }>;
132
+ post: (endpoint: string, attributes: any) => Promise<{
133
+ result: any;
134
+ _headers: any;
135
+ }>;
136
+ patch: (endpoint: string, attributes: any) => Promise<{
137
+ result: any;
138
+ _headers: any;
139
+ }>;
140
+ delete: (endpoint: string, attributes: any) => Promise<{
141
+ result: any;
142
+ _headers: any;
143
+ }>;
144
+ private _request;
145
+ private static _parseOrderBookSnapshot;
146
+ private static _parseOrderBookUpdate;
147
+ private static _updateOrderBook;
148
+ private static _parseBidAsk;
149
+ private static _parseCandle;
150
+ private static _parseTrade;
151
+ private static _parseTicker;
152
+ private static _parseBalance;
153
+ private static _tradesToLastCandle;
154
+ private static _mergeCandle;
155
+ private static _resolutionToSeconds;
156
+ }