@3rd-eye-labs/openmm 0.1.1 → 0.1.4

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 (273) hide show
  1. package/README.md +34 -1
  2. package/dist/cli/cli.js +55 -36
  3. package/dist/cli/cli.js.map +1 -1
  4. package/dist/cli/commands/ohlcv.d.ts +3 -0
  5. package/dist/cli/commands/ohlcv.d.ts.map +1 -0
  6. package/dist/cli/commands/ohlcv.js +115 -0
  7. package/dist/cli/commands/ohlcv.js.map +1 -0
  8. package/dist/cli/commands/setup.d.ts +3 -0
  9. package/dist/cli/commands/setup.d.ts.map +1 -0
  10. package/dist/cli/commands/setup.js +253 -0
  11. package/dist/cli/commands/setup.js.map +1 -0
  12. package/dist/cli/commands/wallet.d.ts +7 -0
  13. package/dist/cli/commands/wallet.d.ts.map +1 -0
  14. package/dist/cli/commands/wallet.js +271 -0
  15. package/dist/cli/commands/wallet.js.map +1 -0
  16. package/dist/core/exchange/base-exchange-connector.d.ts +2 -1
  17. package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -1
  18. package/dist/core/exchange/base-exchange-connector.js.map +1 -1
  19. package/dist/exchanges/bitget/bitget-connector.d.ts +11 -1
  20. package/dist/exchanges/bitget/bitget-connector.d.ts.map +1 -1
  21. package/dist/exchanges/bitget/bitget-connector.js +52 -0
  22. package/dist/exchanges/bitget/bitget-connector.js.map +1 -1
  23. package/dist/exchanges/gateio/gateio-connector.d.ts +11 -1
  24. package/dist/exchanges/gateio/gateio-connector.d.ts.map +1 -1
  25. package/dist/exchanges/gateio/gateio-connector.js +54 -0
  26. package/dist/exchanges/gateio/gateio-connector.js.map +1 -1
  27. package/dist/exchanges/kraken/kraken-connector.d.ts +6 -1
  28. package/dist/exchanges/kraken/kraken-connector.d.ts.map +1 -1
  29. package/dist/exchanges/kraken/kraken-connector.js +44 -0
  30. package/dist/exchanges/kraken/kraken-connector.js.map +1 -1
  31. package/dist/exchanges/mexc/mexc-auth.d.ts +1 -0
  32. package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -1
  33. package/dist/exchanges/mexc/mexc-auth.js +4 -1
  34. package/dist/exchanges/mexc/mexc-auth.js.map +1 -1
  35. package/dist/exchanges/mexc/mexc-connector.d.ts +6 -1
  36. package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -1
  37. package/dist/exchanges/mexc/mexc-connector.js +37 -0
  38. package/dist/exchanges/mexc/mexc-connector.js.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +25 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/types/market.d.ts +15 -0
  44. package/dist/types/market.d.ts.map +1 -1
  45. package/dist/x402/crypto.d.ts +79 -0
  46. package/dist/x402/crypto.d.ts.map +1 -0
  47. package/dist/x402/crypto.js +300 -0
  48. package/dist/x402/crypto.js.map +1 -0
  49. package/dist/x402/evm.d.ts +41 -0
  50. package/dist/x402/evm.d.ts.map +1 -0
  51. package/dist/x402/evm.js +229 -0
  52. package/dist/x402/evm.js.map +1 -0
  53. package/dist/x402/handler.d.ts +53 -0
  54. package/dist/x402/handler.d.ts.map +1 -0
  55. package/dist/x402/handler.js +233 -0
  56. package/dist/x402/handler.js.map +1 -0
  57. package/dist/x402/index.d.ts +29 -0
  58. package/dist/x402/index.d.ts.map +1 -0
  59. package/dist/x402/index.js +67 -0
  60. package/dist/x402/index.js.map +1 -0
  61. package/dist/x402/types.d.ts +185 -0
  62. package/dist/x402/types.d.ts.map +1 -0
  63. package/dist/x402/types.js +7 -0
  64. package/dist/x402/types.js.map +1 -0
  65. package/dist/x402/wallet.d.ts +65 -0
  66. package/dist/x402/wallet.d.ts.map +1 -0
  67. package/dist/x402/wallet.js +282 -0
  68. package/dist/x402/wallet.js.map +1 -0
  69. package/package.json +1 -1
  70. package/dist/cli/commands/grid.d.ts +0 -3
  71. package/dist/cli/commands/grid.d.ts.map +0 -1
  72. package/dist/cli/commands/grid.js +0 -103
  73. package/dist/cli/commands/grid.js.map +0 -1
  74. package/dist/cli/commands/multi-trade.d.ts +0 -3
  75. package/dist/cli/commands/multi-trade.d.ts.map +0 -1
  76. package/dist/cli/commands/multi-trade.js +0 -175
  77. package/dist/cli/commands/multi-trade.js.map +0 -1
  78. package/dist/cli/pool-discovery.d.ts +0 -56
  79. package/dist/cli/pool-discovery.d.ts.map +0 -1
  80. package/dist/cli/pool-discovery.js +0 -283
  81. package/dist/cli/pool-discovery.js.map +0 -1
  82. package/dist/core/price-aggregation/price-cache.d.ts +0 -55
  83. package/dist/core/price-aggregation/price-cache.d.ts.map +0 -1
  84. package/dist/core/price-aggregation/price-cache.js +0 -152
  85. package/dist/core/price-aggregation/price-cache.js.map +0 -1
  86. package/dist/examples/mexc-connector-comprehensive-test.d.ts +0 -15
  87. package/dist/examples/mexc-connector-comprehensive-test.d.ts.map +0 -1
  88. package/dist/examples/mexc-connector-comprehensive-test.js +0 -514
  89. package/dist/examples/mexc-connector-comprehensive-test.js.map +0 -1
  90. package/dist/examples/mexc-order-update-test.d.ts +0 -4
  91. package/dist/examples/mexc-order-update-test.d.ts.map +0 -1
  92. package/dist/examples/mexc-order-update-test.js +0 -186
  93. package/dist/examples/mexc-order-update-test.js.map +0 -1
  94. package/dist/examples/mexc-test.d.ts +0 -9
  95. package/dist/examples/mexc-test.d.ts.map +0 -1
  96. package/dist/examples/mexc-test.js +0 -218
  97. package/dist/examples/mexc-test.js.map +0 -1
  98. package/dist/examples/mexc-trades-debug.d.ts +0 -2
  99. package/dist/examples/mexc-trades-debug.d.ts.map +0 -1
  100. package/dist/examples/mexc-trades-debug.js +0 -101
  101. package/dist/examples/mexc-trades-debug.js.map +0 -1
  102. package/dist/examples/mexc-trades-subscription-debug.d.ts +0 -2
  103. package/dist/examples/mexc-trades-subscription-debug.d.ts.map +0 -1
  104. package/dist/examples/mexc-trades-subscription-debug.js +0 -150
  105. package/dist/examples/mexc-trades-subscription-debug.js.map +0 -1
  106. package/dist/examples/mexc-websocket-test.d.ts +0 -8
  107. package/dist/examples/mexc-websocket-test.d.ts.map +0 -1
  108. package/dist/examples/mexc-websocket-test.js +0 -115
  109. package/dist/examples/mexc-websocket-test.js.map +0 -1
  110. package/dist/examples/test-protobuf-status-detection.d.ts +0 -9
  111. package/dist/examples/test-protobuf-status-detection.d.ts.map +0 -1
  112. package/dist/examples/test-protobuf-status-detection.js +0 -83
  113. package/dist/examples/test-protobuf-status-detection.js.map +0 -1
  114. package/dist/exchanges/base-exchange-connector.d.ts +0 -33
  115. package/dist/exchanges/base-exchange-connector.d.ts.map +0 -1
  116. package/dist/exchanges/base-exchange-connector.js +0 -55
  117. package/dist/exchanges/base-exchange-connector.js.map +0 -1
  118. package/dist/exchanges/kraken/test-kraken-websocket.d.ts +0 -19
  119. package/dist/exchanges/kraken/test-kraken-websocket.d.ts.map +0 -1
  120. package/dist/exchanges/kraken/test-kraken-websocket.js +0 -413
  121. package/dist/exchanges/kraken/test-kraken-websocket.js.map +0 -1
  122. package/dist/mcp/resources/index.d.ts +0 -3
  123. package/dist/mcp/resources/index.d.ts.map +0 -1
  124. package/dist/mcp/resources/index.js +0 -11
  125. package/dist/mcp/resources/index.js.map +0 -1
  126. package/dist/mcp/server.d.ts +0 -4
  127. package/dist/mcp/server.d.ts.map +0 -1
  128. package/dist/mcp/server.js +0 -29
  129. package/dist/mcp/server.js.map +0 -1
  130. package/dist/mcp/tools/index.d.ts +0 -3
  131. package/dist/mcp/tools/index.d.ts.map +0 -1
  132. package/dist/mcp/tools/index.js +0 -12
  133. package/dist/mcp/tools/index.js.map +0 -1
  134. package/dist/tests/fixtures/test-helpers.d.ts +0 -5
  135. package/dist/tests/fixtures/test-helpers.d.ts.map +0 -1
  136. package/dist/tests/fixtures/test-helpers.js +0 -8
  137. package/dist/tests/fixtures/test-helpers.js.map +0 -1
  138. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts +0 -2
  139. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts.map +0 -1
  140. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js +0 -237
  141. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js.map +0 -1
  142. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts +0 -2
  143. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts.map +0 -1
  144. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js +0 -57
  145. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js.map +0 -1
  146. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts +0 -2
  147. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts.map +0 -1
  148. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js +0 -141
  149. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js.map +0 -1
  150. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts +0 -2
  151. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts.map +0 -1
  152. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js +0 -375
  153. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js.map +0 -1
  154. package/dist/tests/unit/cli/exchange-factory.test.d.ts +0 -2
  155. package/dist/tests/unit/cli/exchange-factory.test.d.ts.map +0 -1
  156. package/dist/tests/unit/cli/exchange-factory.test.js +0 -148
  157. package/dist/tests/unit/cli/exchange-factory.test.js.map +0 -1
  158. package/dist/tests/unit/config/environment.test.d.ts +0 -2
  159. package/dist/tests/unit/config/environment.test.d.ts.map +0 -1
  160. package/dist/tests/unit/config/environment.test.js +0 -158
  161. package/dist/tests/unit/config/environment.test.js.map +0 -1
  162. package/dist/tests/unit/config/launcher-config.test.d.ts +0 -2
  163. package/dist/tests/unit/config/launcher-config.test.d.ts.map +0 -1
  164. package/dist/tests/unit/config/launcher-config.test.js +0 -117
  165. package/dist/tests/unit/config/launcher-config.test.js.map +0 -1
  166. package/dist/tests/unit/config/price-aggregation.test.d.ts +0 -2
  167. package/dist/tests/unit/config/price-aggregation.test.d.ts.map +0 -1
  168. package/dist/tests/unit/config/price-aggregation.test.js +0 -144
  169. package/dist/tests/unit/config/price-aggregation.test.js.map +0 -1
  170. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts +0 -2
  171. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts.map +0 -1
  172. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js +0 -191
  173. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js.map +0 -1
  174. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts +0 -2
  175. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts.map +0 -1
  176. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js +0 -324
  177. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js.map +0 -1
  178. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts +0 -2
  179. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts.map +0 -1
  180. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js +0 -177
  181. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js.map +0 -1
  182. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts +0 -2
  183. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts.map +0 -1
  184. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js +0 -168
  185. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js.map +0 -1
  186. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts +0 -2
  187. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts.map +0 -1
  188. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js +0 -217
  189. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js.map +0 -1
  190. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts +0 -2
  191. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts.map +0 -1
  192. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js +0 -229
  193. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js.map +0 -1
  194. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts +0 -2
  195. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts.map +0 -1
  196. package/dist/tests/unit/core/risk-management/risk-manager.test.js +0 -194
  197. package/dist/tests/unit/core/risk-management/risk-manager.test.js.map +0 -1
  198. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts +0 -2
  199. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts.map +0 -1
  200. package/dist/tests/unit/core/strategy/base-strategy.test.js +0 -254
  201. package/dist/tests/unit/core/strategy/base-strategy.test.js.map +0 -1
  202. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts +0 -2
  203. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts.map +0 -1
  204. package/dist/tests/unit/core/strategy/strategy-factory.test.js +0 -213
  205. package/dist/tests/unit/core/strategy/strategy-factory.test.js.map +0 -1
  206. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts +0 -2
  207. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts.map +0 -1
  208. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js +0 -452
  209. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js.map +0 -1
  210. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts +0 -2
  211. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts.map +0 -1
  212. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js +0 -1419
  213. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js.map +0 -1
  214. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts +0 -2
  215. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts.map +0 -1
  216. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js +0 -435
  217. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js.map +0 -1
  218. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts +0 -2
  219. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts.map +0 -1
  220. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js +0 -314
  221. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js.map +0 -1
  222. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts +0 -2
  223. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts.map +0 -1
  224. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js +0 -178
  225. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js.map +0 -1
  226. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts +0 -2
  227. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts.map +0 -1
  228. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js +0 -502
  229. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js.map +0 -1
  230. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts +0 -2
  231. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts.map +0 -1
  232. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js +0 -317
  233. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js.map +0 -1
  234. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts +0 -2
  235. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts.map +0 -1
  236. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js +0 -843
  237. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js.map +0 -1
  238. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts +0 -2
  239. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts.map +0 -1
  240. package/dist/tests/unit/strategies/grid/grid-calculator.test.js +0 -67
  241. package/dist/tests/unit/strategies/grid/grid-calculator.test.js.map +0 -1
  242. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts +0 -2
  243. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts.map +0 -1
  244. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js +0 -211
  245. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js.map +0 -1
  246. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts +0 -2
  247. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts.map +0 -1
  248. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js +0 -197
  249. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js.map +0 -1
  250. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts +0 -2
  251. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts.map +0 -1
  252. package/dist/tests/unit/strategies/grid/grid-strategy.test.js +0 -429
  253. package/dist/tests/unit/strategies/grid/grid-strategy.test.js.map +0 -1
  254. package/dist/tests/unit/utils/logger.test.d.ts +0 -2
  255. package/dist/tests/unit/utils/logger.test.d.ts.map +0 -1
  256. package/dist/tests/unit/utils/logger.test.js +0 -260
  257. package/dist/tests/unit/utils/logger.test.js.map +0 -1
  258. package/dist/tests/unit/utils/symbol-utils.test.d.ts +0 -2
  259. package/dist/tests/unit/utils/symbol-utils.test.d.ts.map +0 -1
  260. package/dist/tests/unit/utils/symbol-utils.test.js +0 -178
  261. package/dist/tests/unit/utils/symbol-utils.test.js.map +0 -1
  262. package/dist/types/price-aggregation.d.ts +0 -31
  263. package/dist/types/price-aggregation.d.ts.map +0 -1
  264. package/dist/types/price-aggregation.js +0 -6
  265. package/dist/types/price-aggregation.js.map +0 -1
  266. package/dist/utils/crypto.d.ts +0 -15
  267. package/dist/utils/crypto.d.ts.map +0 -1
  268. package/dist/utils/crypto.js +0 -50
  269. package/dist/utils/crypto.js.map +0 -1
  270. package/dist/utils/validation.d.ts +0 -36
  271. package/dist/utils/validation.d.ts.map +0 -1
  272. package/dist/utils/validation.js +0 -174
  273. package/dist/utils/validation.js.map +0 -1
