@3rd-eye-labs/openmm 0.0.1

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 (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -0
  3. package/dist/cli/cli.d.ts +3 -0
  4. package/dist/cli/cli.d.ts.map +1 -0
  5. package/dist/cli/cli.js +43 -0
  6. package/dist/cli/cli.js.map +1 -0
  7. package/dist/cli/commands/balance.d.ts +3 -0
  8. package/dist/cli/commands/balance.d.ts.map +1 -0
  9. package/dist/cli/commands/balance.js +51 -0
  10. package/dist/cli/commands/balance.js.map +1 -0
  11. package/dist/cli/commands/orderbook.d.ts +3 -0
  12. package/dist/cli/commands/orderbook.d.ts.map +1 -0
  13. package/dist/cli/commands/orderbook.js +83 -0
  14. package/dist/cli/commands/orderbook.js.map +1 -0
  15. package/dist/cli/commands/orders.d.ts +3 -0
  16. package/dist/cli/commands/orders.d.ts.map +1 -0
  17. package/dist/cli/commands/orders.js +196 -0
  18. package/dist/cli/commands/orders.js.map +1 -0
  19. package/dist/cli/commands/pool-discovery.d.ts +3 -0
  20. package/dist/cli/commands/pool-discovery.d.ts.map +1 -0
  21. package/dist/cli/commands/pool-discovery.js +60 -0
  22. package/dist/cli/commands/pool-discovery.js.map +1 -0
  23. package/dist/cli/commands/ticker.d.ts +3 -0
  24. package/dist/cli/commands/ticker.d.ts.map +1 -0
  25. package/dist/cli/commands/ticker.js +51 -0
  26. package/dist/cli/commands/ticker.js.map +1 -0
  27. package/dist/cli/commands/trade.d.ts +3 -0
  28. package/dist/cli/commands/trade.d.ts.map +1 -0
  29. package/dist/cli/commands/trade.js +110 -0
  30. package/dist/cli/commands/trade.js.map +1 -0
  31. package/dist/cli/commands/trades.d.ts +3 -0
  32. package/dist/cli/commands/trades.d.ts.map +1 -0
  33. package/dist/cli/commands/trades.js +73 -0
  34. package/dist/cli/commands/trades.js.map +1 -0
  35. package/dist/cli/exchange-factory.d.ts +40 -0
  36. package/dist/cli/exchange-factory.d.ts.map +1 -0
  37. package/dist/cli/exchange-factory.js +77 -0
  38. package/dist/cli/exchange-factory.js.map +1 -0
  39. package/dist/cli/pool-discovery-core.d.ts +54 -0
  40. package/dist/cli/pool-discovery-core.d.ts.map +1 -0
  41. package/dist/cli/pool-discovery-core.js +193 -0
  42. package/dist/cli/pool-discovery-core.js.map +1 -0
  43. package/dist/cli/utils/error-handler.d.ts +40 -0
  44. package/dist/cli/utils/error-handler.d.ts.map +1 -0
  45. package/dist/cli/utils/error-handler.js +117 -0
  46. package/dist/cli/utils/error-handler.js.map +1 -0
  47. package/dist/cli/utils/validation.d.ts +45 -0
  48. package/dist/cli/utils/validation.d.ts.map +1 -0
  49. package/dist/cli/utils/validation.js +118 -0
  50. package/dist/cli/utils/validation.js.map +1 -0
  51. package/dist/config/environment.d.ts +25 -0
  52. package/dist/config/environment.d.ts.map +1 -0
  53. package/dist/config/environment.js +72 -0
  54. package/dist/config/environment.js.map +1 -0
  55. package/dist/config/index.d.ts +3 -0
  56. package/dist/config/index.d.ts.map +1 -0
  57. package/dist/config/index.js +21 -0
  58. package/dist/config/index.js.map +1 -0
  59. package/dist/config/launcher-config.d.ts +17 -0
  60. package/dist/config/launcher-config.d.ts.map +1 -0
  61. package/dist/config/launcher-config.js +14 -0
  62. package/dist/config/launcher-config.js.map +1 -0
  63. package/dist/config/price-aggregation.d.ts +49 -0
  64. package/dist/config/price-aggregation.d.ts.map +1 -0
  65. package/dist/config/price-aggregation.js +89 -0
  66. package/dist/config/price-aggregation.js.map +1 -0
  67. package/dist/core/exchange/base-exchange-connector.d.ts +45 -0
  68. package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -0
  69. package/dist/core/exchange/base-exchange-connector.js +43 -0
  70. package/dist/core/exchange/base-exchange-connector.js.map +1 -0
  71. package/dist/core/exchange/base-exchange-data-mapper.d.ts +58 -0
  72. package/dist/core/exchange/base-exchange-data-mapper.d.ts.map +1 -0
  73. package/dist/core/exchange/base-exchange-data-mapper.js +60 -0
  74. package/dist/core/exchange/base-exchange-data-mapper.js.map +1 -0
  75. package/dist/core/price-aggregation/cardano-price-service.d.ts +31 -0
  76. package/dist/core/price-aggregation/cardano-price-service.d.ts.map +1 -0
  77. package/dist/core/price-aggregation/cardano-price-service.js +157 -0
  78. package/dist/core/price-aggregation/cardano-price-service.js.map +1 -0
  79. package/dist/core/price-aggregation/index.d.ts +11 -0
  80. package/dist/core/price-aggregation/index.d.ts.map +1 -0
  81. package/dist/core/price-aggregation/index.js +21 -0
  82. package/dist/core/price-aggregation/index.js.map +1 -0
  83. package/dist/core/price-aggregation/iris-api-client.d.ts +16 -0
  84. package/dist/core/price-aggregation/iris-api-client.d.ts.map +1 -0
  85. package/dist/core/price-aggregation/iris-api-client.js +62 -0
  86. package/dist/core/price-aggregation/iris-api-client.js.map +1 -0
  87. package/dist/core/price-aggregation/iris-pool-discovery.d.ts +37 -0
  88. package/dist/core/price-aggregation/iris-pool-discovery.d.ts.map +1 -0
  89. package/dist/core/price-aggregation/iris-pool-discovery.js +123 -0
  90. package/dist/core/price-aggregation/iris-pool-discovery.js.map +1 -0
  91. package/dist/core/price-aggregation/price-calculator.d.ts +27 -0
  92. package/dist/core/price-aggregation/price-calculator.d.ts.map +1 -0
  93. package/dist/core/price-aggregation/price-calculator.js +84 -0
  94. package/dist/core/price-aggregation/price-calculator.js.map +1 -0
  95. package/dist/core/risk-management/risk-manager.d.ts +14 -0
  96. package/dist/core/risk-management/risk-manager.d.ts.map +1 -0
  97. package/dist/core/risk-management/risk-manager.js +40 -0
  98. package/dist/core/risk-management/risk-manager.js.map +1 -0
  99. package/dist/core/strategy/base-strategy.d.ts +26 -0
  100. package/dist/core/strategy/base-strategy.d.ts.map +1 -0
  101. package/dist/core/strategy/base-strategy.js +46 -0
  102. package/dist/core/strategy/base-strategy.js.map +1 -0
  103. package/dist/core/strategy/strategy-factory.d.ts +7 -0
  104. package/dist/core/strategy/strategy-factory.d.ts.map +1 -0
  105. package/dist/core/strategy/strategy-factory.js +64 -0
  106. package/dist/core/strategy/strategy-factory.js.map +1 -0
  107. package/dist/exchanges/mexc/mexc-auth.d.ts +42 -0
  108. package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -0
  109. package/dist/exchanges/mexc/mexc-auth.js +122 -0
  110. package/dist/exchanges/mexc/mexc-auth.js.map +1 -0
  111. package/dist/exchanges/mexc/mexc-connector.d.ts +125 -0
  112. package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -0
  113. package/dist/exchanges/mexc/mexc-connector.js +422 -0
  114. package/dist/exchanges/mexc/mexc-connector.js.map +1 -0
  115. package/dist/exchanges/mexc/mexc-data-mapper.d.ts +50 -0
  116. package/dist/exchanges/mexc/mexc-data-mapper.d.ts.map +1 -0
  117. package/dist/exchanges/mexc/mexc-data-mapper.js +127 -0
  118. package/dist/exchanges/mexc/mexc-data-mapper.js.map +1 -0
  119. package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts +43 -0
  120. package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts.map +1 -0
  121. package/dist/exchanges/mexc/mexc-protobuf-decoder.js +235 -0
  122. package/dist/exchanges/mexc/mexc-protobuf-decoder.js.map +1 -0
  123. package/dist/exchanges/mexc/mexc-user-stream.d.ts +81 -0
  124. package/dist/exchanges/mexc/mexc-user-stream.d.ts.map +1 -0
  125. package/dist/exchanges/mexc/mexc-user-stream.js +253 -0
  126. package/dist/exchanges/mexc/mexc-user-stream.js.map +1 -0
  127. package/dist/exchanges/mexc/mexc-utils.d.ts +31 -0
  128. package/dist/exchanges/mexc/mexc-utils.d.ts.map +1 -0
  129. package/dist/exchanges/mexc/mexc-utils.js +186 -0
  130. package/dist/exchanges/mexc/mexc-utils.js.map +1 -0
  131. package/dist/exchanges/mexc/mexc-websocket.d.ts +124 -0
  132. package/dist/exchanges/mexc/mexc-websocket.d.ts.map +1 -0
  133. package/dist/exchanges/mexc/mexc-websocket.js +496 -0
  134. package/dist/exchanges/mexc/mexc-websocket.js.map +1 -0
  135. package/dist/index.d.ts +12 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +42 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/strategies/grid/grid-calculator.d.ts +7 -0
  140. package/dist/strategies/grid/grid-calculator.d.ts.map +1 -0
  141. package/dist/strategies/grid/grid-calculator.js +34 -0
  142. package/dist/strategies/grid/grid-calculator.js.map +1 -0
  143. package/dist/strategies/grid/grid-order-manager.d.ts +23 -0
  144. package/dist/strategies/grid/grid-order-manager.d.ts.map +1 -0
  145. package/dist/strategies/grid/grid-order-manager.js +99 -0
  146. package/dist/strategies/grid/grid-order-manager.js.map +1 -0
  147. package/dist/strategies/grid/grid-strategy.d.ts +29 -0
  148. package/dist/strategies/grid/grid-strategy.d.ts.map +1 -0
  149. package/dist/strategies/grid/grid-strategy.js +185 -0
  150. package/dist/strategies/grid/grid-strategy.js.map +1 -0
  151. package/dist/types/account.d.ts +21 -0
  152. package/dist/types/account.d.ts.map +1 -0
  153. package/dist/types/account.js +3 -0
  154. package/dist/types/account.js.map +1 -0
  155. package/dist/types/exchange.d.ts +67 -0
  156. package/dist/types/exchange.d.ts.map +1 -0
  157. package/dist/types/exchange.js +3 -0
  158. package/dist/types/exchange.js.map +1 -0
  159. package/dist/types/grid.d.ts +10 -0
  160. package/dist/types/grid.d.ts.map +1 -0
  161. package/dist/types/grid.js +3 -0
  162. package/dist/types/grid.js.map +1 -0
  163. package/dist/types/index.d.ts +11 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/types/index.js +27 -0
  166. package/dist/types/index.js.map +1 -0
  167. package/dist/types/iris.d.ts +58 -0
  168. package/dist/types/iris.d.ts.map +1 -0
  169. package/dist/types/iris.js +7 -0
  170. package/dist/types/iris.js.map +1 -0
  171. package/dist/types/market.d.ts +16 -0
  172. package/dist/types/market.d.ts.map +1 -0
  173. package/dist/types/market.js +3 -0
  174. package/dist/types/market.js.map +1 -0
  175. package/dist/types/mexc-raw.d.ts +87 -0
  176. package/dist/types/mexc-raw.d.ts.map +1 -0
  177. package/dist/types/mexc-raw.js +7 -0
  178. package/dist/types/mexc-raw.js.map +1 -0
  179. package/dist/types/mexc.d.ts +57 -0
  180. package/dist/types/mexc.d.ts.map +1 -0
  181. package/dist/types/mexc.js +8 -0
  182. package/dist/types/mexc.js.map +1 -0
  183. package/dist/types/price.d.ts +37 -0
  184. package/dist/types/price.d.ts.map +1 -0
  185. package/dist/types/price.js +7 -0
  186. package/dist/types/price.js.map +1 -0
  187. package/dist/types/risk.d.ts +22 -0
  188. package/dist/types/risk.d.ts.map +1 -0
  189. package/dist/types/risk.js +6 -0
  190. package/dist/types/risk.js.map +1 -0
  191. package/dist/types/strategy.d.ts +46 -0
  192. package/dist/types/strategy.d.ts.map +1 -0
  193. package/dist/types/strategy.js +3 -0
  194. package/dist/types/strategy.js.map +1 -0
  195. package/dist/utils/index.d.ts +2 -0
  196. package/dist/utils/index.d.ts.map +1 -0
  197. package/dist/utils/index.js +8 -0
  198. package/dist/utils/index.js.map +1 -0
  199. package/dist/utils/logger.d.ts +29 -0
  200. package/dist/utils/logger.d.ts.map +1 -0
  201. package/dist/utils/logger.js +108 -0
  202. package/dist/utils/logger.js.map +1 -0
  203. package/dist/utils/symbol-utils.d.ts +17 -0
  204. package/dist/utils/symbol-utils.d.ts.map +1 -0
  205. package/dist/utils/symbol-utils.js +41 -0
  206. package/dist/utils/symbol-utils.js.map +1 -0
  207. package/package.json +53 -0
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GridOrderManager = void 0;
4
+ const grid_calculator_1 = require("./grid-calculator");
5
+ const utils_1 = require("../../utils");
6
+ class GridOrderManager {
7
+ constructor(config) {
8
+ this.logger = (0, utils_1.createLogger)('grid-manager');
9
+ this.activeOrders = [];
10
+ this.isAdjusting = false;
11
+ this.lastAdjustmentTime = 0;
12
+ this.currentGridCenter = 0;
13
+ this.config = config;
14
+ this.gridCalculator = new grid_calculator_1.GridCalculator();
15
+ }
16
+ async placeInitialGrid(levels, placeOrderFn) {
17
+ const orders = [];
18
+ for (const level of levels) {
19
+ try {
20
+ const order = await placeOrderFn(level.side, level.orderSize, level.price);
21
+ orders.push(order);
22
+ this.logger.info(`Placed ${level.side.toUpperCase()} order: ${level.orderSize.toFixed(3)} @ $${level.price.toFixed(6)}`, { orderId: order.id });
23
+ }
24
+ catch (error) {
25
+ this.logger.error(`Failed to place ${level.side} order at ${level.price}`, { error: error instanceof Error ? error.message : String(error) });
26
+ }
27
+ }
28
+ this.activeOrders = orders;
29
+ if (levels.length > 0) {
30
+ const buyLevels = levels.filter(l => l.side === 'buy');
31
+ const sellLevels = levels.filter(l => l.side === 'sell');
32
+ this.currentGridCenter = (Math.max(...buyLevels.map(l => l.price)) + Math.min(...sellLevels.map(l => l.price))) / 2;
33
+ }
34
+ return orders;
35
+ }
36
+ async handleOrderFill(filledOrder, currentPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn, cancelAllOrdersFn) {
37
+ this.logger.info(`Order FILLED: ${filledOrder.side.toUpperCase()} ${filledOrder.filled} @ $${filledOrder.price}`, { orderId: filledOrder.id });
38
+ if (this.isAdjusting || Date.now() - this.lastAdjustmentTime < this.config.adjustmentDebounce) {
39
+ return;
40
+ }
41
+ this.isAdjusting = true;
42
+ this.lastAdjustmentTime = Date.now();
43
+ try {
44
+ await this.cancelAllOrders(cancelAllOrdersFn, filledOrder.symbol);
45
+ await this.recreateGridAtPrice(currentPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn);
46
+ }
47
+ finally {
48
+ this.isAdjusting = false;
49
+ }
50
+ }
51
+ async handlePriceDeviation(newPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn, cancelAllOrdersFn, symbol) {
52
+ const deviation = Math.abs(newPrice - this.currentGridCenter) / this.currentGridCenter;
53
+ if (deviation > this.config.priceDeviationThreshold && !this.isAdjusting) {
54
+ this.isAdjusting = true;
55
+ this.lastAdjustmentTime = Date.now();
56
+ try {
57
+ await this.cancelAllOrders(cancelAllOrdersFn, symbol);
58
+ await this.recreateGridAtPrice(newPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn);
59
+ }
60
+ finally {
61
+ this.isAdjusting = false;
62
+ }
63
+ }
64
+ }
65
+ async cancelAllOrders(cancelAllOrdersFn, symbol) {
66
+ if (this.activeOrders.length === 0) {
67
+ return;
68
+ }
69
+ try {
70
+ await cancelAllOrdersFn(symbol);
71
+ this.activeOrders = [];
72
+ }
73
+ catch (error) {
74
+ this.logger.warn(`⚠️ Bulk cancellation failed for ${symbol}, falling back to individual cancellation`, {
75
+ error: error instanceof Error ? error.message : String(error)
76
+ });
77
+ }
78
+ }
79
+ async recreateGridAtPrice(centerPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn) {
80
+ const levels = this.gridCalculator.calculateGridLevels(centerPrice, gridSpacing, gridLevels);
81
+ const orderSize = this.gridCalculator.calculateOrderSizes(availableBalance, gridLevels);
82
+ const gridWithSizes = this.gridCalculator.assignOrderSizes(levels, orderSize);
83
+ await this.placeInitialGrid(gridWithSizes, placeOrderFn);
84
+ this.currentGridCenter = centerPrice;
85
+ }
86
+ getActiveOrders() {
87
+ // TODO Fetch active orders from exchange to ensure sync if not available in memory
88
+ return [...this.activeOrders];
89
+ }
90
+ /**
91
+ * Check if grid adjustment is currently in progress
92
+ * Used to prevent multiple simultaneous grid recreation events
93
+ */
94
+ isCurrentlyAdjusting() {
95
+ return this.isAdjusting;
96
+ }
97
+ }
98
+ exports.GridOrderManager = GridOrderManager;
99
+ //# sourceMappingURL=grid-order-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-order-manager.js","sourceRoot":"","sources":["../../../src/strategies/grid/grid-order-manager.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AACnD,uCAA2C;AAE3C,MAAa,gBAAgB;IAS3B,YAAY,MAA8B;QAPlC,WAAM,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;QAEtC,iBAAY,GAAY,EAAE,CAAC;QAC3B,gBAAW,GAAG,KAAK,CAAC;QACpB,uBAAkB,GAAG,CAAC,CAAC;QACvB,sBAAiB,GAAG,CAAC,CAAC;QAG5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAmB,EAAE,YAAgF;QAC1H,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAClJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,WAAkB,EAClB,YAAoB,EACpB,WAAmB,EACnB,UAAkB,EAClB,gBAAwB,EACxB,YAAgF,EAChF,iBAAoD;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAE/I,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9F,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAClE,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QACxG,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,QAAgB,EAChB,WAAmB,EACnB,UAAkB,EAClB,gBAAwB,EACxB,YAAgF,EAChF,iBAAoD,EACpD,MAAc;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEvF,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACzE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAErC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBACtD,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;YACpG,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,iBAAoD,EACpD,MAAc;QAEd,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,MAAM,2CAA2C,EAAE;gBACrG,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QAEL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,WAAmB,EACnB,WAAmB,EACnB,UAAkB,EAClB,gBAAwB,EACxB,YAAgF;QAEhF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACxF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE9E,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;IACvC,CAAC;IAED,eAAe;QACb,mFAAmF;QACnF,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AArID,4CAqIC"}
@@ -0,0 +1,29 @@
1
+ import { BaseStrategy } from '../../core/strategy/base-strategy';
2
+ import { Order, StrategyConfig, RiskManagerConfig } from '../../types';
3
+ import { BaseExchangeConnector } from '../../core/exchange/base-exchange-connector';
4
+ export declare class GridStrategy extends BaseStrategy {
5
+ private priceService;
6
+ private riskManager;
7
+ private orderManager;
8
+ private calculator;
9
+ private exchangeConnector?;
10
+ private gridConfig?;
11
+ private priceUpdateInterval?;
12
+ private logger;
13
+ constructor(id: string);
14
+ protected validateConfig(config: StrategyConfig): void;
15
+ initialize(config: StrategyConfig): Promise<void>;
16
+ start(): Promise<void>;
17
+ stop(): Promise<void>;
18
+ onPriceUpdate(symbol: string, price: number): Promise<void>;
19
+ onOrderUpdate(order: Order): Promise<void>;
20
+ setExchangeConnector(connector: BaseExchangeConnector): void;
21
+ setRiskConfig(riskConfig: RiskManagerConfig): void;
22
+ private placeOrder;
23
+ private cancelAllOrders;
24
+ private getAvailableBalance;
25
+ private getSymbol;
26
+ private startPriceMonitoring;
27
+ private setupOrderSubscription;
28
+ }
29
+ //# sourceMappingURL=grid-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-strategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/grid/grid-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAa,cAAc,EAA0D,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAQpF,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,iBAAiB,CAAC,CAAwB;IAClD,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,mBAAmB,CAAC,CAAiB;IAC7C,OAAO,CAAC,MAAM,CAAiC;gBAEnC,EAAE,EAAE,MAAM;IAoBtB,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAShD,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB3D,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhD,oBAAoB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAI5D,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;YAIpC,UAAU;YASV,eAAe;YAQf,mBAAmB;IAiBjC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,oBAAoB;YAYd,sBAAsB;CAcrC"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GridStrategy = void 0;
4
+ const base_strategy_1 = require("../../core/strategy/base-strategy");
5
+ const price_aggregation_1 = require("../../core/price-aggregation");
6
+ const risk_manager_1 = require("../../core/risk-management/risk-manager");
7
+ const grid_order_manager_1 = require("./grid-order-manager");
8
+ const grid_calculator_1 = require("./grid-calculator");
9
+ const symbol_utils_1 = require("../../utils/symbol-utils");
10
+ const utils_1 = require("../../utils");
11
+ class GridStrategy extends base_strategy_1.BaseStrategy {
12
+ constructor(id) {
13
+ super(id, 'grid');
14
+ this.logger = (0, utils_1.createLogger)('grid-strategy');
15
+ this.priceService = new price_aggregation_1.CardanoPriceService();
16
+ this.calculator = new grid_calculator_1.GridCalculator();
17
+ const riskConfig = {
18
+ maxPositionSize: 0.8,
19
+ safetyReservePercentage: 0.2,
20
+ minConfidence: 0.6
21
+ };
22
+ this.riskManager = new risk_manager_1.RiskManager(riskConfig);
23
+ const orderManagerConfig = {
24
+ priceDeviationThreshold: 0.015,
25
+ adjustmentDebounce: 2000
26
+ };
27
+ this.orderManager = new grid_order_manager_1.GridOrderManager(orderManagerConfig);
28
+ }
29
+ validateConfig(config) {
30
+ super.validateConfig(config);
31
+ const gridStrategyConfig = config;
32
+ if (!gridStrategyConfig.gridConfig) {
33
+ throw new Error('Grid strategy requires gridConfig');
34
+ }
35
+ }
36
+ async initialize(config) {
37
+ this.validateConfig(config);
38
+ const gridStrategyConfig = config;
39
+ this.config = config;
40
+ this.gridConfig = gridStrategyConfig.gridConfig;
41
+ this.setStatus('idle');
42
+ }
43
+ async start() {
44
+ if (!this.gridConfig || !this.exchangeConnector) {
45
+ throw new Error('Strategy not properly initialized');
46
+ }
47
+ try {
48
+ this.setStatus('running');
49
+ const { base } = (0, symbol_utils_1.parseSymbol)(this.getSymbol());
50
+ const aggregatedPrice = await this.priceService.getTokenPrice(base);
51
+ if (!this.riskManager.checkPriceConfidence(aggregatedPrice)) {
52
+ throw new Error(`Price confidence too low: ${aggregatedPrice.confidence} < ${this.gridConfig.minConfidence}`);
53
+ }
54
+ const balance = await this.getAvailableBalance();
55
+ const gridLevels = this.calculator.calculateGridLevels(aggregatedPrice.price, this.gridConfig.gridSpacing, this.gridConfig.gridLevels);
56
+ const orderSize = this.calculator.calculateOrderSizes(balance, this.gridConfig.gridLevels);
57
+ const gridWithSizes = this.calculator.assignOrderSizes(gridLevels, orderSize);
58
+ await this.orderManager.placeInitialGrid(gridWithSizes, (side, amount, price) => this.placeOrder(side, amount, price));
59
+ this.startPriceMonitoring();
60
+ await this.setupOrderSubscription();
61
+ }
62
+ catch (error) {
63
+ this.handleError(error, 'start');
64
+ }
65
+ }
66
+ async stop() {
67
+ try {
68
+ this.setStatus('stopped');
69
+ if (this.priceUpdateInterval) {
70
+ clearInterval(this.priceUpdateInterval);
71
+ this.priceUpdateInterval = undefined;
72
+ }
73
+ if (this.exchangeConnector) {
74
+ const openOrders = this.orderManager.getActiveOrders();
75
+ for (const order of openOrders) {
76
+ try {
77
+ await this.exchangeConnector.cancelOrder(order.id, order.symbol);
78
+ }
79
+ catch (error) {
80
+ this.logger.error(`Failed to cancel order ${order.id}:`, { error });
81
+ }
82
+ }
83
+ }
84
+ }
85
+ catch (error) {
86
+ this.handleError(error, 'stop');
87
+ }
88
+ }
89
+ async onPriceUpdate(symbol, price) {
90
+ if (!this.gridConfig || symbol !== this.getSymbol()) {
91
+ return;
92
+ }
93
+ try {
94
+ const balance = await this.getAvailableBalance();
95
+ await this.orderManager.handlePriceDeviation(price, this.gridConfig.gridSpacing, this.gridConfig.gridLevels, balance, (side, amount, price) => this.placeOrder(side, amount, price), (symbol) => this.cancelAllOrders(symbol), symbol);
96
+ }
97
+ catch (error) {
98
+ this.logger.error('Price update handling failed:', { error });
99
+ }
100
+ }
101
+ async onOrderUpdate(order) {
102
+ if (order.symbol !== this.getSymbol()) {
103
+ return;
104
+ }
105
+ if ((order.status === 'filled' || order.status === 'partially_filled') && this.gridConfig) {
106
+ if (this.orderManager.isCurrentlyAdjusting()) {
107
+ this.logger.info(`⏸️ Grid adjustment in progress, ignoring ${order.status} event`);
108
+ return;
109
+ }
110
+ try {
111
+ const { base } = (0, symbol_utils_1.parseSymbol)(this.getSymbol());
112
+ const aggregatedPrice = await this.priceService.getTokenPrice(base);
113
+ const balance = await this.getAvailableBalance();
114
+ await this.orderManager.handleOrderFill(order, aggregatedPrice.price, this.gridConfig.gridSpacing, this.gridConfig.gridLevels, balance, (side, amount, price) => this.placeOrder(side, amount, price), (symbol) => this.cancelAllOrders(symbol));
115
+ }
116
+ catch (error) {
117
+ this.logger.error('Order fill handling failed:', { error });
118
+ }
119
+ }
120
+ }
121
+ setExchangeConnector(connector) {
122
+ this.exchangeConnector = connector;
123
+ }
124
+ setRiskConfig(riskConfig) {
125
+ this.riskManager = new risk_manager_1.RiskManager(riskConfig);
126
+ }
127
+ async placeOrder(side, amount, price) {
128
+ if (!this.exchangeConnector) {
129
+ throw new Error('Exchange connector not set');
130
+ }
131
+ const symbol = this.getSymbol();
132
+ return await this.exchangeConnector.createOrder(symbol, 'limit', side, amount, price);
133
+ }
134
+ async cancelAllOrders(symbol) {
135
+ if (!this.exchangeConnector) {
136
+ throw new Error('Exchange connector not set');
137
+ }
138
+ await this.exchangeConnector.cancelAllOrders(symbol);
139
+ }
140
+ async getAvailableBalance() {
141
+ if (!this.exchangeConnector) {
142
+ throw new Error('Exchange connector not set');
143
+ }
144
+ const balances = await this.exchangeConnector.getBalance();
145
+ const symbol = this.getSymbol();
146
+ const quoteAsset = symbol.split('/')[1];
147
+ const balance = balances[quoteAsset];
148
+ if (!balance) {
149
+ throw new Error(`No balance found for ${quoteAsset}`);
150
+ }
151
+ return this.riskManager.calculateAvailableBalance(balance);
152
+ }
153
+ getSymbol() {
154
+ const config = this.getConfig();
155
+ return config.symbol;
156
+ }
157
+ startPriceMonitoring() {
158
+ this.priceUpdateInterval = setInterval(async () => {
159
+ try {
160
+ const { base } = (0, symbol_utils_1.parseSymbol)(this.getSymbol());
161
+ const aggregatedPrice = await this.priceService.getTokenPrice(base);
162
+ await this.onPriceUpdate(this.getSymbol(), aggregatedPrice.price);
163
+ }
164
+ catch (error) {
165
+ this.logger.error('Price monitoring failed:', { error });
166
+ }
167
+ }, 30000);
168
+ }
169
+ async setupOrderSubscription() {
170
+ if (!this.exchangeConnector) {
171
+ throw new Error('Exchange connector not set');
172
+ }
173
+ try {
174
+ await this.exchangeConnector.connectUserDataStream();
175
+ await this.exchangeConnector.subscribeUserOrders((order) => {
176
+ this.onOrderUpdate(order);
177
+ });
178
+ }
179
+ catch (error) {
180
+ this.logger.error('Failed to setup order subscription:', { error });
181
+ }
182
+ }
183
+ }
184
+ exports.GridStrategy = GridStrategy;
185
+ //# sourceMappingURL=grid-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-strategy.js","sourceRoot":"","sources":["../../../src/strategies/grid/grid-strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Exchange API credentials for account authentication
3
+ * Supports different exchange authentication patterns
4
+ */
5
+ export interface ExchangeCredentials {
6
+ apiKey: string;
7
+ secret: string;
8
+ uid?: string;
9
+ passphrase?: string;
10
+ }
11
+ /**
12
+ * Simple balance representation
13
+ */
14
+ export interface Balance {
15
+ asset: string;
16
+ free: number;
17
+ used: number;
18
+ total: number;
19
+ available: number;
20
+ }
21
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Basic order types and enums for trading operations
3
+ */
4
+ export type OrderType = 'market' | 'limit';
5
+ export type OrderSide = 'buy' | 'sell';
6
+ export type OrderStatus = 'open' | 'filled' | 'cancelled' | 'rejected' | 'partially_filled';
7
+ /**
8
+ * Order structure for basic trading operations
9
+ */
10
+ export interface Order {
11
+ id: string;
12
+ symbol: string;
13
+ type: OrderType;
14
+ side: OrderSide;
15
+ amount: number;
16
+ price?: number;
17
+ filled: number;
18
+ remaining: number;
19
+ status: OrderStatus;
20
+ timestamp: number;
21
+ }
22
+ /**
23
+ * Basic trade information
24
+ */
25
+ export interface Trade {
26
+ id: string;
27
+ symbol: string;
28
+ side: OrderSide;
29
+ amount: number;
30
+ price: number;
31
+ timestamp: number;
32
+ orderId?: string;
33
+ fee?: number;
34
+ }
35
+ /**
36
+ * Order book entry for market data
37
+ */
38
+ export interface OrderBookEntry {
39
+ price: number;
40
+ amount: number;
41
+ }
42
+ /**
43
+ * Order book structure
44
+ */
45
+ export interface OrderBook {
46
+ symbol: string;
47
+ bids: OrderBookEntry[];
48
+ asks: OrderBookEntry[];
49
+ timestamp: number;
50
+ }
51
+ /**
52
+ * Basic ticker information
53
+ */
54
+ export interface Ticker {
55
+ symbol: string;
56
+ last: number;
57
+ bid: number;
58
+ ask: number;
59
+ baseVolume: number;
60
+ quoteVolume?: number;
61
+ timestamp: number;
62
+ }
63
+ /**
64
+ * WebSocket connection status
65
+ */
66
+ export type WebSocketStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
67
+ //# sourceMappingURL=exchange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/types/exchange.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=exchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/types/exchange.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export interface GridLevel {
2
+ price: number;
3
+ side: 'buy' | 'sell';
4
+ orderSize: number;
5
+ }
6
+ export interface GridOrderManagerConfig {
7
+ priceDeviationThreshold: number;
8
+ adjustmentDebounce: number;
9
+ }
10
+ //# sourceMappingURL=grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/types/grid.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/types/grid.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export * from './account';
2
+ export * from './exchange';
3
+ export * from './strategy';
4
+ export * from './market';
5
+ export * from './mexc';
6
+ export * from './mexc-raw';
7
+ export * from './price';
8
+ export * from './risk';
9
+ export * from './iris';
10
+ export * from './grid';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./account"), exports);
18
+ __exportStar(require("./exchange"), exports);
19
+ __exportStar(require("./strategy"), exports);
20
+ __exportStar(require("./market"), exports);
21
+ __exportStar(require("./mexc"), exports);
22
+ __exportStar(require("./mexc-raw"), exports);
23
+ __exportStar(require("./price"), exports);
24
+ __exportStar(require("./risk"), exports);
25
+ __exportStar(require("./iris"), exports);
26
+ __exportStar(require("./grid"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,6CAA2B;AAC3B,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Iris API Types
3
+ * Types specific to Iris protocol integration for Cardano DEX aggregation
4
+ */
5
+ /**
6
+ * Token information from Iris API
7
+ */
8
+ export interface IrisToken {
9
+ policyId: string | null;
10
+ nameHex: string;
11
+ decimals?: number;
12
+ isLpToken?: boolean;
13
+ meta?: string;
14
+ name?: string;
15
+ ticker?: string;
16
+ }
17
+ /**
18
+ * Liquidity pool from Iris API
19
+ */
20
+ export interface LiquidityPool {
21
+ dex: string;
22
+ identifier: string;
23
+ address?: string;
24
+ orderAddress?: string;
25
+ pair?: {
26
+ tokenA: IrisToken | null;
27
+ tokenB: IrisToken | null;
28
+ };
29
+ state?: {
30
+ tvl: number;
31
+ reserveA: number;
32
+ reserveB: number;
33
+ price?: number;
34
+ liquidityProvider?: string;
35
+ };
36
+ createdSlot?: number;
37
+ lastUpdated?: Date;
38
+ isActive?: boolean;
39
+ }
40
+ /**
41
+ * Iris API response structure
42
+ */
43
+ export interface IrisApiResponse {
44
+ pools: LiquidityPool[];
45
+ timestamp: number;
46
+ status: 'success' | 'error';
47
+ }
48
+ /**
49
+ * Price calculation result with metadata
50
+ */
51
+ export interface PriceCalculationResult {
52
+ price: number;
53
+ confidence: number;
54
+ poolsUsed: number;
55
+ totalLiquidity: number;
56
+ timestamp: Date;
57
+ }
58
+ //# sourceMappingURL=iris.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iris.d.ts","sourceRoot":"","sources":["../../src/types/iris.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Iris API Types
4
+ * Types specific to Iris protocol integration for Cardano DEX aggregation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=iris.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iris.js","sourceRoot":"","sources":["../../src/types/iris.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Basic price information
3
+ */
4
+ export interface Price {
5
+ value: number;
6
+ timestamp: number;
7
+ }
8
+ /**
9
+ * Market data structure
10
+ */
11
+ export interface MarketData {
12
+ symbol: string;
13
+ price: number;
14
+ timestamp: number;
15
+ }
16
+ //# sourceMappingURL=market.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/types/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=market.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/types/market.ts"],"names":[],"mappings":""}