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,70 @@
1
+ import { OrderSide, OrderType } from "../types";
2
+ import BigNumber from "bignumber.js";
3
+ import LimitOrder from "./limit";
4
+ import { safeBigNumber } from "../util";
5
+ export default class OcoOrder extends LimitOrder {
6
+ constructor(params) {
7
+ super(params, false);
8
+ this.orderType = OrderType.OCO;
9
+ this.otherPrice = safeBigNumber(params.otherPrice);
10
+ this.stopPrice = safeBigNumber(params.stopPrice);
11
+ if (this.quoteAmount.gt(0) && this.lockedOn === "quoteAmount") {
12
+ this.updateQuoteAmount(this.quoteAmount);
13
+ }
14
+ else {
15
+ this.updateBaseAmount(this.baseAmount);
16
+ }
17
+ }
18
+ constraints() {
19
+ const limitConstraints = super.constraints();
20
+ return Object.assign(Object.assign({}, limitConstraints), { otherPrice: {
21
+ bigNumericality: {
22
+ greaterThan: 0,
23
+ }
24
+ }, stopPrice: {
25
+ bigNumericality: {
26
+ greaterThan: 0,
27
+ }
28
+ } });
29
+ }
30
+ updateQuoteAmount(quoteAmount) {
31
+ this.quoteAmount = quoteAmount;
32
+ let basePrice = this.side === OrderSide.BUY ? this.otherPrice : this.price;
33
+ this.baseAmount = quoteAmount.dividedBy(basePrice).decimalPlaces(this.precisionBase > 0 ? this.precisionBase : 0, BigNumber.ROUND_DOWN);
34
+ this.validate();
35
+ }
36
+ updateBaseAmount(baseAmount) {
37
+ this.baseAmount = baseAmount;
38
+ let basePrice = this.side === OrderSide.BUY ? this.otherPrice : this.price;
39
+ this.quoteAmount = basePrice.multipliedBy(this.baseAmount).decimalPlaces(this.precisionQuote > 0 ? this.precisionQuote : 0, BigNumber.ROUND_DOWN);
40
+ this.validate();
41
+ }
42
+ updatePrice(price, priceOffset = 0.05) {
43
+ super.updatePrice(price);
44
+ if (price && this.otherPrice.eq(0)) {
45
+ const offset = this.side === OrderSide.BUY ? 1 + (priceOffset * 2) : 1 - (priceOffset * 2);
46
+ const stopOffset = this.side === OrderSide.BUY ? 1 + priceOffset : 1 - priceOffset;
47
+ this.otherPrice = price.multipliedBy(offset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
48
+ this.stopPrice = price.multipliedBy(stopOffset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
49
+ }
50
+ }
51
+ updateOtherPrice(otherPrice, priceOffset = 0.05) {
52
+ this.otherPrice = otherPrice.decimalPlaces(this.precisionPrice);
53
+ if (otherPrice && this.price.eq(0)) {
54
+ const offset = this.side === OrderSide.BUY ? 1 - (priceOffset * 2) : 1 + (priceOffset * 2);
55
+ const stopOffset = this.side === OrderSide.BUY ? 1 - priceOffset : 1 + priceOffset;
56
+ this.price = otherPrice.multipliedBy(offset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
57
+ this.stopPrice = otherPrice.multipliedBy(stopOffset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
58
+ }
59
+ }
60
+ updateStopPrice(stopPrice, priceOffset = 0.05) {
61
+ this.stopPrice = stopPrice.decimalPlaces(this.precisionPrice);
62
+ if (stopPrice && this.price.eq(0)) {
63
+ const offset = this.side === OrderSide.BUY ? 1 - priceOffset : 1 + priceOffset;
64
+ const otherOffset = this.side === OrderSide.BUY ? 1 + priceOffset : 1 - priceOffset;
65
+ this.price = stopPrice.multipliedBy(offset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
66
+ this.otherPrice = stopPrice.multipliedBy(otherOffset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
67
+ }
68
+ }
69
+ }
70
+ //# sourceMappingURL=oco.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oco.js","sourceRoot":"","sources":["../../lib/orders/oco.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { OrderType } from "../types";
2
+ import BigNumber from "bignumber.js";
3
+ import LimitOrder, { LimitOrderParams } from "./limit";
4
+ interface StopLimitOrderParams extends LimitOrderParams {
5
+ stopPrice: BigNumber;
6
+ }
7
+ export default class StopLimitOrder extends LimitOrder {
8
+ stopPrice: BigNumber;
9
+ orderType: OrderType;
10
+ constraints(): {
11
+ stopPrice: {
12
+ bigNumericality: {
13
+ greaterThan: number;
14
+ };
15
+ };
16
+ baseAmount: {
17
+ bigNumericality: {
18
+ greaterThanOrEqualTo: number;
19
+ notGreaterThanOrEqualTo: string;
20
+ lessThanOrEqualTo: any;
21
+ notLessThanOrEqualTo: string;
22
+ };
23
+ };
24
+ quoteAmount: {
25
+ bigNumericality: {
26
+ greaterThanOrEqualTo: number;
27
+ notGreaterThanOrEqualTo: string;
28
+ lessThanOrEqualTo: any;
29
+ notLessThanOrEqualTo: string;
30
+ };
31
+ };
32
+ price: {
33
+ bigNumericality: {
34
+ greaterThan: number;
35
+ };
36
+ };
37
+ };
38
+ constructor(params: StopLimitOrderParams);
39
+ updatePrice(price: BigNumber, priceOffset?: number): void;
40
+ updateStopPrice(stopPrice: BigNumber, priceOffset?: number): void;
41
+ }
42
+ export {};
@@ -0,0 +1,33 @@
1
+ import { OrderSide, OrderType } from "../types";
2
+ import LimitOrder from "./limit";
3
+ import { safeBigNumber } from "../util";
4
+ export default class StopLimitOrder extends LimitOrder {
5
+ constructor(params) {
6
+ super(params);
7
+ this.orderType = OrderType.STOP_LOSS_LIMIT;
8
+ this.stopPrice = safeBigNumber(params.stopPrice);
9
+ }
10
+ constraints() {
11
+ const limitConstraints = super.constraints();
12
+ return Object.assign(Object.assign({}, limitConstraints), { stopPrice: {
13
+ bigNumericality: {
14
+ greaterThan: 0,
15
+ }
16
+ } });
17
+ }
18
+ updatePrice(price, priceOffset = 0.05) {
19
+ super.updatePrice(price);
20
+ if (price && this.stopPrice.eq(0)) {
21
+ const offset = this.side === OrderSide.BUY ? 1 - priceOffset : 1 + priceOffset;
22
+ this.stopPrice = price.multipliedBy(offset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
23
+ }
24
+ }
25
+ updateStopPrice(stopPrice, priceOffset = 0.05) {
26
+ this.stopPrice = stopPrice.decimalPlaces(this.precisionPrice);
27
+ if (stopPrice && this.price.eq(0)) {
28
+ const offset = this.side === OrderSide.BUY ? 1 + priceOffset : 1 - priceOffset;
29
+ this.price = stopPrice.multipliedBy(offset).decimalPlaces(this.precisionPrice > 0 ? this.precisionPrice : 0);
30
+ }
31
+ }
32
+ }
33
+ //# sourceMappingURL=stop-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-limit.js","sourceRoot":"","sources":["../../lib/orders/stop-limit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAE9C,OAAO,UAA8B,MAAM,SAAS,CAAC;AACrD,OAAO,EAAC,aAAa,EAAY,MAAM,SAAS,CAAC;AAMjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU;IAgBpD,YAAY,MAA4B;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAfhB,cAAS,GAAG,SAAS,CAAC,eAAe,CAAC;QAgBpC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAfD,WAAW;QACT,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7C,uCACK,gBAAgB,KACnB,SAAS,EAAE;gBACT,eAAe,EAAE;oBACf,WAAW,EAAE,CAAC;iBACf;aACF,IACF;IACH,CAAC;IAOD,WAAW,CAAC,KAAgB,EAAE,WAAW,GAAG,IAAI;QAC9C,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;YAC/E,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAC7G;IACH,CAAC;IAED,eAAe,CAAC,SAAoB,EAAE,WAAW,GAAG,IAAI;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;YAC/E,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAC7G;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ import validate from "validate.js";
2
+ export default validate;
@@ -0,0 +1,6 @@
1
+ import validate from "validate.js";
2
+ validate.validators.bigNumericality = (value, options, key, attributes) => {
3
+ return validate.validators.numericality(value ? value.toNumber() : value, options, attributes);
4
+ };
5
+ export default validate;
6
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../lib/orders/validate.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,QAAQ,CAAC,UAAU,CAAC,eAAe,GAAG,CAAC,KAAU,EAAE,OAAY,EAAE,GAAW,EAAE,UAAkB,EAAE,EAAE;IAClG,OAAO,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;AAChG,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,10 @@
1
+ import BigNumber from "bignumber.js";
2
+ export default class Trade {
3
+ readonly id: string;
4
+ readonly time: Date;
5
+ readonly price: BigNumber;
6
+ readonly quantity: BigNumber;
7
+ readonly type: "sell" | "buy";
8
+ static Create(d: any): Trade;
9
+ private constructor();
10
+ }
package/dist/trade.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var util_1 = require("./util");
4
+ var Trade = /** @class */ (function () {
5
+ function Trade(d) {
6
+ this.id = d.id;
7
+ this.time = util_1.safeTime(d.time);
8
+ this.price = util_1.safeBigNumber(d.price);
9
+ this.quantity = util_1.safeBigNumber(d.quantity);
10
+ this.type = d.type;
11
+ }
12
+ Trade.Create = function (d) {
13
+ if (d === null || d === undefined) {
14
+ util_1.throwNull2NonNull(d);
15
+ }
16
+ else if (typeof (d) !== 'object') {
17
+ util_1.throwNotObject(d, false);
18
+ }
19
+ else if (Array.isArray(d)) {
20
+ util_1.throwIsArray(d, false);
21
+ }
22
+ util_1.checkString(d.id, false, "id");
23
+ util_1.checkNumber(d.time, false, "time");
24
+ util_1.checkBigNumber(d.price, false, "price");
25
+ util_1.checkBigNumber(d.quantity, false, "quantity");
26
+ util_1.checkString(d.type, false, "type");
27
+ return new Trade(d);
28
+ };
29
+ return Trade;
30
+ }());
31
+ exports.default = Trade;
32
+ //# sourceMappingURL=trade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.js","sourceRoot":"","sources":["../lib/trade.ts"],"names":[],"mappings":";;AAEA,+BAKgB;AAEhB;IAwBE,eAAoB,CAAM;QACxB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,oBAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,oBAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;IACpB,CAAC;IAvBa,YAAM,GAApB,UAAqB,CAAM;QACzB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;YACjC,wBAAiB,CAAC,CAAC,CAAC,CAAC;SACtB;aAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAClC,qBAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3B,mBAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACxB;QACD,kBAAW,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,kBAAW,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,qBAAc,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,qBAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC9C,kBAAW,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEnC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IASH,YAAC;AAAD,CAAC,AA/BD,IA+BC"}
@@ -0,0 +1,185 @@
1
+ import BigNumber from "bignumber.js";
2
+ import Market from "./market";
3
+ export interface MarketParam {
4
+ coinraySymbol: string;
5
+ }
6
+ export interface Candle {
7
+ time: Date;
8
+ open: BigNumber;
9
+ high: BigNumber;
10
+ low: BigNumber;
11
+ close: BigNumber;
12
+ baseVolume: BigNumber;
13
+ quoteVolume: BigNumber;
14
+ skipVolume?: Boolean;
15
+ }
16
+ export interface CandleParam {
17
+ coinraySymbol: string;
18
+ resolution: string;
19
+ lastCandle?: Candle;
20
+ }
21
+ export interface CandlesParam {
22
+ coinraySymbol: string;
23
+ resolution: string;
24
+ start?: number;
25
+ end?: number;
26
+ useWebSocket?: boolean;
27
+ }
28
+ export interface MarketMap {
29
+ [key: string]: Market;
30
+ }
31
+ export interface MarketQuery {
32
+ query: string;
33
+ marketProperty: string;
34
+ }
35
+ export interface OrderBookSide {
36
+ [key: string]: BigNumber;
37
+ }
38
+ export interface OrderBook {
39
+ minSeq: number;
40
+ maxSeq: number;
41
+ asks: OrderBookSide;
42
+ bids: OrderBookSide;
43
+ }
44
+ export interface Trade {
45
+ id: string;
46
+ time: Date;
47
+ price: BigNumber;
48
+ quantity: BigNumber;
49
+ type: "sell" | "buy";
50
+ }
51
+ export interface Ticker {
52
+ coinraySymbol: string;
53
+ baseVolume: BigNumber;
54
+ quoteVolume: BigNumber;
55
+ btcVolume: BigNumber;
56
+ usdVolume: BigNumber;
57
+ openPrice24h: BigNumber;
58
+ highPrice24h: BigNumber;
59
+ lowPrice24h: BigNumber;
60
+ openPrice1s: BigNumber;
61
+ highPrice1s: BigNumber;
62
+ lowPrice1s: BigNumber;
63
+ lastPrice: BigNumber;
64
+ askPrice: BigNumber;
65
+ bidPrice: BigNumber;
66
+ }
67
+ export interface TradeList {
68
+ coinraySymbol: string;
69
+ trades: Trade[];
70
+ }
71
+ export declare enum OrderType {
72
+ MARKET = "MARKET",
73
+ LIMIT = "LIMIT",
74
+ LIMIT_LADDER = "LIMIT_LADDER",
75
+ STOP_LOSS = "STOP_LOSS",
76
+ OCO = "OCO",
77
+ STOP_LOSS_LIMIT = "STOP_LOSS_LIMIT",
78
+ STOP_LOSS_MARKET = "STOP_LOSS_MARKET",
79
+ TAKE_PROFIT = "TAKE_PROFIT",
80
+ TAKE_PROFIT_LIMIT = "TAKE_PROFIT_LIMIT",
81
+ TAKE_PROFIT_MARKET = "TAKE_PROFIT_MARKET"
82
+ }
83
+ export declare enum MarginType {
84
+ CROSSED = "CROSSED",
85
+ ISOLATED = "ISOLATED"
86
+ }
87
+ export declare enum OrderStatus {
88
+ OPEN = "open",
89
+ CLOSED = "closed",
90
+ CANCELED = "canceled"
91
+ }
92
+ export declare enum OrderSide {
93
+ BUY = "buy",
94
+ SELL = "sell"
95
+ }
96
+ export declare enum TimeInForce {
97
+ GTC = "gtc",
98
+ FOK = "fok",
99
+ IOC = "ioc"
100
+ }
101
+ export declare enum BalanceLimit {
102
+ QUOTE = "quote",
103
+ BASE = "base",
104
+ NONE = "none"
105
+ }
106
+ export interface BaseParams {
107
+ encryptedApiKey: string;
108
+ coinraySymbol: string;
109
+ }
110
+ export interface SmartOrderParams {
111
+ credential: string;
112
+ coinraySymbol?: String;
113
+ type?: OrderType;
114
+ side?: OrderSide;
115
+ quantity?: BigNumber;
116
+ price?: BigNumber;
117
+ stopPrice?: BigNumber;
118
+ allowParams?: string[];
119
+ reduceOnly?: boolean;
120
+ postOnly?: boolean;
121
+ timeInForce?: TimeInForce;
122
+ }
123
+ export interface CreateOrderParams extends BaseParams {
124
+ type: OrderType;
125
+ side: OrderSide;
126
+ quantity: BigNumber;
127
+ price?: BigNumber;
128
+ stopPrice?: BigNumber;
129
+ reduceOnly?: boolean;
130
+ postOnly?: boolean;
131
+ timeInForce?: TimeInForce;
132
+ }
133
+ export interface UpdateOrderParams extends BaseParams {
134
+ orderId: string;
135
+ type: OrderType;
136
+ side: OrderSide;
137
+ quantity: BigNumber;
138
+ price?: BigNumber;
139
+ stopPrice?: BigNumber;
140
+ reduceOnly?: boolean;
141
+ postOnly?: boolean;
142
+ timeInForce?: TimeInForce;
143
+ }
144
+ export interface CancelOrderParams extends BaseParams {
145
+ orderType: OrderType;
146
+ orderId: string;
147
+ }
148
+ export interface AccountTestParams extends BaseParams {
149
+ encryptedApiKey: string;
150
+ exchangeCode: string;
151
+ }
152
+ export interface BaseOrderParams {
153
+ externalId?: string;
154
+ coinraySymbol: string;
155
+ precisionBase: number;
156
+ precisionQuote: number;
157
+ precisionPrice: number;
158
+ minBase: BigNumber;
159
+ minQuote: BigNumber;
160
+ makerFee: BigNumber;
161
+ takerFee: BigNumber;
162
+ side: OrderSide;
163
+ balances: MarketBalance;
164
+ balanceLimit?: BalanceLimit;
165
+ reduceOnly?: boolean;
166
+ postOnly?: boolean;
167
+ timeInForce?: TimeInForce;
168
+ }
169
+ export interface Balance {
170
+ currency: string;
171
+ available: BigNumber;
172
+ inOrders: BigNumber;
173
+ total: BigNumber;
174
+ initialMargin?: BigNumber;
175
+ openOrderInitialMargin?: BigNumber;
176
+ positionInitialMargin?: BigNumber;
177
+ unrealizedProfit?: BigNumber;
178
+ crossWalletBalance?: BigNumber;
179
+ crossUnrealizedProfit?: BigNumber;
180
+ }
181
+ export interface MarketBalance {
182
+ [key: string]: Balance;
183
+ base: Balance;
184
+ quote: Balance;
185
+ }
package/dist/types.js ADDED
@@ -0,0 +1,42 @@
1
+ export var OrderType;
2
+ (function (OrderType) {
3
+ OrderType["MARKET"] = "MARKET";
4
+ OrderType["LIMIT"] = "LIMIT";
5
+ OrderType["LIMIT_LADDER"] = "LIMIT_LADDER";
6
+ OrderType["STOP_LOSS"] = "STOP_LOSS";
7
+ OrderType["OCO"] = "OCO";
8
+ OrderType["STOP_LOSS_LIMIT"] = "STOP_LOSS_LIMIT";
9
+ OrderType["STOP_LOSS_MARKET"] = "STOP_LOSS_MARKET";
10
+ OrderType["TAKE_PROFIT"] = "TAKE_PROFIT";
11
+ OrderType["TAKE_PROFIT_LIMIT"] = "TAKE_PROFIT_LIMIT";
12
+ OrderType["TAKE_PROFIT_MARKET"] = "TAKE_PROFIT_MARKET";
13
+ })(OrderType || (OrderType = {}));
14
+ export var MarginType;
15
+ (function (MarginType) {
16
+ MarginType["CROSSED"] = "CROSSED";
17
+ MarginType["ISOLATED"] = "ISOLATED";
18
+ })(MarginType || (MarginType = {}));
19
+ export var OrderStatus;
20
+ (function (OrderStatus) {
21
+ OrderStatus["OPEN"] = "open";
22
+ OrderStatus["CLOSED"] = "closed";
23
+ OrderStatus["CANCELED"] = "canceled";
24
+ })(OrderStatus || (OrderStatus = {}));
25
+ export var OrderSide;
26
+ (function (OrderSide) {
27
+ OrderSide["BUY"] = "buy";
28
+ OrderSide["SELL"] = "sell";
29
+ })(OrderSide || (OrderSide = {}));
30
+ export var TimeInForce;
31
+ (function (TimeInForce) {
32
+ TimeInForce["GTC"] = "gtc";
33
+ TimeInForce["FOK"] = "fok";
34
+ TimeInForce["IOC"] = "ioc";
35
+ })(TimeInForce || (TimeInForce = {}));
36
+ export var BalanceLimit;
37
+ (function (BalanceLimit) {
38
+ BalanceLimit["QUOTE"] = "quote";
39
+ BalanceLimit["BASE"] = "base";
40
+ BalanceLimit["NONE"] = "none";
41
+ })(BalanceLimit || (BalanceLimit = {}));
42
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAkFA,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,0CAA6B,CAAA;IAC7B,oCAAuB,CAAA;IACvB,wBAAW,CAAA;IACX,gDAAmC,CAAA;IACnC,kDAAqC,CAAA;IACrC,wCAA2B,CAAA;IAC3B,oDAAuC,CAAA;IACvC,sDAAyC,CAAA;AAC3C,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AAED,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;AACvB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;AACvB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAN,IAAY,SAAsC;AAAlD,WAAY,SAAS;IAAE,wBAAW,CAAA;IAAE,0BAAa,CAAA;AAAA,CAAC,EAAtC,SAAS,KAAT,SAAS,QAA6B;AAClD,MAAM,CAAN,IAAY,WAAmD;AAA/D,WAAY,WAAW;IAAE,0BAAW,CAAA;IAAE,0BAAW,CAAA;IAAE,0BAAW,CAAA;AAAA,CAAC,EAAnD,WAAW,KAAX,WAAW,QAAwC;AAE/D,MAAM,CAAN,IAAY,YAA4D;AAAxE,WAAY,YAAY;IAAE,+BAAe,CAAA;IAAE,6BAAa,CAAA;IAAE,6BAAa,CAAA;AAAA,CAAC,EAA5D,YAAY,KAAZ,YAAY,QAAgD"}
package/dist/util.d.ts ADDED
@@ -0,0 +1,33 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { MarketMap, MarketQuery } from "./types";
3
+ export declare const MINUTES = 60;
4
+ export declare const HOURS: number;
5
+ export declare const DAYS: number;
6
+ export declare function unix(): number;
7
+ export declare function strToArray(str: any): any;
8
+ export declare function base64UrlEncode(str: any): string;
9
+ export declare function base64UrlDecode(str: any): any;
10
+ export declare function sha256hexdigest(str: any): string;
11
+ export declare function signHMAC(dataToSign: any, secret: any, format?: string): string;
12
+ export declare function createJWT(payload: {}, secret?: any): any;
13
+ export declare function parseJWT(jwt: any): any;
14
+ export declare function jwkToPublicKey(jwk: any): any;
15
+ export declare function encryptPayload(payload: any, publicKey: any): any;
16
+ export declare function camelize(value: any): any;
17
+ export declare function jwtExpired(token: string): boolean;
18
+ export declare function throwNull2NonNull(d: any): never;
19
+ export declare function throwNotObject(d: any, nullable: boolean): never;
20
+ export declare function throwIsArray(d: any, nullable: boolean): never;
21
+ export declare function checkArray(d: any, field: string): void;
22
+ export declare function checkNumber(d: any, nullable: boolean, field: string): void;
23
+ export declare function checkBigNumber(d: any, nullable: boolean, field: string): void;
24
+ export declare function checkBoolean(d: any, nullable: boolean, field: string): void;
25
+ export declare function checkString(d: any, nullable: boolean, field: string): void;
26
+ export declare function checkNull(d: any, field: string): void;
27
+ export declare function errorHelper(field: string, d: any, type: string, nullable: boolean): never;
28
+ export declare function safeBigNumber(d: string | number | BigNumber): BigNumber;
29
+ export declare function correctNumberPrecision(precision: any, value: any): string;
30
+ export declare function safeFloat(d: string | number): number;
31
+ export declare function safeInteger(d: string | number): number;
32
+ export declare function safeTime(d: string | number): Date;
33
+ export declare function filterMarkets(markets: MarketMap, marketQuery: string | MarketQuery | (string | MarketQuery)[]): MarketMap;