@3rd-eye-labs/openmm 0.1.6 → 0.1.7

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 (210) hide show
  1. package/README.md +0 -2
  2. package/dist/cli/commands/grid.d.ts +3 -0
  3. package/dist/cli/commands/grid.d.ts.map +1 -0
  4. package/dist/cli/commands/grid.js +103 -0
  5. package/dist/cli/commands/grid.js.map +1 -0
  6. package/dist/cli/commands/multi-trade.d.ts +3 -0
  7. package/dist/cli/commands/multi-trade.d.ts.map +1 -0
  8. package/dist/cli/commands/multi-trade.js +175 -0
  9. package/dist/cli/commands/multi-trade.js.map +1 -0
  10. package/dist/cli/pool-discovery.d.ts +56 -0
  11. package/dist/cli/pool-discovery.d.ts.map +1 -0
  12. package/dist/cli/pool-discovery.js +283 -0
  13. package/dist/cli/pool-discovery.js.map +1 -0
  14. package/dist/config/environment.d.ts +19 -0
  15. package/dist/config/environment.d.ts.map +1 -1
  16. package/dist/config/environment.js +87 -58
  17. package/dist/config/environment.js.map +1 -1
  18. package/dist/core/price-aggregation/price-cache.d.ts +55 -0
  19. package/dist/core/price-aggregation/price-cache.d.ts.map +1 -0
  20. package/dist/core/price-aggregation/price-cache.js +152 -0
  21. package/dist/core/price-aggregation/price-cache.js.map +1 -0
  22. package/dist/examples/mexc-connector-comprehensive-test.d.ts +15 -0
  23. package/dist/examples/mexc-connector-comprehensive-test.d.ts.map +1 -0
  24. package/dist/examples/mexc-connector-comprehensive-test.js +514 -0
  25. package/dist/examples/mexc-connector-comprehensive-test.js.map +1 -0
  26. package/dist/examples/mexc-order-update-test.d.ts +4 -0
  27. package/dist/examples/mexc-order-update-test.d.ts.map +1 -0
  28. package/dist/examples/mexc-order-update-test.js +186 -0
  29. package/dist/examples/mexc-order-update-test.js.map +1 -0
  30. package/dist/examples/mexc-test.d.ts +9 -0
  31. package/dist/examples/mexc-test.d.ts.map +1 -0
  32. package/dist/examples/mexc-test.js +218 -0
  33. package/dist/examples/mexc-test.js.map +1 -0
  34. package/dist/examples/mexc-trades-debug.d.ts +2 -0
  35. package/dist/examples/mexc-trades-debug.d.ts.map +1 -0
  36. package/dist/examples/mexc-trades-debug.js +101 -0
  37. package/dist/examples/mexc-trades-debug.js.map +1 -0
  38. package/dist/examples/mexc-trades-subscription-debug.d.ts +2 -0
  39. package/dist/examples/mexc-trades-subscription-debug.d.ts.map +1 -0
  40. package/dist/examples/mexc-trades-subscription-debug.js +150 -0
  41. package/dist/examples/mexc-trades-subscription-debug.js.map +1 -0
  42. package/dist/examples/mexc-websocket-test.d.ts +8 -0
  43. package/dist/examples/mexc-websocket-test.d.ts.map +1 -0
  44. package/dist/examples/mexc-websocket-test.js +115 -0
  45. package/dist/examples/mexc-websocket-test.js.map +1 -0
  46. package/dist/examples/test-protobuf-status-detection.d.ts +9 -0
  47. package/dist/examples/test-protobuf-status-detection.d.ts.map +1 -0
  48. package/dist/examples/test-protobuf-status-detection.js +83 -0
  49. package/dist/examples/test-protobuf-status-detection.js.map +1 -0
  50. package/dist/exchanges/base-exchange-connector.d.ts +33 -0
  51. package/dist/exchanges/base-exchange-connector.d.ts.map +1 -0
  52. package/dist/exchanges/base-exchange-connector.js +55 -0
  53. package/dist/exchanges/base-exchange-connector.js.map +1 -0
  54. package/dist/exchanges/kraken/test-kraken-websocket.d.ts +19 -0
  55. package/dist/exchanges/kraken/test-kraken-websocket.d.ts.map +1 -0
  56. package/dist/exchanges/kraken/test-kraken-websocket.js +413 -0
  57. package/dist/exchanges/kraken/test-kraken-websocket.js.map +1 -0
  58. package/dist/mcp/resources/index.d.ts +3 -0
  59. package/dist/mcp/resources/index.d.ts.map +1 -0
  60. package/dist/mcp/resources/index.js +11 -0
  61. package/dist/mcp/resources/index.js.map +1 -0
  62. package/dist/mcp/server.d.ts +4 -0
  63. package/dist/mcp/server.d.ts.map +1 -0
  64. package/dist/mcp/server.js +29 -0
  65. package/dist/mcp/server.js.map +1 -0
  66. package/dist/mcp/tools/index.d.ts +3 -0
  67. package/dist/mcp/tools/index.d.ts.map +1 -0
  68. package/dist/mcp/tools/index.js +12 -0
  69. package/dist/mcp/tools/index.js.map +1 -0
  70. package/dist/tests/fixtures/test-helpers.d.ts +5 -0
  71. package/dist/tests/fixtures/test-helpers.d.ts.map +1 -0
  72. package/dist/tests/fixtures/test-helpers.js +8 -0
  73. package/dist/tests/fixtures/test-helpers.js.map +1 -0
  74. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts +2 -0
  75. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts.map +1 -0
  76. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js +237 -0
  77. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js.map +1 -0
  78. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts +2 -0
  79. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts.map +1 -0
  80. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js +57 -0
  81. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js.map +1 -0
  82. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts +2 -0
  83. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts.map +1 -0
  84. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js +141 -0
  85. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js.map +1 -0
  86. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts +2 -0
  87. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts.map +1 -0
  88. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js +375 -0
  89. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js.map +1 -0
  90. package/dist/tests/unit/cli/exchange-factory.test.d.ts +2 -0
  91. package/dist/tests/unit/cli/exchange-factory.test.d.ts.map +1 -0
  92. package/dist/tests/unit/cli/exchange-factory.test.js +148 -0
  93. package/dist/tests/unit/cli/exchange-factory.test.js.map +1 -0
  94. package/dist/tests/unit/config/environment.test.d.ts +2 -0
  95. package/dist/tests/unit/config/environment.test.d.ts.map +1 -0
  96. package/dist/tests/unit/config/environment.test.js +158 -0
  97. package/dist/tests/unit/config/environment.test.js.map +1 -0
  98. package/dist/tests/unit/config/launcher-config.test.d.ts +2 -0
  99. package/dist/tests/unit/config/launcher-config.test.d.ts.map +1 -0
  100. package/dist/tests/unit/config/launcher-config.test.js +117 -0
  101. package/dist/tests/unit/config/launcher-config.test.js.map +1 -0
  102. package/dist/tests/unit/config/price-aggregation.test.d.ts +2 -0
  103. package/dist/tests/unit/config/price-aggregation.test.d.ts.map +1 -0
  104. package/dist/tests/unit/config/price-aggregation.test.js +144 -0
  105. package/dist/tests/unit/config/price-aggregation.test.js.map +1 -0
  106. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts +2 -0
  107. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts.map +1 -0
  108. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js +191 -0
  109. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js.map +1 -0
  110. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts +2 -0
  111. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts.map +1 -0
  112. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js +324 -0
  113. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js.map +1 -0
  114. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts +2 -0
  115. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts.map +1 -0
  116. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js +177 -0
  117. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js.map +1 -0
  118. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts +2 -0
  119. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts.map +1 -0
  120. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js +168 -0
  121. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js.map +1 -0
  122. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts +2 -0
  123. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts.map +1 -0
  124. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js +217 -0
  125. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js.map +1 -0
  126. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts +2 -0
  127. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts.map +1 -0
  128. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js +229 -0
  129. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js.map +1 -0
  130. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts +2 -0
  131. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts.map +1 -0
  132. package/dist/tests/unit/core/risk-management/risk-manager.test.js +194 -0
  133. package/dist/tests/unit/core/risk-management/risk-manager.test.js.map +1 -0
  134. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts +2 -0
  135. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts.map +1 -0
  136. package/dist/tests/unit/core/strategy/base-strategy.test.js +254 -0
  137. package/dist/tests/unit/core/strategy/base-strategy.test.js.map +1 -0
  138. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts +2 -0
  139. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts.map +1 -0
  140. package/dist/tests/unit/core/strategy/strategy-factory.test.js +213 -0
  141. package/dist/tests/unit/core/strategy/strategy-factory.test.js.map +1 -0
  142. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts +2 -0
  143. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts.map +1 -0
  144. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js +452 -0
  145. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js.map +1 -0
  146. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts +2 -0
  147. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts.map +1 -0
  148. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js +1419 -0
  149. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js.map +1 -0
  150. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts +2 -0
  151. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts.map +1 -0
  152. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js +435 -0
  153. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js.map +1 -0
  154. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts +2 -0
  155. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts.map +1 -0
  156. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js +314 -0
  157. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js.map +1 -0
  158. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts +2 -0
  159. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts.map +1 -0
  160. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js +178 -0
  161. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js.map +1 -0
  162. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts +2 -0
  163. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts.map +1 -0
  164. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js +502 -0
  165. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js.map +1 -0
  166. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts +2 -0
  167. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts.map +1 -0
  168. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js +317 -0
  169. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js.map +1 -0
  170. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts +2 -0
  171. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts.map +1 -0
  172. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js +843 -0
  173. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js.map +1 -0
  174. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts +2 -0
  175. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts.map +1 -0
  176. package/dist/tests/unit/strategies/grid/grid-calculator.test.js +67 -0
  177. package/dist/tests/unit/strategies/grid/grid-calculator.test.js.map +1 -0
  178. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts +2 -0
  179. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts.map +1 -0
  180. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js +211 -0
  181. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js.map +1 -0
  182. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts +2 -0
  183. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts.map +1 -0
  184. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js +197 -0
  185. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js.map +1 -0
  186. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts +2 -0
  187. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts.map +1 -0
  188. package/dist/tests/unit/strategies/grid/grid-strategy.test.js +429 -0
  189. package/dist/tests/unit/strategies/grid/grid-strategy.test.js.map +1 -0
  190. package/dist/tests/unit/utils/logger.test.d.ts +2 -0
  191. package/dist/tests/unit/utils/logger.test.d.ts.map +1 -0
  192. package/dist/tests/unit/utils/logger.test.js +260 -0
  193. package/dist/tests/unit/utils/logger.test.js.map +1 -0
  194. package/dist/tests/unit/utils/symbol-utils.test.d.ts +2 -0
  195. package/dist/tests/unit/utils/symbol-utils.test.d.ts.map +1 -0
  196. package/dist/tests/unit/utils/symbol-utils.test.js +178 -0
  197. package/dist/tests/unit/utils/symbol-utils.test.js.map +1 -0
  198. package/dist/types/price-aggregation.d.ts +31 -0
  199. package/dist/types/price-aggregation.d.ts.map +1 -0
  200. package/dist/types/price-aggregation.js +6 -0
  201. package/dist/types/price-aggregation.js.map +1 -0
  202. package/dist/utils/crypto.d.ts +15 -0
  203. package/dist/utils/crypto.d.ts.map +1 -0
  204. package/dist/utils/crypto.js +50 -0
  205. package/dist/utils/crypto.js.map +1 -0
  206. package/dist/utils/validation.d.ts +36 -0
  207. package/dist/utils/validation.d.ts.map +1 -0
  208. package/dist/utils/validation.js +174 -0
  209. package/dist/utils/validation.js.map +1 -0
  210. package/package.json +1 -1
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mexc_connector_1 = require("../../../../exchanges/mexc/mexc-connector");
4
+ const mexc_websocket_1 = require("../../../../exchanges/mexc/mexc-websocket");
5
+ const mexc_user_stream_1 = require("../../../../exchanges/mexc/mexc-user-stream");
6
+ const MEXC_TEST_CONFIG = {
7
+ apiKey: process.env.MEXC_API_KEY || 'test_api_key',
8
+ apiSecret: process.env.MEXC_API_SECRET || 'test_api_secret',
9
+ testMode: !process.env.MEXC_API_KEY || process.env.NODE_ENV === 'test',
10
+ testSymbol: 'INDY/USDT',
11
+ altSymbol: 'BTC/USDT',
12
+ timeout: 30000
13
+ };
14
+ describe('MEXC Integration Tests', () => {
15
+ let mexcConnector;
16
+ let mexcWebSocket;
17
+ let mexcUserStream;
18
+ const cleanup = async () => {
19
+ try {
20
+ if (mexcWebSocket?.isConnected()) {
21
+ await mexcWebSocket.disconnectWebSocket();
22
+ }
23
+ if (mexcUserStream?.isUserDataStreamConnected()) {
24
+ await mexcUserStream.disconnectUserDataStream();
25
+ }
26
+ }
27
+ catch (error) {
28
+ // Ignore cleanup errors
29
+ }
30
+ };
31
+ beforeEach(() => {
32
+ mexcConnector = new mexc_connector_1.MexcConnector();
33
+ mexcWebSocket = new mexc_websocket_1.MexcWebSocket();
34
+ mexcUserStream = new mexc_user_stream_1.MexcUserStream((_endpoint, _params, _method) => Promise.resolve({}));
35
+ if (!MEXC_TEST_CONFIG.testMode) {
36
+ mexcConnector.setCredentials({
37
+ apiKey: MEXC_TEST_CONFIG.apiKey,
38
+ secret: MEXC_TEST_CONFIG.apiSecret
39
+ });
40
+ }
41
+ });
42
+ afterEach(cleanup);
43
+ afterAll(cleanup);
44
+ describe('MEXC Trading Workflow Integration', () => {
45
+ test('Complete order lifecycle: connect → create → monitor → cancel', async () => {
46
+ if (MEXC_TEST_CONFIG.testMode) {
47
+ return;
48
+ }
49
+ const orderUpdates = [];
50
+ let orderId = '';
51
+ try {
52
+ await mexcConnector.connect();
53
+ expect(mexcConnector.isConnected()).toBe(true);
54
+ await mexcUserStream.connectUserDataStream();
55
+ expect(mexcUserStream.isUserDataStreamConnected()).toBe(true);
56
+ await mexcUserStream.subscribeUserOrders((order) => {
57
+ orderUpdates.push(order);
58
+ });
59
+ const balance = await mexcConnector.getBalance();
60
+ expect(balance).toBeDefined();
61
+ expect(typeof balance).toBe('object');
62
+ const orderParams = {
63
+ symbol: MEXC_TEST_CONFIG.testSymbol,
64
+ type: 'limit',
65
+ side: 'buy',
66
+ amount: 10,
67
+ price: 0.01
68
+ };
69
+ const createdOrder = await mexcConnector.createOrder(orderParams.symbol, orderParams.type, orderParams.side, orderParams.amount, orderParams.price);
70
+ expect(createdOrder).toBeDefined();
71
+ expect(createdOrder.id).toBeDefined();
72
+ expect(createdOrder.symbol).toBe(orderParams.symbol);
73
+ expect(createdOrder.side).toBe(orderParams.side);
74
+ expect(createdOrder.status).toMatch(/open|pending/);
75
+ orderId = createdOrder.id;
76
+ await new Promise(resolve => setTimeout(resolve, 2000));
77
+ const openOrders = await mexcConnector.getOpenOrders(orderParams.symbol);
78
+ const foundOrder = openOrders.find((o) => o.id === orderId);
79
+ expect(foundOrder).toBeDefined();
80
+ await new Promise(resolve => setTimeout(resolve, 3000));
81
+ expect(orderUpdates.length).toBeGreaterThan(0);
82
+ const relevantUpdate = orderUpdates.find(update => update.id === orderId);
83
+ expect(relevantUpdate).toBeDefined();
84
+ await mexcConnector.cancelOrder(orderId, orderParams.symbol);
85
+ await new Promise(resolve => setTimeout(resolve, 2000));
86
+ const finalOpenOrders = await mexcConnector.getOpenOrders(orderParams.symbol);
87
+ const cancelledOrderStillOpen = finalOpenOrders.find((o) => o.id === orderId);
88
+ expect(cancelledOrderStillOpen).toBeUndefined();
89
+ const cancellationUpdate = orderUpdates.find(update => update.id === orderId && update.status.match(/cancelled|canceled/));
90
+ expect(cancellationUpdate).toBeDefined();
91
+ }
92
+ catch (error) {
93
+ if (orderId) {
94
+ try {
95
+ await mexcConnector.cancelOrder(orderId, MEXC_TEST_CONFIG.testSymbol);
96
+ }
97
+ catch (cleanupError) {
98
+ // Ignore cleanup errors
99
+ }
100
+ }
101
+ throw error;
102
+ }
103
+ }, MEXC_TEST_CONFIG.timeout);
104
+ });
105
+ describe('MEXC Real-time Data Pipeline', () => {
106
+ test('Market data flow: connect → subscribe → receive → transform', async () => {
107
+ const tickerData = [];
108
+ const tradeData = [];
109
+ const orderbookData = [];
110
+ try {
111
+ await mexcWebSocket.connectWebSocket();
112
+ expect(mexcWebSocket.isConnected()).toBe(true);
113
+ const tickerSub = await mexcWebSocket.subscribeTicker(MEXC_TEST_CONFIG.testSymbol, (ticker) => {
114
+ tickerData.push(ticker);
115
+ });
116
+ expect(tickerSub).toBeDefined();
117
+ const tradesSub = await mexcWebSocket.subscribeTrades(MEXC_TEST_CONFIG.testSymbol, (trade) => {
118
+ tradeData.push(trade);
119
+ });
120
+ expect(tradesSub).toBeDefined();
121
+ const orderbookSub = await mexcWebSocket.subscribeOrderBook(MEXC_TEST_CONFIG.testSymbol, (orderbook) => {
122
+ orderbookData.push(orderbook);
123
+ });
124
+ expect(orderbookSub).toBeDefined();
125
+ await new Promise(resolve => setTimeout(resolve, 10000));
126
+ expect(tickerData.length).toBeGreaterThan(0);
127
+ expect(orderbookData.length).toBeGreaterThan(0);
128
+ const latestTicker = tickerData[tickerData.length - 1];
129
+ expect(latestTicker.symbol).toBe(MEXC_TEST_CONFIG.testSymbol);
130
+ expect(latestTicker.last).toBeGreaterThan(0);
131
+ expect(latestTicker.bid).toBeGreaterThan(0);
132
+ expect(latestTicker.ask).toBeGreaterThan(0);
133
+ expect(latestTicker.timestamp).toBeDefined();
134
+ if (tradeData.length > 0) {
135
+ const latestTrade = tradeData[tradeData.length - 1];
136
+ expect(latestTrade.symbol).toBe(MEXC_TEST_CONFIG.testSymbol);
137
+ expect(['buy', 'sell']).toContain(latestTrade.side);
138
+ expect(latestTrade.amount).toBeGreaterThan(0);
139
+ expect(latestTrade.price).toBeGreaterThan(0);
140
+ }
141
+ const latestOrderbook = orderbookData[orderbookData.length - 1];
142
+ expect(latestOrderbook.symbol).toBe(MEXC_TEST_CONFIG.testSymbol);
143
+ expect(latestOrderbook.bids.length).toBeGreaterThan(0);
144
+ expect(latestOrderbook.asks.length).toBeGreaterThan(0);
145
+ expect(latestOrderbook.bids[0].price).toBeGreaterThan(0);
146
+ expect(latestOrderbook.asks[0].price).toBeGreaterThan(0);
147
+ await mexcWebSocket.unsubscribe(tickerSub);
148
+ await mexcWebSocket.unsubscribe(tradesSub);
149
+ await mexcWebSocket.unsubscribe(orderbookSub);
150
+ }
151
+ catch (error) {
152
+ throw error;
153
+ }
154
+ }, MEXC_TEST_CONFIG.timeout);
155
+ });
156
+ describe('MEXC Authentication Integration', () => {
157
+ test('Auth flow: credentials → signing → authenticated requests → user streams', async () => {
158
+ if (MEXC_TEST_CONFIG.testMode) {
159
+ return;
160
+ }
161
+ try {
162
+ await mexcConnector.connect();
163
+ expect(mexcConnector.isConnected()).toBe(true);
164
+ const balance = await mexcConnector.getBalance();
165
+ expect(balance).toBeDefined();
166
+ expect(typeof balance).toBe('object');
167
+ const openOrders = await mexcConnector.getOpenOrders(MEXC_TEST_CONFIG.testSymbol);
168
+ expect(Array.isArray(openOrders)).toBe(true);
169
+ await mexcUserStream.connectUserDataStream();
170
+ expect(mexcUserStream.isUserDataStreamConnected()).toBe(true);
171
+ await mexcUserStream.keepAliveListenKey();
172
+ }
173
+ catch (error) {
174
+ throw error;
175
+ }
176
+ }, MEXC_TEST_CONFIG.timeout);
177
+ });
178
+ describe('MEXC Multi-Asset Trading', () => {
179
+ test('Multi-symbol operations: INDY/USDT + BTC/USDT workflows', async () => {
180
+ const symbols = [MEXC_TEST_CONFIG.testSymbol, MEXC_TEST_CONFIG.altSymbol];
181
+ const marketData = new Map();
182
+ symbols.forEach(symbol => {
183
+ marketData.set(symbol, { tickers: [], trades: [], orderbooks: [] });
184
+ });
185
+ try {
186
+ await mexcWebSocket.connectWebSocket();
187
+ expect(mexcWebSocket.isConnected()).toBe(true);
188
+ const subscriptions = [];
189
+ for (const symbol of symbols) {
190
+ const symbolData = marketData.get(symbol);
191
+ const tickerSub = await mexcWebSocket.subscribeTicker(symbol, (ticker) => {
192
+ symbolData.tickers.push(ticker);
193
+ });
194
+ subscriptions.push(tickerSub);
195
+ const tradesSub = await mexcWebSocket.subscribeTrades(symbol, (trade) => {
196
+ symbolData.trades.push(trade);
197
+ });
198
+ subscriptions.push(tradesSub);
199
+ const orderbookSub = await mexcWebSocket.subscribeOrderBook(symbol, (orderbook) => {
200
+ symbolData.orderbooks.push(orderbook);
201
+ });
202
+ subscriptions.push(orderbookSub);
203
+ }
204
+ await new Promise(resolve => setTimeout(resolve, 15000));
205
+ for (const symbol of symbols) {
206
+ const symbolData = marketData.get(symbol);
207
+ expect(symbolData.tickers.length).toBeGreaterThan(0);
208
+ expect(symbolData.orderbooks.length).toBeGreaterThan(0);
209
+ const latestTicker = symbolData.tickers[symbolData.tickers.length - 1];
210
+ expect(latestTicker.last).toBeGreaterThan(0);
211
+ if (symbolData.trades.length > 0) {
212
+ const latestTrade = symbolData.trades[symbolData.trades.length - 1];
213
+ expect(['buy', 'sell']).toContain(latestTrade.side);
214
+ }
215
+ const latestOrderbook = symbolData.orderbooks[symbolData.orderbooks.length - 1];
216
+ expect(latestOrderbook.bids.length).toBeGreaterThan(0);
217
+ expect(latestOrderbook.asks.length).toBeGreaterThan(0);
218
+ }
219
+ if (!MEXC_TEST_CONFIG.testMode) {
220
+ const balance = await mexcConnector.getBalance();
221
+ expect(balance).toBeDefined();
222
+ for (const symbol of symbols) {
223
+ const openOrders = await mexcConnector.getOpenOrders(symbol);
224
+ expect(Array.isArray(openOrders)).toBe(true);
225
+ }
226
+ }
227
+ for (const subId of subscriptions) {
228
+ await mexcWebSocket.unsubscribe(subId);
229
+ }
230
+ }
231
+ catch (error) {
232
+ throw error;
233
+ }
234
+ }, MEXC_TEST_CONFIG.timeout);
235
+ });
236
+ });
237
+ //# sourceMappingURL=mexc-integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mexc-integration.test.js","sourceRoot":"","sources":["../../../../../src/tests/integration/exchanges/mexc/mexc-integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cardano-price-service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardano-price-service.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/integration/price-aggregation/cardano-price-service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Integration tests for Cardano Price Service
5
+ * Tests the complete price aggregation flow with Iris API
6
+ */
7
+ const price_aggregation_1 = require("../../../core/price-aggregation");
8
+ const price_aggregation_2 = require("../../../config/price-aggregation");
9
+ describe('CardanoPriceService Integration', () => {
10
+ let priceService;
11
+ beforeEach(() => {
12
+ priceService = new price_aggregation_1.CardanoPriceService();
13
+ });
14
+ describe('Token Support', () => {
15
+ test('should support INDY token', () => {
16
+ expect((0, price_aggregation_2.isTokenSupported)('INDY')).toBe(true);
17
+ });
18
+ test('should support SNEK token', () => {
19
+ expect((0, price_aggregation_2.isTokenSupported)('SNEK')).toBe(true);
20
+ });
21
+ test('should not support unsupported token', () => {
22
+ expect((0, price_aggregation_2.isTokenSupported)('UNKNOWN')).toBe(false);
23
+ });
24
+ test('should return list of supported tokens', () => {
25
+ const tokens = (0, price_aggregation_2.getSupportedTokens)();
26
+ expect(tokens).toContain('INDY');
27
+ expect(tokens).toContain('SNEK');
28
+ expect(tokens.length).toBeGreaterThan(0);
29
+ });
30
+ });
31
+ describe('Price Fetching', () => {
32
+ test('should reject unsupported token', async () => {
33
+ await expect(priceService.getTokenPrice('UNKNOWN')).rejects.toThrow('Unsupported token: UNKNOWN');
34
+ });
35
+ test('should fetch INDY price successfully', async () => {
36
+ const price = await priceService.getTokenPrice('INDY');
37
+ expect(price.symbol).toBe('INDY/USDT');
38
+ expect(price.price).toBeGreaterThan(0);
39
+ expect(price.confidence).toBeGreaterThan(0);
40
+ expect(price.timestamp).toBeInstanceOf(Date);
41
+ expect(price.sources.length).toBeGreaterThan(0);
42
+ }, 30000);
43
+ test('should fetch SNEK price successfully', async () => {
44
+ const price = await priceService.getTokenPrice('SNEK');
45
+ expect(price.symbol).toBe('SNEK/USDT');
46
+ expect(price.price).toBeGreaterThan(0);
47
+ expect(price.confidence).toBeGreaterThan(0);
48
+ }, 30000);
49
+ });
50
+ describe('Error Handling', () => {
51
+ test('should handle network errors gracefully', async () => {
52
+ jest.spyOn(priceService, 'getTokenADAPrice').mockRejectedValue(new Error('Network error'));
53
+ await expect(priceService.getTokenPrice('INDY')).rejects.toThrow('Price aggregation failed for INDY');
54
+ });
55
+ });
56
+ });
57
+ //# sourceMappingURL=cardano-price-service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardano-price-service.test.js","sourceRoot":"","sources":["../../../../src/tests/integration/price-aggregation/cardano-price-service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=price-aggregation-integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-aggregation-integration.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/integration/price-aggregation/price-aggregation-integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const price_aggregation_1 = require("../../../core/price-aggregation");
4
+ describe('Price Aggregation Integration Tests', () => {
5
+ let priceService;
6
+ beforeAll(() => {
7
+ priceService = new price_aggregation_1.CardanoPriceService();
8
+ });
9
+ afterAll(async () => {
10
+ await new Promise(resolve => setTimeout(resolve, 100));
11
+ priceService = null;
12
+ if (global.gc) {
13
+ global.gc();
14
+ }
15
+ });
16
+ describe('Real API Integration', () => {
17
+ it('should get real price for MIN token', async () => {
18
+ const result = await priceService.getTokenPrice('MIN');
19
+ expect(result.symbol).toBe('MIN/USDT');
20
+ expect(result.price).toBeGreaterThan(0);
21
+ expect(result.price).toBeLessThan(1000);
22
+ expect(result.confidence).toBeGreaterThan(0);
23
+ expect(result.confidence).toBeLessThanOrEqual(1);
24
+ expect(result.sources).toHaveLength(2);
25
+ expect(result.timestamp).toBeInstanceOf(Date);
26
+ const hasIrisSource = result.sources.some(s => s.exchange === 'cardano');
27
+ const hasCexSource = result.sources.some(s => s.exchange.includes('cex'));
28
+ expect(hasIrisSource).toBe(true);
29
+ expect(hasCexSource).toBe(true);
30
+ }, 30000);
31
+ it('should get real price for INDY token', async () => {
32
+ const result = await priceService.getTokenPrice('INDY');
33
+ expect(result.symbol).toBe('INDY/USDT');
34
+ expect(result.price).toBeGreaterThan(0);
35
+ expect(result.price).toBeLessThan(100);
36
+ expect(result.confidence).toBeGreaterThan(0);
37
+ expect(result.sources).toHaveLength(2);
38
+ }, 30000);
39
+ it('should get real price for SNEK token', async () => {
40
+ const result = await priceService.getTokenPrice('SNEK');
41
+ expect(result.symbol).toBe('SNEK/USDT');
42
+ expect(result.price).toBeGreaterThan(0);
43
+ expect(result.price).toBeLessThan(10000);
44
+ expect(result.confidence).toBeGreaterThan(0);
45
+ expect(result.sources).toHaveLength(2);
46
+ }, 30000);
47
+ it('should handle price comparison between tokens', async () => {
48
+ const [minPrice, indyPrice] = await Promise.all([
49
+ priceService.getTokenPrice('MIN'),
50
+ priceService.getTokenPrice('INDY')
51
+ ]);
52
+ expect(minPrice.price).toBeGreaterThan(0);
53
+ expect(indyPrice.price).toBeGreaterThan(0);
54
+ expect(minPrice.price).not.toBe(indyPrice.price);
55
+ const now = Date.now();
56
+ const fiveMinutesAgo = now - 5 * 60 * 1000;
57
+ expect(minPrice.timestamp.getTime()).toBeGreaterThan(fiveMinutesAgo);
58
+ expect(indyPrice.timestamp.getTime()).toBeGreaterThan(fiveMinutesAgo);
59
+ }, 60000);
60
+ it('should maintain price stability over short intervals', async () => {
61
+ const price1 = await priceService.getTokenPrice('MIN');
62
+ await new Promise(resolve => setTimeout(resolve, 2000));
63
+ const price2 = await priceService.getTokenPrice('MIN');
64
+ const priceChange = Math.abs(price2.price - price1.price) / price1.price;
65
+ expect(priceChange).toBeLessThan(0.05);
66
+ const confidenceChange = Math.abs(price2.confidence - price1.confidence);
67
+ expect(confidenceChange).toBeLessThan(0.3);
68
+ }, 45000);
69
+ });
70
+ describe('Error Handling Integration', () => {
71
+ it('should handle unsupported token gracefully', async () => {
72
+ await expect(priceService.getTokenPrice('NONEXISTENT')).rejects.toThrow('Unsupported token: NONEXISTENT');
73
+ });
74
+ it('should handle invalid token symbols', async () => {
75
+ const invalidTokens = ['', ' ', 'INVALID123', 'too-long-token-symbol'];
76
+ for (const token of invalidTokens) {
77
+ await expect(priceService.getTokenPrice(token)).rejects.toThrow();
78
+ }
79
+ });
80
+ });
81
+ describe('Performance Tests', () => {
82
+ it('should complete price aggregation within reasonable time', async () => {
83
+ const startTime = Date.now();
84
+ await priceService.getTokenPrice('MIN');
85
+ const endTime = Date.now();
86
+ const duration = endTime - startTime;
87
+ expect(duration).toBeLessThan(15000);
88
+ }, 20000);
89
+ it('should handle concurrent price requests efficiently', async () => {
90
+ const startTime = Date.now();
91
+ const promises = [
92
+ priceService.getTokenPrice('MIN'),
93
+ priceService.getTokenPrice('INDY'),
94
+ priceService.getTokenPrice('SNEK')
95
+ ];
96
+ const results = await Promise.all(promises);
97
+ const endTime = Date.now();
98
+ const duration = endTime - startTime;
99
+ expect(duration).toBeLessThan(25000);
100
+ expect(results).toHaveLength(3);
101
+ results.forEach(result => {
102
+ expect(result.price).toBeGreaterThan(0);
103
+ expect(result.confidence).toBeGreaterThan(0);
104
+ });
105
+ }, 30000);
106
+ });
107
+ describe('Data Quality Tests', () => {
108
+ it('should return prices within expected ranges for known tokens', async () => {
109
+ const minResult = await priceService.getTokenPrice('MIN');
110
+ const indyResult = await priceService.getTokenPrice('INDY');
111
+ const snekResult = await priceService.getTokenPrice('SNEK');
112
+ // Updated price ranges based on current market conditions
113
+ expect(minResult.price).toBeGreaterThan(0.001); // MIN: Updated range
114
+ expect(minResult.price).toBeLessThan(1000);
115
+ expect(indyResult.price).toBeGreaterThan(0.001); // INDY: Updated range
116
+ expect(indyResult.price).toBeLessThan(1000);
117
+ expect(snekResult.price).toBeGreaterThan(0.001); // SNEK: Updated range
118
+ expect(snekResult.price).toBeLessThan(10000);
119
+ }, 45000);
120
+ it('should have reasonable confidence scores', async () => {
121
+ const result = await priceService.getTokenPrice('MIN');
122
+ expect(result.confidence).toBeGreaterThanOrEqual(0.3);
123
+ expect(result.confidence).toBeLessThanOrEqual(0.95);
124
+ expect(result.confidence).toBeGreaterThan(0.4);
125
+ }, 30000);
126
+ it('should provide complete source information', async () => {
127
+ const result = await priceService.getTokenPrice('MIN');
128
+ expect(result.sources).toHaveLength(2);
129
+ result.sources.forEach(source => {
130
+ expect(source.id).toBeDefined();
131
+ expect(source.name).toBeDefined();
132
+ expect(source.exchange).toBeDefined();
133
+ expect(source.reliability).toBeGreaterThan(0);
134
+ expect(source.reliability).toBeLessThanOrEqual(1);
135
+ expect(typeof source.isActive).toBe('boolean');
136
+ expect(source.latency).toBeGreaterThanOrEqual(0);
137
+ });
138
+ }, 30000);
139
+ });
140
+ });
141
+ //# sourceMappingURL=price-aggregation-integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-aggregation-integration.test.js","sourceRoot":"","sources":["../../../../src/tests/integration/price-aggregation/price-aggregation-integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=grid-strategy-e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-strategy-e2e.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/integration/strategies/grid/grid-strategy-e2e.test.ts"],"names":[],"mappings":""}