@@ -1,260 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const logger_1 = require("../../../utils/logger");
37
- const winston = __importStar(require("winston"));
38
- jest.mock('winston', () => ({
39
- createLogger: jest.fn(() => ({
40
- error: jest.fn(),
41
- warn: jest.fn(),
42
- info: jest.fn(),
43
- debug: jest.fn(),
44
- })),
45
- format: {
46
- combine: jest.fn((...formats) => formats),
47
- timestamp: jest.fn(() => 'timestamp-format'),
48
- colorize: jest.fn(() => 'colorize-format'),
49
- printf: jest.fn((callback) => callback),
50
- json: jest.fn(() => 'json-format'),
51
- },
52
- transports: {
53
- Console: jest.fn(),
54
- File: jest.fn(),
55
- },
56
- }));
57
- describe('Logger', () => {
58
- let mockWinstonLogger;
59
- beforeEach(() => {
60
- mockWinstonLogger = {
61
- error: jest.fn(),
62
- warn: jest.fn(),
63
- info: jest.fn(),
64
- debug: jest.fn(),
65
- };
66
- winston.createLogger.mockReturnValue(mockWinstonLogger);
67
- });
68
- afterEach(() => {
69
- jest.clearAllMocks();
70
- });
71
- describe('Logger class', () => {
72
- it('should create logger with console transport only when no logFile provided', () => {
73
- new logger_1.Logger('test-service');
74
- expect(winston.createLogger).toHaveBeenCalledWith({
75
- level: 'debug',
76
- defaultMeta: { service: 'test-service' },
77
- transports: expect.arrayContaining([
78
- expect.any(winston.transports.Console)
79
- ]),
80
- exitOnError: false
81
- });
82
- });
83
- it('should create logger with console and file transports when logFile provided', () => {
84
- new logger_1.Logger('test-service', 'test.log');
85
- expect(winston.createLogger).toHaveBeenCalledWith({
86
- level: 'debug',
87
- defaultMeta: { service: 'test-service' },
88
- transports: expect.arrayContaining([
89
- expect.any(winston.transports.Console),
90
- expect.any(winston.transports.File),
91
- expect.any(winston.transports.File)
92
- ]),
93
- exitOnError: false
94
- });
95
- });
96
- it('should create file transport with correct filename', () => {
97
- new logger_1.Logger('test-service', 'test.log');
98
- expect(winston.transports.File).toHaveBeenCalledWith({
99
- filename: 'test.log',
100
- format: expect.any(Array)
101
- });
102
- });
103
- it('should create error file transport with correct filename', () => {
104
- new logger_1.Logger('test-service', 'test.log');
105
- expect(winston.transports.File).toHaveBeenCalledWith({
106
- filename: 'test-error.log',
107
- level: 'error',
108
- format: expect.any(Array)
109
- });
110
- });
111
- it('should handle complex filename for error file', () => {
112
- new logger_1.Logger('test-service', 'path/to/application.log');
113
- expect(winston.transports.File).toHaveBeenCalledWith({
114
- filename: 'path/to/application-error.log',
115
- level: 'error',
116
- format: expect.any(Array)
117
- });
118
- });
119
- describe('logging methods', () => {
120
- let logger;
121
- beforeEach(() => {
122
- logger = new logger_1.Logger('test-service');
123
- });
124
- it('should log error messages', () => {
125
- const context = { userId: 123, action: 'login' };
126
- logger.error('Test error message', context);
127
- expect(mockWinstonLogger.error).toHaveBeenCalledWith('Test error message', context);
128
- });
129
- it('should log warn messages', () => {
130
- const context = { component: 'auth' };
131
- logger.warn('Test warning message', context);
132
- expect(mockWinstonLogger.warn).toHaveBeenCalledWith('Test warning message', context);
133
- });
134
- it('should log info messages', () => {
135
- const context = { event: 'user_signup' };
136
- logger.info('Test info message', context);
137
- expect(mockWinstonLogger.info).toHaveBeenCalledWith('Test info message', context);
138
- });
139
- it('should log debug messages', () => {
140
- const context = { debug: true };
141
- logger.debug('Test debug message', context);
142
- expect(mockWinstonLogger.debug).toHaveBeenCalledWith('Test debug message', context);
143
- });
144
- it('should log messages without context', () => {
145
- logger.error('Error without context');
146
- logger.warn('Warning without context');
147
- logger.info('Info without context');
148
- logger.debug('Debug without context');
149
- expect(mockWinstonLogger.error).toHaveBeenCalledWith('Error without context', undefined);
150
- expect(mockWinstonLogger.warn).toHaveBeenCalledWith('Warning without context', undefined);
151
- expect(mockWinstonLogger.info).toHaveBeenCalledWith('Info without context', undefined);
152
- expect(mockWinstonLogger.debug).toHaveBeenCalledWith('Debug without context', undefined);
153
- });
154
- describe('logError method', () => {
155
- it('should log error objects with stack trace', () => {
156
- const error = new Error('Test error');
157
- error.stack = 'Error stack trace';
158
- const context = { userId: 456 };
159
- logger.logError(error, context);
160
- expect(mockWinstonLogger.error).toHaveBeenCalledWith('Error occurred', {
161
- userId: 456,
162
- error: {
163
- name: 'Error',
164
- message: 'Test error',
165
- stack: 'Error stack trace'
166
- }
167
- });
168
- });
169
- it('should log error objects without context', () => {
170
- const error = new Error('Test error without context');
171
- logger.logError(error);
172
- expect(mockWinstonLogger.error).toHaveBeenCalledWith('Error occurred', {
173
- error: {
174
- name: 'Error',
175
- message: 'Test error without context',
176
- stack: error.stack
177
- }
178
- });
179
- });
180
- it('should handle custom error types', () => {
181
- class CustomError extends Error {
182
- constructor(message) {
183
- super(message);
184
- this.name = 'CustomError';
185
- }
186
- }
187
- const error = new CustomError('Custom error message');
188
- logger.logError(error);
189
- expect(mockWinstonLogger.error).toHaveBeenCalledWith('Error occurred', {
190
- error: {
191
- name: 'CustomError',
192
- message: 'Custom error message',
193
- stack: error.stack
194
- }
195
- });
196
- });
197
- });
198
- });
199
- });
200
- describe('createLogger function', () => {
201
- it('should create a Logger instance', () => {
202
- const result = (0, logger_1.createLogger)('test-service');
203
- expect(result).toBeInstanceOf(logger_1.Logger);
204
- });
205
- it('should create a Logger instance with log file', () => {
206
- const result = (0, logger_1.createLogger)('test-service', 'app.log');
207
- expect(result).toBeInstanceOf(logger_1.Logger);
208
- });
209
- it('should pass correct parameters to Logger constructor', () => {
210
- const loggerSpy = jest.spyOn(logger_1.Logger.prototype, 'constructor').mockImplementation();
211
- (0, logger_1.createLogger)('my-service', 'my-app.log');
212
- expect(winston.createLogger).toHaveBeenCalled();
213
- loggerSpy.mockRestore();
214
- });
215
- });
216
- describe('default logger', () => {
217
- it('should be a Logger instance', () => {
218
- expect(logger_1.logger).toBeInstanceOf(logger_1.Logger);
219
- });
220
- it('should be created with "openmm" service name', () => {
221
- expect(logger_1.logger).toBeDefined();
222
- expect(logger_1.logger.info).toBeDefined();
223
- expect(logger_1.logger.error).toBeDefined();
224
- });
225
- });
226
- describe('LogLevel type', () => {
227
- it('should accept valid log level values', () => {
228
- const levels = ['error', 'warn', 'info', 'debug'];
229
- levels.forEach(level => {
230
- expect(typeof level).toBe('string');
231
- expect(['error', 'warn', 'info', 'debug']).toContain(level);
232
- });
233
- });
234
- });
235
- describe('LogContext interface', () => {
236
- it('should allow any key-value pairs', () => {
237
- const context = {
238
- userId: 123,
239
- sessionId: 'abc123',
240
- component: 'auth',
241
- nested: {
242
- prop: 'value'
243
- },
244
- array: [1, 2, 3],
245
- boolean: true,
246
- nullable: null,
247
- undefined: undefined
248
- };
249
- expect(typeof context).toBe('object');
250
- expect(context.userId).toBe(123);
251
- expect(context.sessionId).toBe('abc123');
252
- expect(context.nested.prop).toBe('value');
253
- });
254
- it('should allow empty context', () => {
255
- const context = {};
256
- expect(Object.keys(context)).toHaveLength(0);
257
- });
258
- });
259
- });
260
- //# sourceMappingURL=logger.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/utils/logger.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=symbol-utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"symbol-utils.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/utils/symbol-utils.test.ts"],"names":[],"mappings":""}
@@ -1,178 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const symbol_utils_1 = require("../../../utils/symbol-utils");
4
- describe('Symbol Utils', () => {
5
- describe('parseSymbol', () => {
6
- it('should parse symbols with slash separator', () => {
7
- const result = (0, symbol_utils_1.parseSymbol)('BTC/USDT');
8
- expect(result).toEqual({ base: 'BTC', quote: 'USDT' });
9
- });
10
- it('should parse symbols with slash separator and extra whitespace', () => {
11
- const result = (0, symbol_utils_1.parseSymbol)(' ETH / USDC ');
12
- expect(result).toEqual({ base: 'ETH', quote: 'USDC' });
13
- });
14
- it('should handle lowercase symbols with slash', () => {
15
- const result = (0, symbol_utils_1.parseSymbol)('btc/usdt');
16
- expect(result).toEqual({ base: 'BTC', quote: 'USDT' });
17
- });
18
- it('should parse symbols ending with USDT', () => {
19
- const result = (0, symbol_utils_1.parseSymbol)('BTCUSDT');
20
- expect(result).toEqual({ base: 'BTC', quote: 'USDT' });
21
- });
22
- it('should parse symbols ending with USDC', () => {
23
- const result = (0, symbol_utils_1.parseSymbol)('ETHUSDC');
24
- expect(result).toEqual({ base: 'ETH', quote: 'USDC' });
25
- });
26
- it('should parse symbols ending with BUSD', () => {
27
- const result = (0, symbol_utils_1.parseSymbol)('ADABUSD');
28
- expect(result).toEqual({ base: 'ADA', quote: 'BUSD' });
29
- });
30
- it('should parse symbols ending with USD', () => {
31
- const result = (0, symbol_utils_1.parseSymbol)('BTCUSD');
32
- expect(result).toEqual({ base: 'BTC', quote: 'USD' });
33
- });
34
- it('should parse symbols ending with BTC', () => {
35
- const result = (0, symbol_utils_1.parseSymbol)('ETHBTC');
36
- expect(result).toEqual({ base: 'ETH', quote: 'BTC' });
37
- });
38
- it('should parse symbols ending with ETH', () => {
39
- const result = (0, symbol_utils_1.parseSymbol)('LINKETH');
40
- expect(result).toEqual({ base: 'LINK', quote: 'ETH' });
41
- });
42
- it('should parse symbols ending with BNB', () => {
43
- const result = (0, symbol_utils_1.parseSymbol)('ADABNB');
44
- expect(result).toEqual({ base: 'ADA', quote: 'BNB' });
45
- });
46
- it('should handle lowercase symbols without slash', () => {
47
- const result = (0, symbol_utils_1.parseSymbol)('btcusdt');
48
- expect(result).toEqual({ base: 'BTC', quote: 'USDT' });
49
- });
50
- it('should handle symbols with extra whitespace', () => {
51
- const result = (0, symbol_utils_1.parseSymbol)(' BTCUSDT ');
52
- expect(result).toEqual({ base: 'BTC', quote: 'USDT' });
53
- });
54
- it('should prefer longer quote currencies first', () => {
55
- const result = (0, symbol_utils_1.parseSymbol)('USDTETH');
56
- expect(result).toEqual({ base: 'USDT', quote: 'ETH' });
57
- });
58
- it('should handle complex base symbols', () => {
59
- const result = (0, symbol_utils_1.parseSymbol)('SHIBAINU/USDT');
60
- expect(result).toEqual({ base: 'SHIBAINU', quote: 'USDT' });
61
- });
62
- it('should handle complex base symbols without slash', () => {
63
- const result = (0, symbol_utils_1.parseSymbol)('SHIBAINUUSDT');
64
- expect(result).toEqual({ base: 'SHIBAINU', quote: 'USDT' });
65
- });
66
- it('should throw error for unparseable symbols', () => {
67
- expect(() => (0, symbol_utils_1.parseSymbol)('INVALIDFORMAT')).toThrow('Unable to parse symbol: INVALIDFORMAT');
68
- });
69
- it('should throw error for empty symbols', () => {
70
- expect(() => (0, symbol_utils_1.parseSymbol)('')).toThrow('Unable to parse symbol: ');
71
- });
72
- it('should throw error for symbols with only quote currency', () => {
73
- expect(() => (0, symbol_utils_1.parseSymbol)('USDT')).toThrow('Unable to parse symbol: USDT');
74
- });
75
- it('should handle symbols with slash but empty parts', () => {
76
- expect((0, symbol_utils_1.parseSymbol)('/')).toEqual({ base: '', quote: '' });
77
- expect((0, symbol_utils_1.parseSymbol)('BTC/')).toEqual({ base: 'BTC', quote: '' });
78
- expect((0, symbol_utils_1.parseSymbol)('/USDT')).toEqual({ base: '', quote: 'USDT' });
79
- });
80
- it('should handle symbols with multiple potential quote currencies', () => {
81
- const result = (0, symbol_utils_1.parseSymbol)('USDCUSDT');
82
- expect(result).toEqual({ base: 'USDC', quote: 'USDT' });
83
- });
84
- });
85
- describe('toStandardFormat', () => {
86
- it('should convert exchange format to standard format', () => {
87
- const result = (0, symbol_utils_1.toStandardFormat)('BTCUSDT');
88
- expect(result).toBe('BTC/USDT');
89
- });
90
- it('should keep standard format unchanged', () => {
91
- const result = (0, symbol_utils_1.toStandardFormat)('BTC/USDT');
92
- expect(result).toBe('BTC/USDT');
93
- });
94
- it('should handle lowercase symbols', () => {
95
- const result = (0, symbol_utils_1.toStandardFormat)('btcusdt');
96
- expect(result).toBe('BTC/USDT');
97
- });
98
- it('should handle symbols with whitespace', () => {
99
- const result = (0, symbol_utils_1.toStandardFormat)(' ETHUSDC ');
100
- expect(result).toBe('ETH/USDC');
101
- });
102
- it('should handle different quote currencies', () => {
103
- expect((0, symbol_utils_1.toStandardFormat)('BTCUSD')).toBe('BTC/USD');
104
- expect((0, symbol_utils_1.toStandardFormat)('ETHBTC')).toBe('ETH/BTC');
105
- expect((0, symbol_utils_1.toStandardFormat)('ADABNB')).toBe('ADA/BNB');
106
- });
107
- it('should throw error for invalid symbols', () => {
108
- expect(() => (0, symbol_utils_1.toStandardFormat)('INVALID')).toThrow('Unable to parse symbol: INVALID');
109
- });
110
- });
111
- describe('toExchangeFormat', () => {
112
- it('should convert standard format to exchange format', () => {
113
- const result = (0, symbol_utils_1.toExchangeFormat)('BTC/USDT');
114
- expect(result).toBe('BTCUSDT');
115
- });
116
- it('should keep exchange format unchanged', () => {
117
- const result = (0, symbol_utils_1.toExchangeFormat)('BTCUSDT');
118
- expect(result).toBe('BTCUSDT');
119
- });
120
- it('should handle lowercase symbols', () => {
121
- const result = (0, symbol_utils_1.toExchangeFormat)('btc/usdt');
122
- expect(result).toBe('BTCUSDT');
123
- });
124
- it('should handle symbols with whitespace', () => {
125
- const result = (0, symbol_utils_1.toExchangeFormat)(' ETH / USDC ');
126
- expect(result).toBe('ETHUSDC');
127
- });
128
- it('should handle different quote currencies', () => {
129
- expect((0, symbol_utils_1.toExchangeFormat)('BTC/USD')).toBe('BTCUSD');
130
- expect((0, symbol_utils_1.toExchangeFormat)('ETH/BTC')).toBe('ETHBTC');
131
- expect((0, symbol_utils_1.toExchangeFormat)('ADA/BNB')).toBe('ADABNB');
132
- });
133
- it('should throw error for invalid symbols', () => {
134
- expect(() => (0, symbol_utils_1.toExchangeFormat)('INVALID')).toThrow('Unable to parse symbol: INVALID');
135
- });
136
- });
137
- describe('round-trip conversions', () => {
138
- it('should maintain consistency through round-trip conversions', () => {
139
- const testCases = [
140
- 'BTCUSDT',
141
- 'BTC/USDT',
142
- 'ETHUSDC',
143
- 'ETH/USDC',
144
- 'LINKBTC',
145
- 'LINK/BTC'
146
- ];
147
- testCases.forEach(symbol => {
148
- const standard = (0, symbol_utils_1.toStandardFormat)(symbol);
149
- const exchange = (0, symbol_utils_1.toExchangeFormat)(standard);
150
- const backToStandard = (0, symbol_utils_1.toStandardFormat)(exchange);
151
- expect(backToStandard).toBe(standard);
152
- });
153
- });
154
- it('should normalize different input formats to same output', () => {
155
- const inputs = ['BTCUSDT', 'BTC/USDT', 'btc/usdt', ' BTC / USDT '];
156
- inputs.forEach(input => {
157
- expect((0, symbol_utils_1.toStandardFormat)(input)).toBe('BTC/USDT');
158
- expect((0, symbol_utils_1.toExchangeFormat)(input)).toBe('BTCUSDT');
159
- });
160
- });
161
- });
162
- describe('edge cases', () => {
163
- it('should handle symbols with numbers', () => {
164
- expect((0, symbol_utils_1.parseSymbol)('1INCHUSDT')).toEqual({ base: '1INCH', quote: 'USDT' });
165
- expect((0, symbol_utils_1.toStandardFormat)('1INCHUSDT')).toBe('1INCH/USDT');
166
- expect((0, symbol_utils_1.toExchangeFormat)('1INCH/USDT')).toBe('1INCHUSDT');
167
- });
168
- it('should handle very long base symbols', () => {
169
- const longSymbol = 'VERYLONGCOINNAMEUSDT';
170
- expect((0, symbol_utils_1.parseSymbol)(longSymbol)).toEqual({ base: 'VERYLONGCOINNAME', quote: 'USDT' });
171
- });
172
- it('should maintain case consistency', () => {
173
- const result = (0, symbol_utils_1.parseSymbol)('mytoken/USDT');
174
- expect(result).toEqual({ base: 'MYTOKEN', quote: 'USDT' });
175
- });
176
- });
177
- });
178
- //# sourceMappingURL=symbol-utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"symbol-utils.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/utils/symbol-utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Multi-Exchange Price Aggregation Types
3
- */
4
- import { SupportedExchange } from '../cli/exchange-factory';
5
- export interface ExchangePriceData {
6
- exchange: SupportedExchange;
7
- symbol: string;
8
- price: number;
9
- volume24h?: number;
10
- timestamp: Date;
11
- available: boolean;
12
- error?: string;
13
- }
14
- export interface AggregatedExchangePrice {
15
- symbol: string;
16
- prices: ExchangePriceData[];
17
- averagePrice?: number;
18
- priceSpread?: {
19
- min: number;
20
- max: number;
21
- spreadPercentage: number;
22
- };
23
- timestamp: Date;
24
- }
25
- export interface DEXvsCEXComparison {
26
- dexPrice: number;
27
- cexPrices: ExchangePriceData[];
28
- averageCexPrice?: number;
29
- dexPremium?: number;
30
- }
31
- //# sourceMappingURL=price-aggregation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"price-aggregation.d.ts","sourceRoot":"","sources":["../../src/types/price-aggregation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- /**
3
- * Multi-Exchange Price Aggregation Types
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=price-aggregation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"price-aggregation.js","sourceRoot":"","sources":["../../src/types/price-aggregation.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -1,15 +0,0 @@
1
- export declare class CryptoUtils {
2
- static generateHMACSignature(secret: string, message: string, algorithm?: string): string;
3
- static generateHMACSignatureBase64(secret: string, message: string, algorithm?: string): string;
4
- static hash(data: string, algorithm?: string): string;
5
- }
6
- export declare class ExchangeAuthUtils {
7
- static createKucoinSignature(secret: string, timestamp: string, method: string, endpoint: string, body?: string): {
8
- signature: string;
9
- passphrase: string;
10
- };
11
- static createMEXCSignature(secret: string, params: Record<string, any>): string;
12
- static createGateSignature(secret: string, method: string, url: string, body: string, timestamp: string): string;
13
- }
14
- export { CryptoUtils as default };
15
- //# sourceMappingURL=crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;IAEtB,MAAM,CAAC,qBAAqB,CAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAiB,GAC3B,MAAM;IAOT,MAAM,CAAC,2BAA2B,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAiB,GAC3B,MAAM;IAOT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAiB,GAAG,MAAM;CAGhE;AAED,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,qBAAqB,CAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAW,GAChB;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAU5C,MAAM,CAAC,mBAAmB,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,MAAM;IAQT,MAAM,CAAC,mBAAmB,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,MAAM;CAKV;AAED,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = exports.ExchangeAuthUtils = exports.CryptoUtils = void 0;
7
- const crypto_1 = __importDefault(require("crypto"));
8
- class CryptoUtils {
9
- static generateHMACSignature(secret, message, algorithm = 'sha256') {
10
- return crypto_1.default
11
- .createHmac(algorithm, secret)
12
- .update(message)
13
- .digest('hex');
14
- }
15
- static generateHMACSignatureBase64(secret, message, algorithm = 'sha256') {
16
- return crypto_1.default
17
- .createHmac(algorithm, secret)
18
- .update(message)
19
- .digest('base64');
20
- }
21
- static hash(data, algorithm = 'sha256') {
22
- return crypto_1.default.createHash(algorithm).update(data).digest('hex');
23
- }
24
- }
25
- exports.CryptoUtils = CryptoUtils;
26
- exports.default = CryptoUtils;
27
- class ExchangeAuthUtils {
28
- static createKucoinSignature(secret, timestamp, method, endpoint, body = '') {
29
- const message = `${timestamp}${method}${endpoint}${body}`;
30
- const signature = CryptoUtils.generateHMACSignatureBase64(secret, message, 'sha256');
31
- return {
32
- signature,
33
- passphrase: CryptoUtils.generateHMACSignatureBase64(secret, 'your-passphrase', 'sha256')
34
- };
35
- }
36
- static createMEXCSignature(secret, params) {
37
- const sortedParams = Object.keys(params)
38
- .sort()
39
- .map(key => `${key}=${params[key]}`)
40
- .join('&');
41
- return CryptoUtils.generateHMACSignature(secret, sortedParams, 'sha256');
42
- }
43
- static createGateSignature(secret, method, url, body, timestamp) {
44
- const hashedPayload = CryptoUtils.hash(body || '', 'sha512');
45
- const message = `${method}\n${url}\n\n${hashedPayload}\n${timestamp}`;
46
- return CryptoUtils.generateHMACSignature(secret, message, 'sha512');
47
- }
48
- }
49
- exports.ExchangeAuthUtils = ExchangeAuthUtils;
50
- //# sourceMappingURL=crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,MAAa,WAAW;IAEtB,MAAM,CAAC,qBAAqB,CAC1B,MAAc,EACd,OAAe,EACf,YAAoB,QAAQ;QAE5B,OAAO,gBAAM;aACV,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC;aAC7B,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,2BAA2B,CAChC,MAAc,EACd,OAAe,EACf,YAAoB,QAAQ;QAE5B,OAAO,gBAAM;aACV,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC;aAC7B,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,YAAoB,QAAQ;QACpD,OAAO,gBAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;CACF;AA3BD,kCA2BC;AA2CuB,8BAAO;AAzC/B,MAAa,iBAAiB;IAC5B,MAAM,CAAC,qBAAqB,CAC1B,MAAc,EACd,SAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,OAAe,EAAE;QAEjB,MAAM,OAAO,GAAG,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAErF,OAAO;YACL,SAAS;YACT,UAAU,EAAE,WAAW,CAAC,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;SACzF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,mBAAmB,CACxB,MAAc,EACd,MAA2B;QAE3B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aACrC,IAAI,EAAE;aACN,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;aACnC,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,WAAW,CAAC,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,mBAAmB,CACxB,MAAc,EACd,MAAc,EACd,GAAW,EACX,IAAY,EACZ,SAAiB;QAEjB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,GAAG,MAAM,KAAK,GAAG,OAAO,aAAa,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,WAAW,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtE,CAAC;CACF;AAvCD,8CAuCC"}
@@ -1,36 +0,0 @@
1
- import { OrderType, OrderSide } from '../types';
2
- export interface ValidationResult {
3
- isValid: boolean;
4
- errors: string[];
5
- warnings?: string[];
6
- }
7
- export interface OrderValidationOptions {
8
- minPrice?: number;
9
- maxPrice?: number;
10
- minAmount?: number;
11
- maxAmount?: number;
12
- minNotional?: number;
13
- maxNotional?: number;
14
- tickSize?: number;
15
- stepSize?: number;
16
- maxPrecision?: number;
17
- }
18
- export interface SymbolValidationOptions {
19
- allowedExchanges?: string[];
20
- supportedAssets?: string[];
21
- minLength?: number;
22
- maxLength?: number;
23
- }
24
- export declare class ValidationUtils {
25
- private static readonly SYMBOL_REGEX;
26
- static validateSymbol(symbol: string, options?: SymbolValidationOptions): ValidationResult;
27
- static validatePrice(price: number, options?: OrderValidationOptions): ValidationResult;
28
- static validateAmount(amount: number, options?: OrderValidationOptions): ValidationResult;
29
- static validateOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, options?: OrderValidationOptions): ValidationResult;
30
- static validateApiCredentials(apiKey: string, apiSecret: string, passphrase?: string): ValidationResult;
31
- static isValidOrderType(type: string): type is OrderType;
32
- static isValidOrderSide(side: string): side is OrderSide;
33
- static getDecimalPlaces(number: number): number;
34
- }
35
- export { ValidationUtils as default };
36
- //# sourceMappingURL=validation.d.ts.map