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
@@ -0,0 +1,107 @@
1
+ // Stores the currently-being-typechecked object for error messages.
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ import { checkArray, checkBoolean, checkNumber, checkString, safeBigNumber, safeInteger, throwIsArray, throwNotObject, throwNull2NonNull } from "./util";
12
+ import _ from "lodash";
13
+ export default class Exchange {
14
+ constructor(d, api) {
15
+ this.api = api;
16
+ this.id = d.id;
17
+ this.name = d.name;
18
+ this.code = d.code;
19
+ this.websocket = d.websocket;
20
+ this.isFutures = !!d.isFutures;
21
+ this.logo = d.logo;
22
+ this.btcVolume = safeBigNumber(d.btcVolume);
23
+ this.usdVolume = safeBigNumber(d.usdVolume);
24
+ this.totalMarkets = safeInteger(d.totalMarkets);
25
+ this.quoteCurrencies = d.quoteCurrencies;
26
+ this.supportedResolutions = d.supportedResolutions;
27
+ this.supportedOrderTypes = d.supportedOrderTypes;
28
+ this.baseCurrencyDominance = d.baseCurrencyDominance;
29
+ this.markets = {};
30
+ this.exchangeSymbols = {};
31
+ }
32
+ static Create(d, api) {
33
+ if (d === null || d === undefined) {
34
+ throwNull2NonNull(d);
35
+ }
36
+ else if (typeof (d) !== 'object') {
37
+ throwNotObject(d, false);
38
+ }
39
+ else if (Array.isArray(d)) {
40
+ throwIsArray(d, false);
41
+ }
42
+ checkNumber(d.id, false, "id");
43
+ checkString(d.name, false, "name");
44
+ checkString(d.code, false, "code");
45
+ checkBoolean(d.websocket, false, "websocket");
46
+ checkBoolean(d.isFutures, true, "isFutures");
47
+ checkString(d.logo, false, "logo");
48
+ checkString(d.btcVolume, false, "btcVolume");
49
+ checkString(d.usdVolume, false, "usdVolume");
50
+ checkNumber(d.totalMarkets, false, "totalMarkets");
51
+ checkArray(d.quoteCurrencies, "quoteCurrencies");
52
+ if (d.quoteCurrencies) {
53
+ for (let i = 0; i < d.quoteCurrencies.length; i++) {
54
+ checkString(d.quoteCurrencies[i], false, "quoteCurrencies" + "[" + i + "]");
55
+ }
56
+ }
57
+ if (d.quoteCurrencies === undefined) {
58
+ d.quoteCurrencies = null;
59
+ }
60
+ checkArray(d.supportedResolutions, "supportedResolutions");
61
+ if (d.supportedResolutions) {
62
+ for (let i = 0; i < d.supportedResolutions.length; i++) {
63
+ checkString(d.supportedResolutions[i], false, "supportedResolutions" + "[" + i + "]");
64
+ }
65
+ }
66
+ if (d.supportedResolutions === undefined) {
67
+ d.supportedResolutions = null;
68
+ }
69
+ return new Exchange(d, api);
70
+ }
71
+ clone() {
72
+ return new Exchange({
73
+ api: this.api,
74
+ id: this.id,
75
+ name: this.name,
76
+ code: this.code,
77
+ websocket: this.websocket,
78
+ isFutures: this.isFutures,
79
+ logo: this.logo,
80
+ btcVolume: this.btcVolume,
81
+ usdVolume: this.usdVolume,
82
+ totalMarkets: this.totalMarkets,
83
+ quoteCurrencies: this.quoteCurrencies,
84
+ supportedResolutions: this.supportedResolutions,
85
+ baseCurrencyDominance: this.baseCurrencyDominance,
86
+ }, this.api);
87
+ }
88
+ loadMarkets() {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ const markets = yield this.api.fetchMarkets(this.code);
91
+ if (markets.length > 0) {
92
+ this.markets = _.keyBy(markets, "coinraySymbol");
93
+ this.exchangeSymbols = _.keyBy(markets, "symbol");
94
+ }
95
+ });
96
+ }
97
+ getBaseCurrencyDominance(baseCurrency) {
98
+ return this.baseCurrencyDominance[baseCurrency];
99
+ }
100
+ getMarketByExchangeSymbol(exchangeSymbol) {
101
+ return this.exchangeSymbols[exchangeSymbol];
102
+ }
103
+ getMarket(coinraySymbol) {
104
+ return this.markets[coinraySymbol];
105
+ }
106
+ }
107
+ //# sourceMappingURL=exchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../lib/exchange.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ declare const _default: {
2
+ "en-US": {
3
+ validation: {
4
+ notGreaterThanOrEqualTo: string;
5
+ insufficientFunds: string;
6
+ };
7
+ };
8
+ nl: {
9
+ validation: {
10
+ notGreaterThanOrEqualTo: string;
11
+ insufficientFunds: string;
12
+ };
13
+ };
14
+ ru: {
15
+ validation: {
16
+ notGreaterThanOrEqualTo: string;
17
+ insufficientFunds: string;
18
+ };
19
+ };
20
+ };
21
+ export default _default;
@@ -0,0 +1,21 @@
1
+ export default {
2
+ "en-US": {
3
+ validation: {
4
+ notGreaterThanOrEqualTo: "Can't be less than {{min}}",
5
+ insufficientFunds: "Insufficient funds"
6
+ }
7
+ },
8
+ nl: {
9
+ validation: {
10
+ notGreaterThanOrEqualTo: "Kan niet minder zijn dan {{min}}",
11
+ insufficientFunds: "Onvoldoende balans"
12
+ }
13
+ },
14
+ ru: {
15
+ validation: {
16
+ notGreaterThanOrEqualTo: "Не может быть меньше {{min}}",
17
+ insufficientFunds: "Недостаточно средств"
18
+ }
19
+ },
20
+ };
21
+ //# sourceMappingURL=locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../lib/i18n/locales.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,OAAO,EAAE;QACP,UAAU,EAAE;YACV,uBAAuB,EAAE,4BAA4B;YACrD,iBAAiB,EAAE,oBAAoB;SACxC;KACF;IACD,EAAE,EAAE;QACF,UAAU,EAAE;YACV,uBAAuB,EAAE,kCAAkC;YAC3D,iBAAiB,EAAE,oBAAoB;SACxC;KACF;IACD,EAAE,EAAE;QACF,UAAU,EAAE;YACV,uBAAuB,EAAE,8BAA8B;YACvD,iBAAiB,EAAE,sBAAsB;SAC1C;KACF;CACF,CAAA"}
package/dist/i18n.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export default class I18n {
2
+ static initialize: (i18n: any) => void;
3
+ static t: (key: any, params?: any) => any;
4
+ }
package/dist/i18n.js ADDED
@@ -0,0 +1,16 @@
1
+ let instance = undefined;
2
+ export default class I18n {
3
+ }
4
+ I18n.initialize = (i18n) => {
5
+ instance = i18n;
6
+ console.log(`Coinray I18n initialized`);
7
+ };
8
+ I18n.t = (key, params) => {
9
+ if (instance) {
10
+ return instance.t(`coinray:${key}`, params);
11
+ }
12
+ else {
13
+ return `i18n uninitialized. Set the Coinray.I18n.instance. Key: ${key}`;
14
+ }
15
+ };
16
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../lib/i18n.ts"],"names":[],"mappings":"AAAA,IAAI,QAAQ,GAAG,SAAS,CAAA;AAExB,MAAM,CAAC,OAAO,OAAO,IAAI;;AAChB,eAAU,GAAG,CAAC,IAAI,EAAE,EAAE;IAC3B,QAAQ,GAAG,IAAI,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;AACzC,CAAC,CAAA;AAEM,MAAC,GAAG,CAAC,GAAG,EAAE,MAAO,EAAE,EAAE;IAC1B,IAAI,QAAQ,EAAE;QACZ,OAAO,QAAQ,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;KAC5C;SAAM;QACL,OAAO,2DAA2D,GAAG,EAAE,CAAA;KACxE;AACH,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import Coinray from "./coinray";
2
+ import CoinrayCache from "./coinray-cache";
3
+ import CurrentMarket from "./current-market";
4
+ import { jwtExpired } from "./util";
5
+ import { LimitLadderOrder, LimitOrder, StopLimitOrder, MarketOrder } from "./orders";
6
+ import locales from "./i18n/locales";
7
+ import * as types from "./types";
8
+ export { CoinrayCache, CurrentMarket, jwtExpired, LimitOrder, LimitLadderOrder, StopLimitOrder, MarketOrder, types, locales };
9
+ export default Coinray;
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ import Coinray from "./coinray";
2
+ import CoinrayCache from "./coinray-cache";
3
+ import CurrentMarket from "./current-market";
4
+ import { jwtExpired } from "./util";
5
+ import { LimitLadderOrder, LimitOrder, StopLimitOrder, MarketOrder } from "./orders";
6
+ import locales from "./i18n/locales";
7
+ import * as types from "./types";
8
+ export { CoinrayCache, CurrentMarket, jwtExpired, LimitOrder, LimitLadderOrder, StopLimitOrder, MarketOrder, types, locales };
9
+ export default Coinray;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AACnF,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAC,CAAA;AAC3H,eAAe,OAAO,CAAA"}
package/dist/lru.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ declare class CacheNode {
2
+ key: any;
3
+ value: any;
4
+ next?: CacheNode;
5
+ prev?: CacheNode;
6
+ constructor(key: string, value: any, next?: CacheNode, prev?: CacheNode);
7
+ }
8
+ interface CacheNodeMap {
9
+ [key: string]: CacheNode;
10
+ }
11
+ export default class LRU {
12
+ size: number;
13
+ limit: number;
14
+ head?: CacheNode;
15
+ tail?: CacheNode;
16
+ cache: CacheNodeMap;
17
+ constructor(limit?: number);
18
+ write(key: any, value: any): void;
19
+ read(key: any): any;
20
+ ensureLimit(): void;
21
+ remove(key: any): void;
22
+ clear(): void;
23
+ forEach(fn: any): void;
24
+ [Symbol.iterator](): Generator<CacheNode, void, unknown>;
25
+ }
26
+ export {};
package/dist/lru.js ADDED
@@ -0,0 +1,93 @@
1
+ class CacheNode {
2
+ constructor(key, value, next = null, prev = null) {
3
+ this.key = key;
4
+ this.value = value;
5
+ this.next = next;
6
+ this.prev = prev;
7
+ }
8
+ }
9
+ export default class LRU {
10
+ //set default limit of 10 if limit is not passed.
11
+ constructor(limit = 10) {
12
+ this.size = 0;
13
+ this.limit = limit;
14
+ this.head = null;
15
+ this.tail = null;
16
+ this.cache = {};
17
+ }
18
+ // Write CacheNode to head of LinkedList
19
+ // update cache with CacheNode key and CacheNode reference
20
+ write(key, value) {
21
+ this.ensureLimit();
22
+ if (!this.head) {
23
+ this.head = this.tail = new CacheNode(key, value);
24
+ }
25
+ else {
26
+ const node = new CacheNode(key, value, this.head);
27
+ this.head.prev = node;
28
+ this.head = node;
29
+ }
30
+ //Update the cache map
31
+ this.cache[key] = this.head;
32
+ this.size++;
33
+ }
34
+ // Read from cache map and make that node as new Head of LinkedList
35
+ read(key) {
36
+ if (this.cache[key]) {
37
+ const value = this.cache[key].value;
38
+ // node removed from it's position and cache
39
+ this.remove(key);
40
+ // write node again to the head of LinkedList to make it most recently used
41
+ this.write(key, value);
42
+ return value;
43
+ }
44
+ console.log(`Item not available in cache for key ${key}`);
45
+ }
46
+ ensureLimit() {
47
+ if (this.size === this.limit) {
48
+ this.remove(this.tail.key);
49
+ }
50
+ }
51
+ remove(key) {
52
+ const node = this.cache[key];
53
+ if (node.prev !== null) {
54
+ node.prev.next = node.next;
55
+ }
56
+ else {
57
+ this.head = node.next;
58
+ }
59
+ if (node.next !== null) {
60
+ node.next.prev = node.prev;
61
+ }
62
+ else {
63
+ this.tail = node.prev;
64
+ }
65
+ delete this.cache[key];
66
+ this.size--;
67
+ }
68
+ clear() {
69
+ this.head = null;
70
+ this.tail = null;
71
+ this.size = 0;
72
+ this.cache = {};
73
+ }
74
+ // Invokes the callback function with every node of the chain and the index of the node.
75
+ forEach(fn) {
76
+ let node = this.head;
77
+ let counter = 0;
78
+ while (node) {
79
+ fn(node, counter);
80
+ node = node.next;
81
+ counter++;
82
+ }
83
+ }
84
+ // To iterate over LRU with a 'for...of' loop
85
+ *[Symbol.iterator]() {
86
+ let node = this.head;
87
+ while (node) {
88
+ yield node;
89
+ node = node.next;
90
+ }
91
+ }
92
+ }
93
+ //# sourceMappingURL=lru.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru.js","sourceRoot":"","sources":["../lib/lru.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import BigNumber from "bignumber.js";
2
+ import Coinray from "./coinray";
3
+ export default class Market {
4
+ readonly api: Coinray;
5
+ readonly id: number;
6
+ readonly coinraySymbol: string;
7
+ readonly symbol: string;
8
+ readonly symbolAlt: string;
9
+ readonly quoteCurrency: string;
10
+ readonly underlyingQuoteCurrency: string;
11
+ readonly baseCurrency: string;
12
+ readonly exchangeCode: string;
13
+ readonly volume: BigNumber;
14
+ readonly quoteVolume: BigNumber;
15
+ readonly btcVolume: BigNumber;
16
+ readonly usdVolume: BigNumber;
17
+ readonly websocket: boolean;
18
+ readonly openPrice: BigNumber;
19
+ readonly highPrice: BigNumber;
20
+ readonly lowPrice: BigNumber;
21
+ readonly precisionBase: number;
22
+ readonly precisionQuote: number;
23
+ readonly precisionPrice: number;
24
+ readonly minBase: number;
25
+ readonly minQuote: number;
26
+ readonly minTrade?: BigNumber;
27
+ readonly maxTrade?: BigNumber;
28
+ readonly makerFee: number;
29
+ readonly takerFee: number;
30
+ readonly change: number;
31
+ readonly delistedOn: string;
32
+ readonly exchangeUrl: string;
33
+ readonly baseToUsd: BigNumber;
34
+ readonly quoteToUsd: BigNumber;
35
+ readonly status: string;
36
+ readonly note: string;
37
+ lastPrice?: BigNumber;
38
+ askPrice: BigNumber;
39
+ bidPrice: BigNumber;
40
+ readonly updatedAt: string;
41
+ static Create(d: any, api: Coinray): Market;
42
+ constructor(d: any, api: Coinray);
43
+ get fullDisplayName(): string;
44
+ get displayName(): string;
45
+ updateTicker: ({ lastPrice, bidPrice, askPrice }: any) => void;
46
+ }
package/dist/market.js ADDED
@@ -0,0 +1,117 @@
1
+ import { checkBigNumber, checkBoolean, checkNull, checkNumber, checkString, safeBigNumber, safeFloat, throwIsArray, throwNotObject, throwNull2NonNull } from "./util";
2
+ let obj = null;
3
+ export default class Market {
4
+ constructor(d, api) {
5
+ this.updateTicker = ({ lastPrice, bidPrice, askPrice }) => {
6
+ if (lastPrice) {
7
+ this.lastPrice = lastPrice;
8
+ }
9
+ if (askPrice) {
10
+ this.askPrice = askPrice;
11
+ }
12
+ if (bidPrice) {
13
+ this.bidPrice = bidPrice;
14
+ }
15
+ };
16
+ this.api = api;
17
+ this.id = d.id;
18
+ this.coinraySymbol = d.coinraySymbol;
19
+ this.symbol = d.symbol;
20
+ this.symbolAlt = d.symbolAlt;
21
+ this.quoteCurrency = d.quoteCurrency.toUpperCase();
22
+ this.underlyingQuoteCurrency = d.underlyingQuoteCurrency.toUpperCase();
23
+ this.baseCurrency = d.baseCurrency.toUpperCase();
24
+ this.exchangeCode = d.exchangeCode;
25
+ this.status = d.status;
26
+ this.note = d.note;
27
+ this.volume = safeBigNumber(d.volume);
28
+ this.quoteVolume = safeBigNumber(d.quoteVolume);
29
+ this.btcVolume = safeBigNumber(d.btcVolume);
30
+ this.usdVolume = safeBigNumber(d.usdVolume);
31
+ this.websocket = d.websocket;
32
+ this.openPrice = safeBigNumber(d.openPrice);
33
+ this.highPrice = safeBigNumber(d.highPrice);
34
+ this.lowPrice = safeBigNumber(d.lowPrice);
35
+ this.precisionBase = d.precisionBase;
36
+ this.precisionPrice = d.precisionPrice;
37
+ this.precisionQuote = d.precisionQuote;
38
+ this.minQuote = d.minQuote;
39
+ this.precisionBase = d.precisionBase;
40
+ this.minBase = d.minBase;
41
+ this.minTrade = safeBigNumber(d.minTrade);
42
+ this.maxTrade = safeBigNumber(d.maxTrade);
43
+ this.makerFee = safeFloat(d.makerFee);
44
+ this.takerFee = safeFloat(d.takerFee);
45
+ this.change = safeFloat(d.change);
46
+ this.delistedOn = d.delistedOn;
47
+ this.exchangeUrl = d.exchangeUrl;
48
+ this.lastPrice = safeBigNumber(d.lastPrice);
49
+ this.baseToUsd = safeBigNumber(d.baseToUsd);
50
+ this.quoteToUsd = safeBigNumber(d.quoteToUsd);
51
+ this.askPrice = safeBigNumber(d.askPrice);
52
+ this.bidPrice = safeBigNumber(d.bidPrice);
53
+ this.updatedAt = d.updatedAt;
54
+ }
55
+ static Create(d, api) {
56
+ if (d === null || d === undefined) {
57
+ throwNull2NonNull(d);
58
+ }
59
+ else if (typeof (d) !== 'object') {
60
+ throwNotObject(d, false);
61
+ }
62
+ else if (Array.isArray(d)) {
63
+ throwIsArray(d, false);
64
+ }
65
+ checkNumber(d.id, false, "id");
66
+ checkString(d.coinraySymbol, false, "coinraySymbol");
67
+ checkString(d.symbol, false, "symbol");
68
+ checkString(d.symbolAlt, false, "symbolAlt");
69
+ checkString(d.quoteCurrency, false, "quoteCurrency");
70
+ checkString(d.underlyingQuoteCurrency, false, "underlyingQuoteCurrency");
71
+ checkString(d.baseCurrency, false, "baseCurrency");
72
+ checkString(d.exchangeCode, false, "exchangeCode");
73
+ checkString(d.status || "", false, "status");
74
+ checkString(d.note || "", false, "note");
75
+ checkBigNumber(d.volume, true, "volume");
76
+ checkBigNumber(d.quoteVolume, true, "quoteVolume");
77
+ checkBigNumber(d.btcVolume, true, "btcVolume");
78
+ checkBigNumber(d.usdVolume, true, "usdVolume");
79
+ checkBoolean(d.websocket, false, "websocket");
80
+ checkBigNumber(d.openPrice, true, "openPrice");
81
+ checkBigNumber(d.highPrice, true, "highPrice");
82
+ checkBigNumber(d.lowPrice, true, "lowPrice");
83
+ checkNumber(d.precisionBase, false, "precisionBase");
84
+ checkNumber(d.precisionPrice, false, "precisionPrice");
85
+ checkNumber(d.precisionBase, false, "precisionBase");
86
+ checkNumber(d.minBase, true, "minBase");
87
+ checkNumber(d.precisionQuote, false, "precisionQuote");
88
+ checkNumber(d.minQuote, true, "minQuote");
89
+ checkBigNumber(d.minTrade, false, "minTrade");
90
+ checkNumber(d.maxTrade, true, "maxTrade");
91
+ if (d.maxTrade === undefined) {
92
+ d.maxTrade = null;
93
+ }
94
+ checkNumber(d.makerFee, false, "makerFee");
95
+ checkNumber(d.takerFee, false, "takerFee");
96
+ checkNumber(d.change, false, "change");
97
+ checkNull(d.delistedOn, "delistedOn");
98
+ if (d.delistedOn === undefined) {
99
+ d.delistedOn = null;
100
+ }
101
+ checkString(d.exchangeUrl, false, "exchangeUrl");
102
+ checkBigNumber(d.lastPrice, true, "lastPrice");
103
+ checkBigNumber(d.baseToUsd, false, "baseToUsd");
104
+ checkBigNumber(d.quoteToUsd, false, "quoteToUsd");
105
+ checkBigNumber(d.askPrice, true, "askPrice");
106
+ checkBigNumber(d.bidPrice, true, "bidPrice");
107
+ checkString(d.updatedAt, false, "updatedAt");
108
+ return new Market(d, api);
109
+ }
110
+ get fullDisplayName() {
111
+ return [this.exchangeCode, this.displayName].join(": ");
112
+ }
113
+ get displayName() {
114
+ return [this.baseCurrency, this.quoteCurrency].join("/");
115
+ }
116
+ }
117
+ //# sourceMappingURL=market.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../lib/market.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { BalanceLimit, BaseOrderParams, MarketBalance, OrderSide, TimeInForce } from "../types";
2
+ import BigNumber from "bignumber.js";
3
+ export default abstract class BaseOrder {
4
+ id: string;
5
+ coinraySymbol: string;
6
+ precisionBase: number;
7
+ precisionQuote: number;
8
+ precisionPrice: number;
9
+ minBase: BigNumber;
10
+ minQuote: BigNumber;
11
+ makerFee: BigNumber;
12
+ takerFee: BigNumber;
13
+ balances: MarketBalance;
14
+ balanceLimit: BalanceLimit;
15
+ side: OrderSide;
16
+ errors: any;
17
+ isValid: boolean;
18
+ orderExternalId?: string;
19
+ reduceOnly?: boolean;
20
+ postOnly?: boolean;
21
+ timeInForce?: TimeInForce;
22
+ constructor(params: BaseOrderParams);
23
+ abstract constraints(): object;
24
+ abstract getOrders(): Array<BaseOrder>;
25
+ startEdit(orderExternalId: string): void;
26
+ updateLockedOn(lockedOn: string): void;
27
+ resetError(): void;
28
+ validate(): boolean;
29
+ }
@@ -0,0 +1,47 @@
1
+ import validate from "./validate";
2
+ import { BalanceLimit } from "../types";
3
+ import { safeBigNumber, safeInteger } from "../util";
4
+ import UUID from "uuid/v4";
5
+ export default class BaseOrder {
6
+ constructor(params) {
7
+ this.id = UUID();
8
+ this.coinraySymbol = params.coinraySymbol;
9
+ this.precisionBase = safeInteger(params.precisionBase);
10
+ this.precisionQuote = safeInteger(params.precisionQuote);
11
+ this.precisionPrice = safeInteger(params.precisionPrice);
12
+ this.minBase = safeBigNumber(params.minBase);
13
+ this.minQuote = safeBigNumber(params.minQuote);
14
+ this.makerFee = safeBigNumber(params.makerFee);
15
+ this.takerFee = safeBigNumber(params.takerFee);
16
+ this.balances = params.balances;
17
+ this.balanceLimit = params.balanceLimit || BalanceLimit.NONE;
18
+ this.side = params.side;
19
+ this.orderExternalId = params.externalId;
20
+ this.errors = {};
21
+ this.isValid = true;
22
+ this.reduceOnly = params.reduceOnly;
23
+ this.postOnly = params.postOnly;
24
+ this.timeInForce = params.timeInForce;
25
+ }
26
+ startEdit(orderExternalId) {
27
+ this.orderExternalId = orderExternalId;
28
+ }
29
+ updateLockedOn(lockedOn) {
30
+ }
31
+ resetError() {
32
+ this.errors = {};
33
+ this.isValid = true;
34
+ }
35
+ validate() {
36
+ const errors = validate(this, this.constraints());
37
+ if (errors) {
38
+ this.errors = errors;
39
+ this.isValid = false;
40
+ }
41
+ else {
42
+ this.resetError();
43
+ }
44
+ return !errors;
45
+ }
46
+ }
47
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../lib/orders/base.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAC,YAAY,EAAyD,MAAM,UAAU,CAAC;AAE9F,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,MAAM,CAAC,OAAO,OAAgB,SAAS;IAoBrC,YAAY,MAAuB;QAnBnC,OAAE,GAAG,IAAI,EAAE,CAAC;QAoBV,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAI,MAAM,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;IACvC,CAAC;IAMD,SAAS,CAAC,eAAuB;QAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAED,cAAc,CAAC,QAAgB;IAC/B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;SACrB;aAAM;YACL,IAAI,CAAC,UAAU,EAAE,CAAA;SAClB;QACD,OAAO,CAAC,MAAM,CAAA;IAChB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import LimitOrder from "./limit";
2
+ import MarketOrder from "./market";
3
+ import LimitLadderOrder from "./limit-ladder";
4
+ import StopLimitOrder from "./stop-limit";
5
+ import OcoOrder from "./oco";
6
+ export { LimitOrder, LimitLadderOrder, MarketOrder, StopLimitOrder, OcoOrder };
@@ -0,0 +1,7 @@
1
+ import LimitOrder from "./limit";
2
+ import MarketOrder from "./market";
3
+ import LimitLadderOrder from "./limit-ladder";
4
+ import StopLimitOrder from "./stop-limit";
5
+ import OcoOrder from "./oco";
6
+ export { LimitOrder, LimitLadderOrder, MarketOrder, StopLimitOrder, OcoOrder };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/orders/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,SAAS,CAAC;AACjC,OAAO,WAAW,MAAM,UAAU,CAAC;AACnC,OAAO,gBAAgB,MAAM,gBAAgB,CAAC;AAC9C,OAAO,cAAc,MAAM,cAAc,CAAC;AAC1C,OAAO,QAAQ,MAAM,OAAO,CAAC;AAE7B,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAC,CAAA"}